lean-spec 0.2.5-dev.20251124070920 → 0.2.5-dev.20251125010225
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-LV7XEQ4D.js → chunk-RTEGSMVL.js} +272 -46
- package/dist/chunk-RTEGSMVL.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/mcp-server.js +1 -1
- package/package.json +1 -2
- package/templates/detailed/AGENTS.md +113 -0
- package/templates/detailed/README.md +28 -0
- package/templates/detailed/files/DESIGN.md +43 -0
- package/templates/detailed/files/PLAN.md +59 -0
- package/templates/detailed/files/README.md +30 -0
- package/templates/detailed/files/TEST.md +71 -0
- package/templates/standard/AGENTS.md +113 -0
- package/templates/standard/README.md +4 -2
- package/dist/chunk-LV7XEQ4D.js.map +0 -1
- package/templates/_shared/agents-components/core-rules-base-additions.md +0 -4
- package/templates/_shared/agents-components/core-rules-enterprise-additions.md +0 -4
- package/templates/_shared/agents-components/core-rules-shared.md +0 -1
- package/templates/_shared/agents-components/discovery-commands-enterprise-additions.md +0 -6
- package/templates/_shared/agents-components/discovery-commands-minimal-additions.md +0 -0
- package/templates/_shared/agents-components/discovery-commands-shared.md +0 -8
- package/templates/_shared/agents-components/discovery-commands-standard-additions.md +0 -3
- package/templates/_shared/agents-components/enterprise-approval.md +0 -12
- package/templates/_shared/agents-components/enterprise-compliance.md +0 -12
- package/templates/_shared/agents-components/enterprise-when-required.md +0 -13
- package/templates/_shared/agents-components/essential-commands-enterprise-additions.md +0 -29
- package/templates/_shared/agents-components/essential-commands-minimal-additions.md +0 -1
- package/templates/_shared/agents-components/essential-commands-shared.md +0 -15
- package/templates/_shared/agents-components/essential-commands-standard-additions.md +0 -18
- package/templates/_shared/agents-components/frontmatter-enterprise.md +0 -33
- package/templates/_shared/agents-components/frontmatter-minimal.md +0 -18
- package/templates/_shared/agents-components/frontmatter-standard.md +0 -23
- package/templates/_shared/agents-components/quality-standards-enterprise-additions.md +0 -4
- package/templates/_shared/agents-components/quality-standards-minimal-additions.md +0 -3
- package/templates/_shared/agents-components/quality-standards-shared.md +0 -6
- package/templates/_shared/agents-components/status-update-triggers.md +0 -14
- package/templates/_shared/agents-components/when-to-use-enterprise.md +0 -11
- package/templates/_shared/agents-components/when-to-use-minimal.md +0 -9
- package/templates/_shared/agents-components/when-to-use-standard.md +0 -9
- package/templates/_shared/agents-components/workflow-enterprise.md +0 -13
- package/templates/_shared/agents-components/workflow-standard-detailed.md +0 -12
- package/templates/_shared/agents-components/workflow-standard.md +0 -10
- package/templates/_shared/agents-template.hbs +0 -43
- package/templates/enterprise/README.md +0 -25
- package/templates/enterprise/agents-config.json +0 -16
- package/templates/enterprise/files/AGENTS.md +0 -198
- package/templates/enterprise/spec-template.md +0 -80
- package/templates/minimal/README.md +0 -18
- package/templates/minimal/agents-config.json +0 -13
- package/templates/minimal/config.json +0 -15
- package/templates/minimal/files/AGENTS.md +0 -118
- package/templates/minimal/spec-template.md +0 -25
- package/templates/standard/agents-config.json +0 -13
- package/templates/standard/files/AGENTS.md +0 -144
- /package/templates/{enterprise → detailed}/config.json +0 -0
- /package/templates/standard/{spec-template.md → files/README.md} +0 -0
package/dist/cli.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { analyzeCommand, archiveCommand, backfillCommand, boardCommand, checkCommand, compactCommand, createCommand, depsCommand, examplesCommand, filesCommand, ganttCommand, initCommand, linkCommand, listCommand, mcpCommand, migrateCommand, openCommand, searchCommand, splitCommand, statsCommand, templatesCommand, timelineCommand, tokensCommand, uiCommand, unlinkCommand, updateCommand, validateCommand, viewCommand } from './chunk-
|
|
1
|
+
import { analyzeCommand, archiveCommand, backfillCommand, boardCommand, checkCommand, compactCommand, createCommand, depsCommand, examplesCommand, filesCommand, ganttCommand, initCommand, linkCommand, listCommand, mcpCommand, migrateCommand, openCommand, searchCommand, splitCommand, statsCommand, templatesCommand, timelineCommand, tokensCommand, uiCommand, unlinkCommand, updateCommand, validateCommand, viewCommand } from './chunk-RTEGSMVL.js';
|
|
2
2
|
import './chunk-LVD7ZAVZ.js';
|
|
3
3
|
import { Command } from 'commander';
|
|
4
4
|
import { readFileSync } from 'fs';
|
package/dist/mcp-server.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lean-spec",
|
|
3
|
-
"version": "0.2.5-dev.
|
|
3
|
+
"version": "0.2.5-dev.20251125010225",
|
|
4
4
|
"description": "Specification-driven development made simple",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -48,7 +48,6 @@
|
|
|
48
48
|
"commander": "^14.0.2",
|
|
49
49
|
"dayjs": "^1.11.19",
|
|
50
50
|
"gray-matter": "^4.0.3",
|
|
51
|
-
"handlebars": "^4.7.8",
|
|
52
51
|
"ink": "^6.4.0",
|
|
53
52
|
"ink-gradient": "^3.0.0",
|
|
54
53
|
"ink-progress-bar": "^3.0.0",
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# AI Agent Instructions
|
|
2
|
+
|
|
3
|
+
## Project: {project_name}
|
|
4
|
+
|
|
5
|
+
Lightweight spec methodology for AI-powered development.
|
|
6
|
+
|
|
7
|
+
## Core Rules
|
|
8
|
+
|
|
9
|
+
1. **Read README.md first** - Understand project context
|
|
10
|
+
2. **Check specs/** - Review existing specs before starting
|
|
11
|
+
3. **Use `lean-spec --help`** - When unsure about commands, check the built-in help
|
|
12
|
+
4. **Follow LeanSpec principles** - Clarity over documentation
|
|
13
|
+
5. **Keep it minimal** - If it doesn't add clarity, cut it
|
|
14
|
+
6. **NEVER manually edit system-managed frontmatter** - Fields like `status`, `priority`, `tags`, `assignee`, `transitions`, `created_at`, `updated_at`, `completed_at`, `depends_on`, `related` are system-managed. Always use `lean-spec update`, `lean-spec link`, `lean-spec unlink`, or `lean-spec create` commands. Manual edits will cause metadata corruption and tracking issues.
|
|
15
|
+
7. **Never use nested code blocks** - Markdown doesn't support code blocks within code blocks. If you need to show code examples in documentation, use indentation or describe the structure instead of nesting backticks.
|
|
16
|
+
|
|
17
|
+
## When to Use Specs
|
|
18
|
+
|
|
19
|
+
Write a spec for:
|
|
20
|
+
- Features affecting multiple parts of the system
|
|
21
|
+
- Breaking changes or significant refactors
|
|
22
|
+
- Design decisions needing team alignment
|
|
23
|
+
|
|
24
|
+
Skip specs for:
|
|
25
|
+
- Bug fixes
|
|
26
|
+
- Trivial changes
|
|
27
|
+
- Self-explanatory refactors
|
|
28
|
+
|
|
29
|
+
## Essential Commands
|
|
30
|
+
|
|
31
|
+
**Quick Reference** (for full details, see `lean-spec --help`):
|
|
32
|
+
|
|
33
|
+
**Discovery:**
|
|
34
|
+
- `lean-spec list` - See all specs
|
|
35
|
+
- `lean-spec search "<query>"` - Find relevant specs
|
|
36
|
+
|
|
37
|
+
**Working with specs:**
|
|
38
|
+
- `lean-spec create <name>` - Create new spec
|
|
39
|
+
- `lean-spec update <spec> --status <status>` - Update status (REQUIRED - never edit frontmatter manually)
|
|
40
|
+
- `lean-spec update <spec> --priority <priority>` - Update priority
|
|
41
|
+
- `lean-spec deps <spec>` - Show dependency graph
|
|
42
|
+
- `lean-spec tokens <spec>` - Count tokens for context management
|
|
43
|
+
|
|
44
|
+
**Project overview:**
|
|
45
|
+
- `lean-spec board` - Kanban view with project health
|
|
46
|
+
- `lean-spec stats` - Quick project metrics
|
|
47
|
+
|
|
48
|
+
**When in doubt:** Run `lean-spec --help` or `lean-spec <command> --help` to discover commands.
|
|
49
|
+
|
|
50
|
+
## Spec Relationships
|
|
51
|
+
|
|
52
|
+
LeanSpec has two types of relationships:
|
|
53
|
+
|
|
54
|
+
### `related` - Bidirectional Soft Reference
|
|
55
|
+
Informational relationship between specs. Automatically shown from both sides.
|
|
56
|
+
|
|
57
|
+
**Use when:** Specs cover related topics, work is coordinated but not blocking.
|
|
58
|
+
|
|
59
|
+
### `depends_on` - Directional Blocking Dependency
|
|
60
|
+
Hard dependency - spec cannot start until dependencies complete.
|
|
61
|
+
|
|
62
|
+
**Use when:** Spec truly cannot start until another completes, work order matters.
|
|
63
|
+
|
|
64
|
+
**Best Practice:** Use `related` by default. Reserve `depends_on` for true blocking dependencies.
|
|
65
|
+
|
|
66
|
+
## SDD Workflow
|
|
67
|
+
|
|
68
|
+
1. **Discover** - Check existing specs with `lean-spec list`
|
|
69
|
+
2. **Plan** - Create spec with `lean-spec create <name>` (status: `planned`)
|
|
70
|
+
3. **Start Work** - Run `lean-spec update <spec> --status in-progress` before implementing
|
|
71
|
+
4. **Implement** - Write code/docs, keep spec in sync as you learn
|
|
72
|
+
5. **Complete** - Run `lean-spec update <spec> --status complete` after implementation done
|
|
73
|
+
6. **Document** - Report progress and document changes into the spec
|
|
74
|
+
|
|
75
|
+
**CRITICAL - What "Work" Means:**
|
|
76
|
+
- ❌ **NOT**: Creating/writing the spec document itself
|
|
77
|
+
- ✅ **YES**: Implementing what the spec describes (code, docs, features, etc.)
|
|
78
|
+
|
|
79
|
+
**Frontmatter Editing Rules:**
|
|
80
|
+
- **NEVER manually edit**: `status`, `priority`, `tags`, `assignee`, `transitions`, timestamps, `depends_on`, `related`
|
|
81
|
+
- **Use CLI commands**: `lean-spec update`, `lean-spec link`, `lean-spec unlink`
|
|
82
|
+
|
|
83
|
+
**Note on Archiving**: Archive specs when they're no longer actively referenced (weeks/months after completion), not immediately. Use `lean-spec archive <spec>` to move old/stale specs to `archived/` directory.
|
|
84
|
+
|
|
85
|
+
## Quality Standards
|
|
86
|
+
|
|
87
|
+
- Code is clear and maintainable
|
|
88
|
+
- Tests cover critical paths
|
|
89
|
+
- Specs stay in sync with implementation
|
|
90
|
+
- **Status tracking is mandatory:**
|
|
91
|
+
- Specs start as `planned` after creation
|
|
92
|
+
- Mark `in-progress` BEFORE starting implementation work
|
|
93
|
+
- Mark `complete` AFTER implementation is finished
|
|
94
|
+
- **Remember**: Status tracks implementation, not spec document completion
|
|
95
|
+
- Never leave specs with stale status
|
|
96
|
+
|
|
97
|
+
## Spec Complexity Guidelines
|
|
98
|
+
|
|
99
|
+
**Token Thresholds:**
|
|
100
|
+
- **<2,000 tokens**: ✅ Optimal
|
|
101
|
+
- **2,000-3,500 tokens**: ✅ Good
|
|
102
|
+
- **3,500-5,000 tokens**: ⚠️ Warning - Consider splitting
|
|
103
|
+
- **>5,000 tokens**: 🔴 Should split
|
|
104
|
+
|
|
105
|
+
**Check with:** `lean-spec tokens <spec>`
|
|
106
|
+
|
|
107
|
+
**When to split:** >3,500 tokens, multiple concerns, takes >10 min to read
|
|
108
|
+
|
|
109
|
+
**How to split:** Use sub-specs or split into related specs with `lean-spec link --related`
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
**Remember**: LeanSpec is a mindset, not a rulebook. When in doubt, keep it simple and use `lean-spec --help` to discover features as needed.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Detailed Template
|
|
2
|
+
|
|
3
|
+
For complex specs that benefit from structured sub-specs. Demonstrates how to manage token limits.
|
|
4
|
+
|
|
5
|
+
## What's Included
|
|
6
|
+
|
|
7
|
+
- **AGENTS.md** - Same AI agent instructions as standard template
|
|
8
|
+
- **Sub-spec structure** - README.md + DESIGN.md + PLAN.md + TEST.md
|
|
9
|
+
- Demonstrates splitting specs to stay under token limits
|
|
10
|
+
- Example of real-world sub-spec organization
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- Complex features with lots of detail
|
|
15
|
+
- Specs approaching 3,500+ tokens
|
|
16
|
+
- Need clear separation of concerns (design, plan, test)
|
|
17
|
+
- Large teams with multiple reviewers
|
|
18
|
+
|
|
19
|
+
## Philosophy
|
|
20
|
+
|
|
21
|
+
Keep it lean, but organized. Use sub-specs to manage complexity without overwhelming context. Each file stays focused and under token limits.
|
|
22
|
+
|
|
23
|
+
## Next Steps
|
|
24
|
+
|
|
25
|
+
1. Customize AGENTS.md for your project
|
|
26
|
+
2. Create your first spec: `lean-spec create my-feature`
|
|
27
|
+
3. When a spec grows large, split sections into sub-spec files
|
|
28
|
+
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Design: {name}
|
|
2
|
+
|
|
3
|
+
> Part of [{name}](README.md)
|
|
4
|
+
|
|
5
|
+
## Architecture
|
|
6
|
+
|
|
7
|
+
<!-- High-level system design, components, interactions -->
|
|
8
|
+
|
|
9
|
+
## Technical Approach
|
|
10
|
+
|
|
11
|
+
<!-- Specific technologies, patterns, frameworks -->
|
|
12
|
+
|
|
13
|
+
## Design Decisions
|
|
14
|
+
|
|
15
|
+
<!-- Key decisions and rationale -->
|
|
16
|
+
|
|
17
|
+
### Decision 1
|
|
18
|
+
|
|
19
|
+
**Context**: <!-- What problem does this solve? -->
|
|
20
|
+
|
|
21
|
+
**Decision**: <!-- What did we choose? -->
|
|
22
|
+
|
|
23
|
+
**Rationale**: <!-- Why this approach? -->
|
|
24
|
+
|
|
25
|
+
**Trade-offs**: <!-- What are we giving up? -->
|
|
26
|
+
|
|
27
|
+
## Dependencies
|
|
28
|
+
|
|
29
|
+
<!-- What does this depend on? What depends on this? -->
|
|
30
|
+
|
|
31
|
+
### System Dependencies
|
|
32
|
+
-
|
|
33
|
+
|
|
34
|
+
### Team Dependencies
|
|
35
|
+
-
|
|
36
|
+
|
|
37
|
+
## Security & Compliance
|
|
38
|
+
|
|
39
|
+
<!-- Security implications, compliance requirements -->
|
|
40
|
+
|
|
41
|
+
- [ ] Handles sensitive data (PII, credentials, etc.)
|
|
42
|
+
- [ ] Security review completed
|
|
43
|
+
- [ ] Compliance requirements addressed
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Plan: {name}
|
|
2
|
+
|
|
3
|
+
> Part of [{name}](README.md)
|
|
4
|
+
|
|
5
|
+
## Implementation Phases
|
|
6
|
+
|
|
7
|
+
### Phase 1: [Name]
|
|
8
|
+
|
|
9
|
+
**Goal**: <!-- What does this phase achieve? -->
|
|
10
|
+
|
|
11
|
+
**Tasks**:
|
|
12
|
+
- [ ] Task 1
|
|
13
|
+
- [ ] Task 2
|
|
14
|
+
- [ ] Task 3
|
|
15
|
+
|
|
16
|
+
**Dependencies**: <!-- What must be done before this? -->
|
|
17
|
+
|
|
18
|
+
**Success criteria**: <!-- How do we know this is done? -->
|
|
19
|
+
|
|
20
|
+
### Phase 2: [Name]
|
|
21
|
+
|
|
22
|
+
**Goal**: <!-- What does this phase achieve? -->
|
|
23
|
+
|
|
24
|
+
**Tasks**:
|
|
25
|
+
- [ ] Task 1
|
|
26
|
+
- [ ] Task 2
|
|
27
|
+
- [ ] Task 3
|
|
28
|
+
|
|
29
|
+
**Dependencies**: <!-- What must be done before this? -->
|
|
30
|
+
|
|
31
|
+
**Success criteria**: <!-- How do we know this is done? -->
|
|
32
|
+
|
|
33
|
+
## Rollout Strategy
|
|
34
|
+
|
|
35
|
+
<!-- How will this be deployed to production? -->
|
|
36
|
+
|
|
37
|
+
**Staging**:
|
|
38
|
+
-
|
|
39
|
+
|
|
40
|
+
**Production**:
|
|
41
|
+
-
|
|
42
|
+
|
|
43
|
+
**Monitoring**:
|
|
44
|
+
-
|
|
45
|
+
|
|
46
|
+
**Rollback plan**:
|
|
47
|
+
-
|
|
48
|
+
|
|
49
|
+
## Timeline
|
|
50
|
+
|
|
51
|
+
| Phase | Duration | Dependencies |
|
|
52
|
+
|-------|----------|--------------|
|
|
53
|
+
| | | |
|
|
54
|
+
|
|
55
|
+
## Risks
|
|
56
|
+
|
|
57
|
+
| Risk | Impact | Mitigation |
|
|
58
|
+
|------|--------|------------|
|
|
59
|
+
| | | |
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: planned
|
|
3
|
+
created: '{date}'
|
|
4
|
+
tags: []
|
|
5
|
+
priority: medium
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# {name}
|
|
9
|
+
|
|
10
|
+
> **Status**: {status} · **Priority**: {priority} · **Created**: {date}
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
|
|
14
|
+
<!-- What are we solving? Why now? Expected impact? -->
|
|
15
|
+
|
|
16
|
+
## Sub-Specs
|
|
17
|
+
|
|
18
|
+
For detailed information, see:
|
|
19
|
+
|
|
20
|
+
- **[DESIGN.md](DESIGN.md)** - Technical architecture and design decisions
|
|
21
|
+
- **[PLAN.md](PLAN.md)** - Implementation plan and phases
|
|
22
|
+
- **[TEST.md](TEST.md)** - Testing strategy and verification
|
|
23
|
+
|
|
24
|
+
## Quick Summary
|
|
25
|
+
|
|
26
|
+
<!-- Brief summary of the spec (2-3 paragraphs max) -->
|
|
27
|
+
|
|
28
|
+
## Notes
|
|
29
|
+
|
|
30
|
+
<!-- Key decisions, constraints, open questions -->
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Test: {name}
|
|
2
|
+
|
|
3
|
+
> Part of [{name}](README.md)
|
|
4
|
+
|
|
5
|
+
## Testing Strategy
|
|
6
|
+
|
|
7
|
+
<!-- Overall approach to verifying this works -->
|
|
8
|
+
|
|
9
|
+
## Unit Tests
|
|
10
|
+
|
|
11
|
+
<!-- Component-level testing -->
|
|
12
|
+
|
|
13
|
+
**Scope**:
|
|
14
|
+
-
|
|
15
|
+
|
|
16
|
+
**Key test cases**:
|
|
17
|
+
- [ ] Test case 1
|
|
18
|
+
- [ ] Test case 2
|
|
19
|
+
- [ ] Test case 3
|
|
20
|
+
|
|
21
|
+
## Integration Tests
|
|
22
|
+
|
|
23
|
+
<!-- System interaction testing -->
|
|
24
|
+
|
|
25
|
+
**Scope**:
|
|
26
|
+
-
|
|
27
|
+
|
|
28
|
+
**Key test cases**:
|
|
29
|
+
- [ ] Test case 1
|
|
30
|
+
- [ ] Test case 2
|
|
31
|
+
- [ ] Test case 3
|
|
32
|
+
|
|
33
|
+
## Performance Tests
|
|
34
|
+
|
|
35
|
+
<!-- Load, stress, and performance testing -->
|
|
36
|
+
|
|
37
|
+
**Requirements**:
|
|
38
|
+
-
|
|
39
|
+
|
|
40
|
+
**Test scenarios**:
|
|
41
|
+
- [ ] Scenario 1
|
|
42
|
+
- [ ] Scenario 2
|
|
43
|
+
|
|
44
|
+
## Security Tests
|
|
45
|
+
|
|
46
|
+
<!-- Security validation -->
|
|
47
|
+
|
|
48
|
+
**Security checks**:
|
|
49
|
+
- [ ] Authentication/authorization
|
|
50
|
+
- [ ] Input validation
|
|
51
|
+
- [ ] Data encryption
|
|
52
|
+
- [ ] Audit logging
|
|
53
|
+
|
|
54
|
+
## Acceptance Criteria
|
|
55
|
+
|
|
56
|
+
<!-- What must be true for this to be considered complete? -->
|
|
57
|
+
|
|
58
|
+
- [ ] Criterion 1
|
|
59
|
+
- [ ] Criterion 2
|
|
60
|
+
- [ ] Criterion 3
|
|
61
|
+
|
|
62
|
+
## Test Data
|
|
63
|
+
|
|
64
|
+
<!-- What test data is needed? -->
|
|
65
|
+
|
|
66
|
+
## Manual Testing
|
|
67
|
+
|
|
68
|
+
<!-- What requires human verification? -->
|
|
69
|
+
|
|
70
|
+
- [ ] Manual test 1
|
|
71
|
+
- [ ] Manual test 2
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# AI Agent Instructions
|
|
2
|
+
|
|
3
|
+
## Project: {project_name}
|
|
4
|
+
|
|
5
|
+
Lightweight spec methodology for AI-powered development.
|
|
6
|
+
|
|
7
|
+
## Core Rules
|
|
8
|
+
|
|
9
|
+
1. **Read README.md first** - Understand project context
|
|
10
|
+
2. **Check specs/** - Review existing specs before starting
|
|
11
|
+
3. **Use `lean-spec --help`** - When unsure about commands, check the built-in help
|
|
12
|
+
4. **Follow LeanSpec principles** - Clarity over documentation
|
|
13
|
+
5. **Keep it minimal** - If it doesn't add clarity, cut it
|
|
14
|
+
6. **NEVER manually edit system-managed frontmatter** - Fields like `status`, `priority`, `tags`, `assignee`, `transitions`, `created_at`, `updated_at`, `completed_at`, `depends_on`, `related` are system-managed. Always use `lean-spec update`, `lean-spec link`, `lean-spec unlink`, or `lean-spec create` commands. Manual edits will cause metadata corruption and tracking issues.
|
|
15
|
+
7. **Never use nested code blocks** - Markdown doesn't support code blocks within code blocks. If you need to show code examples in documentation, use indentation or describe the structure instead of nesting backticks.
|
|
16
|
+
|
|
17
|
+
## When to Use Specs
|
|
18
|
+
|
|
19
|
+
Write a spec for:
|
|
20
|
+
- Features affecting multiple parts of the system
|
|
21
|
+
- Breaking changes or significant refactors
|
|
22
|
+
- Design decisions needing team alignment
|
|
23
|
+
|
|
24
|
+
Skip specs for:
|
|
25
|
+
- Bug fixes
|
|
26
|
+
- Trivial changes
|
|
27
|
+
- Self-explanatory refactors
|
|
28
|
+
|
|
29
|
+
## Essential Commands
|
|
30
|
+
|
|
31
|
+
**Quick Reference** (for full details, see `lean-spec --help`):
|
|
32
|
+
|
|
33
|
+
**Discovery:**
|
|
34
|
+
- `lean-spec list` - See all specs
|
|
35
|
+
- `lean-spec search "<query>"` - Find relevant specs
|
|
36
|
+
|
|
37
|
+
**Working with specs:**
|
|
38
|
+
- `lean-spec create <name>` - Create new spec
|
|
39
|
+
- `lean-spec update <spec> --status <status>` - Update status (REQUIRED - never edit frontmatter manually)
|
|
40
|
+
- `lean-spec update <spec> --priority <priority>` - Update priority
|
|
41
|
+
- `lean-spec deps <spec>` - Show dependency graph
|
|
42
|
+
- `lean-spec tokens <spec>` - Count tokens for context management
|
|
43
|
+
|
|
44
|
+
**Project overview:**
|
|
45
|
+
- `lean-spec board` - Kanban view with project health
|
|
46
|
+
- `lean-spec stats` - Quick project metrics
|
|
47
|
+
|
|
48
|
+
**When in doubt:** Run `lean-spec --help` or `lean-spec <command> --help` to discover commands.
|
|
49
|
+
|
|
50
|
+
## Spec Relationships
|
|
51
|
+
|
|
52
|
+
LeanSpec has two types of relationships:
|
|
53
|
+
|
|
54
|
+
### `related` - Bidirectional Soft Reference
|
|
55
|
+
Informational relationship between specs. Automatically shown from both sides.
|
|
56
|
+
|
|
57
|
+
**Use when:** Specs cover related topics, work is coordinated but not blocking.
|
|
58
|
+
|
|
59
|
+
### `depends_on` - Directional Blocking Dependency
|
|
60
|
+
Hard dependency - spec cannot start until dependencies complete.
|
|
61
|
+
|
|
62
|
+
**Use when:** Spec truly cannot start until another completes, work order matters.
|
|
63
|
+
|
|
64
|
+
**Best Practice:** Use `related` by default. Reserve `depends_on` for true blocking dependencies.
|
|
65
|
+
|
|
66
|
+
## SDD Workflow
|
|
67
|
+
|
|
68
|
+
1. **Discover** - Check existing specs with `lean-spec list`
|
|
69
|
+
2. **Plan** - Create spec with `lean-spec create <name>` (status: `planned`)
|
|
70
|
+
3. **Start Work** - Run `lean-spec update <spec> --status in-progress` before implementing
|
|
71
|
+
4. **Implement** - Write code/docs, keep spec in sync as you learn
|
|
72
|
+
5. **Complete** - Run `lean-spec update <spec> --status complete` after implementation done
|
|
73
|
+
6. **Document** - Report progress and document changes into the spec
|
|
74
|
+
|
|
75
|
+
**CRITICAL - What "Work" Means:**
|
|
76
|
+
- ❌ **NOT**: Creating/writing the spec document itself
|
|
77
|
+
- ✅ **YES**: Implementing what the spec describes (code, docs, features, etc.)
|
|
78
|
+
|
|
79
|
+
**Frontmatter Editing Rules:**
|
|
80
|
+
- **NEVER manually edit**: `status`, `priority`, `tags`, `assignee`, `transitions`, timestamps, `depends_on`, `related`
|
|
81
|
+
- **Use CLI commands**: `lean-spec update`, `lean-spec link`, `lean-spec unlink`
|
|
82
|
+
|
|
83
|
+
**Note on Archiving**: Archive specs when they're no longer actively referenced (weeks/months after completion), not immediately. Use `lean-spec archive <spec>` to move old/stale specs to `archived/` directory.
|
|
84
|
+
|
|
85
|
+
## Quality Standards
|
|
86
|
+
|
|
87
|
+
- Code is clear and maintainable
|
|
88
|
+
- Tests cover critical paths
|
|
89
|
+
- Specs stay in sync with implementation
|
|
90
|
+
- **Status tracking is mandatory:**
|
|
91
|
+
- Specs start as `planned` after creation
|
|
92
|
+
- Mark `in-progress` BEFORE starting implementation work
|
|
93
|
+
- Mark `complete` AFTER implementation is finished
|
|
94
|
+
- **Remember**: Status tracks implementation, not spec document completion
|
|
95
|
+
- Never leave specs with stale status
|
|
96
|
+
|
|
97
|
+
## Spec Complexity Guidelines
|
|
98
|
+
|
|
99
|
+
**Token Thresholds:**
|
|
100
|
+
- **<2,000 tokens**: ✅ Optimal
|
|
101
|
+
- **2,000-3,500 tokens**: ✅ Good
|
|
102
|
+
- **3,500-5,000 tokens**: ⚠️ Warning - Consider splitting
|
|
103
|
+
- **>5,000 tokens**: 🔴 Should split
|
|
104
|
+
|
|
105
|
+
**Check with:** `lean-spec tokens <spec>`
|
|
106
|
+
|
|
107
|
+
**When to split:** >3,500 tokens, multiple concerns, takes >10 min to read
|
|
108
|
+
|
|
109
|
+
**How to split:** Use sub-specs or split into related specs with `lean-spec link --related`
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
**Remember**: LeanSpec is a mindset, not a rulebook. When in doubt, keep it simple and use `lean-spec --help` to discover features as needed.
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
# Standard Template
|
|
2
2
|
|
|
3
|
-
Recommended for most projects.
|
|
3
|
+
Recommended for most projects. Single-file specs with AI agent instructions.
|
|
4
4
|
|
|
5
5
|
## What's Included
|
|
6
6
|
|
|
7
7
|
- **AGENTS.md** - Instructions for AI coding assistants
|
|
8
|
-
-
|
|
8
|
+
- **Single-file spec template** - All sections in one README.md
|
|
9
9
|
- Opinionated defaults for fast iteration
|
|
10
10
|
|
|
11
11
|
## When to Use
|
|
12
12
|
|
|
13
13
|
- Solo developers or small teams
|
|
14
|
+
- Simple to moderate complexity specs
|
|
14
15
|
- Want AI agent integration
|
|
15
16
|
- Need clear but not heavy-weight process
|
|
16
17
|
|
|
@@ -22,3 +23,4 @@ Keep it lean. Write specs for features that need clarity. Skip them for obvious
|
|
|
22
23
|
|
|
23
24
|
1. Customize AGENTS.md for your project
|
|
24
25
|
2. Create your first spec: `lean-spec create my-feature`
|
|
26
|
+
|