midas-mcp 5.44.5 → 5.44.6
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/.claude/PLUGIN.md +124 -0
- package/.claude/agents/midas-coach.md +108 -0
- package/.claude/agents/midas-reviewer.md +93 -0
- package/.claude/agents/midas-verifier.md +81 -0
- package/.claude/hooks/hooks.json +67 -0
- package/.claude/settings.json +41 -0
- package/.claude/skills/build-debug/SKILL.md +106 -0
- package/.claude/skills/build-implement/SKILL.md +81 -0
- package/.claude/skills/build-rules/SKILL.md +80 -0
- package/.claude/skills/build-test/SKILL.md +89 -0
- package/.claude/skills/horizon-expand/SKILL.md +103 -0
- package/.claude/skills/oneshot-retry/SKILL.md +96 -0
- package/.claude/skills/plan-brainlift/SKILL.md +65 -0
- package/.claude/skills/plan-gameplan/SKILL.md +71 -0
- package/.claude/skills/plan-idea/SKILL.md +51 -0
- package/.claude/skills/plan-prd/SKILL.md +79 -0
- package/.claude/skills/plan-research/SKILL.md +63 -0
- package/.claude/skills/tornado-debug/SKILL.md +128 -0
- package/dist/.claude/PLUGIN.md +124 -0
- package/dist/.claude/agents/midas-coach.md +108 -0
- package/dist/.claude/agents/midas-reviewer.md +93 -0
- package/dist/.claude/agents/midas-verifier.md +81 -0
- package/dist/.claude/hooks/hooks.json +67 -0
- package/dist/.claude/settings.json +41 -0
- package/dist/.claude/skills/build-debug/SKILL.md +106 -0
- package/dist/.claude/skills/build-implement/SKILL.md +81 -0
- package/dist/.claude/skills/build-rules/SKILL.md +80 -0
- package/dist/.claude/skills/build-test/SKILL.md +89 -0
- package/dist/.claude/skills/horizon-expand/SKILL.md +103 -0
- package/dist/.claude/skills/oneshot-retry/SKILL.md +96 -0
- package/dist/.claude/skills/plan-brainlift/SKILL.md +65 -0
- package/dist/.claude/skills/plan-gameplan/SKILL.md +71 -0
- package/dist/.claude/skills/plan-idea/SKILL.md +51 -0
- package/dist/.claude/skills/plan-prd/SKILL.md +79 -0
- package/dist/.claude/skills/plan-research/SKILL.md +63 -0
- package/dist/.claude/skills/tornado-debug/SKILL.md +128 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +56 -2
- package/dist/cli.js.map +1 -1
- package/dist/github-integration.d.ts +37 -0
- package/dist/github-integration.d.ts.map +1 -0
- package/dist/github-integration.js +219 -0
- package/dist/github-integration.js.map +1 -0
- package/dist/phase-detector.d.ts +46 -0
- package/dist/phase-detector.d.ts.map +1 -0
- package/dist/phase-detector.js +251 -0
- package/dist/phase-detector.js.map +1 -0
- package/dist/pilot.d.ts +51 -0
- package/dist/pilot.d.ts.map +1 -1
- package/dist/pilot.js +47 -4
- package/dist/pilot.js.map +1 -1
- package/dist/tools/journal.d.ts +10 -1
- package/dist/tools/journal.d.ts.map +1 -1
- package/dist/tools/journal.js +38 -2
- package/dist/tools/journal.js.map +1 -1
- package/dist/tui-lite.d.ts +23 -0
- package/dist/tui-lite.d.ts.map +1 -0
- package/dist/tui-lite.js +188 -0
- package/dist/tui-lite.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-rules
|
|
3
|
+
description: Read and understand project conventions before coding
|
|
4
|
+
auto_trigger:
|
|
5
|
+
- "start building"
|
|
6
|
+
- "read cursorrules"
|
|
7
|
+
- "understand conventions"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# BUILD: RULES Step
|
|
11
|
+
|
|
12
|
+
Every project has conventions. Reading first prevents "works but doesn't fit" code.
|
|
13
|
+
|
|
14
|
+
## What to Do
|
|
15
|
+
|
|
16
|
+
1. **Read .cursorrules**: Understand project conventions
|
|
17
|
+
2. **Check package.json scripts**: Know how to build, test, lint
|
|
18
|
+
3. **Review existing patterns**: Look at existing code style
|
|
19
|
+
4. **Note constraints**: What tools, versions, patterns are required?
|
|
20
|
+
|
|
21
|
+
## Why This Matters
|
|
22
|
+
|
|
23
|
+
Building without knowing the rules wastes time. You'll write code that technically works but violates project conventions, requiring rewrites.
|
|
24
|
+
|
|
25
|
+
## Create .cursorrules
|
|
26
|
+
|
|
27
|
+
If `.cursorrules` doesn't exist, create it:
|
|
28
|
+
|
|
29
|
+
```markdown
|
|
30
|
+
# Project Rules
|
|
31
|
+
|
|
32
|
+
## Language & Runtime
|
|
33
|
+
- TypeScript with strict mode
|
|
34
|
+
- Node.js 20+
|
|
35
|
+
- ES Modules (type: "module")
|
|
36
|
+
|
|
37
|
+
## Code Style
|
|
38
|
+
- Use explicit return types on exported functions
|
|
39
|
+
- Prefer `type` imports: `import type { X } from 'y'`
|
|
40
|
+
- No `any` - use `unknown` and narrow
|
|
41
|
+
|
|
42
|
+
## File Naming
|
|
43
|
+
- kebab-case for files (my-component.ts)
|
|
44
|
+
- PascalCase for types/interfaces
|
|
45
|
+
- camelCase for functions/variables
|
|
46
|
+
|
|
47
|
+
## Testing
|
|
48
|
+
- Co-locate tests: `foo.ts` → `foo.test.ts`
|
|
49
|
+
- Use descriptive test names
|
|
50
|
+
- Test behavior, not implementation
|
|
51
|
+
|
|
52
|
+
## Git
|
|
53
|
+
- Conventional commits: feat:, fix:, docs:, refactor:
|
|
54
|
+
- Commit before AND after significant changes
|
|
55
|
+
|
|
56
|
+
## What NOT to Do
|
|
57
|
+
- No console.log in production code (use logger)
|
|
58
|
+
- No hardcoded secrets
|
|
59
|
+
- No synchronous file operations in async contexts
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Commands to Run
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Check what scripts exist
|
|
66
|
+
cat package.json | jq '.scripts'
|
|
67
|
+
|
|
68
|
+
# Run build to ensure it works
|
|
69
|
+
npm run build
|
|
70
|
+
|
|
71
|
+
# Run tests to see current state
|
|
72
|
+
npm test
|
|
73
|
+
|
|
74
|
+
# Run lint to see style requirements
|
|
75
|
+
npm run lint
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Next Step
|
|
79
|
+
|
|
80
|
+
Once you understand the rules and `.cursorrules` exists, advance to BUILD:INDEX.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-test
|
|
3
|
+
description: Run and fix tests, add edge cases
|
|
4
|
+
auto_trigger:
|
|
5
|
+
- "run tests"
|
|
6
|
+
- "fix failing tests"
|
|
7
|
+
- "test coverage"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# BUILD: TEST Step
|
|
11
|
+
|
|
12
|
+
Your change might break something unrelated. Full suite catches regressions.
|
|
13
|
+
|
|
14
|
+
## What to Do
|
|
15
|
+
|
|
16
|
+
1. **Run all tests**: Not just the ones you wrote
|
|
17
|
+
2. **Fix any failures**: Your change broke something
|
|
18
|
+
3. **Add edge cases**: What inputs could break this?
|
|
19
|
+
4. **Check coverage**: Are critical paths tested?
|
|
20
|
+
|
|
21
|
+
## Why This Matters
|
|
22
|
+
|
|
23
|
+
A failing test is a gift - it caught a bug before users did. The longer you wait to run tests, the harder it is to find what broke.
|
|
24
|
+
|
|
25
|
+
## Commands
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# Run all tests
|
|
29
|
+
npm test
|
|
30
|
+
|
|
31
|
+
# Run with coverage
|
|
32
|
+
npm test -- --coverage
|
|
33
|
+
|
|
34
|
+
# Run specific test file
|
|
35
|
+
npm test -- path/to/file.test.ts
|
|
36
|
+
|
|
37
|
+
# Run tests in watch mode (during development)
|
|
38
|
+
npm test -- --watch
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Edge Cases Checklist
|
|
42
|
+
|
|
43
|
+
For every function, consider:
|
|
44
|
+
|
|
45
|
+
- [ ] **Empty input**: `[]`, `""`, `null`, `undefined`
|
|
46
|
+
- [ ] **Single item**: Array with one element
|
|
47
|
+
- [ ] **Large input**: Performance with 1000+ items
|
|
48
|
+
- [ ] **Invalid types**: What if someone passes wrong type?
|
|
49
|
+
- [ ] **Boundary values**: 0, -1, MAX_INT, empty string
|
|
50
|
+
- [ ] **Concurrent access**: Race conditions?
|
|
51
|
+
- [ ] **Error states**: Network failure, disk full, permission denied
|
|
52
|
+
|
|
53
|
+
## Example Edge Case Tests
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
describe('parseConfig', () => {
|
|
57
|
+
it('should handle valid config', () => {
|
|
58
|
+
expect(parseConfig({ port: 3000 })).toEqual({ port: 3000 });
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// Edge cases
|
|
62
|
+
it('should handle empty object', () => {
|
|
63
|
+
expect(parseConfig({})).toEqual(DEFAULT_CONFIG);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('should handle null', () => {
|
|
67
|
+
expect(parseConfig(null)).toEqual(DEFAULT_CONFIG);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it('should reject invalid port', () => {
|
|
71
|
+
expect(() => parseConfig({ port: -1 })).toThrow('Invalid port');
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it('should reject port > 65535', () => {
|
|
75
|
+
expect(() => parseConfig({ port: 99999 })).toThrow('Invalid port');
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## When Tests Fail
|
|
81
|
+
|
|
82
|
+
1. **Read the error carefully** - What's expected vs actual?
|
|
83
|
+
2. **Don't change the test first** - The test might be right
|
|
84
|
+
3. **Add a console.log** to see actual values
|
|
85
|
+
4. **Check recent changes** - `git diff` shows what you touched
|
|
86
|
+
|
|
87
|
+
## Next Step
|
|
88
|
+
|
|
89
|
+
When all tests pass, advance to BUILD:DEBUG only if there are issues. Otherwise, move to SHIP:REVIEW.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: horizon-expand
|
|
3
|
+
description: Widen context when AI output doesn't fit the codebase
|
|
4
|
+
auto_trigger:
|
|
5
|
+
- "horizon"
|
|
6
|
+
- "doesn't fit"
|
|
7
|
+
- "wrong pattern"
|
|
8
|
+
- "not how we do it"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Horizon Expansion
|
|
12
|
+
|
|
13
|
+
AI output technically works but doesn't fit your codebase? Widen the context.
|
|
14
|
+
|
|
15
|
+
## The Horizon Formula
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
Wrong Output? → Widen Context → Correct Output
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## When to Use Horizon
|
|
22
|
+
|
|
23
|
+
- AI wrote code that works but uses wrong patterns
|
|
24
|
+
- AI missed existing utilities you already have
|
|
25
|
+
- AI created duplicate functionality
|
|
26
|
+
- AI used different naming conventions
|
|
27
|
+
- AI didn't follow your architecture
|
|
28
|
+
|
|
29
|
+
## How to Expand
|
|
30
|
+
|
|
31
|
+
### 1. Show Related Files
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
Before implementing [feature], read these files to understand our patterns:
|
|
35
|
+
|
|
36
|
+
- src/utils/helpers.ts (reusable utilities we already have)
|
|
37
|
+
- src/types/index.ts (type conventions)
|
|
38
|
+
- src/services/auth.ts (example of how we structure services)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2. Show Examples
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Here's how we implement similar features in this codebase:
|
|
45
|
+
|
|
46
|
+
Example 1 (from src/services/user.ts):
|
|
47
|
+
[paste relevant code section]
|
|
48
|
+
|
|
49
|
+
Example 2 (from src/services/product.ts):
|
|
50
|
+
[paste relevant code section]
|
|
51
|
+
|
|
52
|
+
Please follow these patterns for the new implementation.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3. Specify Constraints
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
When implementing this:
|
|
59
|
+
- Use our existing logger at src/utils/logger.ts, not console.log
|
|
60
|
+
- Follow the Repository pattern we use in src/repositories/
|
|
61
|
+
- Use the existing ErrorHandler class, don't throw raw errors
|
|
62
|
+
- Name files in kebab-case, types in PascalCase
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Horizon Template
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
## Context Files to Read First
|
|
69
|
+
- [file1] - for [pattern/utility]
|
|
70
|
+
- [file2] - for [pattern/utility]
|
|
71
|
+
|
|
72
|
+
## Existing Patterns to Follow
|
|
73
|
+
[paste or describe 1-2 examples from your codebase]
|
|
74
|
+
|
|
75
|
+
## Constraints
|
|
76
|
+
- Use existing [X], don't create new
|
|
77
|
+
- Follow [pattern] as seen in [file]
|
|
78
|
+
- Match naming: [conventions]
|
|
79
|
+
|
|
80
|
+
## Now Implement
|
|
81
|
+
[your actual request]
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Common Horizon Fixes
|
|
85
|
+
|
|
86
|
+
| Problem | Expand With |
|
|
87
|
+
|---------|-------------|
|
|
88
|
+
| Wrong import style | Show tsconfig.json, existing imports |
|
|
89
|
+
| Duplicate utility | Link to existing util file |
|
|
90
|
+
| Wrong architecture | Show 2 similar services as examples |
|
|
91
|
+
| Wrong naming | Show naming conventions doc or examples |
|
|
92
|
+
| Missed types | Show types directory |
|
|
93
|
+
|
|
94
|
+
## Prevention
|
|
95
|
+
|
|
96
|
+
To avoid needing Horizon in the future:
|
|
97
|
+
1. Keep `.cursorrules` updated with conventions
|
|
98
|
+
2. Use `@codebase` or `@folder` references liberally
|
|
99
|
+
3. Start prompts with "Following our existing patterns in [file]..."
|
|
100
|
+
|
|
101
|
+
## Next Step
|
|
102
|
+
|
|
103
|
+
After expanding context, retry your request. The output should now fit your codebase naturally.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oneshot-retry
|
|
3
|
+
description: Construct a perfect retry prompt after an error
|
|
4
|
+
auto_trigger:
|
|
5
|
+
- "oneshot"
|
|
6
|
+
- "retry prompt"
|
|
7
|
+
- "try again with"
|
|
8
|
+
- "that didn't work"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Oneshot Retry
|
|
12
|
+
|
|
13
|
+
First attempt failed? Don't just retry - construct a better prompt.
|
|
14
|
+
|
|
15
|
+
## The Oneshot Formula
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
ONESHOT = ORIGINAL + ERROR + AVOID = WORKS
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Template
|
|
22
|
+
|
|
23
|
+
Copy this exact structure for your retry:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
## Original Request
|
|
27
|
+
[Paste what you originally asked for]
|
|
28
|
+
|
|
29
|
+
## What Happened
|
|
30
|
+
[Paste the exact error or unexpected result]
|
|
31
|
+
|
|
32
|
+
## What to Avoid
|
|
33
|
+
- Don't [specific approach that failed]
|
|
34
|
+
- Don't [another thing that didn't work]
|
|
35
|
+
- Don't [assumption that was wrong]
|
|
36
|
+
|
|
37
|
+
## Additional Context
|
|
38
|
+
[New information you discovered]
|
|
39
|
+
|
|
40
|
+
## Try This Instead
|
|
41
|
+
[Specific alternative approach if you have one]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Example
|
|
45
|
+
|
|
46
|
+
### Bad Retry (Vague)
|
|
47
|
+
> "That didn't work, try again"
|
|
48
|
+
|
|
49
|
+
### Good Retry (Oneshot)
|
|
50
|
+
```
|
|
51
|
+
## Original Request
|
|
52
|
+
Create a function to parse CSV files
|
|
53
|
+
|
|
54
|
+
## What Happened
|
|
55
|
+
Error: Cannot read property 'split' of undefined at line 15
|
|
56
|
+
The function failed when the CSV had empty lines at the end.
|
|
57
|
+
|
|
58
|
+
## What to Avoid
|
|
59
|
+
- Don't assume all lines have content
|
|
60
|
+
- Don't use .split() without null checking
|
|
61
|
+
- Don't process the file line-by-line (memory issues with large files)
|
|
62
|
+
|
|
63
|
+
## Additional Context
|
|
64
|
+
- CSV files can be up to 100MB
|
|
65
|
+
- Empty lines are valid in our format
|
|
66
|
+
- Need to handle quoted fields with commas
|
|
67
|
+
|
|
68
|
+
## Try This Instead
|
|
69
|
+
Use a streaming CSV parser like 'csv-parse' that handles edge cases.
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Why Oneshot Works
|
|
73
|
+
|
|
74
|
+
1. **Context**: AI sees the full picture
|
|
75
|
+
2. **Constraints**: AI knows what NOT to do
|
|
76
|
+
3. **Direction**: AI has a starting point
|
|
77
|
+
4. **Efficiency**: One well-constructed prompt > 5 vague retries
|
|
78
|
+
|
|
79
|
+
## When to Use Oneshot
|
|
80
|
+
|
|
81
|
+
- ❌ First attempt failed
|
|
82
|
+
- ❌ Same error twice
|
|
83
|
+
- ❌ AI made wrong assumptions
|
|
84
|
+
- ❌ Output was close but not quite right
|
|
85
|
+
|
|
86
|
+
## Quick Oneshot Checklist
|
|
87
|
+
|
|
88
|
+
Before sending your retry, ensure you have:
|
|
89
|
+
- [ ] Original request (what you wanted)
|
|
90
|
+
- [ ] Error/result (what happened)
|
|
91
|
+
- [ ] At least 2 "don't do X" constraints
|
|
92
|
+
- [ ] Any new context you discovered
|
|
93
|
+
|
|
94
|
+
## Next Step
|
|
95
|
+
|
|
96
|
+
After successful Oneshot, commit your working code and continue with the next task.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-brainlift
|
|
3
|
+
description: Document your unique insights and mental models
|
|
4
|
+
auto_trigger:
|
|
5
|
+
- "create brainlift"
|
|
6
|
+
- "document context"
|
|
7
|
+
- "what do I know"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PLAN: BRAINLIFT Step
|
|
11
|
+
|
|
12
|
+
Extract what YOU know that the AI doesn't. This is your competitive advantage.
|
|
13
|
+
|
|
14
|
+
## What to Do
|
|
15
|
+
|
|
16
|
+
1. **Domain Knowledge**: What do you know about this problem space?
|
|
17
|
+
2. **User Insights**: What have you learned from real users?
|
|
18
|
+
3. **Technical Constraints**: What limitations affect the solution?
|
|
19
|
+
4. **Past Failures**: What approaches have you tried that didn't work?
|
|
20
|
+
5. **Mental Models**: How do you think about this problem?
|
|
21
|
+
|
|
22
|
+
## Why This Matters
|
|
23
|
+
|
|
24
|
+
AI read the internet. You have specific context it doesn't. The brainlift document becomes context for every future AI session, making suggestions more relevant.
|
|
25
|
+
|
|
26
|
+
## Template
|
|
27
|
+
|
|
28
|
+
Create `docs/brainlift.md`:
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
# Brainlift: [Project Name]
|
|
32
|
+
|
|
33
|
+
## Problem Statement
|
|
34
|
+
[Clear, specific description of the problem]
|
|
35
|
+
|
|
36
|
+
## Target User
|
|
37
|
+
[Specific persona - not "developers" but "solo developers building MVPs"]
|
|
38
|
+
|
|
39
|
+
## Why Now
|
|
40
|
+
[What changed - new API, market shift, personal itch]
|
|
41
|
+
|
|
42
|
+
## Domain Knowledge
|
|
43
|
+
[Industry-specific insights, jargon, constraints]
|
|
44
|
+
|
|
45
|
+
## Technical Context
|
|
46
|
+
- Language: [e.g., TypeScript]
|
|
47
|
+
- Environment: [e.g., Node.js, browser, both]
|
|
48
|
+
- Key Dependencies: [e.g., React, Express]
|
|
49
|
+
- Constraints: [e.g., must work offline, <100ms response]
|
|
50
|
+
|
|
51
|
+
## What I Know That Others Don't
|
|
52
|
+
[Your unique insights - THIS IS THE KEY SECTION]
|
|
53
|
+
- [Insight 1]
|
|
54
|
+
- [Insight 2]
|
|
55
|
+
|
|
56
|
+
## Anti-Patterns to Avoid
|
|
57
|
+
[What NOT to do based on your experience]
|
|
58
|
+
|
|
59
|
+
## Success Criteria
|
|
60
|
+
[How will you know this is working?]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Next Step
|
|
64
|
+
|
|
65
|
+
Once brainlift.md is complete, advance to PLAN:PRD to define requirements.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-gameplan
|
|
3
|
+
description: Break the build into ordered, actionable tasks
|
|
4
|
+
auto_trigger:
|
|
5
|
+
- "create gameplan"
|
|
6
|
+
- "plan the build"
|
|
7
|
+
- "break down tasks"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PLAN: GAMEPLAN Step
|
|
11
|
+
|
|
12
|
+
Sequence work so you're never blocked waiting for yourself.
|
|
13
|
+
|
|
14
|
+
## What to Do
|
|
15
|
+
|
|
16
|
+
1. **Identify Dependencies**: What must be built first?
|
|
17
|
+
2. **Order Tasks**: Sequence by dependency, not preference
|
|
18
|
+
3. **Size Tasks**: Each task completable in one session (2-4 hours max)
|
|
19
|
+
4. **Define Done**: Clear completion criteria for each task
|
|
20
|
+
|
|
21
|
+
## Why This Matters
|
|
22
|
+
|
|
23
|
+
Some things depend on other things. A gameplan prevents the "where was I?" problem and ensures you can measure progress objectively.
|
|
24
|
+
|
|
25
|
+
## Template
|
|
26
|
+
|
|
27
|
+
Create `docs/gameplan.md`:
|
|
28
|
+
|
|
29
|
+
```markdown
|
|
30
|
+
# Gameplan
|
|
31
|
+
|
|
32
|
+
## Tech Stack
|
|
33
|
+
- Runtime: [e.g., Node.js 20]
|
|
34
|
+
- Language: [e.g., TypeScript 5.x]
|
|
35
|
+
- Framework: [e.g., Express, React]
|
|
36
|
+
- Database: [e.g., SQLite, Postgres]
|
|
37
|
+
- Testing: [e.g., Vitest, Jest]
|
|
38
|
+
|
|
39
|
+
## Phase 1: Foundation
|
|
40
|
+
- [ ] Task 1.1: [Description] - **Done when**: [criteria]
|
|
41
|
+
- [ ] Task 1.2: [Description] - **Done when**: [criteria]
|
|
42
|
+
|
|
43
|
+
## Phase 2: Core Features
|
|
44
|
+
- [ ] Task 2.1: [Description] - **Done when**: [criteria]
|
|
45
|
+
- [ ] Task 2.2: [Description] - **Done when**: [criteria]
|
|
46
|
+
|
|
47
|
+
## Phase 3: Polish
|
|
48
|
+
- [ ] Task 3.1: [Description] - **Done when**: [criteria]
|
|
49
|
+
|
|
50
|
+
## Risks & Mitigations
|
|
51
|
+
| Risk | Impact | Mitigation |
|
|
52
|
+
|------|--------|------------|
|
|
53
|
+
| [Risk] | [High/Med/Low] | [Plan B] |
|
|
54
|
+
|
|
55
|
+
## Open Questions
|
|
56
|
+
- [ ] [Question that needs answering]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Task Sizing Guidelines
|
|
60
|
+
|
|
61
|
+
- **Too big**: "Build the auth system" (multi-day)
|
|
62
|
+
- **Just right**: "Add JWT token generation with tests" (2-4 hours)
|
|
63
|
+
- **Too small**: "Add a comment" (minutes)
|
|
64
|
+
|
|
65
|
+
## Next Step
|
|
66
|
+
|
|
67
|
+
Once gameplan.md exists with ordered tasks, advance to BUILD:RULES.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
**Tip**: The first task should be "Set up project with build/test/lint scripts" - always start with a green CI.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-idea
|
|
3
|
+
description: Define the core idea - what problem, who for, why now
|
|
4
|
+
auto_trigger:
|
|
5
|
+
- "new project"
|
|
6
|
+
- "start project"
|
|
7
|
+
- "what should I build"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PLAN: IDEA Step
|
|
11
|
+
|
|
12
|
+
You're at the very beginning. Before any code, clarify the vision.
|
|
13
|
+
|
|
14
|
+
## What to Do
|
|
15
|
+
|
|
16
|
+
1. **Define the Problem**: What pain point are you solving? Be specific.
|
|
17
|
+
2. **Identify the User**: Who exactly will use this? Not "everyone."
|
|
18
|
+
3. **Explain Why Now**: What changed that makes this the right time?
|
|
19
|
+
4. **State the Unique Angle**: What will you do differently than existing solutions?
|
|
20
|
+
|
|
21
|
+
## Why This Matters
|
|
22
|
+
|
|
23
|
+
Most projects fail from solving the wrong problem. 10 minutes clarifying saves days of building wrong. The AI doesn't know your domain, constraints, or users. You do.
|
|
24
|
+
|
|
25
|
+
## Output
|
|
26
|
+
|
|
27
|
+
Create or update `docs/brainlift.md` with:
|
|
28
|
+
|
|
29
|
+
```markdown
|
|
30
|
+
# Brainlift
|
|
31
|
+
|
|
32
|
+
## Problem
|
|
33
|
+
[One paragraph describing the pain point]
|
|
34
|
+
|
|
35
|
+
## Audience
|
|
36
|
+
[Specific description of who this is for]
|
|
37
|
+
|
|
38
|
+
## Why Now
|
|
39
|
+
[What changed that makes this timely]
|
|
40
|
+
|
|
41
|
+
## Unique Context
|
|
42
|
+
[What you know that others don't - your edge]
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Next Step
|
|
46
|
+
|
|
47
|
+
Once `docs/brainlift.md` exists with these sections, advance to PLAN:RESEARCH.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
**Tip**: Talk to 3 potential users before writing code. Their words become your product.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-prd
|
|
3
|
+
description: Define requirements, scope, and success criteria
|
|
4
|
+
auto_trigger:
|
|
5
|
+
- "create prd"
|
|
6
|
+
- "define requirements"
|
|
7
|
+
- "what should it do"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PLAN: PRD Step
|
|
11
|
+
|
|
12
|
+
Turn your idea into actionable requirements. A PRD defines the finish line.
|
|
13
|
+
|
|
14
|
+
## What to Do
|
|
15
|
+
|
|
16
|
+
1. **Goals**: What must this achieve? (3-5 specific outcomes)
|
|
17
|
+
2. **Non-Goals**: What are you explicitly NOT building? (prevents scope creep)
|
|
18
|
+
3. **Requirements**: Specific, testable features
|
|
19
|
+
4. **User Stories**: "As a [user], I want [action] so that [benefit]"
|
|
20
|
+
5. **Success Metrics**: How will you measure success?
|
|
21
|
+
|
|
22
|
+
## Why This Matters
|
|
23
|
+
|
|
24
|
+
"I'll know it when I see it" means you'll never finish. Vague requirements lead to vague implementations. The PRD is your contract with yourself.
|
|
25
|
+
|
|
26
|
+
## Template
|
|
27
|
+
|
|
28
|
+
Create `docs/prd.md`:
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
# Product Requirements Document
|
|
32
|
+
|
|
33
|
+
## Overview
|
|
34
|
+
[One paragraph summary]
|
|
35
|
+
|
|
36
|
+
## Goals
|
|
37
|
+
1. [Specific, measurable goal]
|
|
38
|
+
2. [Specific, measurable goal]
|
|
39
|
+
3. [Specific, measurable goal]
|
|
40
|
+
|
|
41
|
+
## Non-Goals (Explicitly Out of Scope)
|
|
42
|
+
- [Thing you won't build]
|
|
43
|
+
- [Thing you won't build]
|
|
44
|
+
|
|
45
|
+
## Requirements
|
|
46
|
+
|
|
47
|
+
### Must Have (P0)
|
|
48
|
+
- [ ] [Feature] - [Why essential]
|
|
49
|
+
- [ ] [Feature] - [Why essential]
|
|
50
|
+
|
|
51
|
+
### Should Have (P1)
|
|
52
|
+
- [ ] [Feature] - [Why important]
|
|
53
|
+
|
|
54
|
+
### Nice to Have (P2)
|
|
55
|
+
- [ ] [Feature] - [Why nice]
|
|
56
|
+
|
|
57
|
+
## User Stories
|
|
58
|
+
|
|
59
|
+
### Primary User: [Persona Name]
|
|
60
|
+
- As a [user type], I want to [action] so that [benefit]
|
|
61
|
+
- As a [user type], I want to [action] so that [benefit]
|
|
62
|
+
|
|
63
|
+
## Technical Requirements
|
|
64
|
+
- Performance: [e.g., <100ms response time]
|
|
65
|
+
- Compatibility: [e.g., Node 18+, modern browsers]
|
|
66
|
+
- Security: [e.g., no secrets in code, auth required]
|
|
67
|
+
|
|
68
|
+
## Success Metrics
|
|
69
|
+
- [Metric 1]: [Target]
|
|
70
|
+
- [Metric 2]: [Target]
|
|
71
|
+
|
|
72
|
+
## Timeline
|
|
73
|
+
- MVP: [Date/milestone]
|
|
74
|
+
- V1: [Date/milestone]
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Next Step
|
|
78
|
+
|
|
79
|
+
Once PRD is complete, advance to PLAN:GAMEPLAN to sequence the work.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-research
|
|
3
|
+
description: Scan the landscape - what exists, what works, what fails
|
|
4
|
+
auto_trigger:
|
|
5
|
+
- "research alternatives"
|
|
6
|
+
- "what already exists"
|
|
7
|
+
- "competitor analysis"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PLAN: RESEARCH Step
|
|
11
|
+
|
|
12
|
+
Before building, study what exists. Don't reinvent wheels.
|
|
13
|
+
|
|
14
|
+
## What to Do
|
|
15
|
+
|
|
16
|
+
1. **Find Existing Solutions**: Search GitHub, npm, PyPI for similar projects
|
|
17
|
+
2. **Study What Works**: Which alternatives are popular? Why?
|
|
18
|
+
3. **Identify Gaps**: What do existing solutions miss?
|
|
19
|
+
4. **Note Dependencies**: What libraries/APIs will you need?
|
|
20
|
+
|
|
21
|
+
## Why This Matters
|
|
22
|
+
|
|
23
|
+
Someone has solved 80% of this already. Libraries, patterns, and anti-patterns exist. Research is cheap; rebuilding from scratch is expensive.
|
|
24
|
+
|
|
25
|
+
## Research Checklist
|
|
26
|
+
|
|
27
|
+
```markdown
|
|
28
|
+
## Research Notes
|
|
29
|
+
|
|
30
|
+
### Existing Solutions
|
|
31
|
+
- [ ] Solution A: [link] - Pros: X, Cons: Y
|
|
32
|
+
- [ ] Solution B: [link] - Pros: X, Cons: Y
|
|
33
|
+
- [ ] Solution C: [link] - Pros: X, Cons: Y
|
|
34
|
+
|
|
35
|
+
### What Works Well
|
|
36
|
+
- [Pattern/approach that successful projects use]
|
|
37
|
+
|
|
38
|
+
### Gaps I Can Fill
|
|
39
|
+
- [What existing solutions miss that I can address]
|
|
40
|
+
|
|
41
|
+
### Dependencies to Consider
|
|
42
|
+
- [ ] [Library 1] - for [purpose]
|
|
43
|
+
- [ ] [Library 2] - for [purpose]
|
|
44
|
+
|
|
45
|
+
### Anti-Patterns to Avoid
|
|
46
|
+
- [Common mistake from research]
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Commands to Run
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Search npm for similar packages
|
|
53
|
+
npm search [keywords]
|
|
54
|
+
|
|
55
|
+
# Check GitHub trending in your space
|
|
56
|
+
gh repo list --topic=[your-topic] --sort=stars
|
|
57
|
+
|
|
58
|
+
# Read docs of key dependencies
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Next Step
|
|
62
|
+
|
|
63
|
+
Once you understand the landscape, move to PLAN:BRAINLIFT to document your unique insights.
|