Proof Promote

The developer wants to turn a recurring finding into a permanent skill rule. `ana proof promote` takes a finding ID and a target skill, appends the rule text to the skill file, transitions the finding to `promoted` status, and commits the change. The command handles plumbing — git workflow, status transition, dashboard regeneration, skill file mutation. The caller provides the judgment: which skill, and optionally what the rule should say via `--text`.

verdict PASSscore 30 / 30findings 5 (0 risk · 2 debt · 3 obs)duration 2h 54mrejection cycles 1shipped Apr 30, 2026surface cli

Pipeline timeline

Intent to proven code in 2h 54m across Think, Plan, Build, and Verify.

Think
10m
Plan
10m
Build
155m
Verify
9m

Assertion ledger

30 claims, each independently verified. Showing 8 — show all →

IDSaysMatcher
A001Promoting a finding changes its status to promoted in the proof chainverifiedok
A002Promoting a finding records which skill file received the ruleverifiedok
A003Promoting a finding regenerates the proof chain dashboardverifiedok
A004Promoting a finding creates a git commit with the correct message formatverifiedok
A005Without custom text, the finding summary becomes the skill ruleverifiedok
A006Custom text overrides the finding summary in the skill ruleverifiedok
A007JSON output shows the actual rule text that was writtenverifiedok
A008Omitting the skill flag produces an error listing available skillsverifiedok

Findings 5 total

obspackages/cli/src/commands/proof.tsclosed
rule_text includes markdown bullet prefix '- ' in JSON output
debtpackages/cli/src/commands/proof.tsclosed
options.skill typed as non-optional string but can be undefined after requiredOption→option change
obspackages/cli/tests/commands/proof.test.tsclosed
A006 test passes text with shell-escaped double quotes wrapping — tests quoted-string path not raw text
obs.ana/proof_chain.jsonclosed
Proof chain JSON cosmetic diff from unicode em-dash normalization still present
debtpackages/cli/src/commands/proof.tsclosed
No summary truncation for promoted finding display — long summaries break terminal formatting

Integrity seal

scopesha256:576018ba148cd...
contractsha256:ab254390fe81a...
plansha256:e158ac015678a...
specsha256:63c1bd6da7ec4...
build-reportsha256:16562be73ac19...
build-datasha256:38f352b66c792...
verify-reportsha256:9627b7339a2b1...
verify-datasha256:d9d88c033ce87...
audit cmd$ ana proof audit proof-promote   → all hashes match