Command Detection Language Awareness
Non-Node projects with a package.json (Ruby/Mastodon, Rust/Biome) get JS commands in ana.json. The pipeline executes these mechanically — Build runs `yarn run test -- --run` on a Ruby project. The entire pipeline produces wrong results. Fix the scan engine and init layer so non-Node projects get correct native commands or honest nulls, and ensure the user-facing flow (init display + setup) guides non-Node users to configure any remaining null commands before entering the pipeline.
verdict PASSscore 28 / 28findings 7 (0 risk · 2 debt · 5 obs)duration 1h 23mrejection cycles 0shipped May 20, 2026surface cli
Pipeline timeline
Intent to proven code in 1h 23m across Think, Plan, Build, and Verify.
Think23m
Plan23m
Build21m
Verify5m
Assertion ledger
28 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | A Ruby project with JS devDependencies only shows native testing frameworks | verified | ok |
| A002 | JS testing frameworks are removed from Ruby project scan results | verified | ok |
| A003 | Rust projects detect the built-in test runner | verified | ok |
| A004 | Ruby projects detect Minitest when test directory exists | verified | ok |
| A005 | Ruby projects do not get JavaScript build commands | verified | ok |
| A006 | Ruby projects do not get JavaScript test commands from package.json | verified | ok |
| A007 | Package.json scripts are still recorded for polyglot projects | verified | ok |
| A008 | TypeScript projects still get all commands from package.json | verified | ok |
Findings 7 total
debtpackages/cli/src/commands/init/state.ts→ closed
A020 has no tagged test — verified by source inspection only
obs→ closed
AC11 (Skills Detected section) tests absence of something never present — skills manifest contains skill file names, not test commands
obspackages/cli/src/commands/init/state.ts→ monitor
displaySuccessMessage treats empty string test command as null for init display — consistent with upstream blank sanitizer
debtpackages/cli/src/commands/init/state.ts→ closed
buildNonNodeCommands returns early per-language without fallthrough — adding a new language requires a new if-block, no extensibility pattern
obspackages/cli/src/utils/worktree.ts→ closed
getBuildCommandString exported solely for testing with @internal tag — follows project convention but increases public API surface
+2more findings
Integrity seal
scopesha256:e58a2fd005ee4...
contractsha256:525810fddf5bb...
plansha256:d4bc8df035137...
specsha256:b0783ca779be2...
build-reportsha256:3bf209581d566...
build-datasha256:0286a0a4670e3...
verify-reportsha256:79a96255f2fa5...
verify-datasha256:61a1e6bf716cd...
audit cmd$ ana proof audit command-language-awareness → all hashes match