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.
Think51m
Plan17m
Build 1120m
Verify 17m
Build 268m
Verify 225m
Assertion ledger
35 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | Fresh projects get a default platform list of Claude | verified | ok |
| A002 | Fresh projects get an empty platform flags object | verified | ok |
| A003 | Missing platforms field defaults to Claude instead of crashing | verified | ok |
| A004 | Empty platforms array defaults to Claude instead of leaving empty | verified | ok |
| A005 | A malformed flag entry for one platform does not wipe other platforms' flags | verified | ok |
| A006 | User-set platforms survive re-initialization | verified | ok |
| A007 | User-set platformFlags survive re-initialization | verified | ok |
| A008 | New platform fields are recognized by config set without warnings | verified | ok |
Findings 12 total
obspackages/cli/tests/commands/platform.test.ts→ monitor
A004 contract assertion contradicted by implementation — schema .catch() does not fire on valid empty arrays
debtpackages/cli/tests/commands/platform.test.ts→ acknowledge
A001 test mis-tagged — tests schema preservation of explicit values, not fresh-project default
debtpackages/cli/tests/commands/platform.test.ts→ acknowledge
Six assertions (A008-A009, A013-A018) use source-content inspection instead of behavioral tests
debtpackages/cli/src/commands/check.ts→ closed
Residual hardcoded .claude/skills/ display string in check.ts not migrated to helper
obs→ closed
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