What problem does it solve? After tasks are categorized in a spec-driven development pipeline, someone must match every task to a specialized agent and skill set — and decide what to do when no existing skill covers a task. This Skill automates that matching deterministically, verifies the categorization is still fresh against tasks.md, and orchestrates the creation of new skills to close coverage gaps before implementation begins. ## Core Features & Use Cases - Deterministic roster assembly: Runs assemble.py over categorization.md and the .claude/agents + .claude/skills library to write the assignment.md roster table, with a hard freshness check (S14) that blocks stale categorizations. - Gap handoff with skill-builder dispatch: On unmatched tasks, dispatches one Sonnet skill-builder session per shared-tag cluster, validates candidates with validate-skill.py, persists passing skills to .claude/skills/, and re-runs assembly so the final roster carries built marks. - Workforce gate integration: Honors the D67 elevated-grant tripwire and the workforce_depth: light profile mode, which short-circuits gap-filling while still writing the roster. - Use Case: After running /speckit-categorize on a feature, invoke this Skill to produce a signed-ready agent roster; if three tasks share an uncovered tag, one new skill is built, validated, persisted, and reflected in the final assignment. ## Quick Start Run /speckit-agent-assign in the repository after /speckit-categorize has produced categorization.md to generate the agent assignment roster and fill any skill gaps.