Summary
Reviewed 5 ADRs (indices 45–49) covering: pkg/workflow helper file organization (ADR-27325), parser utility test strategy (ADR-27327), compile-all frontmatter filtering (ADR-27387), safe-outputs.needs extensibility (ADR-27476), and comment-memory cross-run persistence (ADR-27479). All five ADRs are in Draft status and require implementation verification, conformance review, and sync follow-ups. Key gaps: missing REASONS canvas coverage, weak or absent safeguards sections, and no test-strategy linkage for ADR-27476/27479.
Priority Work Queue
P0 — Conformance gaps
- ADR-27387 Normative §Error Handling rule 1 has no corresponding test: I/O errors during frontmatter filter must propagate as compile-time errors.
- ADR-27476 Validation rules 1 & 2 lack negative test coverage in known test files.
P1 — Safeguards & norms weaknesses
- ADR-27479 has no safeguard against prompt-size blowup from unbounded memory files.
- ADR-27325 lacks a norms section enforcing the file-organization precedent (no lint or CI guard defined).
P2 — Status promotion and sync
- All five ADRs remain in
Draft; none have been promoted to Accepted after implementation.
- Sync follow-up tasks missing for ADR-27327 (test naming collision prevention) and ADR-27476 (schema update tracking).
SPDD Checklist
Per-Spec Findings
ADR-27325 — Organize pkg/workflow Helpers by Semantic Responsibility
Status: Draft | REASONS gaps: Safeguards absent (no CI enforcement of file-org rule), Norms section weak (pattern stated but not enforced).
- ✅ Requirements: clear decision and rationale.
- ✅ Entities:
engine_api_targets.go, awf_helpers.go, config_helpers.go named explicitly.
- ✅ Approach: extract-and-deduplicate pattern well described.
- ⚠️ Structure: file count increase acknowledged but no navigation guide or convention doc updated.
- ✅ Operations: behavior-preserving refactor, signatures unchanged.
- ⚠️ Norms: states the pattern but provides no automated guard (lint/grep) to prevent regression.
- ❌ Safeguards: no CI check defined to enforce that
awf_helpers.go stays free of API-target helpers.
ADR-27327 — Parser Utility Test Strategy
Status: Draft | REASONS gaps: Safeguards section absent; no coverage metric or CI threshold defined.
- ✅ Requirements: test-through-exported-API and table-driven requirements clearly stated.
- ✅ Entities: affected test files named (
import_remote_nested_test.go).
- ✅ Approach: rationale for rejecting private-helper testing well documented.
- ✅ Structure: naming uniqueness rule specified.
- ✅ Operations:
require.ErrorContains usage mandated.
- ⚠️ Norms: no minimum table row count per predicate (only a qualitative "at minimum").
- ❌ Safeguards: no coverage threshold or CI gate ensuring exported-API test coverage is maintained.
ADR-27387 — Filter Non-Frontmatter Markdown During compile-all
Status: Draft | REASONS gaps: Error handling test missing; debug-log SHOULD not enforced.
- ✅ Requirements: filter logic precisely defined (first-line
--- check).
- ✅ Entities:
compile_file_operations.go and compile_pipeline.go both named.
- ✅ Approach: strict bytes comparison, BOM exclusion documented.
- ✅ Structure: composable filter step,
getMarkdownWorkflowFiles left unchanged.
- ⚠️ Operations:
os.ReadFile error propagation is a MUST but has no corresponding test case identified.
- ✅ Norms: caching MAY is noted.
- ⚠️ Safeguards: silent-skip risk for malformed frontmatter acknowledged but no authoring-time warning defined.
ADR-27476 — Extend safe_outputs Job Dependencies via safe-outputs.needs
Status: Draft | REASONS gaps: Safeguards (cycle detection) and Norms (schema bump policy) sections absent.
- ✅ Requirements: explicit needs-declaration pattern clearly specified.
- ✅ Entities:
main_workflow_schema.json, validateSafeOutputsNeeds, validateSafeJobNeeds named.
- ✅ Approach: merge-and-deduplicate with compile-time validation.
- ✅ Structure: import-merge behavior specified.
- ⚠️ Operations: no mention of what happens when
safe-outputs.needs creates a dependency cycle in the compiled workflow.
- ❌ Norms: no schema version bump convention defined.
- ❌ Safeguards: cycle-detection requirement absent; no mention of actionlint post-compile validation.
ADR-27479 — Comment Memory: File-Based Agent Memory with GitHub Persistence
Status: Draft | REASONS gaps: Safeguards (size limits, accidental edit) weakly covered; Norms (memory_id naming) incomplete.
- ✅ Requirements: memory materialization and auto-sync flow fully specified.
- ✅ Entities:
/tmp/gh-aw/comment-memory/, XML marker format, memory_id pattern defined.
- ✅ Approach: file-edit-based memory decouples agent from persistence.
- ✅ Structure: pre-agent setup + post-turn sync lifecycle described.
- ⚠️ Operations: no retry or conflict-resolution policy for concurrent comment upserts.
- ⚠️ Norms:
memory_id pattern specified but no maximum length or reserved-word exclusion.
- ❌ Safeguards: no maximum memory file size, no total directory size cap, no limit on number of memory slots — all of which could blow up prompt size or GitHub comment limits.
Sync Follow-ups
- ADR-27325: After implementation confirmed, update
docs/adr/27325-*.md status to Accepted; add cross-reference to any new CONTRIBUTING.md or file-org convention doc.
- ADR-27327: Add a note to the ADR linking to the test files modified; confirm
go test ./pkg/parser/... passes with the renamed test function.
- ADR-27387: After I/O-error test is added, update ADR status; add a note in the compile-all user documentation about silent-skip behavior for non-frontmatter files.
- ADR-27476: After schema update, bump schema version and update any IDE/editor integration references; add actionlint post-compile validation note to ADR.
- ADR-27479: Sync the W3C-style safe-outputs spec document with the
comment_memory type; document the memory-size cap in the agent prompt guidance section of the ADR.
Context
- Files reviewed:
docs/adr/27325-organize-workflow-helpers-by-semantic-responsibility.md, docs/adr/27327-parser-utility-test-strategy.md, docs/adr/27387-filter-non-frontmatter-markdown-during-compile-all.md, docs/adr/27476-extend-safe-outputs-dependencies-via-needs-field.md, docs/adr/27479-comment-memory-file-based-agent-memory-with-github-persistence.md
- Rotation index: 44 → 49 (of 688 total files)
- Run: §30024508515
Generated by 📋 Daily SPDD Spec Planner · sonnet46 · 30.8 AIC · ⌖ 6.76 AIC · ⊞ 4.9K · ◷
Summary
Reviewed 5 ADRs (indices 45–49) covering:
pkg/workflowhelper file organization (ADR-27325), parser utility test strategy (ADR-27327), compile-all frontmatter filtering (ADR-27387),safe-outputs.needsextensibility (ADR-27476), and comment-memory cross-run persistence (ADR-27479). All five ADRs are in Draft status and require implementation verification, conformance review, and sync follow-ups. Key gaps: missing REASONS canvas coverage, weak or absent safeguards sections, and no test-strategy linkage for ADR-27476/27479.Priority Work Queue
P0 — Conformance gaps
P1 — Safeguards & norms weaknesses
P2 — Status promotion and sync
Draft; none have been promoted toAcceptedafter implementation.SPDD Checklist
engine_api_targets.goexists inpkg/workflow/andawf_helpers.gono longer containsextractAPITargetHost; update ADR status from Draft → Accepted if conformant.grep-based check that rejects engine-API-target helpers inawf_helpers.goto enforce the file-organization norm durably.pkg/parsertest files useIsWorkflowSpec(exported) notisWorkflowSpec; confirmTestIsNotFoundErrorcollision is resolved; update status if conformant.pkg/workflow/compile_file_operations_test.go(or equivalent) that triggers anos.ReadFileerror during frontmatter filtering and asserts a compile-time error is returned (covers Normative §Error Handling rule 1).needscycle is introduced?) and Norms (schema version bump policy forsafe-outputs.needsadditions).validateSafeOutputsNeedsin the relevant test file: assert compile errors for (a) built-in job name reference and (b) undeclared job name reference.comment_memorytype, end-to-end data flow, and the memory-size safeguard.main_workflow_schema.jsonreflects thesafe-outputs.needsfield and that IDE-integration documentation references the updated schema.Per-Spec Findings
ADR-27325 — Organize pkg/workflow Helpers by Semantic Responsibility
Status: Draft | REASONS gaps: Safeguards absent (no CI enforcement of file-org rule), Norms section weak (pattern stated but not enforced).
engine_api_targets.go,awf_helpers.go,config_helpers.gonamed explicitly.awf_helpers.gostays free of API-target helpers.ADR-27327 — Parser Utility Test Strategy
Status: Draft | REASONS gaps: Safeguards section absent; no coverage metric or CI threshold defined.
import_remote_nested_test.go).require.ErrorContainsusage mandated.ADR-27387 — Filter Non-Frontmatter Markdown During compile-all
Status: Draft | REASONS gaps: Error handling test missing; debug-log SHOULD not enforced.
---check).compile_file_operations.goandcompile_pipeline.goboth named.getMarkdownWorkflowFilesleft unchanged.os.ReadFileerror propagation is a MUST but has no corresponding test case identified.ADR-27476 — Extend safe_outputs Job Dependencies via safe-outputs.needs
Status: Draft | REASONS gaps: Safeguards (cycle detection) and Norms (schema bump policy) sections absent.
main_workflow_schema.json,validateSafeOutputsNeeds,validateSafeJobNeedsnamed.safe-outputs.needscreates a dependency cycle in the compiled workflow.ADR-27479 — Comment Memory: File-Based Agent Memory with GitHub Persistence
Status: Draft | REASONS gaps: Safeguards (size limits, accidental edit) weakly covered; Norms (memory_id naming) incomplete.
/tmp/gh-aw/comment-memory/, XML marker format,memory_idpattern defined.memory_idpattern specified but no maximum length or reserved-word exclusion.Sync Follow-ups
docs/adr/27325-*.mdstatus toAccepted; add cross-reference to any newCONTRIBUTING.mdor file-org convention doc.go test ./pkg/parser/...passes with the renamed test function.comment_memorytype; document the memory-size cap in the agent prompt guidance section of the ADR.Context
docs/adr/27325-organize-workflow-helpers-by-semantic-responsibility.md,docs/adr/27327-parser-utility-test-strategy.md,docs/adr/27387-filter-non-frontmatter-markdown-during-compile-all.md,docs/adr/27476-extend-safe-outputs-dependencies-via-needs-field.md,docs/adr/27479-comment-memory-file-based-agent-memory-with-github-persistence.md