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.