docs: record agent-skills setup (Gitea+tea tracker, triage labels, domain docs)
This commit is contained in:
1 parent
c20a4f0226
commit
f51e83713a
4 files changed
+142
No files matched your search
@@ -0,0 +1,62 @@
|
||||
# Issue tracker: Gitea (via tea CLI)
|
||||
|
||||
Issues and specs for this repo live as Gitea issues on
|
||||
`git.arthurerlich.de/haylan/mattpocock-skills-opencode`. Use the `tea` CLI for all operations;
|
||||
the `gitea-tea` skill has command recipes. `tea` infers the repo from `git remote` inside this clone.
|
||||
|
||||
**One-time human step (not done yet):** `tea logins add` for `https://git.arthurerlich.de`
|
||||
(token from the web UI: Settings → Applications). Until then, tracker operations fail.
|
||||
|
||||
## Conventions
|
||||
|
||||
- **Create an issue**: `tea issues create -t "<title>" --description-file -` (stdin for
|
||||
multi-line bodies). Labels: `-L needs-triage,bug` (comma-separated; must exist — see Labels).
|
||||
- **Read an issue**: `tea issues <number> --comments`.
|
||||
- **List issues**: `tea issues list --state open -f index,title,state,labels,assignees`
|
||||
(add `body,comments` to `--fields` when a skill needs full content).
|
||||
- **Comment**: `tea comments <number> "<body>"`.
|
||||
- **Apply / remove labels**: `tea issues edit <number> -L "<label>"` / `--remove-labels "<label>"`.
|
||||
- **Assign**: `tea issues edit <number> -a <username>`.
|
||||
- **Close**: comment the reason, then `tea issues close <number>`.
|
||||
|
||||
Gitea has **no sub-issues and no native blocked-by links**. Relations are body conventions:
|
||||
|
||||
- **Parent/child**: `Part of #<parent>` as the first line of the child body, plus a task list of
|
||||
children in the parent body.
|
||||
- **Blocking**: `Blocked by: #<n>, #<n>` near the top of the child body. A ticket is unblocked
|
||||
when every listed blocker is closed.
|
||||
|
||||
### Labels
|
||||
|
||||
The five triage labels plus `wayfinder:map` and `wayfinder:research|prototype|grilling|task` must
|
||||
exist before first use. After login, create missing ones with `tea labels create`; check with
|
||||
`tea labels list`.
|
||||
|
||||
## 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.)_ Gitea shares one number space across issues and PRs: resolve
|
||||
a bare `#42` with `tea issues 42`, falling back to `tea prs 42`.
|
||||
|
||||
## When a skill says "publish to the issue tracker"
|
||||
|
||||
Create a Gitea issue as above.
|
||||
|
||||
## When a skill says "fetch the relevant ticket"
|
||||
|
||||
Read it with `tea issues <number> --comments`.
|
||||
|
||||
## Wayfinding operations
|
||||
|
||||
Used by `wayfinder`. The **map** is a single issue with **child** issues as tickets.
|
||||
|
||||
- **Map**: issue labelled `wayfinder:map`, holding the Notes / Decisions-so-far / Fog body.
|
||||
- **Child ticket**: `Part of #<map>` first body line, listed in the map's task list. Labels:
|
||||
`wayfinder:<type>` (`research`/`prototype`/`grilling`/`task`). Once claimed, assigned to the
|
||||
driving dev.
|
||||
- **Blocking**: `Blocked by: #<n>` line (no native equivalent).
|
||||
- **Frontier query**: list the map's open children (`tea issues list --state open`), drop any
|
||||
whose `Blocked by:` names an open issue or that has an assignee; first in map order wins.
|
||||
- **Claim**: `tea issues edit <n> -a <username>`, the session's first write.
|
||||
- **Resolve**: `tea comments <n> "<answer>"`, then `tea issues close <n>`, then append a context
|
||||
pointer to the map's Decisions-so-far (edit the map body).
|
||||
Reference in new issue
Block a user