ingest-sourcelisted
Install: claude install-skill kylus/agentport
# ingest-source
Pulls one external source into the topic's `sources/` cache and prepares a draft memory update.
## Behavior
1. Verify owner role. Contributors cannot trigger ingest.
2. Parse the URL / path → service + identifier:
- `github.com/<owner>/<repo>/{issues|pull|discussions|wiki}/<n>` → GitHub item
- `gitlab.com/<group>/<repo>/-/{issues|merge_requests|wikis}/<n>` → GitLab item
- `docs.google.com/document/d/<id>` → Google Doc
- `*.slack.com/archives/<chan>/p<ts>` → Slack thread (only when this
topic has the Slack channel enabled)
- a local file path the owner points at → local file (no script; copy
into `sources/local/` and summarize with Read)
3. Invoke the matching ingest script via Bash (each script is a PEP 723
self-contained `uv run --script`, so just execute the file directly):
- `core/ingest/github_ingest.py <issue|pr|discussion|wiki|repo-list> <owner/repo> [<n>]`
- `core/ingest/gitlab_ingest.py <issue|mr|wiki|repo-list> <group/repo> [<n>]`
- `core/ingest/drive_ingest.py doc <id>`
- `core/ingest/slack_ingest.py thread <chan> <ts>`
Each script:
- fetches the source via SDK (auth via `~/.claude/secrets/agentport.env`)
- writes raw content to `sources/<service>/<id>.json` + `sources/<service>/<id>.md` (human-readable)
- returns a JSON summary on stdout
4. Read the ingest result. Summarize:
- **What is this source about?**
- **Key claims / decisions / questions raised**
- **Cross-references to othe