From vsdd-factory
Scans the project for existing planning artifacts (brief, PRD, architecture, UX spec, stories), validates their quality, identifies gaps, and routes to the correct pipeline entry point. This is the universal front-end for the VSDD pipeline — it replaces the assumption that the human always arrives with a finished product brief.
How this skill is triggered — by the user, by Claude, or both
Slash command
/vsdd-factory:artifact-detectionThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill runs at the START of every pipeline invocation, before spec
This skill runs at the START of every pipeline invocation, before spec crystallization begins. It replaces the former first step ("Receive Product Brief").
Search for planning artifacts in the project:
| Artifact | Search Patterns | Required For |
|---|---|---|
| Product Brief (L1) | **/product-brief.md, **/brief.md, **/*brief* | Spec entry point |
| Domain Spec (L2) | .factory/specs/domain-spec/L2-INDEX.md | L2 capability mapping |
| PRD | **/prd.md, **/PRD.md, .factory/specs/prd.md | Skip to architecture design |
| Behavioral Contracts (L3) | .factory/specs/behavioral-contracts/BC-INDEX.md, .factory/specs/behavioral-contracts/BC-*.md | L3 per-file contracts |
| Verification Properties (L4) | .factory/specs/verification-properties/VP-INDEX.md, .factory/specs/verification-properties/VP-*.md | L4 per-file properties |
| Architecture | **/architecture/ARCH-INDEX.md, .factory/specs/architecture/ARCH-INDEX.md, .factory/specs/architecture/ | Story decomposition entry |
| Architecture Feasibility | .factory/specs/architecture-feasibility-report.md | Architect review |
| Verification Architecture | .factory/specs/architecture/verification-architecture/ARCH-INDEX.md | Story decomposition entry |
| Adversarial Reviews | .factory/specs/adversarial-reviews/, .factory/cycles/**/adversarial-reviews/adversarial-reviews/ | Sharded review directories |
| Evaluations | .factory/holdout-scenarios/evaluations/EVAL-INDEX.md | Sharded evaluation directory |
| PRD Supplements | .factory/specs/prd-supplements/ | Supplement directory |
| UX Spec | **/ux-spec/UX-INDEX.md, **/ux-design.md, .factory/specs/ux-spec/UX-INDEX.md | Story decomposition entry (optional) |
| Epics/Stories | .factory/stories/epics.md, .factory/stories/stories/ | Implementation entry |
| Project Context | **/project-context.md | Brownfield context (DF-005) |
Also check for artifacts the human may have provided outside the .factory/ structure:
docs/ directoryDetect specification format (DF-020 4-level hierarchy):
Detect architecture structure (DF-021 sharding):
ARCH-INDEX.md + 7 section files in architecture/ directoryarchitecture/ARCH-INDEX.md fileFor partial specs using 4-level hierarchy: detect level correctly. If spec uses old FR-NNN format: flag for migration before proceeding.
Based on what exists, classify the project:
| Level | Artifacts Found | Route To |
|---|---|---|
| L0: Nothing | No planning artifacts | Collaborative Discovery |
| L1: Brief | Product brief exists | Validate brief -> spec crystallization |
| L2: PRD | PRD exists (may include L2 domain spec) | Validate PRD -> remaining spec crystallization |
| L3: PRD + Architecture | PRD + architecture + L3 BCs exist | Validate both -> story decomposition |
| L4: Full Spec | PRD + architecture + L3 BCs + L4 VPs + stories exist | Validate all -> implementation |
For each artifact found, run the appropriate validation:
Brief validation:
PRD validation:
Architecture validation:
traces_to: ARCH-INDEX.md in frontmatterStory validation:
For each validation that fails, record the specific gap:
## Gap Analysis Report
| Artifact | Status | Gaps |
|----------|--------|------|
| Brief | VALID / INCOMPLETE / MISSING | [specific gaps] |
| PRD | VALID / INCOMPLETE / MISSING | [specific gaps] |
| Architecture | VALID / INCOMPLETE / MISSING | [specific gaps] |
| Stories | VALID / INCOMPLETE / MISSING | [specific gaps] |
Write gap analysis to .factory/planning/gap-analysis.md.
Present the gap analysis to the human with routing options:
If L0 (nothing exists): "No planning artifacts found. Would you like to:
If artifacts exist with gaps: "I found [artifacts]. Here are the gaps: [gap list]. Would you like to:
If all artifacts are valid: "All planning artifacts are complete and valid. Ready to proceed to [next phase]."
Directory: workflows/skills/artifact-detection/steps/
| File | Step |
|---|---|
step-01-scan-artifacts.md | Scan for Existing Artifacts |
step-02-classify-readiness.md | Classify Readiness Level |
step-03-validate-artifacts.md | Validate What Exists |
step-04-gap-analysis.md | Gap Analysis |
step-05-route-decision.md | Route Decision |
.factory/planning/artifact-inventory.md -- what was found.factory/planning/gap-analysis.md -- validation results and gaps.factory/planning/routing-decision.md -- which entry point was selected.factory/ does not exist: report L0 (nothing exists) and route to Collaborative Discoverynpx claudepluginhub drbothen/claude-mp --plugin vsdd-factoryProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.