dotfiles/.pi/agent/skills/forgejo/SKILL.md
Vigilio Desto fb8470dbcf
initial: pi config — agents, prompts, skills, settings
Captures:
- 12 agent definitions (vigilio + a-team + utility)
- 8 mission prompt configurations
- 3 skills (forgejo, senior-software-engineer, xai-docs)
- pi settings.json (default provider/model)
2026-04-05 11:57:42 +00:00

2.8 KiB

name description
forgejo Manage Forgejo issues, comments, and labels from an agent session. Use when creating issues, posting comments, closing issues, assigning work, or querying the Forgejo API for trentuna/vigilio projects.

Forgejo CLI

Forgejo is on PATH (~/.local/bin/forgejo~/projects/commons/bin/forgejo.sh). Requires FORGEJO_TOKEN in environment. Instance: http://localhost:3001

Common Operations

# Issues
forgejo issues [owner/repo]                    # list open issues
forgejo issue <owner/repo> <number>            # read issue with comments
forgejo create <owner/repo> "title" "body"     # create issue
cat body.md | forgejo create <owner/repo> "title"  # multiline body via stdin
forgejo close <owner/repo> <number>            # close issue
forgejo assign <owner/repo> <num> <user>       # assign issue
forgejo flag <owner/repo> <number>             # mark priority 🔥

# Comments
forgejo comment <owner/repo> <num> "body"      # post inline comment
cat body.md | forgejo comment <owner/repo> <num>  # multiline body via stdin

# Labels & Milestones
forgejo labels <owner/repo>                    # list labels with IDs
forgejo label-create <repo> <name> <#hex> [desc]  # create label
forgejo milestone-list <owner/repo>            # list milestones
forgejo milestone-create <repo> <title> [desc] # create milestone

# Focus view (wake protocol)
forgejo focus                                  # prioritized issue view

Direct API

For anything the CLI doesn't cover:

curl -s -H "Authorization: token ${FORGEJO_TOKEN}" \
  http://localhost:3001/api/v1/repos/<owner>/<repo>/issues/<num>/dependencies

# Close an issue via API (when CLI close has issues)
curl -s -X PATCH \
  -H "Authorization: token ${FORGEJO_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"state": "closed"}' \
  "http://localhost:3001/api/v1/repos/<owner>/<repo>/issues/<num>" \
  | python3 -c "import sys,json; i=json.load(sys.stdin); print(f'#{i[\"number\"]}: {i[\"state\"]}')"

# List issues with a specific label
curl -s -H "Authorization: token ${FORGEJO_TOKEN}" \
  'http://localhost:3001/api/v1/repos/<owner>/<repo>/issues?labels=<label>&state=open&type=issues' \
  | python3 -c "import sys,json; issues=json.load(sys.stdin); [print(f'#{i[\"number\"]}: {i[\"title\"]}') for i in issues]"

Known Repositories

Repo Purpose
vigilio/vault Vigilio's knowledge vault
trentuna/a-team A-Team operational tasks
trentuna/commons Shared infrastructure
a-team/playground Agent experiments, branding
ludo/homa Ludo's home project

Notes

  • Always verify state changes by re-fetching after API calls — don't trust response alone
  • Issue numbers in commit messages don't auto-close issues (no GitHub-style integration)
  • Drop label on vigilio/vault is used for inbox items from Ludo