| name | infer-quality-profile-from-code |
| description | Infer the product's ISO 25010:2023 quality-profile.yaml (characteristic-level targets, security profile, risk register) from scan-index.json during /codify, grounding every characteristic level and every risk entry in concrete scan-index signals and tagging source_type=inferred_from_code. Used exclusively by test-engineer 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-quality-profile-from-code
Called by test-engineer during /codify. Produces specification/quality-profile.yaml at {stm_base}/{issue}/evidence/codify/proposals/specification/quality-profile.yaml.
Purpose
During /codify (brownfield bootstrap), the quality-profile artifact that /specify normally derives from intent epics must be reverse-engineered from the existing codebase's tooling posture. This skill consumes scan-index.json (produced by scan-codebase) and emits a proposal quality-profile whose ISO 25010:2023 characteristic levels, security profile, and risk register are all grounded in scan-index signals. The greenfield peer for this artifact is derive-quality-profile-from-epics (specify Stage 6). The output schema MUST round-trip with that peer: it uses ISO 25010:2023 (9 characteristics — functional_suitability, performance_efficiency, compatibility, interaction_capability, reliability, security, maintainability, flexibility, safety) and the reference instance at .garura/product/specification/quality-profile.yaml is the shape-of-record.
The task-brief signal list names usability and portability (ISO 25010:2011 nomenclature); this skill maps usability → interaction_capability and portability → flexibility, and adds a safety bucket whose relevance is inferred from the code (default: low, matching the reference, unless safety-critical signals surface).
Input
Receive from test-engineer via JSON contract.
scan_index_path (path, required) — scan-index.json produced by scan-codebase.
stm_base (path, required) — STM root resolved from .garura/core/config.yaml stm.base-path.
issue (str, required) — issue number driving /codify.
output_path (path, required) — {stm_base}/{issue}/evidence/codify/proposals/specification/quality-profile.yaml.
decision_manifest_path (path, required) — decision-manifest-infer-quality-profile-from-code.yaml alongside the artifact.