speckit-validate-profile

Validates a feature's profile.yaml against the profile schema contract via the workforce validator script.

Updated Jul 8, 2026
One-click install
npx skills add https://github.com/NarenKarthikBM/specseyal --skill speckit-validate-profile-narenkarthikbm
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: speckit-validate-profile
Source: https://github.com/NarenKarthikBM/specseyal/tree/main/.claude/skills/speckit-validate-profile
Command: npx skills add https://github.com/NarenKarthikBM/specseyal --skill speckit-validate-profile-narenkarthikbm

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pyyaml.

What problem does it solve? Spec-driven development pipelines rely on a per-feature profile.yaml to configure gate modes, council tiers, and automation handshakes, and a malformed profile can silently break downstream phases. This Skill hard-blocks invalid profiles before planning, task generation, or implementation consumes them. ## Core Features & Use Cases - Schema Contract Validation: Shells out to the workforce extension's validate-profile.py to enforce every rule — schema_version, closed enums, unknown-key rejection, gate mapping shapes, and the full_auto P1-P4 handshake. - Context-Aware Resolution: Accepts an explicit --feature directory or profile path, otherwise resolves the active feature from .specify/feature.json, falling back to ./profile.yaml. - Hard-Block Gate Behavior: Any non-zero exit (invalid profile or usage error) is relayed verbatim as a blocking signal, while an absent profile.yaml is correctly treated as valid (P1 safest posture). - Use Case: Before running the plan or tasks phase on a new feature, invoke this Skill to confirm the feature's profile.yaml declares valid gate modes and council settings, catching typos like a scalar gates.council value before they corrupt the pipeline. ## Quick Start Ask the assistant to validate the current feature's profile.yaml using the speckit-validate-profile skill before proceeding with planning.

Frequently Asked Questions about speckit-validate-profile

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I validate a profile.yaml file in a Spec Kit project?▼

Invoke the skill with no arguments to validate the active feature resolved from .specify/feature.json, or pass --feature <dir> or an explicit profile path. The skill runs the workforce extension's validate-profile.py and relays its verdict and exit code verbatim.

What profile.yaml errors does the validator catch?▼

The validator catches out-of-enum values, unknown keys at any nesting level, missing required keys, scalar values where gate mappings are required, max_rounds not equal to 1, feature name mismatches, full_auto handshake violations, and unparseable YAML, each reported with a named cause on stderr.

Is a missing profile.yaml a validation failure?▼

No. An absent profile.yaml exits with code 0 and is reported as valid under the P1 posture, which resolves both gates to human. It is deliberate documented behavior, not a gap to flag.

What happens if the workforce extension validator is not installed?▼

The skill stops and reports that the workforce extension's validator is not installed in the repository. It never falls back to hand-checking the profile or treats an unverifiable profile as valid, following a default-deny posture.

Does profile validation write traces or invoke a model?▼

No. The skill is purely mechanical: it resolves context, shells out to the script, and relays the result. It writes no traces.jsonl record, invokes no model, and registers no hooks in any outcome.