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.
Files changed (42) hide show
  1. package/README.md +263 -0
  2. package/agents/.gitkeep +0 -0
  3. package/agents/mid-debugger.md +88 -0
  4. package/agents/mid-executor.md +69 -0
  5. package/agents/mid-planner.md +97 -0
  6. package/agents/mid-researcher.md +101 -0
  7. package/agents/mid-verifier.md +92 -0
  8. package/bin/install.js +122 -0
  9. package/commands/mid/.gitkeep +0 -0
  10. package/commands/mid/debug.md +19 -0
  11. package/commands/mid/do.md +24 -0
  12. package/commands/mid/help.md +77 -0
  13. package/commands/mid/init.md +18 -0
  14. package/commands/mid/next.md +18 -0
  15. package/commands/mid/plan.md +21 -0
  16. package/commands/mid/quick.md +24 -0
  17. package/commands/mid/report.md +16 -0
  18. package/commands/mid/status.md +16 -0
  19. package/commands/mid/verify.md +19 -0
  20. package/makeitdone/bin/mid-tools.cjs +2048 -0
  21. package/makeitdone/steps/agent-contracts.md +184 -0
  22. package/makeitdone/steps/anti-patterns.md +291 -0
  23. package/makeitdone/steps/context-budget.md +157 -0
  24. package/makeitdone/steps/init-gate.md +42 -0
  25. package/makeitdone/steps/model-route.md +70 -0
  26. package/makeitdone/steps/state-read.md +56 -0
  27. package/makeitdone/templates/plan.md +94 -0
  28. package/makeitdone/templates/project.md +62 -0
  29. package/makeitdone/templates/requirements.md +97 -0
  30. package/makeitdone/templates/roadmap.md +111 -0
  31. package/makeitdone/templates/state.md +28 -0
  32. package/makeitdone/templates/summary.md +58 -0
  33. package/makeitdone/workflows/debug.md +135 -0
  34. package/makeitdone/workflows/execute.md +218 -0
  35. package/makeitdone/workflows/init.md +113 -0
  36. package/makeitdone/workflows/next.md +114 -0
  37. package/makeitdone/workflows/plan.md +231 -0
  38. package/makeitdone/workflows/quick.md +151 -0
  39. package/makeitdone/workflows/report.md +138 -0
  40. package/makeitdone/workflows/status.md +135 -0
  41. package/makeitdone/workflows/verify.md +177 -0
  42. 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>