Story Statement
As a team monitoring cost drift with /assess-cost $mode: report
I want the panel's deploy-match dimension to actually resolve a merge to its deployment and to the observed cost movement
So that predicted-vs-real cost monitoring is corroborated by billing reality, not only by diff signals
Epic Context
Parent Epic: #208 (Unified classification & assessments → tags)
Status: Todo
Priority: P2 (Could-Have)
Problem
assess-cost report mode (#281, PR #388) declares a deploy-match dimension: with deploy/billing telemetry declared it should match a merged PR to its deployment and record the observed cost movement. As shipped in #281 only the degraded branch is executable — every project reports not available, because:
- no in-tree integration resolves a merge commit → deployment;
- no in-tree integration queries a per-service billing metric;
- no project declares the
## Cost & Billing Telemetry section the skill looks for.
#281's spec therefore names the declaration and the definition of "observed cost movement" as a contract and marks the matched path deferred, pointing here. Review finding on PR #388 (Minor): the positive path otherwise reads as a promise the spec cannot deliver.
Likely In Scope
- The
## Cost & Billing Telemetry declaration in infrastructure.md (shape + example), with assess-infrastructure/bootstrap awareness
- Merge → deployment resolution for at least one deploy source (e.g. GitHub deployments / releases)
- One billing-metric provider (AWS Cost Explorer first, per the KB's provider order), resolved through adoption like every other provider heuristic (R2.13 — no provider hardcoded in the skill)
- Definition of the comparison window (equal-length pre/post-deploy) and how the movement is rendered in the panel row
- Updating
assess-cost Step 9.2 to drop the "deferred" note once the matched path is real
Likely Out of Scope
- Changing the cost class / signal catalog (quality-model §3.3,
cost-assessment.md)
- Cost alerting or budget enforcement (report mode never blocks)
- The panel convention itself (working-area.md, ADL 2026-07-28)
Acceptance Criteria (draft)
- With a complete
## Cost & Billing Telemetry declaration, a merged PR's panel row carries a matched deployment and an observed cost movement
- With the declaration absent or incomplete, the row still reads
not available — never a fabricated or inferred match
- Adding a second billing provider touches adoption/KB only, never the skill (R2.13)
- Conformance guard asserts both branches on the skill spec
Notes
Raised as a review finding on PR #388 (round 2). #281 stays scoped to the diff-signal side of monitoring.
Story Statement
As a team monitoring cost drift with
/assess-cost $mode: reportI want the panel's deploy-match dimension to actually resolve a merge to its deployment and to the observed cost movement
So that predicted-vs-real cost monitoring is corroborated by billing reality, not only by diff signals
Epic Context
Parent Epic: #208 (Unified classification & assessments → tags)
Status: Todo
Priority: P2 (Could-Have)
Problem
assess-costreport mode (#281, PR #388) declares a deploy-match dimension: with deploy/billing telemetry declared it should match a merged PR to its deployment and record the observed cost movement. As shipped in #281 only the degraded branch is executable — every project reportsnot available, because:## Cost & Billing Telemetrysection the skill looks for.#281's spec therefore names the declaration and the definition of "observed cost movement" as a contract and marks the matched path deferred, pointing here. Review finding on PR #388 (Minor): the positive path otherwise reads as a promise the spec cannot deliver.
Likely In Scope
## Cost & Billing Telemetrydeclaration ininfrastructure.md(shape + example), withassess-infrastructure/bootstrap awarenessassess-costStep 9.2 to drop the "deferred" note once the matched path is realLikely Out of Scope
cost-assessment.md)Acceptance Criteria (draft)
## Cost & Billing Telemetrydeclaration, a merged PR's panel row carries a matched deployment and an observed cost movementnot available— never a fabricated or inferred matchNotes
Raised as a review finding on PR #388 (round 2). #281 stays scoped to the diff-signal side of monitoring.