Non-Node Scan Enrichment (Application Shape + Python AI SDK)

The scan engine produces no application shape and no AI SDK detection for non-Node projects. A Python FastAPI project gets `shape: 'unknown'` and `aiSdk: null` even when the framework and AI dependencies are correctly detected. Two independent gaps, same disease: the engine detects non-Node signals but discards or never routes them to shape and AI SDK classification.

verdict PASSscore 18 / 18findings 4 (0 risk · 1 debt · 3 obs)duration 34mrejection cycles 0shipped May 17, 2026surface cli

Pipeline timeline

Intent to proven code in 34m across Think, Plan, Build, and Verify.

Think
1m
Plan
5m
Build
5m
Verify
5m

Assertion ledger

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

IDSaysMatcher
A001A Python FastAPI project is classified as an API serververifiedok
A002A Python Typer project is classified as a CLIverifiedok
A003A Python Django project is classified as full-stackverifiedok
A004A Go Gin project is classified as an API serververifiedok
A005A Go Cobra project is classified as a CLIverifiedok
A006A Rust Axum project is classified as an API serververifiedok
A007A Rust Clap project is classified as a CLIverifiedok
A008A non-Node project with no detected framework gets unknown shapeverifiedok

Findings 4 total

obspackages/cli/src/engine/scan-engine.tsclosed
A017 has no @ana-tagged test — verified by source inspection only
debtpackages/cli/src/engine/detectors/applicationShape.tsclosed
Module JSDoc says 'classifies Node projects' but function now also classifies non-Node
obspackages/cli/src/engine/detectors/applicationShape.tsclosed
FRAMEWORK_TO_SHAPE map placed between JSDoc and function — unconventional positioning
obspackages/cli/tests/engine/detectors/applicationShape.test.tsclosed
A001-A007 multi-tagged on single describe block — assertion-to-test tracing is ambiguous

Integrity seal

scopesha256:bc91fcb8ec796...
contractsha256:f6fa674e3d50a...
plansha256:85d1226c4305d...
specsha256:86f540ca84435...
build-reportsha256:b2aceae750339...
build-datasha256:2a2931fe86110...
verify-reportsha256:be26ce7a89717...
verify-datasha256:49545e057a477...
audit cmd$ ana proof audit non-node-scan-enrichment   → all hashes match