| uid | f6a8c421 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| type | decision | ||||||||||||||||||||
| state | active | ||||||||||||||||||||
| title | ADR-036 — Pipeline Bucket Taxonomy: Inbox / Accepted / Active / Archive | ||||||||||||||||||||
| description | Replaces the ambiguity-laden `3-next` bucket with `2-accepted` and reorders for monotonic forward flow. Applies to 2-design, 3-specify, and 4-build pipeline stages. UIDs stable across the rename; migration is title/slug-level only. | ||||||||||||||||||||
| owner | argus | ||||||||||||||||||||
| created | 2026-04-20 | ||||||||||||||||||||
| modified | 2026-06-18 | ||||||||||||||||||||
| created_by | argus-a29 | ||||||||||||||||||||
| decision_number | ADR-036 | ||||||||||||||||||||
| proposer | Mike Maziarz | ||||||||||||||||||||
| status | done | ||||||||||||||||||||
| accepted_on | 2026-04-20 | ||||||||||||||||||||
| endorsed_by | mike-maziarz | ||||||||||||||||||||
| member_of | |||||||||||||||||||||
| tags |
|
||||||||||||||||||||
| file_ext | md | ||||||||||||||||||||
| schema_version | 2 | ||||||||||||||||||||
| extraction_scope | ship | ||||||||||||||||||||
| relationships |
|
||||||||||||||||||||
| subsystem_hub |
|
||||||||||||||||||||
| capsule_version | 2.5 |
📍 Vault Path: tropo-subsystems → Tropo Governance → ADR-036 — Pipeline Bucket Taxonomy: Inbox / Accepted / Ac...
🔗 This file — UID f6a8c421 · type decision · state active · status done
📥 Cited by (1):
- Workflow Enforcement Architecture — Distributed Stage Ownership —
a9b4c2d6(typedesign-brief, viarefs)
ACCEPTED 2026-04-20 by Mike Maziarz. Proposed and adopted in the same session — Mike's direct observation that 3-next had drifted into ambiguity across multiple roles (backlog / priority queue / "maybe later" pile). Rename executed via mechanical sub-agent sa.research record 031.
Each pipeline stage in work-pipeline (020274e0) that carries groomable work uses a four-bucket sub-structure. The original taxonomy was:
1-inbox— unsorted, unreviewed intake2-active— currently being worked3-next— acknowledged, deferred9-archive— done, abandoned, superseded
This worked but 3-next developed semantic drift in practice. Across sa.research 023's real-state inventory (2026-04-20) and multiple sessions of grooming, 3-next was being used three different ways:
- Backlog — "we'll get to this eventually"
- Priority queue — "this is next up after current active work"
- Maybe later — "interesting, not yet a commitment"
Three semantics in one container is a lookup-surface defect (same class as sa.research 023 board-def finding — a capsule meaning three things at once is a capsule meaning nothing). A reader scanning 3-next can't tell which of the three modes applies to any given entry.
Meanwhile the flow read awkwardly: inbox → active → (maybe back to) next → active. The "back to next" transition is sideways; it encodes retreat. Every Kanban-aware reader expects forward flow: Backlog → Ready → In Progress → Done.
Adopt a four-bucket taxonomy with monotonic forward flow:
1-inbox → 2-accepted → 3-active → 9-archive
| Bucket | Semantic contract |
|---|---|
1-inbox |
Unreviewed intake. No owner commitment. Anyone can drop; stage owner groomss. |
2-accepted |
Owner has explicitly accepted the work as real. Not yet scheduled. Reviewable. Auditable — "when did Metis accept the Innovation Pipeline Redesign?" has a concrete date answer. |
3-active |
Currently being worked. |
9-archive |
Terminal state. Done, abandoned, superseded, or cancelled. |
Scope: applies to three pipeline stages that carry groomable work — 2-design (fe189cd4), 3-specify (32c75ba0), 4-build (a93faa83). Does NOT apply to 1-ideate (ee3bedb4) or 5-deploy (08f29ff6) — those stages do not carry the four-bucket structure by design.
9-archive numbering preserved. Kept at 9 (not renumbered to 4) for two reasons: (a) the gap signals "terminal state, separate from the active flow" visually in sorted listings; (b) leaves room for future intermediate buckets if the model ever needs one (e.g., a 5-blocked parallel lane), without renumbering archive again.
Mike's proposal specifically named accepted. Alternatives considered during Argus A29 review:
| Candidate | Why rejected |
|---|---|
next (status quo) |
Three-ways-ambiguous in practice — the problem we're solving. |
ready |
Kanban-canonical but passive-voice. Doesn't signal WHO approved it. |
queued |
Generic backlog feel. No commitment semantic. |
approved |
Close to accepted but slightly more governance-bureaucratic. |
accepted |
Precise — owner has read and committed. Matches governance vocabulary ("ADRs are accepted," not "queued"). Slight awkwardness as past-participle-next-to-nouns is a fair price for semantic precision. |
accepted wins because it encodes the explicit owner handshake that the other three candidates leave implicit.
- Auditable commitment. "When did owner X accept work Y?" has a concrete answer (the timestamp the artifact's
member_of:moved into2-accepted). - Review discipline. Two distinct decisions — "is this real work?" (inbox → accepted) and "work on this now?" (accepted → active) — instead of one conflated move.
- Linear flow. Every transition moves forward; no sideways moves. Matches Kanban intuition every user already has.
- Grooming clarity. Inbox = not yet decided. Accepted = yes, will do. Active = doing. Archive = done. Each bucket has one meaning.
- Tighter grooming regime. Owners must now take a visible "accept" action before scheduling. Things that used to sit ambiguously in
3-nextnow either get explicitly accepted (committed) or stay in inbox (ambiguous). No more passive-backlog holding pattern. - Deferred-from-active work flows backward visually —
3-active→2-accepted(paused but still committed). That's correct semantics but requires buying into "moving back a bucket means pausing, not retreating."
- Graph structure:
member_of:edges are unaffected. Work objects living in the old buckets continue to live in the renamed buckets — only the container title changed. - UIDs: stable across the rename. No cross-reference breakage.
- Board-rendering: project-board kernel seed (c72f1a85) queries
tag=pipeline-bucket first, not specific bucket names. Renders continue to work. - Other pipeline stages:
1-ideateand5-deployare unchanged (they don't use the four-bucket pattern). - Pipeline root prose: no parent project bodies reference the old bucket names in prose (verified before migration). No prose sweep needed.
Executed mechanically by sa.research 031 on 2026-04-20:
Renamed in place (UID-stable — label-only change, all member_of: pointers from children keep resolving):
- 63b69c61: 3-specify/2-active → 3-specify/3-active
- 04ddb018: 3-specify/3-next → 3-specify/2-accepted
- a5f7a762: 4-build/2-active → 4-build/3-active
- 2d59f2de: 4-build/3-next → 4-build/2-accepted
Pre-existing and unchanged:
- 4d77995a: 2-design/1-inbox (created earlier in A29 session)
- 7b0d5909: 3-specify/1-inbox
- b1863621: 4-build/1-inbox
- 01c99f04: 3-specify/9-archive
- 56e28eb7: 4-build/9-archive
2-design bucket completion: 2-design currently has only 1-inbox plus 6 loose design artifacts. Full-pattern buckets for 2-design will be created just-in-time when grooming demand appears. Not part of this ADR's migration.
Total: 4 renames = 4 file operations. Graph integrity preserved.
-
Should
1-ideatecarry a bucket structure too? Currently 1-ideate (ee3bedb4) does not. Arguments for: consistency. Arguments against: ideate is more free-form / exploratory; imposing the four-bucket structure there may add ceremony without value. Recommendation: leave as-is for v1.3; revisit if concrete usage patterns show need. -
Should
5-deploycarry a bucket structure? Similar reasoning. Deploy is terminal; intake/accepted/active don't map cleanly. Recommendation: leave as-is. -
Does
2-acceptedstack with a freshness / refresh-cadence rule? Per ADR-035 Surface 5 (a7c4e5b2) on living references, should accepted items get avalid_until:stamp that forces a re-accept if they sit too long without advancement? Recommendation: not in this ADR; consider as a follow-up grooming directive.
- work-pipeline root (020274e0) — parent container of all five pipeline stages
- 2-design stage (fe189cd4)
- 3-specify stage (32c75ba0)
- 4-build stage (a93faa83)
- sa.research 031 — Bucket Rename Mechanical Task — migration execution record
- ADR-035 Declared-Presence (a7c4e5b2) — governance pattern this ADR follows (fail-loud, auditable commitments)
- ADR-033 /projects/ Navigation Layer (702bc19f) — prior pipeline-architecture ADR
Proposed by Mike Maziarz on 2026-04-20 during the A29 session, after observing 3-next ambiguity across grooming passes. Argus A29 reviewed proposed design, named alternatives, recommended adoption. Mike accepted same session. Rename executed mechanically via sub-agent; no prose updates required in parent stages (verified clean before dispatch).
This is the second ADR filed during A29's session (the first was ADR-035 Declared-Presence (a7c4e5b2)). Both follow the pattern: name the defect class, choose precise vocabulary, leave UIDs stable during migration.
ADR-036 | Pipeline Bucket Taxonomy | Proposed by Mike, accepted same session | Argus A29 + Mike Maziarz | 2026-04-20 "Inbox is intake. Accepted is commitment. Active is motion. Archive is terminal. Four states; clean contracts."