Initial commit
This commit is contained in:
710
skills/create-specs/SKILL.md
Normal file
710
skills/create-specs/SKILL.md
Normal file
@@ -0,0 +1,710 @@
|
||||
---
|
||||
name: create-specs
|
||||
description: Transform reverse-engineering documentation into GitHub Spec Kit format. Initializes .specify/ directory, creates constitution.md, generates specifications from reverse-engineered docs, and sets up for /speckit slash commands. This is Step 3 of 6 in the reverse engineering process.
|
||||
---
|
||||
|
||||
# Create Specifications (GitHub Spec Kit Integration)
|
||||
|
||||
**Step 3 of 6** in the Reverse Engineering to Spec-Driven Development process.
|
||||
|
||||
**Estimated Time:** 30 minutes (specs only) to 90 minutes (specs + plans + tasks)
|
||||
**Prerequisites:** Step 2 completed (`docs/reverse-engineering/` exists with 9 files)
|
||||
**Output:** `.specify/` directory with GitHub Spec Kit structure
|
||||
|
||||
---
|
||||
|
||||
## Thoroughness Options
|
||||
|
||||
Gear 3 generates different levels of detail based on configuration set in Gear 1:
|
||||
|
||||
**Option 1: Specs Only** (30 min - fast)
|
||||
- Generate `.specify/specs/###-feature-name/spec.md` for all features
|
||||
- Constitution and folder structure
|
||||
- Ready for manual planning with `/speckit.plan`
|
||||
|
||||
**Option 2: Specs + Plans** (45-60 min - recommended)
|
||||
- Everything from Option 1
|
||||
- **PLUS**: Auto-generate `plan.md` for PARTIAL/MISSING features
|
||||
- Ready for manual task breakdown with `/speckit.tasks`
|
||||
|
||||
**Option 3: Specs + Plans + Tasks** (90-120 min - complete roadmap)
|
||||
- Everything from Option 2
|
||||
- **PLUS**: Auto-generate comprehensive `tasks.md` (300-500 lines each)
|
||||
- Ready for immediate implementation
|
||||
- No additional planning needed
|
||||
|
||||
**Configuration:** Set during Gear 1 (Analyze) via initial questionnaire, stored in `.stackshift-state.json`
|
||||
|
||||
---
|
||||
|
||||
## When to Use This Skill
|
||||
|
||||
Use this skill when:
|
||||
- You've completed Step 2 (Reverse Engineer)
|
||||
- Have comprehensive documentation in `docs/reverse-engineering/`
|
||||
- Ready to create formal specifications in GitHub Spec Kit format
|
||||
- Want to leverage `/speckit` slash commands for implementation
|
||||
|
||||
**Trigger Phrases:**
|
||||
- "Create specifications from documentation"
|
||||
- "Transform docs into Spec Kit format"
|
||||
- "Set up GitHub Spec Kit"
|
||||
- "Initialize Spec Kit for this project"
|
||||
|
||||
---
|
||||
|
||||
## What This Skill Does
|
||||
|
||||
**Automatically** transforms reverse-engineering documentation into **GitHub Spec Kit format** using F002 automated spec generation:
|
||||
|
||||
1. **Read reverse engineering docs** - Parse `docs/reverse-engineering/functional-specification.md`
|
||||
2. **Extract ALL features** - Identify every feature (complete, partial, missing)
|
||||
3. **Generate constitution** - Create `.specify/memory/constitution.md` with project principles
|
||||
4. **Create feature specs** - Generate `.specify/specs/###-feature-name/spec.md` for EVERY feature
|
||||
5. **Implementation plans** - Create `plan.md` for PARTIAL and MISSING features only
|
||||
6. **Enable slash commands** - Set up `/speckit.*` commands
|
||||
|
||||
**Critical**: This creates specs for **100% of features**, not just gaps!
|
||||
- ✅ Complete features get specs (for future spec-driven changes)
|
||||
- ⚠️ Partial features get specs + plans (show what exists + what's missing)
|
||||
- ❌ Missing features get specs + plans (ready to implement)
|
||||
|
||||
**Result:** Complete spec coverage - entire application under spec control.
|
||||
|
||||
---
|
||||
|
||||
## Configuration Check (FIRST STEP!)
|
||||
|
||||
**Load state file to determine execution plan:**
|
||||
|
||||
```bash
|
||||
# Check thoroughness level (set in Gear 1)
|
||||
THOROUGHNESS=$(cat .stackshift-state.json | jq -r '.config.gear3_thoroughness // "specs"')
|
||||
|
||||
# Check route
|
||||
ROUTE=$(cat .stackshift-state.json | jq -r '.path')
|
||||
|
||||
# Check spec output location (Greenfield may have custom location)
|
||||
SPEC_OUTPUT=$(cat .stackshift-state.json | jq -r '.config.spec_output_location // "."')
|
||||
|
||||
echo "Route: $ROUTE"
|
||||
echo "Spec output: $SPEC_OUTPUT"
|
||||
echo "Thoroughness: $THOROUGHNESS"
|
||||
|
||||
# Determine what to execute
|
||||
case "$THOROUGHNESS" in
|
||||
"specs")
|
||||
echo "Will generate: Specs only"
|
||||
GENERATE_PLANS=false
|
||||
GENERATE_TASKS=false
|
||||
;;
|
||||
"specs+plans")
|
||||
echo "Will generate: Specs + Plans"
|
||||
GENERATE_PLANS=true
|
||||
GENERATE_TASKS=false
|
||||
;;
|
||||
"specs+plans+tasks")
|
||||
echo "Will generate: Specs + Plans + Tasks (complete roadmap)"
|
||||
GENERATE_PLANS=true
|
||||
GENERATE_TASKS=true
|
||||
;;
|
||||
*)
|
||||
echo "Unknown thoroughness: $THOROUGHNESS, defaulting to specs only"
|
||||
GENERATE_PLANS=false
|
||||
GENERATE_TASKS=false
|
||||
;;
|
||||
esac
|
||||
|
||||
# If custom location, ensure .specify directory exists there
|
||||
if [ "$SPEC_OUTPUT" != "." ]; then
|
||||
echo "Creating .specify/ structure at custom location..."
|
||||
mkdir -p "$SPEC_OUTPUT/.specify/specs"
|
||||
mkdir -p "$SPEC_OUTPUT/.specify/memory"
|
||||
mkdir -p "$SPEC_OUTPUT/.specify/templates"
|
||||
mkdir -p "$SPEC_OUTPUT/.specify/scripts"
|
||||
fi
|
||||
```
|
||||
|
||||
**Where specs will be written:**
|
||||
|
||||
| Route | Config | Specs Written To |
|
||||
|-------|--------|------------------|
|
||||
| Greenfield | spec_output_location set | `{spec_output_location}/.specify/specs/` |
|
||||
| Greenfield | Not set (default) | `./.specify/specs/` (current repo) |
|
||||
| Brownfield | Always current | `./.specify/specs/` (current repo) |
|
||||
|
||||
|
||||
**Common patterns:**
|
||||
- Same repo: `spec_output_location: "."` (default)
|
||||
- New repo: `spec_output_location: "~/git/my-new-app"`
|
||||
- Docs repo: `spec_output_location: "~/git/my-app-docs"`
|
||||
- Subfolder: `spec_output_location: "./new-version"`
|
||||
|
||||
---
|
||||
|
||||
## 🤖 Execution Instructions
|
||||
|
||||
**IMPORTANT**: This skill uses automated spec generation tools from F002.
|
||||
|
||||
### Step 1: Call the MCP Tool
|
||||
|
||||
Run the `stackshift_create_specs` MCP tool to automatically generate ALL specifications:
|
||||
|
||||
**This tool will**:
|
||||
- Parse `docs/reverse-engineering/functional-specification.md`
|
||||
- Extract EVERY feature (complete, partial, missing)
|
||||
- Generate constitution and ALL feature specs
|
||||
- Create implementation plans for incomplete features
|
||||
|
||||
**Usage**:
|
||||
```typescript
|
||||
// Call the MCP tool
|
||||
const result = await mcp.callTool('stackshift_create_specs', {
|
||||
directory: process.cwd()
|
||||
});
|
||||
|
||||
// The tool will:
|
||||
// 1. Read functional-specification.md
|
||||
// 2. Create specs for ALL features (not just gaps!)
|
||||
// 3. Mark implementation status (✅/⚠️/❌)
|
||||
// 4. Generate plans for PARTIAL/MISSING features
|
||||
// 5. Return summary showing complete coverage
|
||||
```
|
||||
|
||||
**Expected output**:
|
||||
- Constitution created
|
||||
- 15-50 feature specs created (depending on app size)
|
||||
- 100% feature coverage
|
||||
- Implementation plans for incomplete features
|
||||
|
||||
### Step 2: Verify Success
|
||||
|
||||
After the tool completes, verify:
|
||||
1. `.specify/memory/constitution.md` exists
|
||||
2. `.specify/specs/###-feature-name/` directories created for ALL features
|
||||
3. Each feature has `spec.md`
|
||||
4. PARTIAL/MISSING features have `plan.md`
|
||||
|
||||
---
|
||||
|
||||
## If Automated Tool Fails
|
||||
|
||||
The MCP tool creates all Spec Kit files programmatically - it does NOT need `specify init`.
|
||||
|
||||
**The tool creates**:
|
||||
- `.specify/memory/constitution.md` (from templates)
|
||||
- `.specify/specs/###-feature-name/spec.md` (all features)
|
||||
- `.specify/specs/###-feature-name/plan.md` (for incomplete features)
|
||||
- `.claude/commands/speckit.*.md` (slash commands)
|
||||
|
||||
**If the MCP tool fails**, use the manual reconciliation prompt:
|
||||
|
||||
```bash
|
||||
# Copy this prompt into Claude.ai:
|
||||
cat web/reconcile-specs.md
|
||||
|
||||
# This will manually create all specs with 100% coverage
|
||||
```
|
||||
|
||||
**DO NOT run `specify init`** - it requires GitHub API access and isn't needed since F002 creates all files directly.
|
||||
|
||||
This creates:
|
||||
```
|
||||
.specify/
|
||||
├── memory/
|
||||
│ └── constitution.md # Project principles (will be generated)
|
||||
├── templates/ # AI agent configs
|
||||
├── scripts/ # Automation utilities
|
||||
└── specs/ # Feature directories (will be generated)
|
||||
├── 001-feature-name/
|
||||
│ ├── spec.md # Feature specification
|
||||
│ ├── plan.md # Implementation plan
|
||||
│ └── tasks.md # Task breakdown (generated by /speckit.tasks)
|
||||
└── 002-another-feature/
|
||||
└── ...
|
||||
```
|
||||
|
||||
**Note:** GitHub Spec Kit uses `.specify/specs/NNN-feature-name/` directory structure
|
||||
|
||||
See [operations/init-speckit.md](operations/init-speckit.md)
|
||||
|
||||
### Step 2: Generate Constitution
|
||||
|
||||
From `docs/reverse-engineering/functional-specification.md`, create `.specify/memory/constitution.md`:
|
||||
|
||||
**Constitution includes:**
|
||||
- **Purpose & Values** - Why this project exists, core principles
|
||||
- **Technical Decisions** - Architecture choices with rationale
|
||||
- **Development Standards** - Code style, testing requirements, review process
|
||||
- **Quality Standards** - Performance, security, reliability requirements
|
||||
- **Governance** - How decisions are made
|
||||
|
||||
**Use `/speckit.constitution` command:**
|
||||
```
|
||||
After generating initial constitution, user can run:
|
||||
> /speckit.constitution
|
||||
|
||||
To refine and update the constitution interactively
|
||||
```
|
||||
|
||||
See [operations/generate-constitution.md](operations/generate-constitution.md)
|
||||
|
||||
### Step 3: Generate Specifications
|
||||
|
||||
Transform `docs/reverse-engineering/functional-specification.md` into individual feature specs in `specs/FEATURE-ID/`:
|
||||
|
||||
**Recommended:** Use the Task tool with `subagent_type=stackshift:technical-writer` for efficient, parallel spec generation.
|
||||
|
||||
**Directory Structure (per GitHub Spec Kit conventions):**
|
||||
|
||||
Each feature gets its own directory:
|
||||
```
|
||||
specs/001-user-authentication/
|
||||
├── spec.md # Feature specification
|
||||
└── plan.md # Implementation plan
|
||||
```
|
||||
|
||||
**spec.md format:**
|
||||
|
||||
```markdown
|
||||
# Feature: User Authentication
|
||||
|
||||
## Status
|
||||
⚠️ **PARTIAL** - Backend complete, frontend missing login UI
|
||||
|
||||
## Overview
|
||||
[Description of what this feature does]
|
||||
|
||||
## User Stories
|
||||
- As a user, I want to register an account so that I can save my data
|
||||
- As a user, I want to log in so that I can access my dashboard
|
||||
|
||||
## Acceptance Criteria
|
||||
- [ ] User can register with email and password
|
||||
- [x] User can log in with credentials
|
||||
- [ ] User can reset forgotten password
|
||||
- [x] JWT tokens issued on successful login
|
||||
|
||||
## Technical Requirements
|
||||
- Authentication method: JWT
|
||||
- Password hashing: bcrypt
|
||||
- Session duration: 24 hours
|
||||
- API endpoints:
|
||||
- POST /api/auth/register
|
||||
- POST /api/auth/login
|
||||
- POST /api/auth/reset-password
|
||||
|
||||
## Implementation Status
|
||||
**Completed:**
|
||||
- ✅ Backend API endpoints (all 3)
|
||||
- ✅ Database user model
|
||||
- ✅ JWT token generation
|
||||
|
||||
**Missing:**
|
||||
- ❌ Frontend login page
|
||||
- ❌ Frontend registration page
|
||||
- ❌ Password reset UI
|
||||
- ❌ Token refresh mechanism
|
||||
|
||||
## Dependencies
|
||||
None
|
||||
|
||||
## Related Specifications
|
||||
- user-profile.md (depends on authentication)
|
||||
- authorization.md (extends authentication)
|
||||
```
|
||||
|
||||
**Use `/speckit.specify` command:**
|
||||
```
|
||||
After generating initial specs, user can run:
|
||||
> /speckit.specify
|
||||
|
||||
To create additional specifications or refine existing ones
|
||||
```
|
||||
|
||||
See [operations/generate-specifications.md](operations/generate-specifications.md)
|
||||
|
||||
### Step 4: Generate Implementation Plans
|
||||
|
||||
For each **PARTIAL** or **MISSING** feature, create `plan.md` in the feature's directory:
|
||||
|
||||
**Location:** `specs/FEATURE-ID/plan.md`
|
||||
|
||||
**Format:**
|
||||
|
||||
```markdown
|
||||
# Implementation Plan: User Authentication Frontend
|
||||
|
||||
## Goal
|
||||
Complete the frontend UI for user authentication (login, registration, password reset)
|
||||
|
||||
## Current State
|
||||
- Backend API fully functional
|
||||
- No frontend UI components exist
|
||||
- User lands on placeholder page
|
||||
|
||||
## Target State
|
||||
- Complete login page with form validation
|
||||
- Registration page with email verification
|
||||
- Password reset flow (email + new password)
|
||||
- Responsive design for mobile/desktop
|
||||
|
||||
## Technical Approach
|
||||
1. Create React components using existing UI library
|
||||
2. Integrate with backend API endpoints
|
||||
3. Add form validation with Zod
|
||||
4. Implement JWT token storage (localStorage)
|
||||
5. Add route protection for authenticated pages
|
||||
|
||||
## Tasks
|
||||
- [ ] Create LoginPage component
|
||||
- [ ] Create RegistrationPage component
|
||||
- [ ] Create PasswordResetPage component
|
||||
- [ ] Add form validation
|
||||
- [ ] Integrate with API endpoints
|
||||
- [ ] Add loading and error states
|
||||
- [ ] Write component tests
|
||||
- [ ] Update routing configuration
|
||||
|
||||
## Risks & Mitigations
|
||||
- Risk: Token storage in localStorage (XSS vulnerability)
|
||||
- Mitigation: Consider httpOnly cookies instead
|
||||
- Risk: No rate limiting on frontend
|
||||
- Mitigation: Add rate limiting to API endpoints
|
||||
|
||||
## Testing Strategy
|
||||
- Unit tests for form validation logic
|
||||
- Integration tests for API calls
|
||||
- E2E tests for complete auth flow
|
||||
|
||||
## Success Criteria
|
||||
- All acceptance criteria from specification met
|
||||
- No security vulnerabilities
|
||||
- Pass all tests
|
||||
- UI matches design system
|
||||
```
|
||||
|
||||
**Use `/speckit.plan` command:**
|
||||
```
|
||||
After generating initial plans, user can run:
|
||||
> /speckit.plan
|
||||
|
||||
To create or refine implementation plans
|
||||
```
|
||||
|
||||
See [operations/generate-plans.md](operations/generate-plans.md)
|
||||
|
||||
### Step 5: Mark Implementation Status
|
||||
|
||||
In each specification, clearly mark what's implemented vs missing:
|
||||
|
||||
- ✅ **COMPLETE** - Fully implemented and tested
|
||||
- ⚠️ **PARTIAL** - Partially implemented (note what exists vs what's missing)
|
||||
- ❌ **MISSING** - Not started
|
||||
|
||||
This allows `/speckit.analyze` to verify consistency.
|
||||
|
||||
---
|
||||
|
||||
## GitHub Spec Kit Slash Commands
|
||||
|
||||
After setting up specs, these commands become available:
|
||||
|
||||
### Validation & Analysis
|
||||
|
||||
```bash
|
||||
# Check consistency between specs and implementation
|
||||
> /speckit.analyze
|
||||
|
||||
# Identifies:
|
||||
# - Specs marked COMPLETE but implementation missing
|
||||
# - Implementation exists but not in spec
|
||||
# - Inconsistencies between related specs
|
||||
```
|
||||
|
||||
### Implementation
|
||||
|
||||
```bash
|
||||
# Generate tasks from implementation plan
|
||||
> /speckit.tasks
|
||||
|
||||
# Implement a specific feature
|
||||
> /speckit.implement <specification-name>
|
||||
|
||||
# Runs through implementation plan step-by-step
|
||||
# Updates implementation status as it progresses
|
||||
```
|
||||
|
||||
### Clarification
|
||||
|
||||
```bash
|
||||
# Resolve underspecified areas
|
||||
> /speckit.clarify
|
||||
|
||||
# Interactive Q&A to fill in missing details
|
||||
# Similar to our complete-spec skill
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Output Structure
|
||||
|
||||
After this skill completes:
|
||||
|
||||
```
|
||||
.specify/
|
||||
├── memory/
|
||||
│ └── constitution.md # Project principles
|
||||
├── templates/
|
||||
└── scripts/
|
||||
|
||||
specs/ # Feature directories
|
||||
├── 001-user-authentication/
|
||||
│ ├── spec.md # ⚠️ PARTIAL
|
||||
│ └── plan.md # Implementation plan
|
||||
├── 002-fish-management/
|
||||
│ ├── spec.md # ⚠️ PARTIAL
|
||||
│ └── plan.md
|
||||
├── 003-analytics-dashboard/
|
||||
│ ├── spec.md # ❌ MISSING
|
||||
│ └── plan.md
|
||||
└── 004-photo-upload/
|
||||
├── spec.md # ⚠️ PARTIAL
|
||||
└── plan.md
|
||||
|
||||
docs/reverse-engineering/ # Keep original docs for reference
|
||||
├── functional-specification.md
|
||||
├── data-architecture.md
|
||||
└── ...
|
||||
```
|
||||
|
||||
### For Greenfield Separate Directory
|
||||
|
||||
If `greenfield_location` is an absolute path (e.g., `~/git/my-new-app`):
|
||||
|
||||
**After Gear 3, .specify/ exists in BOTH locations:**
|
||||
|
||||
**Original repo:**
|
||||
```
|
||||
~/git/my-app/
|
||||
├── [original code]
|
||||
├── .specify/ # Created here first
|
||||
└── docs/
|
||||
```
|
||||
|
||||
**New repo (created and initialized):**
|
||||
```
|
||||
~/git/my-new-app/
|
||||
├── .specify/ # COPIED from original repo
|
||||
├── README.md
|
||||
└── .gitignore
|
||||
```
|
||||
|
||||
**Why copy?**
|
||||
- New repo needs specs for `/speckit.*` commands
|
||||
- New repo is self-contained and spec-driven
|
||||
- Can develop independently going forward
|
||||
- Original repo keeps specs for reference
|
||||
|
||||
---
|
||||
|
||||
## Integration with Original Toolkit
|
||||
|
||||
**Reverse-Engineered Docs → Spec Kit Artifacts:**
|
||||
|
||||
| Original Doc | Spec Kit Artifact | Location |
|
||||
|-------------|------------------|----------|
|
||||
| functional-specification.md | constitution.md | `.specify/memory/` |
|
||||
| functional-specification.md | Individual feature specs | `specs/` |
|
||||
| data-architecture.md | Technical details in specs | Embedded in specifications |
|
||||
| operations-guide.md | Operational notes in constitution | `.specify/memory/constitution.md` |
|
||||
| technical-debt-analysis.md | Implementation plans | `specs/` |
|
||||
|
||||
**Keep both:**
|
||||
- `docs/reverse-engineering/` - Comprehensive reference docs
|
||||
- `.specify/memory/` - Spec Kit format for `/speckit` commands
|
||||
|
||||
---
|
||||
|
||||
## Step 4: Generate Plans (Optional - Thoroughness Level 2+)
|
||||
|
||||
**If user selected Option 2 or 3**, automatically generate implementation plans for all PARTIAL/MISSING features.
|
||||
|
||||
### Process
|
||||
|
||||
1. **Scan specs directory**:
|
||||
```bash
|
||||
find specs -name "spec.md" -type f | sort
|
||||
```
|
||||
|
||||
2. **Identify incomplete features**:
|
||||
- Parse status from each spec.md
|
||||
- Filter for ⚠️ PARTIAL and ❌ MISSING
|
||||
- Skip ✅ COMPLETE features (no plan needed)
|
||||
|
||||
3. **Generate plans in parallel** (5 at a time):
|
||||
```javascript
|
||||
// For each PARTIAL/MISSING feature
|
||||
Task({
|
||||
subagent_type: 'general-purpose',
|
||||
model: 'sonnet',
|
||||
description: `Create plan for ${featureName}`,
|
||||
prompt: `
|
||||
Read: specs/${featureId}/spec.md
|
||||
|
||||
Generate implementation plan following /speckit.plan template:
|
||||
- Assess current state (what exists vs missing)
|
||||
- Define target state (all acceptance criteria)
|
||||
- Determine technical approach
|
||||
- Break into implementation phases
|
||||
- Identify risks and mitigations
|
||||
- Define success criteria
|
||||
|
||||
Save to: specs/${featureId}/plan.md
|
||||
|
||||
Target: 300-500 lines, detailed but not prescriptive
|
||||
`
|
||||
});
|
||||
```
|
||||
|
||||
4. **Verify coverage**:
|
||||
- Check every PARTIAL/MISSING spec has plan.md
|
||||
- Report summary (e.g., "8 plans generated for 8 incomplete features")
|
||||
|
||||
---
|
||||
|
||||
## Step 5: Generate Tasks (Optional - Thoroughness Level 3 Only)
|
||||
|
||||
**If user selected Option 3**, automatically generate comprehensive task breakdowns for all plans.
|
||||
|
||||
### Process
|
||||
|
||||
1. **Scan for plans**:
|
||||
```bash
|
||||
find specs -name "plan.md" -type f | sort
|
||||
```
|
||||
|
||||
2. **Generate tasks in parallel** (3 at a time - slower due to length):
|
||||
```javascript
|
||||
// For each plan
|
||||
Task({
|
||||
subagent_type: 'general-purpose',
|
||||
model: 'sonnet',
|
||||
description: `Create tasks for ${featureName}`,
|
||||
prompt: `
|
||||
Read: specs/${featureId}/spec.md
|
||||
Read: specs/${featureId}/plan.md
|
||||
|
||||
Generate COMPREHENSIVE task breakdown:
|
||||
- Break into 5-10 logical phases
|
||||
- Each task has: status, file path, acceptance criteria, code examples
|
||||
- Include Testing phase (unit, integration, E2E)
|
||||
- Include Documentation phase
|
||||
- Include Edge Cases section
|
||||
- Include Dependencies section
|
||||
- Include Acceptance Checklist
|
||||
- Include Priority Actions
|
||||
|
||||
Target: 300-500 lines (be thorough!)
|
||||
|
||||
Save to: specs/${featureId}/tasks.md
|
||||
`
|
||||
});
|
||||
```
|
||||
|
||||
3. **Verify quality**:
|
||||
- Check each tasks.md is > 200 lines
|
||||
- Flag if too short (< 200 lines)
|
||||
- Report summary (e.g., "8 task files generated, avg 427 lines")
|
||||
|
||||
---
|
||||
|
||||
## Configuration
|
||||
|
||||
**In .stackshift-state.json:**
|
||||
|
||||
```json
|
||||
{
|
||||
"config": {
|
||||
"gear3_thoroughness": "specs+plans+tasks", // or "specs" or "specs+plans"
|
||||
"plan_parallel_limit": 5,
|
||||
"task_parallel_limit": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Or ask user interactively if not set.**
|
||||
|
||||
---
|
||||
|
||||
## Success Criteria
|
||||
|
||||
After running this skill, you should have:
|
||||
|
||||
**Thoroughness Level 1 (Specs Only):**
|
||||
- ✅ `.specify/` directory initialized
|
||||
- ✅ `constitution.md` created with project principles
|
||||
- ✅ Individual feature specifications in `specs/`
|
||||
- ✅ Implementation status clearly marked (✅/⚠️/❌)
|
||||
- ✅ `/speckit.*` slash commands available
|
||||
|
||||
**Thoroughness Level 2 (Specs + Plans):**
|
||||
- ✅ Everything from Level 1
|
||||
- ✅ `plan.md` for every PARTIAL/MISSING feature
|
||||
- ✅ 100% plan coverage for incomplete features
|
||||
- ✅ Ready for manual task breakdown or `/speckit.tasks`
|
||||
|
||||
**Thoroughness Level 3 (Specs + Plans + Tasks):**
|
||||
- ✅ Everything from Level 2
|
||||
- ✅ `tasks.md` for every planned feature
|
||||
- ✅ Comprehensive task lists (300-500 lines each)
|
||||
- ✅ Complete roadmap ready for implementation
|
||||
- ✅ No additional planning needed
|
||||
|
||||
---
|
||||
|
||||
## Next Step
|
||||
|
||||
Once specifications are created in Spec Kit format, proceed to:
|
||||
|
||||
**Step 4: Gap Analysis** - Use `/speckit.analyze` to identify inconsistencies and the gap-analysis skill to create prioritized implementation plan.
|
||||
|
||||
---
|
||||
|
||||
## Example Workflow
|
||||
|
||||
```bash
|
||||
# This skill runs
|
||||
1. specify init my-app
|
||||
2. Generate constitution.md from functional-specification.md
|
||||
3. Create individual feature specs from functional requirements
|
||||
4. Mark implementation status (✅/⚠️/❌)
|
||||
5. Generate implementation plans for gaps
|
||||
|
||||
# User can then run
|
||||
> /speckit.analyze
|
||||
# Shows: "5 PARTIAL features, 3 MISSING features, 2 inconsistencies"
|
||||
|
||||
> /speckit.implement user-authentication
|
||||
# Walks through implementation plan step-by-step
|
||||
|
||||
> /speckit.specify
|
||||
# Add new features as needed
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Technical Notes
|
||||
|
||||
- Spec Kit uses `.specify/` directory (not `specs/`)
|
||||
- Specifications are markdown files, not JSON/YAML
|
||||
- Implementation status uses emoji markers: ✅ ⚠️ ❌
|
||||
- `/speckit` commands are slash commands in Claude Code, not CLI
|
||||
- Constitution is a living document, update as project evolves
|
||||
- Keep reverse-engineering docs as comprehensive reference
|
||||
- Use `stackshift:technical-writer` agent for efficient parallel spec generation
|
||||
- Always use `--ai claude` flag with `specify init` for non-interactive mode
|
||||
|
||||
---
|
||||
|
||||
**Remember:** This integrates your reverse-engineered codebase with GitHub Spec Kit, enabling the full `/speckit.*` workflow for ongoing development.
|
||||
Reference in New Issue
Block a user