make-it-done 0.1.0
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/README.md +263 -0
- package/agents/.gitkeep +0 -0
- package/agents/mid-debugger.md +88 -0
- package/agents/mid-executor.md +69 -0
- package/agents/mid-planner.md +97 -0
- package/agents/mid-researcher.md +101 -0
- package/agents/mid-verifier.md +92 -0
- package/bin/install.js +122 -0
- package/commands/mid/.gitkeep +0 -0
- package/commands/mid/debug.md +19 -0
- package/commands/mid/do.md +24 -0
- package/commands/mid/help.md +77 -0
- package/commands/mid/init.md +18 -0
- package/commands/mid/next.md +18 -0
- package/commands/mid/plan.md +21 -0
- package/commands/mid/quick.md +24 -0
- package/commands/mid/report.md +16 -0
- package/commands/mid/status.md +16 -0
- package/commands/mid/verify.md +19 -0
- package/makeitdone/bin/mid-tools.cjs +2048 -0
- package/makeitdone/steps/agent-contracts.md +184 -0
- package/makeitdone/steps/anti-patterns.md +291 -0
- package/makeitdone/steps/context-budget.md +157 -0
- package/makeitdone/steps/init-gate.md +42 -0
- package/makeitdone/steps/model-route.md +70 -0
- package/makeitdone/steps/state-read.md +56 -0
- package/makeitdone/templates/plan.md +94 -0
- package/makeitdone/templates/project.md +62 -0
- package/makeitdone/templates/requirements.md +97 -0
- package/makeitdone/templates/roadmap.md +111 -0
- package/makeitdone/templates/state.md +28 -0
- package/makeitdone/templates/summary.md +58 -0
- package/makeitdone/workflows/debug.md +135 -0
- package/makeitdone/workflows/execute.md +218 -0
- package/makeitdone/workflows/init.md +113 -0
- package/makeitdone/workflows/next.md +114 -0
- package/makeitdone/workflows/plan.md +231 -0
- package/makeitdone/workflows/quick.md +151 -0
- package/makeitdone/workflows/report.md +138 -0
- package/makeitdone/workflows/status.md +135 -0
- package/makeitdone/workflows/verify.md +177 -0
- package/package.json +50 -0
package/bin/install.js
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { cpSync, mkdirSync, writeFileSync, readFileSync, existsSync, rmSync } from 'fs'
|
|
4
|
+
import { resolve, dirname } from 'path'
|
|
5
|
+
import { homedir } from 'os'
|
|
6
|
+
import { fileURLToPath } from 'url'
|
|
7
|
+
|
|
8
|
+
const __filename = fileURLToPath(import.meta.url)
|
|
9
|
+
const __dirname = dirname(__filename)
|
|
10
|
+
|
|
11
|
+
const args = process.argv.slice(2)
|
|
12
|
+
const command = args[0] || 'interactive'
|
|
13
|
+
|
|
14
|
+
async function main() {
|
|
15
|
+
// For now, only support Claude Code
|
|
16
|
+
const runtime = args.includes('--claude') ? 'claude' : 'claude'
|
|
17
|
+
const location = args.includes('--global') ? 'global' : args.includes('--local') ? 'local' : 'global'
|
|
18
|
+
|
|
19
|
+
if (args.includes('--uninstall')) {
|
|
20
|
+
uninstall(runtime, location)
|
|
21
|
+
return
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (args.includes('--update')) {
|
|
25
|
+
uninstall(runtime, location)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
install(runtime, location)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function install(runtime, location) {
|
|
32
|
+
const baseDir = location === 'global' ? resolve(homedir(), '.claude') : resolve(process.cwd(), '.claude')
|
|
33
|
+
|
|
34
|
+
// Ensure base directory exists
|
|
35
|
+
mkdirSync(baseDir, { recursive: true })
|
|
36
|
+
|
|
37
|
+
const sourceDir = resolve(__dirname, '..')
|
|
38
|
+
const targetMakeitdoneDir = resolve(baseDir, 'makeitdone')
|
|
39
|
+
const targetCommandsDir = resolve(baseDir, 'commands', 'mid')
|
|
40
|
+
const targetAgentsDir = resolve(baseDir, 'agents')
|
|
41
|
+
|
|
42
|
+
try {
|
|
43
|
+
// Copy makeitdone framework directory
|
|
44
|
+
const makeitdoneSource = resolve(sourceDir, 'makeitdone')
|
|
45
|
+
if (existsSync(makeitdoneSource)) {
|
|
46
|
+
cpSync(makeitdoneSource, targetMakeitdoneDir, { recursive: true, force: true })
|
|
47
|
+
console.log(`✅ Installed makeitdone framework to ${targetMakeitdoneDir}`)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Copy commands directory
|
|
51
|
+
const commandsSource = resolve(sourceDir, 'commands', 'mid')
|
|
52
|
+
if (existsSync(commandsSource)) {
|
|
53
|
+
mkdirSync(targetCommandsDir, { recursive: true })
|
|
54
|
+
cpSync(commandsSource, targetCommandsDir, { recursive: true, force: true })
|
|
55
|
+
console.log(`✅ Installed commands to ${targetCommandsDir}`)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Copy agents directory
|
|
59
|
+
const agentsSource = resolve(sourceDir, 'agents')
|
|
60
|
+
if (existsSync(agentsSource)) {
|
|
61
|
+
mkdirSync(targetAgentsDir, { recursive: true })
|
|
62
|
+
cpSync(agentsSource, targetAgentsDir, { recursive: true, force: true })
|
|
63
|
+
console.log(`✅ Installed agents to ${targetAgentsDir}`)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Write install receipt
|
|
67
|
+
const receipt = {
|
|
68
|
+
version: getPackageVersion(),
|
|
69
|
+
installedAt: new Date().toISOString(),
|
|
70
|
+
runtime,
|
|
71
|
+
location,
|
|
72
|
+
baseDir
|
|
73
|
+
}
|
|
74
|
+
writeFileSync(
|
|
75
|
+
resolve(targetMakeitdoneDir, '.install.json'),
|
|
76
|
+
JSON.stringify(receipt, null, 2)
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
console.log(`\n✨ makeitdone installed successfully!`)
|
|
80
|
+
console.log(` Framework: ${targetMakeitdoneDir}`)
|
|
81
|
+
console.log(` Commands: ${targetCommandsDir}`)
|
|
82
|
+
console.log(` Agents: ${targetAgentsDir}`)
|
|
83
|
+
console.log(`\nYou can now use: /mid:init, /mid:plan, /mid:do, etc.`)
|
|
84
|
+
} catch (error) {
|
|
85
|
+
console.error(`❌ Installation failed:`, error instanceof Error ? error.message : String(error))
|
|
86
|
+
process.exit(1)
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function uninstall(runtime, location) {
|
|
91
|
+
const baseDir = location === 'global' ? resolve(homedir(), '.claude') : resolve(process.cwd(), '.claude')
|
|
92
|
+
|
|
93
|
+
const dirs = [
|
|
94
|
+
resolve(baseDir, 'makeitdone'),
|
|
95
|
+
resolve(baseDir, 'commands', 'mid'),
|
|
96
|
+
resolve(baseDir, 'agents')
|
|
97
|
+
]
|
|
98
|
+
|
|
99
|
+
for (const dir of dirs) {
|
|
100
|
+
if (existsSync(dir)) {
|
|
101
|
+
rmSync(dir, { recursive: true, force: true })
|
|
102
|
+
console.log(`✅ Removed ${dir}`)
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
console.log(`\n✨ makeitdone uninstalled`)
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function getPackageVersion() {
|
|
110
|
+
try {
|
|
111
|
+
const pkgPath = resolve(__dirname, '..', 'package.json')
|
|
112
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'))
|
|
113
|
+
return pkg.version || '0.1.0'
|
|
114
|
+
} catch {
|
|
115
|
+
return '0.1.0'
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
main().catch(error => {
|
|
120
|
+
console.error('Error:', error)
|
|
121
|
+
process.exit(1)
|
|
122
|
+
})
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mid:debug
|
|
3
|
+
description: Debug phase execution issues
|
|
4
|
+
argument-hint: "[--phase <N>] [--plan <N>]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Grep
|
|
9
|
+
- Glob
|
|
10
|
+
- Agent
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Debug Phase
|
|
14
|
+
|
|
15
|
+
@/Users/ismailalam/Development/my/makeitdone/workflows/debug.md
|
|
16
|
+
|
|
17
|
+
<context>
|
|
18
|
+
arguments: $ARGUMENTS
|
|
19
|
+
</context>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mid:do
|
|
3
|
+
description: Execute phase plans with wave-based parallelization
|
|
4
|
+
argument-hint: "<phase-number> [--wave N] [--interactive]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Grep
|
|
11
|
+
- Glob
|
|
12
|
+
- Task
|
|
13
|
+
- AskUserQuestion
|
|
14
|
+
- Agent
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Execute Phase
|
|
18
|
+
|
|
19
|
+
@/Users/ismailalam/Development/my/makeitdone/workflows/execute.md
|
|
20
|
+
|
|
21
|
+
<context>
|
|
22
|
+
phase: $ARGUMENTS
|
|
23
|
+
mode: execute
|
|
24
|
+
</context>
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mid:help
|
|
3
|
+
description: Show makeitdone help and command reference
|
|
4
|
+
argument-hint: "[command]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# makeitdone Help
|
|
10
|
+
|
|
11
|
+
## Available Commands
|
|
12
|
+
|
|
13
|
+
| Command | Purpose |
|
|
14
|
+
|---------|---------|
|
|
15
|
+
| `/mid:init` | Initialize a new makeitdone project |
|
|
16
|
+
| `/mid:plan` | Create or update roadmap and phase plans |
|
|
17
|
+
| `/mid:do` | Execute phase plans with parallelization |
|
|
18
|
+
| `/mid:next` | Move to next phase and verify completion |
|
|
19
|
+
| `/mid:verify` | Verify phase against acceptance criteria |
|
|
20
|
+
| `/mid:status` | Show current project status |
|
|
21
|
+
| `/mid:report` | Generate comprehensive project report |
|
|
22
|
+
| `/mid:debug` | Debug phase execution issues |
|
|
23
|
+
| `/mid:quick` | Quick task execution without full structure |
|
|
24
|
+
| `/mid:help` | Show this help (you are here) |
|
|
25
|
+
|
|
26
|
+
## Core Concepts
|
|
27
|
+
|
|
28
|
+
**Phases**: Discrete, time-boxed units of work organized by milestone. Each phase contains multiple plans.
|
|
29
|
+
|
|
30
|
+
**Plans**: Individual tasks within a phase, executed in waves for parallelization.
|
|
31
|
+
|
|
32
|
+
**State**: Lives in `.planning/STATE.md` frontmatter (< 100 lines). Tracks current phase, wave progress, completion status.
|
|
33
|
+
|
|
34
|
+
**Roadmap**: Lives in `.planning/ROADMAP.md`. Lists all phases with status and description.
|
|
35
|
+
|
|
36
|
+
**Workflows**: Large orchestration files in `~/.claude/makeitdone/workflows/` that delegate to agents and steps.
|
|
37
|
+
|
|
38
|
+
## Quick Start
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# 1. Initialize project
|
|
42
|
+
/mid:init
|
|
43
|
+
|
|
44
|
+
# 2. Create roadmap
|
|
45
|
+
/mid:plan --mode roadmap
|
|
46
|
+
|
|
47
|
+
# 3. Plan first phase
|
|
48
|
+
/mid:plan --mode phase --phase 1
|
|
49
|
+
|
|
50
|
+
# 4. Execute phase
|
|
51
|
+
/mid:do 1
|
|
52
|
+
|
|
53
|
+
# 5. Check status
|
|
54
|
+
/mid:status
|
|
55
|
+
|
|
56
|
+
# 6. Move to next
|
|
57
|
+
/mid:next
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Configuration
|
|
61
|
+
|
|
62
|
+
Project config lives in `.planning/config.json`:
|
|
63
|
+
- `model_profile`: budget | balanced | quality
|
|
64
|
+
- `context_window`: Token budget (default 200000)
|
|
65
|
+
- `parallelization`: true | false
|
|
66
|
+
|
|
67
|
+
## Token Optimization
|
|
68
|
+
|
|
69
|
+
makeitdone uses **TOON** (Token-Oriented Object Notation) for all JSON payloads, achieving ~40% token reduction. All workflow and agent interactions automatically convert to TOON for maximum efficiency.
|
|
70
|
+
|
|
71
|
+
For details: `~/.claude/makeitdone/bin/mid-tools.cjs --help`
|
|
72
|
+
|
|
73
|
+
## Need More Help?
|
|
74
|
+
|
|
75
|
+
- Project spec: `.planning/PROJECT.md`
|
|
76
|
+
- Requirements: `.planning/REQUIREMENTS.md`
|
|
77
|
+
- Phase plans: `.planning/phases/{N}-*/PLAN.md`
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mid:init
|
|
3
|
+
description: Initialize a new makeitdone project
|
|
4
|
+
argument-hint: "[--name <project-name>] [--type <type>]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- AskUserQuestion
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Initialize makeitdone Project
|
|
13
|
+
|
|
14
|
+
@/Users/ismailalam/Development/my/makeitdone/workflows/init.md
|
|
15
|
+
|
|
16
|
+
<context>
|
|
17
|
+
arguments: $ARGUMENTS
|
|
18
|
+
</context>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mid:next
|
|
3
|
+
description: Move to next phase and verify completion
|
|
4
|
+
argument-hint: "[--phase <N>]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Agent
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Move to Next Phase
|
|
13
|
+
|
|
14
|
+
@/Users/ismailalam/Development/my/makeitdone/workflows/next.md
|
|
15
|
+
|
|
16
|
+
<context>
|
|
17
|
+
arguments: $ARGUMENTS
|
|
18
|
+
</context>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mid:plan
|
|
3
|
+
description: Create or update roadmap and phase plans
|
|
4
|
+
argument-hint: "[--mode <roadmap|phase|gap>] [--phase <N>]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Grep
|
|
10
|
+
- Glob
|
|
11
|
+
- AskUserQuestion
|
|
12
|
+
- Agent
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Plan Phase
|
|
16
|
+
|
|
17
|
+
@/Users/ismailalam/Development/my/makeitdone/workflows/plan.md
|
|
18
|
+
|
|
19
|
+
<context>
|
|
20
|
+
arguments: $ARGUMENTS
|
|
21
|
+
</context>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mid:quick
|
|
3
|
+
description: Quick execution without full phase structure
|
|
4
|
+
argument-hint: "<task-description> [--verify] [--interactive]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Grep
|
|
11
|
+
- Glob
|
|
12
|
+
- Task
|
|
13
|
+
- AskUserQuestion
|
|
14
|
+
- Agent
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Quick Task Execution
|
|
18
|
+
|
|
19
|
+
@/Users/ismailalam/Development/my/makeitdone/workflows/quick.md
|
|
20
|
+
|
|
21
|
+
<context>
|
|
22
|
+
task: $ARGUMENTS
|
|
23
|
+
mode: quick
|
|
24
|
+
</context>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mid:report
|
|
3
|
+
description: Generate comprehensive project report
|
|
4
|
+
argument-hint: "[--phase <N>] [--detail <brief|full>]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Generate Report
|
|
11
|
+
|
|
12
|
+
@/Users/ismailalam/Development/my/makeitdone/workflows/report.md
|
|
13
|
+
|
|
14
|
+
<context>
|
|
15
|
+
arguments: $ARGUMENTS
|
|
16
|
+
</context>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mid:status
|
|
3
|
+
description: Show current project status and phase progress
|
|
4
|
+
argument-hint: "[--phase <N>] [--format <text|json|toon>]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Project Status
|
|
11
|
+
|
|
12
|
+
@/Users/ismailalam/Development/my/makeitdone/workflows/status.md
|
|
13
|
+
|
|
14
|
+
<context>
|
|
15
|
+
arguments: $ARGUMENTS
|
|
16
|
+
</context>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mid:verify
|
|
3
|
+
description: Verify phase completion against acceptance criteria
|
|
4
|
+
argument-hint: "[--phase <N>] [--mode <integration|security|ui|audit>]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Grep
|
|
9
|
+
- Glob
|
|
10
|
+
- Agent
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Verify Phase
|
|
14
|
+
|
|
15
|
+
@/Users/ismailalam/Development/my/makeitdone/workflows/verify.md
|
|
16
|
+
|
|
17
|
+
<context>
|
|
18
|
+
arguments: $ARGUMENTS
|
|
19
|
+
</context>
|