mother-brain 0.4.6 → 0.4.8
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/cli.js +41 -5
- package/package.json +1 -1
- package/skills/mother-brain/SKILL.md +147 -14
package/dist/cli.js
CHANGED
|
@@ -79,9 +79,26 @@ async function init(options = {}) {
|
|
|
79
79
|
const agentsFile = path.join(cwd, "AGENTS.md");
|
|
80
80
|
const sourceAgentsFile = path.join(packageRoot, "AGENTS.md");
|
|
81
81
|
if (await fs.pathExists(sourceAgentsFile)) {
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
const mbContent = await fs.readFile(sourceAgentsFile, "utf-8");
|
|
83
|
+
const markerStart = "<!-- mother-brain:start -->";
|
|
84
|
+
const markerEnd = "<!-- mother-brain:end -->";
|
|
85
|
+
const wrappedContent = `${markerStart}
|
|
86
|
+
${mbContent}
|
|
87
|
+
${markerEnd}`;
|
|
88
|
+
if (await fs.pathExists(agentsFile)) {
|
|
89
|
+
const existing = await fs.readFile(agentsFile, "utf-8");
|
|
90
|
+
const startIdx = existing.indexOf(markerStart);
|
|
91
|
+
const endIdx = existing.indexOf(markerEnd);
|
|
92
|
+
if (startIdx !== -1 && endIdx !== -1) {
|
|
93
|
+
const merged = existing.substring(0, startIdx) + wrappedContent + existing.substring(endIdx + markerEnd.length);
|
|
94
|
+
await fs.writeFile(agentsFile, merged);
|
|
95
|
+
console.log(chalk.green("Updated Mother Brain section in AGENTS.md (user content preserved)"));
|
|
96
|
+
} else {
|
|
97
|
+
await fs.writeFile(agentsFile, existing.trimEnd() + "\n\n" + wrappedContent + "\n");
|
|
98
|
+
console.log(chalk.green("Appended Mother Brain rules to existing AGENTS.md"));
|
|
99
|
+
}
|
|
100
|
+
} else {
|
|
101
|
+
await fs.writeFile(agentsFile, wrappedContent + "\n");
|
|
85
102
|
console.log(chalk.green("Created AGENTS.md (always-active rules for Codex/Copilot)"));
|
|
86
103
|
}
|
|
87
104
|
}
|
|
@@ -215,7 +232,26 @@ async function update() {
|
|
|
215
232
|
const extractedAgentsFile = path2.join(tempDir, "package", "AGENTS.md");
|
|
216
233
|
const agentsFile = path2.join(cwd, "AGENTS.md");
|
|
217
234
|
if (await fs2.pathExists(extractedAgentsFile)) {
|
|
218
|
-
await fs2.
|
|
235
|
+
const mbContent = await fs2.readFile(extractedAgentsFile, "utf-8");
|
|
236
|
+
const markerStart = "<!-- mother-brain:start -->";
|
|
237
|
+
const markerEnd = "<!-- mother-brain:end -->";
|
|
238
|
+
const wrappedContent = `${markerStart}
|
|
239
|
+
${mbContent}
|
|
240
|
+
${markerEnd}`;
|
|
241
|
+
if (await fs2.pathExists(agentsFile)) {
|
|
242
|
+
const existing = await fs2.readFile(agentsFile, "utf-8");
|
|
243
|
+
const startIdx = existing.indexOf(markerStart);
|
|
244
|
+
const endIdx = existing.indexOf(markerEnd);
|
|
245
|
+
if (startIdx !== -1 && endIdx !== -1) {
|
|
246
|
+
const merged = existing.substring(0, startIdx) + wrappedContent + existing.substring(endIdx + markerEnd.length);
|
|
247
|
+
await fs2.writeFile(agentsFile, merged);
|
|
248
|
+
} else {
|
|
249
|
+
await fs2.writeFile(agentsFile, existing.trimEnd() + "\n\n" + wrappedContent + "\n");
|
|
250
|
+
}
|
|
251
|
+
} else {
|
|
252
|
+
await fs2.writeFile(agentsFile, wrappedContent + "\n");
|
|
253
|
+
}
|
|
254
|
+
console.log(chalk2.green(" \u2713 Updated AGENTS.md (user content preserved)"));
|
|
219
255
|
}
|
|
220
256
|
await fs2.remove(tempDir);
|
|
221
257
|
await fs2.writeJSON(versionFile, {
|
|
@@ -762,7 +798,7 @@ async function uninstall(options) {
|
|
|
762
798
|
// src/cli.ts
|
|
763
799
|
import { exec as exec3 } from "child_process";
|
|
764
800
|
var program = new Command();
|
|
765
|
-
var VERSION = "0.4.
|
|
801
|
+
var VERSION = "0.4.8";
|
|
766
802
|
program.name("mother-brain").description("AI-powered project management framework for GitHub Copilot CLI and Codex CLI").version(VERSION);
|
|
767
803
|
program.command("init").description("Initialize Mother Brain in the current project").option("-f, --force", "Overwrite existing skills").action(init);
|
|
768
804
|
program.command("update").description("Update Mother Brain skills to the latest version").action(update);
|
package/package.json
CHANGED
|
@@ -1633,9 +1633,16 @@ This pattern ensures NO workflow ever traps the user—there's always an escape
|
|
|
1633
1633
|
|
|
1634
1634
|
- Load `.mother-brain/docs/vision.md` (for alignment check)
|
|
1635
1635
|
- Load `.mother-brain/docs/roadmap.md` (for context on existing tasks)
|
|
1636
|
+
- Load `.mother-brain/docs/value-framework.md` (for prioritization criteria)
|
|
1636
1637
|
- Load `.mother-brain/project-brain.md` (for project preferences, if exists)
|
|
1637
1638
|
|
|
1638
|
-
-
|
|
1639
|
+
- **Score the idea using the Value Framework** (if it exists):
|
|
1640
|
+
- Rate each dimension from the framework (1-5)
|
|
1641
|
+
- Multiply by weight
|
|
1642
|
+
- Calculate total priority score
|
|
1643
|
+
- Compare against existing task scores to determine placement
|
|
1644
|
+
|
|
1645
|
+
- **If no Value Framework exists** (legacy projects), use basic analysis:
|
|
1639
1646
|
1. **Vision Alignment**: How well does this idea serve the project's stated WHY and success criteria?
|
|
1640
1647
|
2. **User Impact**: How much does this benefit the target users defined in the vision?
|
|
1641
1648
|
3. **Effort Estimate**: Relative complexity — is this a single task or a multi-task effort?
|
|
@@ -1648,7 +1655,7 @@ This pattern ensures NO workflow ever traps the user—there's always an escape
|
|
|
1648
1655
|
|
|
1649
1656
|
**Step 2F.3: Present Analysis to User**
|
|
1650
1657
|
|
|
1651
|
-
- Display:
|
|
1658
|
+
- Display (with Value Framework scores if available):
|
|
1652
1659
|
```
|
|
1653
1660
|
💡 Idea Analysis
|
|
1654
1661
|
|
|
@@ -1659,11 +1666,13 @@ This pattern ensures NO workflow ever traps the user—there's always an escape
|
|
|
1659
1666
|
- User Impact: [High/Medium/Low] — [brief reason]
|
|
1660
1667
|
- Effort: [Small (1 task) / Medium (2-3 tasks) / Large (new phase)]
|
|
1661
1668
|
- Dependencies: [None / Depends on Task X / Blocks Task Y]
|
|
1669
|
+
[If Value Framework exists:]
|
|
1670
|
+
- Value Framework Score: [N] — ranked [position] out of [total] current tasks
|
|
1662
1671
|
|
|
1663
1672
|
🎯 Recommended Priority: [🔴 Critical / 🟡 Important / 🟢 Backlog]
|
|
1664
1673
|
|
|
1665
1674
|
Reasoning: [2-3 sentences explaining why this priority level was chosen,
|
|
1666
|
-
referencing
|
|
1675
|
+
referencing Value Framework dimensions and current roadmap state]
|
|
1667
1676
|
```
|
|
1668
1677
|
|
|
1669
1678
|
- Use `ask_user` with choices:
|
|
@@ -1681,6 +1690,7 @@ This pattern ensures NO workflow ever traps the user—there's always an escape
|
|
|
1681
1690
|
- Bump priority one level up (🟢→🟡 or 🟡→🔴)
|
|
1682
1691
|
- If already 🔴: Acknowledge and proceed
|
|
1683
1692
|
- Display: `📘 Project Brain will remember this — you prioritize [idea type] higher than expected`
|
|
1693
|
+
- **Update Value Framework**: If user consistently overrides for certain types, adjust relevant dimension weights
|
|
1684
1694
|
- Invoke Child Brain with preference context (user values this type of feature highly)
|
|
1685
1695
|
- Proceed to Step 2F.5
|
|
1686
1696
|
|
|
@@ -1688,6 +1698,7 @@ This pattern ensures NO workflow ever traps the user—there's always an escape
|
|
|
1688
1698
|
- Bump priority one level down (🔴→🟡 or 🟡→🟢)
|
|
1689
1699
|
- If already 🟢: Keep at backlog
|
|
1690
1700
|
- Display: `📘 Project Brain will remember this — you prefer to defer [idea type]`
|
|
1701
|
+
- **Update Value Framework**: Log the override in the Evolution Log section
|
|
1691
1702
|
- Proceed to Step 2F.5
|
|
1692
1703
|
|
|
1693
1704
|
- **If "Let me refine the idea"**:
|
|
@@ -2398,6 +2409,7 @@ This pattern ensures NO workflow ever traps the user—there's always an escape
|
|
|
2398
2409
|
|
|
2399
2410
|
**⚠️ MANDATORY CHECKPOINT - DO NOT SKIP**
|
|
2400
2411
|
After user confirms vision, you MUST complete ALL of the following steps IN ORDER before creating the roadmap:
|
|
2412
|
+
- [ ] Step 4A: Value Framework Discovery (capture prioritization criteria)
|
|
2401
2413
|
- [ ] Step 5: Technology & Pattern Analysis (research best practices)
|
|
2402
2414
|
- [ ] Step 5A: Design System Discovery (if project has visual requirements)
|
|
2403
2415
|
- [ ] Step 6: Skill Identification & Creation (create essential skills)
|
|
@@ -2406,8 +2418,115 @@ This pattern ensures NO workflow ever traps the user—there's always an escape
|
|
|
2406
2418
|
**NEVER skip directly to roadmap creation.** The research and skill creation steps ensure quality.
|
|
2407
2419
|
If you find yourself about to create a roadmap without having done research and created skills, STOP and go back.
|
|
2408
2420
|
|
|
2409
|
-
- **After user confirms vision**: Proceed immediately to Step
|
|
2410
|
-
- Do NOT stop or return to menu - the full setup flow (Steps
|
|
2421
|
+
- **After user confirms vision**: Proceed immediately to Step 4A (Value Framework Discovery)
|
|
2422
|
+
- Do NOT stop or return to menu - the full setup flow (Steps 4A-6A) must complete before roadmap
|
|
2423
|
+
|
|
2424
|
+
### 4A. **Value Framework Discovery** (Prioritization Criteria)
|
|
2425
|
+
- **Purpose**: Capture the user's values, priorities, and constraints to create a living prioritization framework. This framework will be used to order tasks in the roadmap, justify priority decisions, and evaluate new tasks throughout the project lifecycle.
|
|
2426
|
+
|
|
2427
|
+
**Step 4A.1: Extract Implicit Priorities from Vision**
|
|
2428
|
+
- Review the vision document for signals:
|
|
2429
|
+
- "I need this ASAP" → urgency is high
|
|
2430
|
+
- "I want it done right" → quality over speed
|
|
2431
|
+
- "Users are waiting" → user impact is critical
|
|
2432
|
+
- "I'm learning as I go" → reduce risk, ship incrementally
|
|
2433
|
+
- "This is a side project" → effort/time is constrained
|
|
2434
|
+
|
|
2435
|
+
**Step 4A.2: Ask Prioritization Questions**
|
|
2436
|
+
- Present these as a focused discovery (not overwhelming):
|
|
2437
|
+
|
|
2438
|
+
```
|
|
2439
|
+
🎯 Value Framework — Understanding Your Priorities
|
|
2440
|
+
|
|
2441
|
+
To build the best roadmap, I need to understand what matters most to you.
|
|
2442
|
+
```
|
|
2443
|
+
|
|
2444
|
+
Ask (1-2 at a time, not all at once):
|
|
2445
|
+
|
|
2446
|
+
1. **"What matters more to you right now?"**
|
|
2447
|
+
- Getting to a working version fast (speed to MVP)
|
|
2448
|
+
- Getting it right the first time (quality/polish)
|
|
2449
|
+
- Learning and exploring (discovery/experimentation)
|
|
2450
|
+
|
|
2451
|
+
2. **"When you think about this project succeeding, what's the #1 thing that needs to happen?"**
|
|
2452
|
+
- (Freeform — captures their core value driver)
|
|
2453
|
+
|
|
2454
|
+
3. **"How do you feel about technical debt?"**
|
|
2455
|
+
- "Ship it, fix later" (velocity-first)
|
|
2456
|
+
- "Do it properly from the start" (quality-first)
|
|
2457
|
+
- "Depends on the feature" (balanced)
|
|
2458
|
+
|
|
2459
|
+
4. **"What would make you abandon or deprioritize a task?"**
|
|
2460
|
+
- It doesn't serve the core vision
|
|
2461
|
+
- It takes too long relative to its value
|
|
2462
|
+
- Users don't actually need it
|
|
2463
|
+
- It blocks something more important
|
|
2464
|
+
|
|
2465
|
+
**Step 4A.3: Build the Value Framework**
|
|
2466
|
+
- Create `.mother-brain/docs/value-framework.md`:
|
|
2467
|
+
|
|
2468
|
+
```markdown
|
|
2469
|
+
# [Project Name] - Value Framework
|
|
2470
|
+
|
|
2471
|
+
> Living prioritization criteria derived from vision discovery.
|
|
2472
|
+
> Used to order tasks, evaluate new ideas, and justify roadmap decisions.
|
|
2473
|
+
> Updated as the project evolves and user priorities shift.
|
|
2474
|
+
|
|
2475
|
+
## Core Value Driver
|
|
2476
|
+
[The #1 thing from Step 4A.2 question 2 — e.g., "Users can track their backlog within 2 weeks"]
|
|
2477
|
+
|
|
2478
|
+
## Priority Dimensions (Weighted)
|
|
2479
|
+
|
|
2480
|
+
| Dimension | Weight | Description |
|
|
2481
|
+
|-----------|--------|-------------|
|
|
2482
|
+
| Vision Alignment | [1-5] | How directly does this serve the core vision? |
|
|
2483
|
+
| MVP Proximity | [1-5] | Does this get us closer to a shippable release? |
|
|
2484
|
+
| User Impact | [1-5] | How much does this improve the user experience? |
|
|
2485
|
+
| Effort | [1-5] | How much work is required? (inverse: lower effort = higher priority) |
|
|
2486
|
+
| Urgency | [1-5] | Is this time-sensitive or blocking other work? |
|
|
2487
|
+
| Long-term Value | [1-5] | Does this pay off strategically over time? |
|
|
2488
|
+
| Risk Reduction | [1-5] | Does this reduce technical or project risk? |
|
|
2489
|
+
|
|
2490
|
+
*Weights are 1 (low importance) to 5 (critical). Derived from user's stated values.*
|
|
2491
|
+
|
|
2492
|
+
## User's Stated Values
|
|
2493
|
+
- Speed vs Quality preference: [from question 3]
|
|
2494
|
+
- Abandon/deprioritize triggers: [from question 4]
|
|
2495
|
+
- Core success metric: [from question 2]
|
|
2496
|
+
|
|
2497
|
+
## Scoring Guide
|
|
2498
|
+
|
|
2499
|
+
**Priority Score** = Sum of (Dimension Score × Weight) for each dimension
|
|
2500
|
+
|
|
2501
|
+
When comparing tasks:
|
|
2502
|
+
1. Score each task across all dimensions (1-5 per dimension)
|
|
2503
|
+
2. Multiply by weight
|
|
2504
|
+
3. Higher total = higher priority
|
|
2505
|
+
4. Ties broken by: Vision Alignment > MVP Proximity > User Impact
|
|
2506
|
+
|
|
2507
|
+
## Decision Rules
|
|
2508
|
+
- Tasks scoring < [threshold] on Vision Alignment should be questioned: "Does this belong in this project?"
|
|
2509
|
+
- Tasks scoring 5 on Urgency override normal ordering (blockers first)
|
|
2510
|
+
- Tasks scoring 5 on MVP Proximity during Phase 1 get priority boost
|
|
2511
|
+
- After MVP: User Impact and Long-term Value become more important than MVP Proximity
|
|
2512
|
+
|
|
2513
|
+
## Framework Evolution Log
|
|
2514
|
+
|
|
2515
|
+
| Date | Change | Reason |
|
|
2516
|
+
|------|--------|--------|
|
|
2517
|
+
| [Created] | Initial framework | Vision discovery |
|
|
2518
|
+
```
|
|
2519
|
+
|
|
2520
|
+
**Step 4A.4: Confirm with User**
|
|
2521
|
+
- Show the framework summary (NOT the full file — just the key weights and values)
|
|
2522
|
+
- Use `ask_user`:
|
|
2523
|
+
- "This captures my priorities well"
|
|
2524
|
+
- "Adjust the weights" (then ask which dimensions to change)
|
|
2525
|
+
- "Add a dimension I care about" (then ask what)
|
|
2526
|
+
|
|
2527
|
+
**Step 4A.5: Proceed to Step 5**
|
|
2528
|
+
- Framework is saved and will be used in Step 7 (Roadmap Generation)
|
|
2529
|
+
- Display: `📋 Value Framework created — this will guide task prioritization`
|
|
2411
2530
|
|
|
2412
2531
|
### 5. **Technology & Pattern Analysis**
|
|
2413
2532
|
- **Dynamic Research-Driven Discovery**:
|
|
@@ -2830,7 +2949,12 @@ This pattern ensures NO workflow ever traps the user—there's always an escape
|
|
|
2830
2949
|
- Do NOT ask user to approve delivery strategy - Mother Brain is the expert
|
|
2831
2950
|
|
|
2832
2951
|
### 7. **Roadmap Generation**
|
|
2833
|
-
- **MVP-First Phasing Using Research Findings**:
|
|
2952
|
+
- **MVP-First Phasing Using Research Findings + Value Framework**:
|
|
2953
|
+
|
|
2954
|
+
**Step 7.0: Load Value Framework**
|
|
2955
|
+
- Read `.mother-brain/docs/value-framework.md`
|
|
2956
|
+
- Use the priority dimensions and weights to order tasks
|
|
2957
|
+
- Every task in the roadmap must be scored (even roughly) against the framework
|
|
2834
2958
|
|
|
2835
2959
|
**Step 7.1: Define Phase 1 = MVP (Core Problem Solution)**
|
|
2836
2960
|
- Phase 1 scope = shortest path to solve core problem from vision
|
|
@@ -2864,10 +2988,12 @@ This pattern ensures NO workflow ever traps the user—there's always an escape
|
|
|
2864
2988
|
**Success Gate**: [MVP criteria from vision document]
|
|
2865
2989
|
**Strategy**: Solve core problem, defer everything else
|
|
2866
2990
|
|
|
2867
|
-
**Deliverables
|
|
2868
|
-
- [ ] **Task 001**: [Essential for solving core problem]
|
|
2869
|
-
- [ ] **Task 002**: [Essential for solving core problem]
|
|
2870
|
-
- [ ] **Task 003**: [Essential for solving core problem]
|
|
2991
|
+
**Deliverables** (ordered by Value Framework score):
|
|
2992
|
+
- [ ] **Task 001**: [Essential for solving core problem] — *Score: [N] (top dimensions)*
|
|
2993
|
+
- [ ] **Task 002**: [Essential for solving core problem] — *Score: [N] (top dimensions)*
|
|
2994
|
+
- [ ] **Task 003**: [Essential for solving core problem] — *Score: [N] (top dimensions)*
|
|
2995
|
+
|
|
2996
|
+
**Why this order**: [1-2 sentence explanation of why tasks are sequenced this way based on the Value Framework. E.g., "Task 001 first because it scores highest on Vision Alignment and unblocks Tasks 002-003."]
|
|
2871
2997
|
|
|
2872
2998
|
**Skills Available**: [List relevant skills]
|
|
2873
2999
|
|
|
@@ -2884,9 +3010,11 @@ This pattern ensures NO workflow ever traps the user—there's always an escape
|
|
|
2884
3010
|
**Trigger**: Phase 1 complete + [feedback mechanism from research]
|
|
2885
3011
|
**Focus**: Learn from users and iterate
|
|
2886
3012
|
|
|
2887
|
-
**Planned Enhancements** (subject to validation
|
|
2888
|
-
- [ ] **Task [N]**: [Enhancement
|
|
2889
|
-
- [ ] **Task [N+1]**: [Feature that wasn't essential for MVP]
|
|
3013
|
+
**Planned Enhancements** (ordered by Value Framework, subject to validation):
|
|
3014
|
+
- [ ] **Task [N]**: [Enhancement] — *Score: [N] (top dimensions)*
|
|
3015
|
+
- [ ] **Task [N+1]**: [Feature that wasn't essential for MVP] — *Score: [N] (top dimensions)*
|
|
3016
|
+
|
|
3017
|
+
**Why this order**: [1-2 sentence explanation based on Value Framework]
|
|
2890
3018
|
|
|
2891
3019
|
**Learning Plan**:
|
|
2892
3020
|
- [Feedback mechanism from Step 6A research]
|
|
@@ -3902,6 +4030,10 @@ This pattern ensures NO workflow ever traps the user—there's always an escape
|
|
|
3902
4030
|
- Offer to adjust roadmap
|
|
3903
4031
|
- Add new tasks if needed
|
|
3904
4032
|
- Reprioritize based on feedback
|
|
4033
|
+
- **Re-evaluate Value Framework**: After completing a phase, priorities often shift. Ask:
|
|
4034
|
+
- "Now that Phase [N] is done, have your priorities changed?"
|
|
4035
|
+
- If yes → update `.mother-brain/docs/value-framework.md` weights and re-score remaining tasks
|
|
4036
|
+
- Log change in the Framework Evolution Log
|
|
3905
4037
|
|
|
3906
4038
|
- Display:
|
|
3907
4039
|
```
|
|
@@ -3913,15 +4045,16 @@ This pattern ensures NO workflow ever traps the user—there's always an escape
|
|
|
3913
4045
|
- Proceed to Step 11 (Next Action Menu)
|
|
3914
4046
|
|
|
3915
4047
|
### 11. **Next Action Menu**
|
|
3916
|
-
- After task completion, use `ask_user` with choices:
|
|
3917
4048
|
- After task completion, use `ask_user` with choices:
|
|
3918
4049
|
- "Start next task automatically"
|
|
3919
4050
|
- "💡 I have a new idea"
|
|
3920
4051
|
- "Review roadmap and choose task"
|
|
3921
4052
|
- "Take a break (save progress)"
|
|
3922
4053
|
- "Update/refine the roadmap"
|
|
4054
|
+
- "Adjust my priorities (Value Framework)"
|
|
3923
4055
|
- Freeform available for custom actions
|
|
3924
4056
|
- **If "I have a new idea"**: Jump to **Step 2F: Idea Capture & Prioritization**
|
|
4057
|
+
- **If "Adjust my priorities"**: Re-run Step 4A.2 questions, update `.mother-brain/docs/value-framework.md`, re-score existing roadmap tasks if weights changed significantly, show what moved
|
|
3925
4058
|
|
|
3926
4059
|
- Save session state to `docs/session-state.json`:
|
|
3927
4060
|
```json
|