Platform-Aware CLI

The Anatomia CLI hardcodes Claude Code as the only platform in 20 source files (~140 references). Three commands (`ana agents`, `ana setup check`, `ana proof promote/strengthen`) read agent and skill files from hardcoded `.claude/` paths — they are functionally broken on any non-CC platform. The pipeline state machine (`ana work status`) outputs `claude --agent ana-build` strings that are serialized into the `--json` output contract. There is no `ana run` command — the universal invocation surface that makes platform choice invisible to the developer.

verdict PASSscore 18 / 35findings 12 (0 risk · 4 debt · 8 obs)duration 5h 3mrejection cycles 0shipped May 31, 2026surface cli

Pipeline timeline

Intent to proven code in 5h 3m across Think, Plan, and 2 Build→Verify phases.

Think
51m
Plan
17m
Build 1
120m
Verify 1
7m
Build 2
68m
Verify 2
25m

Assertion ledger

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

IDSaysMatcher
A001Fresh projects get a default platform list of Claudeverifiedok
A002Fresh projects get an empty platform flags objectverifiedok
A003Missing platforms field defaults to Claude instead of crashingverifiedok
A004Empty platforms array defaults to Claude instead of leaving emptyverifiedok
A005A malformed flag entry for one platform does not wipe other platforms' flagsverifiedok
A006User-set platforms survive re-initializationverifiedok
A007User-set platformFlags survive re-initializationverifiedok
A008New platform fields are recognized by config set without warningsverifiedok

Findings 12 total

obspackages/cli/tests/commands/platform.test.tsmonitor
A004 contract assertion contradicted by implementation — schema .catch() does not fire on valid empty arrays
debtpackages/cli/tests/commands/platform.test.tsacknowledge
A001 test mis-tagged — tests schema preservation of explicit values, not fresh-project default
debtpackages/cli/tests/commands/platform.test.tsacknowledge
Six assertions (A008-A009, A013-A018) use source-content inspection instead of behavioral tests
debtpackages/cli/src/commands/check.tsclosed
Residual hardcoded .claude/skills/ display string in check.ts not migrated to helper
obsclosed
Contract A004 value stale — Zod .catch() cannot intercept valid empty arrays, only parse errors
+7more findings

Integrity seal

scopesha256:cc16f2c11050a...
contractsha256:436b8bf1d8ab1...
plansha256:90d298de97e1a...
spec-1sha256:c4d5405746867...
spec-2sha256:b44514b1ca15c...
build-reportsha256:f486a35719404...
build-datasha256:8c15f25cc1bc3...
build-report-1sha256:f486a35719404...
build-data-1sha256:8c15f25cc1bc3...
verify-report-1sha256:87cafa053b0e1...
verify-data-1sha256:1674144521692...
build-report-2sha256:487dcf97c2966...
build-data-2sha256:982b15c7ffc5c...
verify-report-2sha256:263464d1d7048...
verify-data-2sha256:afe4adc9cc88a...
audit cmd$ ana proof audit platform-aware-cli   → all hashes match