Skip to content

PLAN — SDLC Workflow Evaluation + Hardening (Task ID-48 · {48.2})

PLAN — SDLC Workflow Evaluation + Hardening (Task ID-48 · {48.2})

Section titled “PLAN — SDLC Workflow Evaluation + Hardening (Task ID-48 · {48.2})”

Input: RESEARCH.md ({48.1}). PRODUCT/TECH skipped (dev-infra, no end-user surface — ID-47 rationale; confirm OQ-E). This PLAN = the decomposition into sibling-only implementation Subtasks {48.3}–{48.13}, written as records into docs/reference/task-list.json under ID-48. Sequencing + the dependency graph + the gating that does not fit per-Subtask details live here.

  1. Independent-first. Conventions + retro ledger + evaluator role have no ID-23 overlap → they run first (and unblock the retro habit).
  2. Shared-file edits gate on ID-23. {48.7–48.10} edit the same SDLC role/skill files as ID-23’s pending impl subtasks. Sibling-only deps cannot express a cross-Task gate — that is surfaced as OQ-C (escalated, not bent). The ID-23 collision is recorded in each affected Subtask’s details; the parent O-of-O sequences them.
  3. Same-file (intra-ID-48) collisions serialise via sibling deps. workflow-orchestration/SKILL.md is touched by {48.6, 48.9, 48.13} → chained 6→9→13. session-driver-cmux/SKILL.md by {48.12, 48.13}13 deps 12.

Dependency graph (sibling-only, integer ids)

Section titled “Dependency graph (sibling-only, integer ids)”
48.3 retro ledger surface deps [] [OQ-A] Wave 1
48.4 conventions + 2 renames deps [] [OQ-B] Wave 1
48.5 workflow-evaluator combo deps [3] [OQ-D] Wave 2
48.6 retro habit + harness seeding deps [5] Wave 3
48.7 Checker hardening deps [] [ID-23 ⟂ 23.12] Wave 1*
48.8 Executor/impl-subtask hardening deps [] [ID-23 ⟂ 23.8/9] Wave 1*
48.9 workflow-orch quality gates deps [6,7] [ID-23 ⟂ 23.4] Wave 4
48.10 spec-skill cross-refs (OQ-3) deps [] [ID-23 ⟂ 23.6/7] Wave 1*
48.11 Hook 1 (sentinel-gated edits) deps [] Wave 1
48.12 Hook 2 + prettier pre-commit deps [11] Wave 2
48.13 efficiency guards + dedup notes deps [9,12] Wave 5

* = no intra-ID-48 dep, but externally gated on ID-23 (OQ-C) → not truly Wave 1 until the parent sequences against ID-23.

  • Conventions + ledger (independent): 48.3, 48.4
  • Evaluator role (independent): 48.5
  • Retro habit wiring: 48.6
  • Net-new Sub-type-B guardrails (shared, ID-23-gated): 48.7, 48.8, 48.9
  • Sub-type-A cross-ref propagation (shared, ID-23-gated): 48.10
  • Hooks/config (independent): 48.11, 48.12
  • Ergonomics + efficiency guards: 48.6 (harness seeding folded in), 48.9 (/code-review folded into quality gates), 48.13

Per-Subtask testStrategy carries the one-line acceptance criterion. The Checker-mandate matrix (RESEARCH §6) applies: 48.3/48.5/48.11/48.12 are dev-infra (Orchestrator-gated + guard test where one exists); 48.7–48.10 are role/skill-file edits (verified by a freshness/guard test + a manual read against RESEARCH §2 anchors); 48.6/48.13/48.14-class ergonomics are Orchestrator-gated.

This session authored {48.1} + {48.2} only (worker-branch-only cadence; OQ-gated clusters). Implementation ({48.3+}) is a future session after Liam resolves OQ-A…E and the parent sequences the ID-23 collisions.


Liam’s ID-48 review redirected the evaluator architecture + retro-handling model. The full revision is in RESEARCH.md §13 (authoritative where it conflicts with §3/§5/§11 and the records below). Summary of the impact on this decomposition:

