# Issue tracker: Gitea Issues and specs for this repo live in the Gitea repository at `https://git.arthurerlich.de/haylan/php-node-renderer-playground`. Use the `tea` CLI (the official Gitea CLI, v0.15.1) for all operations. `tea` infers the repository from the local git remote (`origin` → this repo), so commands are run from the repo root without `-r`. Use `-o json` for machine-readable output (e.g. `tea issues ls -o json`). If a command can't find a login, run `tea login` first. ## Conventions - **Create an issue**: `tea issues create -t "..." -d "..."` (add `-L "label, label"` for labels) - **Read an issue**: `tea issues --comments -o json` - **List issues**: `tea issues ls -o json` (filters: `--state open|closed|all`, `--labels "..."`, `--keyword "..."`) - **List issue comments**: `tea comments list ` - **List labels**: `tea labels ls` - **Comment on an issue**: `tea comments add "..."` - **Add / remove labels**: `tea issues edit -L "label"` / `tea issues edit --remove-labels "label"` - **Assign a dev**: `tea issues edit -a ` - **Close**: `tea issues close ` - **Reopen**: `tea issues reopen ` Gitea shares one number space across issues and pull requests, so a bare `#42` may be either: resolve with `tea pulls view ` (or `tea issues -K pulls `) and fall back to `tea issues `. ## 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 pulls` equivalents (`tea pulls ls`, `tea pulls view `). ## When a skill says "publish to the issue tracker" Create a Gitea issue in `haylan/php-node-renderer-playground` (`tea issues create`). ## When a skill says "fetch the relevant ticket" Run `tea issues --comments` for the referenced number. ## Wayfinding operations Used by `/wayfinder`. The **map** is a single issue with **child** issues as tickets. Gitea has no native sub-issues or issue-dependencies API, so links are recorded in issue bodies. - **Map**: a single issue labelled `wayfinder:map`, holding the Notes / Decisions-so-far / Fog body. Create with `tea issues create -t "..." -d "..." -L "wayfinder:map"`. - **Child ticket**: an issue linked to the map via a task list in the map body, with `Part of #` at the top of the child body. Labels: `wayfinder:` (`research`/`prototype`/`grilling`/`task`). Once claimed, the ticket is assigned to the driving dev. - **Blocking**: a `Blocked by: #, #` line near the top of the child body. A ticket is unblocked when every blocker is closed. - **Frontier**: scan the map's open children (task list / `Part of`), drop any with an open blocker (per the `Blocked by` line) or an assignee; first in map order wins. - **Claim**: assign the issue to the driving dev, the session's first write (`tea issues edit -a `). - **Resolve**: comment the answer (`tea comments add "..."`), close the issue (`tea issues close `), then append a context pointer (gist + link) to the map's Decisions-so-far.