From a5540c56209925ec3cb8e3508d152ecc0279594e Mon Sep 17 00:00:00 2001 From: Brummel Date: Wed, 20 May 2026 15:24:26 +0200 Subject: [PATCH] =?UTF-8?q?workflow:=20retire=20`milestone`=20label=20?= =?UTF-8?q?=E2=80=94=20Gitea=20milestone=20container=20IS=20the=20concept?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `milestone` label was a dead duplicate of Gitea's first-class milestone container. Zero issues carried it (the three actual big-chunks — Flat array, Iteration-totality, Stateful islands — live as Gitea milestone containers, not as labelled issues). Same pattern as `prio:p1`: a slot that never gets used because the concept it tries to label lives somewhere else. Label deleted in Gitea. Remaining labels: `feature`, `idea`, `in-progress` (three, all semantic, no taxonomy noise). Big- chunk work continues to live as Gitea milestone containers (reached via `tea milestones ls --repo Brummel/AILang`). In-tree changes: - CLAUDE.md: Gitea-issues bullet describes the three-label shape; explicit note that milestone is a Gitea container, not a label. - skills/boss/SKILL.md: Step 1 filter set drops `milestone`, adds `tea milestones ls` for the container view; direction- freedom "new milestone" trigger reworded around the container, not the label. - skills/brainstorm/SKILL.md: Step 7.5 tea-create template drops `milestone` from the choice set; adds a note that spec-needing deferred work should be filed as a Gitea milestone container via `tea milestones create` instead. Verification: cargo test --workspace 647/0/2, architect_sweeps exit 0, zero residual `milestone`-as-label refs in live docs (grep skip-listed legitimate "Gitea milestone (container)" prose). --- CLAUDE.md | 15 ++++++++------- skills/boss/SKILL.md | 28 +++++++++++++++------------- skills/brainstorm/SKILL.md | 6 ++++-- 3 files changed, 27 insertions(+), 22 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index c0362b7..52af7fd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -226,13 +226,14 @@ not retroactively renamed. - **Gitea issues** (since 2026-05-20) are the forward queue — milestones, features, todos, and ideas. Browse: http://192.168.178.103:3000/Brummel/AILang/issues. CLI: `tea - issues ls --repo Brummel/AILang`. Labels: `milestone` (needs a - `docs/specs/` entry, bounces back to the user in /boss), - `feature` (substantive addition, no full spec), `idea` (may be - cut, no commitment), `in-progress` (work has started). An - unlabelled issue is the default: a concrete task to just do, - no spec needed. Big chunks live as Gitea **milestones** - (containers); smaller items are standalone issues. No formal + issues ls --repo Brummel/AILang`. Labels: `feature` + (substantive addition, no full spec), `idea` (may be cut, no + commitment), `in-progress` (work has started). An unlabelled + issue is the default: a concrete task to just do, no spec + needed. Big chunks live as Gitea **milestone containers** + (first-class Gitea concept, not a label — needs a + `docs/specs/` entry, opening one bounces back to the user in + /boss); smaller items are standalone issues. No formal priority axis — "what's next" is an orchestrator judgement call per session, not a pre-set label. The orchestrator owns the backlog: opening new issues, retagging, closing on diff --git a/skills/boss/SKILL.md b/skills/boss/SKILL.md index 27e0479..93b333d 100644 --- a/skills/boss/SKILL.md +++ b/skills/boss/SKILL.md @@ -70,18 +70,20 @@ mode. This skill does not restate them. The Gitea issue backlog is the forward queue. Browse: http://192.168.178.103:3000/Brummel/AILang/issues. CLI: `tea issues ls --repo Brummel/AILang --state open` lists every -open issue; `--labels milestone` / `feature` / `idea` filters by -semantic class. Unlabelled issues are the default "just do it" -bucket. Read a candidate body with -`tea issues --repo Brummel/AILang`. +open issue; `--labels feature` / `idea` filters by semantic +class. Unlabelled issues are the default "just do it" bucket. +Big chunks live as Gitea **milestone containers** — list via +`tea milestones ls --repo Brummel/AILang`. Read a candidate +issue body with `tea issues --repo Brummel/AILang`. There is no formal priority axis (`prio:*` labels were retired 2026-05-20). Pick the next item by orchestrator judgement: typically the simplest in-flight follow-up to the just-closed milestone, then an unlabelled issue or a `feature` that -unblocks something, then `milestone` (which is itself a -bounce-back per §"Direction freedom"). `idea` is "may be cut" -and should rarely be picked autonomously. +unblocks something, then opening a new Gitea milestone +container (which is itself a bounce-back per §"Direction +freedom"). `idea` is "may be cut" and should rarely be picked +autonomously. 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 @@ -159,12 +161,12 @@ Bounce back to the user only when: project's direction (a fundamental design flaw, an external dependency failure, a discovered invariant violation). - The user has explicitly asked for a checkpoint. -- **The next item on the queue is a new milestone** — i.e. a - backlog issue (typically labelled `milestone`) that has no - `docs/specs/` file yet and would require dispatching `brainstorm` - to even begin. Continuing an open milestone (next iter, audit, - fieldtest, post-audit tidy) is autonomous; *starting* a new one - is a bounce-back. +- **The next item on the queue is a new milestone** — i.e. an + open Gitea milestone container that has no `docs/specs/` file + yet and would require dispatching `brainstorm` to even begin. + Continuing an open milestone (next iter, audit, fieldtest, + post-audit tidy) is autonomous; *starting* a new one is a + bounce-back. **Why this is different from the other three triggers.** Cross- milestone work is high-context work. A fresh brainstorm alone diff --git a/skills/brainstorm/SKILL.md b/skills/brainstorm/SKILL.md index 1626df4..bc67ad1 100644 --- a/skills/brainstorm/SKILL.md +++ b/skills/brainstorm/SKILL.md @@ -248,7 +248,7 @@ interpretation: ```bash tea issues create --repo Brummel/AILang \ --title "" \ - --labels "" \ + --labels "" \ --description " **context:** @@ -256,7 +256,9 @@ interpretation: ``` (Omit `--labels` entirely for an unlabelled default-bucket - issue.) + issue. If the deferred work is big enough to need its own + `docs/specs/` entry on resumption, file it as a Gitea + milestone container instead via `tea milestones create`.) 3. Tell the user the spec was retired and which Gitea issue was filed (include the issue number). No commit is needed for the