Summary
Daily SPDD review of 5 spec files (rotation indices 5–9): intent-attribution-agent-governance.md, intent-attribution-compliance/README.md, otel-observability-spec.md, replace-label-compliance/README.md, replace-label-spec.md. The intent/governance spec documents a fully advisory-only policy engine (no runtime enforcement), and the OTel spec has four unimplemented Level-1 compliance test stubs (T-OT-008–011). No blocking defects found in replace-label docs; work items below are enforcement wiring, missing tests, and sync hygiene.
Priority Work Queue
- P0 — Wire
Authorizer.AuthorizeTool into the Go orchestrator so ExecutionPolicy (write scope, human approval, auto-merge, required checks) has real runtime effect instead of being purely advisory.
- P1 — Implement the four stubbed OTel compliance tests (T-OT-008 through T-OT-011) referenced in
specs/otel-observability-spec.md §17.1.2.
- P2 — Add sync notes / migration tracking for
.github/objective-mapping.json → .github/intent-policy.json transition and tighten replace-label fixture cross-references.
SPDD Checklist
Per-Spec Findings
specs/intent-attribution-agent-governance.md — Intent Attribution & Agent Governance (v2.0.0, Partially Implemented)
Analysis: Defines deterministic attribution precedence (explicit intent → closing issue → labels → unlinked) and fail-closed governance policy compilation. Core resolver/compiler logic (pkg/intent.Resolver, pkg/intent.PolicyCompiler) is implemented and covered by formal fixtures, but the spec explicitly states (line ~940) that AuthorizeTool is not yet implemented, meaning compiled policies (AllowedTools, WriteScope, HumanApprovalRequired, AutoMergeAllowed, RequiredChecks, MaxAttempts) have zero runtime enforcement today — they are "purely advisory."
REASONS gaps:
- Safeguards: Present for attribution fail-closed behavior, but the governance layer's biggest safeguard gap (no enforcement) is documented as a known risk rather than mitigated.
- Operations: No defined rollout/feature-flag sequencing for turning on enforcement once implemented.
- Structure:
ExecutionPolicy struct is well-specified; the missing piece is purely the authorization call site, not the data model.
Risk: Any repository relying on .github/intent-policy.json to restrict agent behavior today has no actual protection — this is a security-relevant documentation-implementation mismatch.
specs/intent-attribution-compliance/README.md — Compliance Fixtures
Analysis: Well-formed formal model (F1–F7 predicates) with full behavioral coverage map and matching Go test functions in pkg/intent/compliance_fixtures_formal_test.go. No gaps found in fixture coverage.
REASONS gaps: None significant. Requirements and Structure sections are strong. Minor: no explicit note cross-linking to the AuthorizeTool audit in the parent spec, so a reader of only this README would not know policy enforcement is unimplemented.
specs/otel-observability-spec.md — OpenTelemetry Observability Specification (v0.4.0, Working Draft)
Analysis: Comprehensive 19-section W3C-style spec covering config, export, context propagation, trace/metric/log contracts, and compliance testing. Section 17.1.1 defines 7 Level-1 test ID stubs (T-OT-001–007); Section 17.1.2 defines 4 additional attribute-contract test IDs (T-OT-008–011). Grep of pkg/workflow/otel_observability_formal_test.go and actions/setup/js/otel_contract.test.cjs found zero references to T-OT-008 through T-OT-011 — these stubs are not yet implemented despite the spec's Compliance Testing section requiring them "before claiming Level 1 conformance."
REASONS gaps:
- Operations: §17 doesn't specify what happens if
make validate-otel-contract is run before these stubs exist — currently it presumably passes without covering them, creating a false sense of conformance.
- Safeguards: No explicit statement preventing a conformance claim while stub tests are missing.
specs/replace-label-compliance/README.md and specs/replace-label-spec.md — replace-label safe-output type
Analysis: Mature, well-tested feature (v1.0.0, Candidate Recommendation). Formal predicate model (P1–P15, Q1–Q9) fully mapped to pkg/workflow/replace_label_formal_test.go and pkg/workflow/replace_label_transitions_formal_test.go, with a documented coverage-parity check dated 2026-08-05. No functional gaps identified.
REASONS gaps: Structure — the compliance README references the spec for fixture registration instructions but the spec itself has no reciprocal "Sync Notes" section pointing back to the compliance README's coverage map (asymmetric cross-referencing, unlike the intent-attribution pair).
Sync Follow-ups
- After
Authorizer.AuthorizeTool wiring lands, update specs/intent-attribution-agent-governance.md's "Implementation Audit" table to mark fields as "Wired" and remove the "purely advisory" risk language.
- After T-OT-008–011 are implemented, update
specs/otel-observability-spec.md §17.1.2 to mark these as implemented (not stubs) and confirm make validate-otel-contract includes them.
- Once bidirectional sync notes are added to
replace-label-spec.md and replace-label-compliance/README.md, re-run the 2026-08-05-style coverage-parity check and update its date.
Context
- Files reviewed (rotation indices 5–9 of 17):
specs/intent-attribution-agent-governance.md, specs/intent-attribution-compliance/README.md, specs/otel-observability-spec.md, specs/replace-label-compliance/README.md, specs/replace-label-spec.md
- Rotation state: advanced
last_index from 5 to 10 in /tmp/gh-aw/cache-memory/spdd-daily/rotation.json; next run continues at specs/safe-output-outcome-evaluation.md
- Workflow run: https://github.com/github/gh-aw/actions/runs/31616080765
Generated by 📋 Daily SPDD Spec Planner · auto · 34.5 AIC · ⌖ 2.38 AIC · ⊞ 6.8K · ◷
Summary
Daily SPDD review of 5 spec files (rotation indices 5–9):
intent-attribution-agent-governance.md,intent-attribution-compliance/README.md,otel-observability-spec.md,replace-label-compliance/README.md,replace-label-spec.md. The intent/governance spec documents a fully advisory-only policy engine (no runtime enforcement), and the OTel spec has four unimplemented Level-1 compliance test stubs (T-OT-008–011). No blocking defects found in replace-label docs; work items below are enforcement wiring, missing tests, and sync hygiene.Priority Work Queue
Authorizer.AuthorizeToolinto the Go orchestrator soExecutionPolicy(write scope, human approval, auto-merge, required checks) has real runtime effect instead of being purely advisory.specs/otel-observability-spec.md§17.1.2..github/objective-mapping.json→.github/intent-policy.jsontransition and tighten replace-label fixture cross-references.SPDD Checklist
/spdd-generate: ImplementAuthorizer.AuthorizeToolinpkg/intent(newpkg/intent/authzsub-package) perspecs/intent-attribution-agent-governance.md§"Authorizer.AuthorizeTool Implementation Audit"; done when a feature-flagged call site in the orchestrator enforcesAllowedTools/DeniedTools/WriteScope/HumanApprovalRequired/RequiredChecksand a unit test proves a denied tool call is rejected./spdd-generate: Add regression test assertingMaxAttemptsandAutoMergeAllowedare read from the compiledExecutionPolicyat execution time inpkg/intent/or the calling orchestrator package; done when the test fails on currentmain(proving the gap) and passes once wiring lands./spdd-generate: Implement compliance test T-OT-008 (gh-aw.job.nameon built-in job spans) inpkg/workflow/otel_observability_formal_test.go; done when the test decodes/tmp/gh-aw/otel.jsonland asserts the attribute matches the GitHub Actions job name./spdd-generate: Implement compliance test T-OT-009 (gen_ai.systemon built-in agent spans) inpkg/workflow/otel_observability_formal_test.go; done when it asserts non-empty normalized provider value for a known engine./spdd-generate: Implement compliance test T-OT-010 (gh-aw.outcome.typeon outcome-evaluation spans) inpkg/workflow/otel_observability_formal_test.go; done when it asserts the attribute matches the evaluated manifest item type./spdd-generate: Implement compliance test T-OT-011 (v0.3.0→v0.4.0 backward-compatibility attribute inventory diff) inpkg/workflow/otel_observability_formal_test.go; done when it compares attribute key sets against the v0.3.0 change-log inventory and fails on any removed/renamed key./spdd-sync: Updatemake validate-otel-contracttarget (or its backing script) to include the four new T-OT-008–011 tests so CI enforces Level 1 conformance; done whenmake validate-otel-contractruns and reports these test IDs./spdd-sync: Add a "Sync Notes" subsection tospecs/replace-label-spec.mdcross-referencingspecs/replace-label-compliance/README.md's Behavioral Coverage Map, mirroring the pattern already used inspecs/intent-attribution-agent-governance.md; done when both docs link to each other's fixture/test tables bidirectionally./spdd-reasons-canvas: Add an explicit Safeguards note tospecs/otel-observability-spec.md§17 clarifying that stubbed (unimplemented) test IDs MUST NOT be counted toward a Level 1 conformance claim; done when the wording change is committed and reviewed./spdd-generate: Add a fixture or unit test inpkg/intent/provingPolicyCompiler.Compile()output is currently unused by any orchestrator call site (documents the advisory-only state as an executable assertion); done when the test exists and is annotated with a link to the tracking issue for P0 wiring work.Per-Spec Findings
specs/intent-attribution-agent-governance.md— Intent Attribution & Agent Governance (v2.0.0, Partially Implemented)Analysis: Defines deterministic attribution precedence (explicit intent → closing issue → labels → unlinked) and fail-closed governance policy compilation. Core resolver/compiler logic (
pkg/intent.Resolver,pkg/intent.PolicyCompiler) is implemented and covered by formal fixtures, but the spec explicitly states (line ~940) thatAuthorizeToolis not yet implemented, meaning compiled policies (AllowedTools,WriteScope,HumanApprovalRequired,AutoMergeAllowed,RequiredChecks,MaxAttempts) have zero runtime enforcement today — they are "purely advisory."REASONS gaps:
ExecutionPolicystruct is well-specified; the missing piece is purely the authorization call site, not the data model.Risk: Any repository relying on
.github/intent-policy.jsonto restrict agent behavior today has no actual protection — this is a security-relevant documentation-implementation mismatch.specs/intent-attribution-compliance/README.md— Compliance FixturesAnalysis: Well-formed formal model (F1–F7 predicates) with full behavioral coverage map and matching Go test functions in
pkg/intent/compliance_fixtures_formal_test.go. No gaps found in fixture coverage.REASONS gaps: None significant. Requirements and Structure sections are strong. Minor: no explicit note cross-linking to the
AuthorizeToolaudit in the parent spec, so a reader of only this README would not know policy enforcement is unimplemented.specs/otel-observability-spec.md— OpenTelemetry Observability Specification (v0.4.0, Working Draft)Analysis: Comprehensive 19-section W3C-style spec covering config, export, context propagation, trace/metric/log contracts, and compliance testing. Section 17.1.1 defines 7 Level-1 test ID stubs (T-OT-001–007); Section 17.1.2 defines 4 additional attribute-contract test IDs (T-OT-008–011). Grep of
pkg/workflow/otel_observability_formal_test.goandactions/setup/js/otel_contract.test.cjsfound zero references to T-OT-008 through T-OT-011 — these stubs are not yet implemented despite the spec's Compliance Testing section requiring them "before claiming Level 1 conformance."REASONS gaps:
make validate-otel-contractis run before these stubs exist — currently it presumably passes without covering them, creating a false sense of conformance.specs/replace-label-compliance/README.mdandspecs/replace-label-spec.md— replace-label safe-output typeAnalysis: Mature, well-tested feature (v1.0.0, Candidate Recommendation). Formal predicate model (P1–P15, Q1–Q9) fully mapped to
pkg/workflow/replace_label_formal_test.goandpkg/workflow/replace_label_transitions_formal_test.go, with a documented coverage-parity check dated 2026-08-05. No functional gaps identified.REASONS gaps: Structure — the compliance README references the spec for fixture registration instructions but the spec itself has no reciprocal "Sync Notes" section pointing back to the compliance README's coverage map (asymmetric cross-referencing, unlike the intent-attribution pair).
Sync Follow-ups
Authorizer.AuthorizeToolwiring lands, updatespecs/intent-attribution-agent-governance.md's "Implementation Audit" table to mark fields as "Wired" and remove the "purely advisory" risk language.specs/otel-observability-spec.md§17.1.2 to mark these as implemented (not stubs) and confirmmake validate-otel-contractincludes them.replace-label-spec.mdandreplace-label-compliance/README.md, re-run the 2026-08-05-style coverage-parity check and update its date.Context
specs/intent-attribution-agent-governance.md,specs/intent-attribution-compliance/README.md,specs/otel-observability-spec.md,specs/replace-label-compliance/README.md,specs/replace-label-spec.mdlast_indexfrom 5 to 10 in/tmp/gh-aw/cache-memory/spdd-daily/rotation.json; next run continues atspecs/safe-output-outcome-evaluation.md