tasks(arch): adopt taskgraph for architecture work — blocker tasks for deferred OQs, level mapping, status fixes

Establishes the tasks/architecture/ blocker-task half of the Safe Exit
protocol. Each deferred OQ now has an external-trigger tracker task
representing its unblocking condition, and the OQ's Blocked on field names
the tracker task ID — closing the gap where the deferral field existed but
the task-graph half was unenforced.

Changes:
- Add 6 external-trigger tracker tasks for the deferred OQs (OQ-09, 10, 32,
  41, 44, 46) under tasks/architecture/, tagged [external-trigger, deferred-oq]
- Add structured Blocked on field to OQ-09 and OQ-10 (previously used legacy
  'deferred' status with the reason in the Resolution prose); index now
  surfaces all 6 deferred OQs with concrete conditions, no placeholders
- Document the architecture-task level mapping (level: implementation for
  ADRs/specs, decomposition for spec-to-ADR breakdown, planning for backlog
  seeding, research/review direct fits) and the deferred-OQ blocker-task
  pattern in docs/sdd_process.md
- Mark architecture/safe-exit-blocker-task-mechanism and
  architecture/oq-09-10-blocking-conditions completed (implemented by this pass)
- Fix 4 pre-existing ADR-050 implementation tasks: status: done → completed
  (taskgraph enum is 'completed', not 'done') — taskgraph validate now passes
  for all 100 tasks
This commit is contained in:
glm-5.2 committed 2026-07-06 16:34:01 +00:00
1 parent e6062230f9
commit df5d04af1d
16 files changed
+440 -14

No files matched your search

@@ -1,12 +1,13 @@
---
id: architecture/safe-exit-blocker-task-mechanism
name: Establish the tasks/architecture/ blocker-task half of the Safe Exit protocol
status: pending
status: completed
depends_on: []
scope: moderate
risk: low
impact: project
level: planning
tags: [convention]
---
## Description
@@ -58,6 +59,30 @@ it").
role spec) so future deferrals create the blocker task as part of the Safe
Exit step.
## Summary
Completed in the July 2026 architecture-task pass. Decisions:
- **Format**: adopted the existing taskgraph frontmatter verbatim — no new
`blocks:` field. One edge type (`depends_on`) keeps the graph simple; the
reverse lookup uses `taskgraph dependents`. The OQ's `Blocked on:` text is
the human-readable pointer; the task `depends_on` is the machine-readable
edge. They serve different audiences (architect vs. planner/agent).
- **External-trigger tasks**: the four `deferred(scope)` OQs (32, 41, 44, 46)
plus the two legacy `deferred` OQs (09, 10) each got an external-trigger
tracker task under `tasks/architecture/` tagged `[external-trigger,
deferred-oq]`. These represent the external condition (a use case arriving,
a crate being specced) that would unblock the OQ — they are not actionable
work, so `risk: trivial` and `level: research`.
- **OQ-09/10 backfill**: added a structured `Blocked on:` field to both
(previously they used legacy `deferred` status with the reason in the
Resolution prose). The `open-questions.md` index now surfaces all six
deferred OQs with concrete blocking conditions in the Deferred/Blocked
section — no more "_(no explicit blocking condition recorded)_" placeholders.
- **Convention doc**: the `docs/sdd_process.md` Task File Format section is
updated with the architecture-task level mapping and the Safe Exit
blocker-task pattern (separate edit).
## Out of scope
- The DB-backed backend (no manual links, vector/text search) — that's a future
@@ -67,7 +92,9 @@ it").
## Verification
- `tasks/architecture/` contains one blocker task per `deferred(scope)` OQ
- Each blocker task's `depends_on` names the concrete unblocking condition (or
a task that represents it)
- `docs/sdd_process.md` (or equivalent) references the convention
- `tasks/architecture/` contains one external-trigger task per deferred OQ
(six total: OQ-09, 10, 32, 41, 44, 46).
- Each OQ's `Blocked on:` field names its tracker task ID, and the
`open-questions.md` Deferred/Blocked section surfaces the condition inline.
- `taskgraph validate` passes for `tasks/architecture/`.
- `docs/sdd_process.md` references the convention.