Additional research → Cluster 4 → Cluster 1 → Cluster 2. This reverses the “independent-first” ordering above (which ran Cluster 1 first). The §11 cluster numbers are canonical (RESEARCH §13.6 maps them to the live subtasks):

0. additional research (RESEARCH §13 + any follow-up)
1. Cluster 4 {48.7, 48.8, 48.9} guardrails [still ID-23 fold-in gated per S266 note]
2. Cluster 1 {48.3, 48.4} ledger + conventions
3. Cluster 2 {48.5, 48.14*, 48.15*} evaluator role + evaluate-findings + corpus archival
(Clusters 3/5/6/7 follow per existing deps.)
* = NEW subtasks proposed below.

Caveats (RESEARCH §13.6): Cluster 4 is shared-file + ID-23-gated, so “first” means folded into the ID-23 edit pass first, not a clean standalone wave (OQ-S271-2). {48.15} (corpus archival, dep []) should be pulled forward to run alongside Cluster 4 so the session corpus starts accumulating before the evaluator is built.

Subtask deltas (PROSE — NOT applied to task-list.json; apply at build)

Section titled “Subtask deltas (PROSE — NOT applied to task-list.json; apply at build)”
  • {48.3} CHANGE — add the soft-delete/adjudication field set (deprecated, deprecation_reason, superseding_record_id, last_conflict_check) to RetroRecordSchema from the outset (RESEARCH §13.4). Cheap now, expensive to retrofit.
  • {48.5} CHANGE — re-scope workflow-evaluator to triggered / async (not a blocking session-end step); narrow evaluate-workflow to efficiency-metrics + recurring-finding surfacing; it no longer writes the retro record (O-of-O handoff owns authoring).
  • {48.14} NEW (evaluate-findings skill) — the findings-gating adjudication playbook (candidate-select → similarity-pair → 3-verdict forced choice → recency guard → staged writes → soft-delete/supersede → batch-stamp). Modelled on docs/research/memory-transcript.md. Deps [3] + {48.15}. Cluster 2.
  • {48.15} NEW (worker-corpus archival) — promote the {48.2} S266 fold-in #2: a --archive <dir> flag on stop-worker.sh archiving {events.jsonl, oq-pending.md, final_report.yaml, meta.json} to docs/workflow-evaluation/sessions/S<NNN>/<worker>/ before the teardown rm -rf. Deps []. Cluster 2 data dependency. Pull forward.
  • {48.6} CHANGE — decouple the retro habit from session-end-blocking: O-of-O authors via handoff; start-session (or a periodic trigger) flags pending un-adjudicated findings for the next evaluator sweep rather than running the gate inline.
  • {48.7}–{48.13} UNCHANGED by the addendum (their ID-23 fold-in mapping still governs).

Build-phase constraints (RECORD ONLY — RESEARCH §13.7)

Section titled “Build-phase constraints (RECORD ONLY — RESEARCH §13.7)”
  1. Skill-informed order when building the evaluator: prompt-engineeringagent-developmentcreate-skill.
  2. CRITICAL: any edit to a .claude/{agents,skills}/ file in the build phase MUST invoke the related authoring skill (agent-development / create-skill / update-skill) — copying patterns by hand is NOT acceptable (Hook 1 / {48.11} backstops this).
  3. One task-executor per skill invoked, sequential — no fan-out across multiple agent/skill files in a single executor. Affects Cluster 2 ({48.5}+{48.14}+{48.15}) and the Cluster 4/5 role-skill edits ({48.7}–{48.10}).

OQ-S271-1 gate autonomy (auto-deprecate-existing vs always-flag-for-human); OQ-S271-2 Cluster-4-first vs ID-23 fold-in timing; OQ-S271-3 schema granularity (per-record vs per-finding); OQ-S271-4 similarity mechanism (keyword heuristic vs Mempalace semantic surface).