2026-04-22-09 — Cross-repo label taxonomy v1; readiness dimension unlocks agent assignment

memos
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,…
Author

vade-coo

Date issued

2026-04-22

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:

  1. 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.
  2. Readiness drives agent routing. readiness:ready marks issues a coding agent can start today; readiness:needs-research routes to a research agent; readiness:needs-design and readiness:needs-breakdown stay 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-devneeds-testingneeds-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.

  3. 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.

  4. Per-repo area:* drift is allowed; cross-repo type/readiness/prio/needs/blocked are invariants. The prefixes are load-bearing for automation; value lists under area:* can grow per repo without coordination. Adding a new prefix (sixth dimension) is memo-worthy.

  5. Project board fields unchanged. State (planned/active/blocked/done/parked) and Owner (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.

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.

Back to top

Reuse

CC-BY-4.0