| name | infer-project-profile-from-code |
| description | Infer the foundational project-profile.yaml (product identity, team shape, technology posture, compliance hints, platform targets, delivery maturity) from scan-index.json during /codify, with every field grounded in concrete scan-index evidence and tagged source_type=inferred_from_code. Used exclusively by product-keeper in the /codify play. |
| version | 0.1.0 |
| user-invocable | false |
| model | sonnet |
| allowed-tools | Read, Write, Grep, Glob |
| deprecated | true |
| deprecated_note | #434 ProductOS realignment — superseded by the command model; retained for Phase E reference, not installed |
infer-project-profile-from-code
Called by product-keeper during /codify. Produces user-provided/project-profile.yaml at {stm_base}/{issue}/evidence/codify/proposals/user-provided/project-profile.yaml.
Purpose
During /codify (brownfield bootstrap), the product-profile artifact that /specify normally collects via a user interview must be reverse-engineered from the existing codebase. This skill consumes scan-index.json (produced by scan-codebase) and emits a proposal project-profile grounded entirely in signals already captured by the scan.
Signals this skill extracts from scan-index:
- primary language — which ecosystem in
manifests is most numerous/central (node | python | go | rust | jvm | ruby | dotnet | elixir | dart | swift | php). Break ties by file count reported in repos[*].file_count restricted to that ecosystem's files.
- frameworks — parse
patterns.framework_idioms, map the top hit(s) to declared framework names (e.g., react, nextjs, fastapi, django, gin, rails, spring).
- runtime version — manifest
engines field for node; go_version for go; python_requires when present; analogous fields for rust/ruby/jvm/dotnet.
- team_size — bucket
git.contributors count: solo-dev (1), small (2-5), medium (6-20), large (21+).
- contributor_count — raw length of
git.contributors.
- delivery maturity — presence/richness of
config_files.ci, config_files.docker, config_files.type (type-checker configs), config_files.lint, config_files.test.
- compliance hints — keyword scan of
docs.readme_preview and docs.adrs for HIPAA, PCI, GDPR, SOC2, ISO-27001, FedRAMP.
- platform targets — derive from
frontend_detection (web), presence of mobile toolchain manifests (ios/android/react-native/flutter), CLI bin entries in node , or server-only signals (no frontend, no mobile).