Discovery Pack Workflow
Structured project discovery using proven methodologies (JTBD, Amazon PR/FAQ, ADR, Lean Startup, DDD). Transforms ambiguous ideas into clear, validated specifications ready for spec-kit handoff.
Quick Start
Activation Triggers: "discovery", "requirements discovery", "project framing", "validate assumptions", "JTBD analysis"
Two Modes:
- Lite (3 artifacts, 15-30 min): Small projects, <5 people, low risk, personal/startup
- Full (8 artifacts, 1-2 hours): Enterprise, compliance, security-critical, high risk
Pre-Flight Check:
bash scripts/pre-flight-check.sh <output-dir> <mode>
Core Methodologies
| Methodology | Purpose | Applied In | |-------------|---------|------------| | Jobs-to-be-Done (JTBD) | User motivation & context | Problem framing (00) | | Amazon PR/FAQ | Customer clarity | Problem framing (00) | | ADR | Decision rationale | Decision log (06) | | Lean Startup | Assumption validation | Validation plan (05) | | DDD | Domain language | Domain model (02) |
📖 Details: shared-references/methodologies.md, shared-references/glossary.md
Installation & Paths
Supported Locations:
~/.copilot/skills/discovery-pack/(GitHub Copilot CLI)~/.claude/skills/discovery-pack/(Claude Code).claude/skills/discovery-pack/(project-local)- Any custom location (relative path resolution)
Script Invocation:
# From skill root:
python3 scripts/validate.py <output-dir>
# From anywhere:
python3 ~/.copilot/skills/discovery-pack/scripts/validate.py <output-dir>
All scripts use relative path resolution (Path(__file__) / ${BASH_SOURCE[0]}).
Workflow Orchestration
Step 1: Mode Selection (MANDATORY)
🛑 ALWAYS ask first:
| Mode | Artifacts | Time | Best For | |------|-----------|------|----------| | lite | 3 (00, 03, 07) | 15-30 min | Small projects, low risk, <5 people | | full | 8 (00-07) | 1-2 hours | Enterprise, compliance, high risk |
Decision Tree:
- Enterprise/regulated/security-critical? → full
- Multi-team/multi-stakeholder? → full
- Personal/startup/prototype? → lite
- Unsure? → lite (can upgrade later)
Automation Check:
# Optional but recommended (30-40% token savings)
pip install -r scripts/requirements.txt
Step 2: Output Directory
Target: <project-root>/docs/discovery/YYYY-MM-DD-<topic-slug>
Examples:
/docs/discovery/2026-01-07-user-auth/docs/discovery/2026-01-07-api-redesign
Auto-create if missing (scripts handle this).
Step 3: Execute Workflow
Progressive Disclosure Strategy: Load detailed workflow only when starting execution.
🔵 Lite Mode (3 artifacts)
Workflow File: shared-references/workflows/lite-mode.md
Quick Overview:
- Problem Framing (00) → Load
templates/00_problem-frame.md, fill YAML, validate - Option Analysis (03) → Load
templates/03_option-space.md, compare 2+ options, recommend - Handoff (07) → Load
templates/07_speckit-handoff.md, prepare spec-kit input
Load detailed instructions: Read shared-references/workflows/lite-mode.md before starting Phase 1.
🟣 Full Mode (8 artifacts)
Workflow File: shared-references/workflows/full-mode.md
Quick Overview:
- Problem Framing (00) → Foundation
- Constraints (01) → Security, performance, observability boundaries
- Domain Model (02) → Entities, bounded contexts, ubiquitous language
- Option Analysis (03) → Alternatives comparison
- Assumptions (04) → Auto-generated via
extract_assumptions.py - Validation Plan (05) → Experiments to test assumptions
- Decision Log (06) → ADR format decisions
- Handoff (07) → Spec-kit integration
Load detailed instructions: Read shared-references/workflows/full-mode.md before starting Phase 1.
Step 4: Validation Gate (MANDATORY)
🛑 After artifact generation:
python3 scripts/validate.py <output-dir>
Expected Output:
✅ 00_problem-frame.md: Valid
✅ 03_option-space.md: Valid
✅ 07_speckit-handoff.md: Valid
📊 Summary: 3/3 artifacts valid (100%)
If validation fails:
- Read error message (shows file + field + expected format)
- Fix YAML frontmatter (common: missing fields, wrong types, invalid enums)
- Re-validate until 100% pass
No progression without 100% validation pass (schema compliance mandatory).
Artifact Reference
| ID | Name | Lite | Full | Auto | Template |
|----|------|------|------|------|----------|
| 00 | Problem Frame | ✓ | ✓ | - | templates/00_problem-frame.md |
| 01 | Constraints & NFRs | - | ✓ | - | templates/01_constraints-nfr.md |
| 02 | Domain Model | - | ✓ | - | templates/02_domain-model.md |
| 03 | Option Space | ✓ | ✓ | - | templates/03_option-space.md |
| 04 | Assumptions | - | ✓ | ✓ | Auto via extract_assumptions.py |
| 05 | Validation Plan | - | ✓ | - | templates/05_validation-plan.md |
| 06 | Decision Log | - | ✓ | - | templates/06_decision-log.md |
| 07 | Spec-Kit Handoff | ✓ | ✓ | - | templates/07_speckit-handoff.md |
Template Loading: Load template only when generating that specific artifact (progressive disclosure).
Automation Scripts
| Script | Purpose | When to Use |
|--------|---------|-------------|
| scripts/pre-flight-check.sh | Validate environment | Before starting workflow |
| scripts/discovery-pack-run.sh | Full workflow executor | Automated end-to-end execution |
| scripts/validate.py | Schema validation | After each artifact / end of workflow |
| scripts/extract_assumptions.py | Generate 04 from 00-03 | Full mode, after 00-03 complete |
| scripts/ci-validate.sh | CI/CD integration | Automated validation in pipelines |
Token Savings: Automation provides ~30-40% token reduction vs manual execution.
Quality Gates
Pre-Flight Requirements
- [ ] Mode selected (lite/full)
- [ ] Output directory determined
- [ ] Python 3.11+ available (if using automation)
- [ ] Templates accessible via relative paths
Artifact Quality
- [ ] 100% schema validation pass
- [ ] All required YAML fields present
- [ ] Epistemic tags used ([ASSUMPTION], [HYPOTHESIS], [CONSTRAINT])
- [ ] Cross-references between artifacts (e.g., 05 links to 04 assumption IDs)
Handoff Criteria
- [ ] All planned artifacts generated
- [ ] Validation passes 100%
- [ ] 07_speckit-handoff.md marks
ready_for_speckit: true - [ ] Stakeholder review complete
Token Optimization
Progressive Disclosure Pattern:
- Load workflow file only when starting execution (not upfront)
- Load template only when generating that artifact
- Load methodology details only when user asks clarifying questions
- Use automation scripts (reduces 30-40% tokens)
Target Token Budget:
- Lite mode: ≤15k tokens
- Full mode: ≤25k tokens
High Token Operations (avoid unless necessary):
- Reading all templates upfront
- Inline methodology explanations (use references)
- Verbose examples (use workflow files)
Troubleshooting
Validation Errors
| Error Type | Symptom | Fix |
|------------|---------|-----|
| Missing field | Missing required field: X.Y.Z | Add field to YAML frontmatter |
| Type mismatch | Expected array, got object | Convert format (e.g., single → list) |
| Invalid enum | Value not in enum: [...] | Use valid enum value from error |
| YAML syntax | could not parse YAML | Check indentation, colons, quotes |
Common Issues
Scripts not found:
- Verify working directory (should be skill root)
- Or use full path:
~/.copilot/skills/discovery-pack/scripts/...
Automation unavailable:
- Install dependencies:
pip install -r scripts/requirements.txt - Or proceed manually (workflow files guide you)
Template loading fails:
- Check
templates/directory exists relative to skill root - Verify path resolution working (run
scripts/pre-flight-check.sh)
Next Steps After Discovery
- Review artifacts with stakeholders
- Execute validation experiments from 05_validation-plan.md (if full mode)
- Start spec-kit workflow: Use 07_speckit-handoff.md as input to
/speckit.constitution - Discovery complete → Proceed to specification phase
Version History
- 2.0.0 (2026-01-07): Flat architecture (1 SKILL.md), cross-agent portability, 100% schema validation
- 1.1.0 (2026-01-06): Enhanced enforcement, automation workflow
- 1.0.0 (2026-01-05): Initial release with 8 sub-skills
Support & References
- Methodologies:
shared-references/methodologies.md - Glossary:
shared-references/glossary.md - Lite Workflow:
shared-references/workflows/lite-mode.md - Full Workflow:
shared-references/workflows/full-mode.md - Schemas:
schemas/*.schema.json - Templates:
templates/*.md
Scan to join WeChat group