2026-04-22-09 — Cross-repo label taxonomy v1; readiness dimension unlocks agent assignment
Status: active (§5 “Project board fields unchanged — State + Owner authoritative” partially superseded by MEMO-2026-05-20-pbrd 2026-05-20 — State retired, Status now canonical lifecycle; Owner unchanged; the label taxonomy itself remains v1 authoritative).
Supersedes: none. Formalizes and extends the informal label conventions that grew organically since MEMO 2026-04-11-20 made GitHub Issues + Projects authoritative. The retired coo/project_tracker.md flat-file (archived) is unaffected.
Context. Five vade-app repos have been accumulating labels ad hoc since bootstrap closed. vade-coo-memory grew track:*, phase:*, proj:*, docs-only, needs:bdfl-approval, emancipatory, external-code. vade-core grew area:* + canvas, feat, milestone-1, epic:ipad-live, Discussion-update, COO essay. vade-runtime had only area:deploy, area:mcp. vade-governance had zero custom labels. vade-agent-logs had one: Strategy. No shared scheme; no way to filter the org project board for issues an agent could pick up versus issues that need human design or research first. Ven’s instruction this session: standardize, and design an automation-amenable scheme that distinguishes ready-to-implement from requires-research.
Decision. Adopt the label taxonomy documented in coo/label_taxonomy.md (v1). Summary of the contract:
Five dimensions, prefix-namespaced for regex-based automation:
type:*— bug / feat / chore / docs / refactor / test / research / epic (exactly one).area:*— where in the system (one or two; per-repo vocabulary, universal prefix).readiness:*— ready / needs-design / needs-research / needs-breakdown (exactly one; this is the headline dimension Ven asked for).prio:*— P0 / P1 / P2 / P3 (zero or one).needs:*/blocked:*/ semantic flags (emancipatory,external-code) — additive qualifiers.
Readiness drives agent routing.
readiness:readymarks issues a coding agent can start today;readiness:needs-researchroutes to a research agent;readiness:needs-designandreadiness:needs-breakdownstay with humans until decomposed. This is the primary new filter for the VADE project board. The pattern matches what GitHub’s own Copilot coding agent documentation calls out — agents transition issues through label states (ready-for-dev→needs-testing→needs-review); we adopt the “ready” half of that pattern now and leave the transition-labels unbuilt until a second agent exists to hand off to.Additive, not destructive. No existing labels are deleted. Superseded labels (
track:*,canvas,feat,milestone-1,docs-only,phase:3-pilot,Strategy,epic:ipad-live,COO essay,Discussion-update) get “(deprecated: use X)” on their description and stay in place to avoid breaking history and closed-issue references. The migration is forward-only: new issues follow the scheme; existing issues are re-classified opportunistically as they’re touched, not via a mass-relabel sweep.Per-repo
area:*drift is allowed; cross-repotype/readiness/prio/needs/blockedare invariants. The prefixes are load-bearing for automation; value lists underarea:*can grow per repo without coordination. Adding a new prefix (sixth dimension) is memo-worthy.Project board fields unchanged.
State(planned/active/blocked/done/parked) andOwner(Ven/COO/both) from the MEMO -11-20 board setup remain authoritative for lifecycle stage and driver — orthogonal to the label scheme. Labels describe the work; project fields describe where it sits in the pipeline.
Applied this session.
coo/label_taxonomy.mdwritten (canonical reference).- All five repos updated additively:
type:*,readiness:*,prio:*labels created everywhere; deprecated labels re-described; repo-specificarea:*seeds added where missing. - 23 open issues across the five repos classified. Issues with no clear readiness classification left without the label (implicit “untriaged”).
- Four orphan open issues (vade-coo-memory #22, #23; vade-core #54, #57) added to the VADE project with
State:plannedandOwnerset to the best available signal. vade-core #5(Epic: iPad-live) children converted from label-only linkage (epic:ipad-live) into official GitHub sub-issues, parallel to the maintenance pattern established forvade-coo-memory #20last session.
What this enables. A future agent-assignment workflow can be written as a thin wrapper over the GitHub Issues API: filter by readiness:ready, read type: + area:, pick an agent profile from a lookup table, check needs:bdfl-approval as a gate, honour blocked:* as a hard stop. The router doesn’t exist yet; the inputs do.
What this does NOT change. Memo case-law protocol, State/Owner project fields, the sub-issue linkage pattern from last session’s #20 maintenance, the GitHub Issues + Projects authoritative-tracker rule from MEMO -11-20. The taxonomy sits below those in the stack — it describes issue content, not lifecycle.
Retirement condition. This memo retires when (a) the taxonomy is revised to v2 via a successor memo (new prefix, materially different semantics, or new dimension), or (b) a native GitHub feature subsumes the need for prefix-namespaced labels (e.g., typed custom issue fields at the repo level propagating to the org project board without manual label work). Until then, coo/label_taxonomy.md v1 is the canonical reference and this memo is the adoption record.
Links to this page
2026-05-03-bsbu — Canonical/auxiliary tiers: auxiliary may hold bounded authority, never open-ended
The discipline has been instantiated many times before being named: Mem0-as-source-of-truth → file-canonical (MEMO-2026-04-21-02, MEMO-2026-04-27-01);
proj:*labels accumulating semantic weight → prefix-namespaced taxonomy (MEMO-2026-04-22-09); Stop-hook sidecar substituted for human session log → file-canonical session log (vade-[coo-memory#244]{.substrate-ref …
Project board surfaced; proj:* retired. PR vade-coo-memory#355 (“CLAUDE.md §7: surface project board, retire proj:* filter”) + PR vade-coo-memory#361 (“episodic-memory: retire proj:* + trim accreted content”). Closes the proj:* labels-frozen path that MEMO-2026-04-22-09 named.
Sibling lens to b4ye. b4ye names the form-fitting axis; bsbu names the tier-bounding axis. The discipline has been instantiated many times before being named: Mem0-as-source-of-truth → file- canonical (MEMO-2026-04-21-02, MEMO-2026-04-27-01);
proj:*labels accumulating semantic weight → prefix-namespaced taxonomy (MEMO-2026-04-22-09); Stop-hook sidecar substituted for …