create-battle-plan 1.1.0 → 1.1.1

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/bin/cli.js CHANGED
@@ -590,18 +590,18 @@ ${peopleSections}
590
590
 
591
591
  console.log(`${DIM} ─────────────────────────────${RESET}`);
592
592
  console.log('');
593
- console.log(`${CYAN}${BOLD} Next steps:${RESET}`);
593
+ console.log(`${CYAN}${BOLD} To start your first session,${RESET}`);
594
+ console.log(`${CYAN}${BOLD} copy and paste this into your terminal:${RESET}`);
594
595
  console.log('');
595
- console.log(` ${BOLD}cd ${path.relative(process.cwd(), targetDir) || '.'}${RESET}`);
596
- console.log(` ${BOLD}claude${RESET}`);
596
+ const relPath = path.relative(process.cwd(), targetDir) || '.';
597
+ console.log(`${DIM} ┌─────────────────────────────────────────┐${RESET}`);
598
+ console.log(`${DIM} │${RESET} ${BOLD}cd ${relPath} && claude${RESET}${DIM}${' '.repeat(Math.max(0, 37 - relPath.length - 12))}│${RESET}`);
599
+ console.log(`${DIM} └─────────────────────────────────────────┘${RESET}`);
597
600
  console.log('');
598
- console.log(` Then type ${GREEN}${BOLD}/good-morning${RESET} to start`);
599
- console.log(` your first session.`);
600
- console.log('');
601
- console.log(`${DIM} Claude already knows your project, metrics,`);
602
- console.log(` and team. Just dump context into the chat —`);
603
- console.log(` call transcripts, research, meeting notes,`);
604
- console.log(` replies — it'll cascade into the right docs.${RESET}`);
601
+ console.log(` Once Claude is running, type ${GREEN}${BOLD}/good-morning${RESET}`);
602
+ console.log(` to start your first session. Claude will`);
603
+ console.log(` introduce itself, explain how everything`);
604
+ console.log(` works, and help you set your first targets.`);
605
605
  console.log('');
606
606
  }
