workflow: retire todo label — unlabelled IS the default bucket

`todo` and `feature` were semantically near-identical ("do it, no
spec needed") and the boss-pickup decision treated both the same.
Collapsing the larger one into "no label" cuts the tag-noise on
16 of 24 issues; the 3 `feature` issues retain the label as a
deliberate "substantive but no full spec" marker against the
unlabelled bucket of mechanical follow-ups.

Label `todo` deleted in Gitea (Tea removed it from the 16
issues automatically). Remaining labels: `milestone`, `feature`,
`idea`, `in-progress`.

In-tree changes:

- CLAUDE.md: Gitea-issues bullet describes the new shape —
  three semantic labels + unlabelled-default-bucket.
- skills/boss/SKILL.md: Step 1 filter-snippet and direction-
  freedom commentary updated.
- skills/brainstorm/SKILL.md: Step 7.5 tea-create template
  drops `todo` from the choice set and notes that omitting
  `--labels` is the default-bucket path.

Verification: cargo test --workspace 647/0/2, architect_sweeps
exit 0, zero residual `todo`-as-label refs in live docs.
This commit is contained in:
2026-05-20 15:07:51 +02:00
parent c5fa6e6ea3
commit d8379a15ba
3 changed files with 23 additions and 17 deletions
+12 -10
View File
@@ -226,16 +226,18 @@ not retroactively renamed.
- **Gitea issues** (since 2026-05-20) are the forward queue — - **Gitea issues** (since 2026-05-20) are the forward queue —
milestones, features, todos, and ideas. Browse: milestones, features, todos, and ideas. Browse:
http://192.168.178.103:3000/Brummel/AILang/issues. CLI: `tea http://192.168.178.103:3000/Brummel/AILang/issues. CLI: `tea
issues ls --repo Brummel/AILang`. Labels: `milestone`, issues ls --repo Brummel/AILang`. Labels: `milestone` (needs a
`feature`, `todo`, `idea` (semantic class) and `in-progress` `docs/specs/` entry, bounces back to the user in /boss),
(work has started). Big chunks that get their own `feature` (substantive addition, no full spec), `idea` (may be
`docs/specs/` entry live as Gitea **milestones** (containers); cut, no commitment), `in-progress` (work has started). An
smaller items are standalone issues. No formal priority axis — unlabelled issue is the default: a concrete task to just do,
"what's next" is an orchestrator judgement call per session, no spec needed. Big chunks live as Gitea **milestones**
not a pre-set label. `idea` is the "may be cut" marker. The (containers); smaller items are standalone issues. No formal
orchestrator owns the backlog: opening new issues, retagging, priority axis — "what's next" is an orchestrator judgement
closing on completion (typically via the `closes #N` commit- call per session, not a pre-set label. The orchestrator owns
body trailer). the backlog: opening new issues, retagging, closing on
completion (typically via the `closes #N` commit-body
trailer).
- **`docs/specs/<milestone>.md`** (since 2026-05-09): per-milestone - **`docs/specs/<milestone>.md`** (since 2026-05-09): per-milestone
design spec produced by `skills/brainstorm`. Hard-gate before any design spec produced by `skills/brainstorm`. Hard-gate before any
+7 -6
View File
@@ -70,17 +70,18 @@ mode. This skill does not restate them.
The Gitea issue backlog is the forward queue. Browse: The Gitea issue backlog is the forward queue. Browse:
http://192.168.178.103:3000/Brummel/AILang/issues. CLI: http://192.168.178.103:3000/Brummel/AILang/issues. CLI:
`tea issues ls --repo Brummel/AILang --state open` lists every `tea issues ls --repo Brummel/AILang --state open` lists every
open issue; `--labels milestone` / `feature` / `todo` / `idea` open issue; `--labels milestone` / `feature` / `idea` filters by
filters by semantic class. Read a candidate body with semantic class. Unlabelled issues are the default "just do it"
bucket. Read a candidate body with
`tea issues <N> --repo Brummel/AILang`. `tea issues <N> --repo Brummel/AILang`.
There is no formal priority axis (`prio:*` labels were retired There is no formal priority axis (`prio:*` labels were retired
2026-05-20). Pick the next item by orchestrator judgement: 2026-05-20). Pick the next item by orchestrator judgement:
typically the simplest in-flight follow-up to the just-closed typically the simplest in-flight follow-up to the just-closed
milestone, then a `todo` or `feature` that unblocks something, milestone, then an unlabelled issue or a `feature` that
then `milestone` (which is itself a bounce-back per §"Direction unblocks something, then `milestone` (which is itself a
freedom"). `idea` is "may be cut" and should rarely be picked bounce-back per §"Direction freedom"). `idea` is "may be cut"
autonomously. and should rarely be picked autonomously.
If the entire open backlog is empty: skip to Step 5 (done-state). If the entire open backlog is empty: skip to Step 5 (done-state).
Do not invent work; an empty queue is a real signal that the Do not invent work; an empty queue is a real signal that the
+4 -1
View File
@@ -248,13 +248,16 @@ interpretation:
```bash ```bash
tea issues create --repo Brummel/AILang \ tea issues create --repo Brummel/AILang \
--title "<idea title>" \ --title "<idea title>" \
--labels "<milestone|feature|todo|idea>" \ --labels "<milestone|feature|idea>" \
--description "<one-line description> --description "<one-line description>
**context:** <why this is deferred> **context:** <why this is deferred>
**depends on:** <name of the unratified mechanism>" **depends on:** <name of the unratified mechanism>"
``` ```
(Omit `--labels` entirely for an unlabelled default-bucket
issue.)
3. Tell the user the spec was retired and which Gitea issue was 3. Tell the user the spec was retired and which Gitea issue was
filed (include the issue number). No commit is needed for the filed (include the issue number). No commit is needed for the
backlog entry — Gitea is the live store. backlog entry — Gitea is the live store.