Adds docs/agents/{issue-tracker,triage-labels,domain}.md so the engineering
skills know where issues live (Gitea via tea, not gh), which triage labels to
apply, and that domain docs are single-context.
Every CLAUDE.md was a stale subset of the AGENTS.md beside it, so each is now
a symlink and AGENTS.md is the single source of truth.
3.5 KiB
Issue tracker: Gitea (tea CLI)
Issues and specs for this repo live as issues on the self-hosted Gitea instance
gitea.violetcrown.my.id (repo sulthan/mangaBookmark). gh does not work here — use
tea for everything past plain git. Auth lives in tea login,
not a GH_TOKEN env var. tea infers the repo from the local clone's origin.
tea prints rendered boxes rather than plain text; pass --output json (or -o json) when a
skill needs to parse the result.
Conventions
- Create an issue:
tea issue create --title "..." --description "..."(--labels,--assigneesoptional). Multi-line bodies: pass the body through a shell variable or heredoc. - Read an issue:
tea issue <number> --comments(add-o jsonfor machine-readable output). - List issues:
tea issue list --state open -o json --fields index,title,body,labels,state,author; filter with--labels "...",--state open|closed|all,--assignee,--keyword. - Comment:
tea comment <number> "..."(alias oftea comments add). - Apply / remove labels:
tea issue edit <number> --add-labels "..."/--remove-labels "...". Labels must exist first — seetea labels list/tea labels create --name "..." --color "#rrggbb". - Close:
tea issue close <number>(comment separately withtea comment;closetakes no--commentflag).
Pull requests as a triage surface
PRs as a request surface: no. (Set to yes if this repo treats external PRs as feature
requests; /triage reads this flag.)
When set to yes, PRs run through the same labels and states as issues, using the tea pr
equivalents: tea pr <number> --comments, tea pr list --state open -o json,
tea pr create --head <branch> --base main --title "..." --description "...", tea comment,
tea pr close. Gitea shares one index space across issues and PRs, so a bare #42 may be either
— resolve with tea pr 42 and fall back to tea issue 42.
When a skill says "publish to the issue tracker"
Create a Gitea issue with tea issue create.
When a skill says "fetch the relevant ticket"
Run tea issue <number> --comments.
Wayfinding operations
Used by /wayfinder. The map is a single issue; tickets are child issues.
- Map: one issue labelled
wayfinder:mapholding the Notes / Decisions-so-far / Fog body.tea issue create --labels wayfinder:map --title "..." --description "...". - Child ticket: an issue labelled
wayfinder:<type>(research/prototype/grilling/task) withPart of #<map>as the first body line, and a task-list entry in the map body.teahas no sub-issue command, so the task list plus thePart ofline is the canonical link. - Blocking: a
Blocked by: #<n>, #<n>line at the top of the child body. Gitea's native issue dependencies exist in the API butteadoes not expose them; the body line is the source of truth. A ticket is unblocked when every listed blocker is closed. - Frontier query:
tea issue list --state open -o jsonscoped to the map's task list; drop any ticket with an open blocker or an assignee; first in map order wins. - Claim:
tea issue edit <n> --add-assignees <your-username>— the session's first write. (teahas no@meshorthand; use the Gitea username fromtea login list.) - Resolve:
tea comment <n> "<answer>", thentea issue close <n>, then append a context pointer to the map's Decisions-so-far viatea issue edit <map> --description "...".