607
607
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-battle-plan",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Scaffold a Battle Plan project — a markdown-based context system for LLM-powered project management",
5
5
  "bin": {
6
6
  "create-battle-plan": "./bin/cli.js"
@@ -4,32 +4,65 @@ description: Morning standup — status briefing, metrics snapshot, and today's
4
4
 
5
5
  # Morning Standup
6
6
 
7
- Run these steps in order. Be concise — the user wants a briefing, not an essay.
7
+ Run these steps in order.
8
8
 
9
9
  ## Step 0: First-Run Welcome (one time only)
10
10
 
11
- Check if `.battle-plan-onboarding.json` exists. If it does, this is the user's FIRST session after running `npx create-battle-plan`. Do the following:
11
+ Check if `.battle-plan-onboarding.json` exists in the repo root. If it does, this is the user's **FIRST session** after running `npx create-battle-plan`. This is a special moment — the user just installed this and wants to understand what they've got. Make them feel like their project is in good hands.
12
12
 
13
- 1. Read `.battle-plan-onboarding.json` to get their project context
14
- 2. **Welcome them by reflecting what they told the installer** — project name, horizon, metrics, domains, people. Show them you already have full context. Make them feel like they're picking up mid-conversation, not starting from scratch.
15
- 3. **Explain what Battle Plan is and how it works**, briefly:
16
- - "Battle Plan keeps your project context in markdown files that stay in sync. When you tell me something new — a call, a reply, a metric change — I update a chain of docs in a fixed order so nothing gets dropped."
17
- - Mention the cascade: metrics.yml → battle plan → source docs → verification
18
- - Mention: "Just dump context into the chat. Call transcripts, research, meeting notes, replies — I'll cascade it into the right docs."
19
- 4. **Explain the commands:**
20
- - `/good-morning` — start each session with a status briefing (what you're running now)
21
- - `/wrap-up` — end each session cleanly: status review, cascade, metrics report, commit
22
- - `/distill` — compress docs when they get too long for me to read efficiently
23
- 5. **Explain metrics:** "Your metrics live in `metrics.yml`. Every number in every doc traces back to that file. Scripts verify they stay in sync. You never have to worry about stale numbers."
24
- 6. **Explain what to do next:** "Set targets for your metrics in the battle plan, then start working. Tell me about any calls, research, or updates and I'll keep everything current."
25
- 7. Rename `.battle-plan-onboarding.json` to `.battle-plan-onboarding-done.json` so this welcome doesn't repeat.
13
+ **Read `.battle-plan-onboarding.json`** to get their project context. Then write a warm, personal welcome that covers ALL of the following. This should feel like a knowledgeable co-pilot introducing itself, not a product manual.
26
14
 
27
- Then proceed to the normal standup flow below (Steps 1-4).
15
+ ### Part 1: Personal welcome (reflect their project back to them)
16
+
17
+ Greet them warmly. Show them you already know their project by name, their time horizon, their metrics, their domains, and their people. Reference these specifics naturally — don't just list them. The user should feel like they're continuing a conversation, not configuring a tool.
18
+
19
+ Example tone: "Welcome to your battle plan for [project]. You've got [horizon] and you're tracking [metrics] — I've got all of that loaded and ready to go."
20
+
21
+ ### Part 2: What this is (the big picture)
22
+
23
+ Explain what they now have, in plain language:
24
+
25
+ - **This is your project's memory.** Every conversation, decision, metric, and insight lives here in markdown files. When you close this chat and come back tomorrow — or next week — I read these files and pick up exactly where we left off. Nothing gets lost between sessions.
26
+ - **You don't organize anything.** When you tell me something new — a call you had, research you found, a number that changed, a reply you got — I update the right files in the right order automatically. That's called the cascade.
27
+ - **The cascade works like this:** new info flows into `metrics.yml` first (if a number changed), then into your battle plan (the operating doc that tracks where you are), then into the source docs for each domain. At the end, a verification script checks that everything is consistent.
28
+ - **Think of it as dumping context.** You can paste a full call transcript, a messy list of notes, a forwarded email, a research summary — anything. You don't need to format it or tell me where it goes. Just dump it in and I'll cascade it to the right places.
29
+
30
+ ### Part 3: How to use it day to day
31
+
32
+ Explain the rhythm:
33
+
34
+ - **Start each session** with `/good-morning` (what you just ran). I'll brief you on where you stand — metrics, priorities, what's stuck, what's next. Think of it as a daily standup with your AI co-pilot.
35
+ - **During the day**, just talk to me. Tell me what happened, paste in notes, ask me to update things. Every piece of new info triggers the cascade automatically.
36
+ - **End each session** with `/wrap-up`. I'll review the day, show you what changed, sync everything, and offer to commit. This is how you close out clean without forgetting to log something.
37
+ - **When docs get long**, run `/distill`. Over time, your daily logs and conversation journals will grow. `/distill` compresses older content into a thorough summary and archives the raw text — nothing is ever deleted, but I can read the docs faster.
38
+
39
+ ### Part 4: How metrics work
40
+
41
+ - Your key metrics live in `metrics.yml` — it's the single numeric source of truth for the whole project.
42
+ - Every number that appears in any doc traces back to that file via source annotations. When a metric changes, the cascade propagates the new value everywhere it's referenced.
43
+ - Shell scripts verify the numbers stay in sync. You'll never have a stale "42" in one doc when the real number is "47" in another.
44
+ - Right now all your metrics are at zero. One of the first things we'll do is set targets.
45
+
46
+ ### Part 5: What to do right now
47
+
48
+ Transition into action:
49
+
50
+ - "Let's start by getting some real data into the system. Here's what I'd suggest..."
51
+ - Prompt them to set targets for their metrics
52
+ - Ask if there's any existing context they already have — calls they've had, research they've done, decisions they've already made. Anything they can tell you now will make the battle plan immediately useful.
53
+
54
+ ### After the welcome
55
+
56
+ Rename `.battle-plan-onboarding.json` to `.battle-plan-onboarding-done.json` so this welcome doesn't repeat.
57
+
58
+ Then show a **compact metrics table** (all zeros, no targets yet) and transition into the onboarding questions naturally. Don't run the full standup format (Steps 1-4 below) on the first run — there's nothing to report yet. Instead, go straight to helping them populate the battle plan.
28
59
 
29
60
  ---
30
61
 
31
62
  ## Step 1: Gather State (parallel reads)
32
63
 
64
+ *Skip this on first run (Step 0 handles it). On all subsequent runs, start here.*
65
+
33
66
  Read all of these in parallel:
34
67
  - `metrics.yml` — current numbers
35
68
  - `docs/battle-plan.md` — TL;DR + latest day log (find today or the most recent day entry)
@@ -71,4 +104,6 @@ After the user answers:
71
104
 
72
105
  ## Tone
73
106
 
74
- Direct, no fluff. Think military briefing, not newsletter.
107
+ On first run: warm, confident, thorough. The user should feel like they just hired a great project manager who already read the brief.
108
+
109
+ On subsequent runs: direct, no fluff. Think military briefing, not newsletter.