Audit each os-sdlc map node's enrich facts against what its role acts on #676

Closed
opened 2026-09-24 15:56:01 +00:00 by jared · 3 comments
Owner

Problem

Each os-sdlc map node enriches its brief with a list of facts. Some facts carry far more bytes than the role acts on. #670 showed the test-reviewer receives full Minitest output, where stack traces are 71% of the bytes, when it acts only on red test names and messages. Oversized briefs cost tokens on every dispatch and push briefs over the hook cap (ADR-0206). No audit has checked each node's enrich list against what its charter reads.

Reproduce

n/a: design audit, not a defect to reproduce.

Approach

Read-only audit. For each node in plugins/os-sdlc/maps/*.yaml, compare the node's enrich list with the charter text under plugins/os-sdlc/agents/.

Required work:

  1. Build a table, node x fact, with one of keep / trim / drop per cell and the charter sentence that proves the role reads or ignores the fact.
  2. For each trim, name the smaller fact shape that carries the same decision (as red_tests does for the test-reviewer in #670).
  3. File one ticket per trim with the table row as evidence. No code change in this ticket.

Rule: when in doubt keep the fact. Trim only where the charter text shows the role never uses the content.

Blocked by: #670 (the red_tests fact is the first trim and the template for the rest).

Origin

  • Trigger: technical-communication pass on #630, #662, #670 in this session; user asked whether other roles receive facts they scroll past
  • Improvised this session: none
  • Chain: oversized briefs ← enrich lists chosen per node without a per-role byte audit ← DESIGN (map enrich model, plugins/os-sdlc/maps/*.yaml)
  • Root candidate: this ticket
  • Where: plugins/os-sdlc/maps/.yaml, plugins/os-sdlc/agents/.md
  • Session: bf3db8e3-cb41-46b3-8926-780a25ec532a
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/bf3db8e3-cb41-46b3-8926-780a25ec532a.jsonl

Skeptic verdict: CREATE (user-approved this session) — the #670 finding is one instance of a general class; the audit is read-only and yields tickets with evidence, not speculative changes.

## Problem Each os-sdlc map node enriches its brief with a list of facts. Some facts carry far more bytes than the role acts on. #670 showed the test-reviewer receives full Minitest output, where stack traces are 71% of the bytes, when it acts only on red test names and messages. Oversized briefs cost tokens on every dispatch and push briefs over the hook cap (ADR-0206). No audit has checked each node's enrich list against what its charter reads. ## Reproduce n/a: design audit, not a defect to reproduce. ## Approach Read-only audit. For each node in `plugins/os-sdlc/maps/*.yaml`, compare the node's `enrich` list with the charter text under `plugins/os-sdlc/agents/`. Required work: 1. Build a table, node x fact, with one of keep / trim / drop per cell and the charter sentence that proves the role reads or ignores the fact. 2. For each trim, name the smaller fact shape that carries the same decision (as `red_tests` does for the test-reviewer in #670). 3. File one ticket per trim with the table row as evidence. No code change in this ticket. Rule: when in doubt keep the fact. Trim only where the charter text shows the role never uses the content. Blocked by: #670 (the `red_tests` fact is the first trim and the template for the rest). ## Origin - Trigger: technical-communication pass on #630, #662, #670 in this session; user asked whether other roles receive facts they scroll past - Improvised this session: none - Chain: oversized briefs ← enrich lists chosen per node without a per-role byte audit ← DESIGN (map enrich model, plugins/os-sdlc/maps/*.yaml) - Root candidate: this ticket - Where: plugins/os-sdlc/maps/*.yaml, plugins/os-sdlc/agents/*.md - Session: bf3db8e3-cb41-46b3-8926-780a25ec532a - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/bf3db8e3-cb41-46b3-8926-780a25ec532a.jsonl Skeptic verdict: CREATE (user-approved this session) — the #670 finding is one instance of a general class; the audit is read-only and yields tickets with evidence, not speculative changes.
Author
Owner

Work started: read-only audit run via subagents in session 9434289b. Measurement pass on fact byte sizes, then one judgment pass per role, then trim tickets.

Work started: read-only audit run via subagents in session 9434289b. Measurement pass on fact byte sizes, then one judgment pass per role, then trim tickets.
Author
Owner

Audit complete. Trim tickets filed:

#686 reviewer receives full gate output it is told not to re-check; trim gate_results to gate verdicts
#687 refactorer receives gate_results its charter never names; drop it from both poodr maps
#688 suite-check receives ticket_brief it never reads; drop it from all three maps
#689 refactorer receives the full change-auditor report in the ticket map but reads only WORK-MISSING items from the contract-auditor handoff
#690 BriefComposer sends the predecessor report twice when an enrich role name equals handoff.from
#691 three map nodes under-enrich relative to their charters (programmer in coding.yaml, contract-auditor and test-reviewer in poodr-implementation.yaml)

Audit complete. Trim tickets filed: #686 reviewer receives full gate output it is told not to re-check; trim gate_results to gate verdicts #687 refactorer receives gate_results its charter never names; drop it from both poodr maps #688 suite-check receives ticket_brief it never reads; drop it from all three maps #689 refactorer receives the full change-auditor report in the ticket map but reads only WORK-MISSING items from the contract-auditor handoff #690 BriefComposer sends the predecessor report twice when an enrich role name equals handoff.from #691 three map nodes under-enrich relative to their charters (programmer in coding.yaml, contract-auditor and test-reviewer in poodr-implementation.yaml)
Author
Owner

Resolution

Done: Read-only audit of every enrich fact on all 23 map nodes across coding.yaml, poodr-implementation.yaml, poodr-ticket-implementation.yaml against each role charter. Fact sizes measured from .sdlc/pipeline.db (2026-09-17 to 2026-09-24). Verdicts: 4 trims/drops, 1 composer duplication, 1 reverse mismatch (under-enrich). All other cells KEEP with charter citations.

Evidence: Per-role audit tables in session 9434289b; ticket-skeptic verdict CREATE on all six drafts with citations verified; gate_results median 3,812 chars max 240,397 vs 10k hook cap; role reports median 1,587 max 8,497; RedTests.parse verified clean (101 red tests in 20k chars, 0 backtrace lines).

Follow-ups: #686 reviewer gate_verdicts; #687 refactorer drop gate_results; #688 suite-check drop ticket_brief; #689 refactorer drop change-auditor; #690 BriefComposer duplicate handoff; #691 under-enriched nodes. Each carries its skeptic verdict in the body.

## Resolution **Done:** Read-only audit of every enrich fact on all 23 map nodes across coding.yaml, poodr-implementation.yaml, poodr-ticket-implementation.yaml against each role charter. Fact sizes measured from .sdlc/pipeline.db (2026-09-17 to 2026-09-24). Verdicts: 4 trims/drops, 1 composer duplication, 1 reverse mismatch (under-enrich). All other cells KEEP with charter citations. **Evidence:** Per-role audit tables in session 9434289b; ticket-skeptic verdict CREATE on all six drafts with citations verified; gate_results median 3,812 chars max 240,397 vs 10k hook cap; role reports median 1,587 max 8,497; RedTests.parse verified clean (101 red tests in 20k chars, 0 backtrace lines). **Follow-ups:** #686 reviewer gate_verdicts; #687 refactorer drop gate_results; #688 suite-check drop ticket_brief; #689 refactorer drop change-auditor; #690 BriefComposer duplicate handoff; #691 under-enriched nodes. Each carries its skeptic verdict in the body.
jared closed this issue 2026-09-24 17:12:04 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#676
No description provided.