@nudata/nu-claude-pm 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.
@@ -0,0 +1,140 @@
1
+ ---
2
+ name: nu-pm-spike
3
+ description: Create and work through a time-boxed technical spike — a focused investigation to answer a specific feasibility or design question. Writes to product/research/spikes/.
4
+ ---
5
+
6
+ You are helping the user run a spike: a time-boxed investigation with a single question and a concrete outcome (yes / no / not yet / use X instead of Y). Spikes are not milestones — they feed into milestones by resolving uncertainty before it becomes a blocker.
7
+
8
+ The target directory is: `$ARGUMENTS` (use `product/` if empty or not provided).
9
+
10
+ ---
11
+
12
+ ## Step 1 — Show open spikes
13
+
14
+ Check if `<dir>/research/spikes/` exists. If it does, list any files where status is `🔄 open`. Show them as:
15
+
16
+ ```
17
+ Open spikes:
18
+ - product/research/spikes/2026-04-01-lmcache-redis-compat.md — "Can LMCache share KV blocks across pods via Redis without pod restart?"
19
+ ```
20
+
21
+ If there are open spikes, ask: **"Do you want to continue one of these, or start a new one?"**
22
+
23
+ If continuing an existing spike, read it and skip to Step 4.
24
+
25
+ ---
26
+
27
+ ## Step 2 — Frame the spike
28
+
29
+ Ask: **"What's the question you're trying to answer?"**
30
+
31
+ A good spike question is:
32
+ - Answerable in the stated timebox (not open-ended research)
33
+ - Binary or close to it — yes/no, A or B, feasible or not
34
+ - Specific enough that you'd know when you have the answer
35
+
36
+ Help them sharpen the question if needed. Examples of weak → strong:
37
+ - "How does LMCache work?" → "Does LMCache support cross-pod KV sharing via Redis without requiring pod restart?"
38
+ - "Should we use Helm or Kustomize?" → "Can Kustomize handle our per-customer value overrides without a full template per customer?"
39
+
40
+ Then ask: **"What's your timebox?"** (e.g. 2 hours, half a day, one session). This is a commitment, not a suggestion.
41
+
42
+ Then ask: **"What does a 'yes' answer unblock? What does a 'no' mean for the project?"** This prevents spikes that don't connect to a real decision.
43
+
44
+ ---
45
+
46
+ ## Step 3 — Create the spike document
47
+
48
+ Generate a filename: `YYYY-MM-DD-<slug>.md` where slug is 3-5 kebab-case words. Create `<dir>/research/spikes/` if it doesn't exist.
49
+
50
+ Write the document:
51
+
52
+ ```markdown
53
+ # Spike: <Question as title>
54
+
55
+ **Status**: 🔄 open
56
+ **Question**: <exact question — the spike is done when this is answered>
57
+ **Timebox**: <duration — treat this as a hard stop>
58
+ **Started**: YYYY-MM-DD
59
+
60
+ **If yes**: <what this unblocks>
61
+ **If no**: <what this means for the project — pivot, descope, or accept the constraint>
62
+
63
+ ---
64
+
65
+ ## Approach
66
+
67
+ <How you'll investigate this. List the specific things to try or check, in order. Keep it short — a spike is not a research project.>
68
+
69
+ 1. <First thing to try>
70
+ 2. <Second thing to try>
71
+ 3. <Fallback / alternative to test if #1 fails>
72
+
73
+ ---
74
+
75
+ ## Log
76
+
77
+ > Add entries as you go. Timestamp optional but helpful for longer spikes.
78
+
79
+ -
80
+
81
+ ---
82
+
83
+ ## Outcome
84
+
85
+ > Complete this when the spike concludes. Do not leave it blank.
86
+
87
+ **Answer**: <yes / no / partial — state it directly>
88
+
89
+ **Evidence**: <what you found that supports the answer — command output, a working example, a specific failure mode>
90
+
91
+ **Recommendation**: <what the project should do as a result>
92
+
93
+ **Status**: ✅ concluded / ⚠️ inconclusive / 🚫 abandoned
94
+ ```
95
+
96
+ Tell the user the file is created and the timebox has started.
97
+
98
+ ---
99
+
100
+ ## Step 4 — Work through the spike
101
+
102
+ Ask: **"Do you want to work through this together, or do you have findings to add?"**
103
+
104
+ **If working together**: follow the approach list. Help the user interpret results. When something works, capture it in the Log with enough detail to reproduce. When something fails, note the failure mode specifically — "it failed" is not useful; "it fails with `AssertionError` in `wait_for_save` when block size > 3 chunks" is.
105
+
106
+ Push toward the answer — don't let the spike turn into open-ended exploration. If the timebox is approaching and the answer isn't clear, that is itself a finding.
107
+
108
+ **If adding findings**: take what they give you, help structure it into Log entries, and push toward the Outcome section.
109
+
110
+ ---
111
+
112
+ ## Step 5 — Conclude the spike
113
+
114
+ When the question is answered (or the timebox is up):
115
+
116
+ Fill in the **Outcome** section:
117
+ - State the answer directly — don't hedge if the evidence is clear
118
+ - Include concrete evidence (a working command, a measured number, a specific error)
119
+ - Set status to `✅ concluded`, `⚠️ inconclusive`, or `🚫 abandoned`
120
+
121
+ **On inconclusive**: if the timebox ran out without a clear answer, write what was learned and what a follow-up spike would need to investigate. Don't extend the timebox — open a new spike with a narrower question.
122
+
123
+ **On 'no' answers**: a 'no' is a valid and valuable outcome. Help the user think through what it means:
124
+ - Does this block a milestone? → flag it in `milestones.md` as a blocker
125
+ - Does it invalidate a roadmap assumption? → suggest `/nu-pm-roadmap` to review
126
+ - Is there an alternative approach to spike? → suggest a follow-up spike with a new angle
127
+
128
+ Change **Status** at the top from `🔄 open` to match the outcome status.
129
+
130
+ ---
131
+
132
+ ## Step 6 — Connect back to the project
133
+
134
+ After concluding, ask: **"Does this outcome change anything in your milestones or roadmap?"**
135
+
136
+ If yes, help them identify the specific change:
137
+ - A task that's now unblocked → offer to note it in `milestones.md`
138
+ - A task that's now blocked → offer to add a blocker note
139
+ - An assumption in `roadmap.md` that needs updating → suggest `/nu-pm-roadmap`
140
+ - A technology decision that should be recorded → suggest adding it to the roadmap's Key Decisions table
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: nu-pm-status
3
+ description: Give a concise, actionable summary of what to work on next. Reads product/how-to/nu-pm-status.md for project-specific context (cluster state, infra prerequisites, etc.).
4
+ ---
5
+
6
+ Give a concise, actionable summary of what to work on next.
7
+
8
+ The target directory is: `$ARGUMENTS` (use `product/` if empty or not provided).
9
+
10
+ ## Steps
11
+
12
+ 1. Read all of these in parallel:
13
+ - `<dir>/now.md` — current focus and what was just done
14
+ - `<dir>/milestones.md` — task checklist across all milestones
15
+ - `<dir>/roadmap.md` — architecture context (skim only)
16
+ - The most recent file in `<dir>/reports/` (latest session report)
17
+
18
+ 2. If `<dir>/how-to/nu-pm-status.md` exists, read it now and incorporate any project-specific context gathering (e.g. reading a cluster state file, checking infra status) before assembling the output.
19
+
20
+ 3. From milestones.md: find the active milestone (first one marked `🔄 in progress`). Within it, find:
21
+ - The first `[~]` task (in progress but not done)
22
+ - The first `[ ]` task (next to start)
23
+
24
+ 4. If `now.md` contains a `Design doc:` and `Current story:` field, load the relevant story section from the referenced PRD to get its concrete scope and first action.
25
+
26
+ 5. Check for blockers or prerequisites:
27
+ - Does the next task need infrastructure running? (note it clearly)
28
+ - Is there an unresolved bug or investigation from the last session report?
29
+ - Is there a "next session starts at" note in the last report?
30
+
31
+ 6. Output a short, scannable answer:
32
+
33
+ ```
34
+ ## What's Next
35
+
36
+ **Milestone**: <milestone name> (<X/Y stories done>)
37
+ **Active story**: <title>
38
+
39
+ **Why this story**: <1–2 sentences — what it unblocks or proves>
40
+
41
+ **Prerequisite check**:
42
+ - Infrastructure: <up / hibernated / unknown>
43
+ - Any blocker: <yes/no — describe if yes>
44
+
45
+ **Concrete first action**:
46
+ <The exact command to run or file to edit to start this task.>
47
+
48
+ **After that**:
49
+ <The 2–3 tasks that follow in sequence.>
50
+ ```
51
+
52
+ Keep it tight. No need to summarise every milestone — just tell the user what to do right now and why.
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: nu-pm-update
3
+ description: Append a timestamped progress snapshot to today's session report. Does NOT commit, hibernate, or stop work. Reads product/how-to/nu-pm-update.md for project-specific additions.
4
+ ---
5
+
6
+ Append a timestamped progress snapshot to today's session report. Mid-session checkpoint only — does not commit, push, or hibernate.
7
+
8
+ The target directory is: `$ARGUMENTS` (use `product/` if empty or not provided).
9
+
10
+ ## Steps
11
+
12
+ 1. Read `<dir>/now.md` and `<dir>/milestones.md` to understand current state.
13
+
14
+ 2. Run `git log --oneline -6` and `git status --short` to see what has changed since last commit.
15
+
16
+ 3. Check `<dir>/how-to/nu-pm-update.md` if it exists — read it now and incorporate any project-specific state-gathering steps before writing the report (e.g. checking cluster state, reading infra status files).
17
+
18
+ 4. Determine today's report file path: `<dir>/reports/YYYY-MM-DD.md` (today's date).
19
+
20
+ 5. If the file does not exist, create it with this header:
21
+ ```markdown
22
+ # Session Report — YYYY-MM-DD
23
+ ```
24
+
25
+ 6. Append a new timestamped section:
26
+ ```markdown
27
+ ## Update — HH:MM UTC
28
+
29
+ **Active task**: <first [~] or [ ] task in milestones.md>
30
+
31
+ ### Completed since last update
32
+ - <bullet per completed item>
33
+
34
+ ### In progress
35
+ - <what is currently running or being worked on>
36
+
37
+ ### Key results (if any)
38
+ | Metric | Value |
39
+ |--------|-------|
40
+
41
+ ### Notes / decisions
42
+ - <bugs found, config changes, observations>
43
+
44
+ ---
45
+ ```
46
+
47
+ 7. Confirm to the user: "Updated `<dir>/reports/YYYY-MM-DD.md` with a progress snapshot at HH:MM UTC."
48
+
49
+ Do NOT commit, push, or run any shutdown steps.
@@ -0,0 +1,211 @@
1
+ ---
2
+ name: nu-pm-user-guide
3
+ description: Display the full user guide for the nu-pm-* command system — what each command does, when to use it, and how the document stack fits together.
4
+ ---
5
+
6
+ Display the following user guide exactly as written. Do not summarize it or truncate it.
7
+
8
+ After displaying it, ask: **"Would you like me to save a copy to `product/nu-pm-user-guide.md` so you can view it in your IDE?"** If yes, write the guide content (everything below the `---` separator, starting with `# ds-work User Guide`) to `product/nu-pm-user-guide.md`. If the user provides a different path, use that instead. Confirm the file was written and note they can open it in their editor.
9
+
10
+ ---
11
+
12
+ # ds-work User Guide
13
+
14
+ The `nu-pm-*` commands are a set of Claude Code slash commands for managing software projects end-to-end — from initial setup through daily session flow, periodic review, and external communication. They work together as a system.
15
+
16
+ ---
17
+
18
+ ## The Command Map
19
+
20
+ ### Setup commands
21
+ Run these when starting a new project or filling in empty scaffolded docs.
22
+
23
+ | Command | What it does |
24
+ |---------|-------------|
25
+ | `/nu-pm-scaffold [description]` | Bootstrap a new project — creates the full `product/` directory, placeholder docs, `how-to/` extension templates, and `project-management-principles.md`. Run from the project root. |
26
+ | `/nu-pm-vision [dir]` | Interactively create `vision.md` from scratch (if placeholder/missing) or review and update an existing one against current project state. |
27
+ | `/nu-pm-roadmap [dir]` | Interactively create `roadmap.md` from scratch (if placeholder/missing) or review and update an existing one against what milestones have proven. |
28
+
29
+ ### Session lifecycle commands
30
+ Run these every session, in order.
31
+
32
+ | Command | When | What it does |
33
+ |---------|------|-------------|
34
+ | `/nu-pm-continue [dir]` | Start of session | Reads `now.md`, `milestones.md`, the latest session report, and the active PRD (if any). Outputs a resume brief with the active story and next action. |
35
+ | `/nu-pm-status [dir]` | After finishing a task | Shorter than continue. Finds the next task, checks infra prerequisites, gives the concrete first action. |
36
+ | `/nu-pm-update [dir]` | Mid-session checkpoint | Appends a timestamped snapshot to today's session report. Does not commit. Use before stepping away or after a significant task. |
37
+ | `/nu-pm-halt [dir]` | End of every session | Full shutdown: updates `milestones.md` + `now.md`, writes the session report, commits and pushes, then runs any project-specific teardown from `how-to/nu-pm-halt.md`. |
38
+
39
+ ### Periodic review commands
40
+ Run these at milestone boundaries or when strategy needs a check.
41
+
42
+ | Command | What it does |
43
+ |---------|-------------|
44
+ | `/nu-pm-vision [dir]` | Review mode (when vision.md is filled): checks each section for drift against recent milestone completions and session reports. Proposes targeted edits. Appends Decision Log rows. |
45
+ | `/nu-pm-roadmap [dir]` | Review mode (when roadmap.md is filled): checks milestone state, architecture currency, resolved open questions, alignment with vision. Proposes targeted edits. |
46
+
47
+ ### Exploration commands
48
+ Run these for investigations that don't fit neatly into a milestone — research that informs a decision, or a technical question that needs a time-boxed answer before work can continue.
49
+
50
+ | Command | What it does |
51
+ |---------|-------------|
52
+ | `/nu-pm-research [dir]` | Create a structured research document for market research, competitive analysis, technology evaluation, or domain deep-dives. Guides you through framing the question, scoping the investigation, and writing findings + recommendation. Shows open research at the start. Writes to `product/research/` or `product/market-research/` depending on type. |
53
+ | `/nu-pm-spike [dir]` | Run a time-boxed technical spike — a focused investigation with a single yes/no/A-vs-B question and a hard timebox. Shows open spikes at the start so nothing gets forgotten. Writes to `product/research/spikes/`. Connects the outcome back to milestones or roadmap when concluded. |
54
+
55
+ ### Communication commands
56
+ Run these when you need to explain the project to someone outside.
57
+
58
+ | Command | What it does |
59
+ |---------|-------------|
60
+ | `/nu-pm-one-pager [dir]` | Creates or updates `product/one-pager.md` — a ~500-word single-page project summary (problem, what we're building, how it works, where we are, what's next, key numbers). Iterates with you until you approve, then saves. |
61
+ | `/nu-pm-elevator-pitch [dir]` | Generates 3 pitch variants (tweet, 30-second verbal, 60-second investor) from `vision.md` and `one-pager.md`. Iterates on tone, audience, and concreteness. Saves to `product/elevator-pitch.md` when approved. |
62
+
63
+ ### Reference
64
+ | Command | What it does |
65
+ |---------|-------------|
66
+ | `/nu-pm-user-guide` | This document. |
67
+
68
+ ---
69
+
70
+ ## The Document Stack
71
+
72
+ Every project using this system has the same structure under `product/`:
73
+
74
+ ```
75
+ product/
76
+ ├── vision.md ← why + who (problem, customer, north star)
77
+ ├── roadmap.md ← what + how (architecture, milestones, key decisions)
78
+ ├── milestones.md ← progress tracker (story checkboxes, milestone status)
79
+ ├── now.md ← session pointer (current focus, what was just done)
80
+ ├── project-management-principles.md ← how this system works (per-project copy)
81
+ ├── one-pager.md ← external-facing summary (generated by /nu-pm-one-pager)
82
+ ├── elevator-pitch.md ← pitch variants (generated by /nu-pm-elevator-pitch)
83
+ ├── design/ ← PRDs for milestones that need them (M1-PRD.md, etc.)
84
+ ├── market-research/ ← competitive analysis, user research
85
+ ├── research/ ← technology deep-dives and domain research (nu-pm-research)
86
+ │ └── spikes/ ← time-boxed feasibility investigations (nu-pm-spike)
87
+ ├── operations/ ← cluster runbooks, infra how-tos
88
+ ├── learnings/ ← post-hoc reports, incident retrospectives
89
+ ├── reports/ ← session history (YYYY-MM-DD.md, written by update/halt)
90
+ └── how-to/ ← project-specific skill extensions (see below)
91
+ ├── nu-pm-continue.md
92
+ ├── nu-pm-halt.md
93
+ ├── nu-pm-status.md
94
+ └── nu-pm-update.md
95
+ ```
96
+
97
+ **One question, one document.** The moment the same content lives in two places, they drift.
98
+
99
+ | Question | Answer lives in |
100
+ |----------|----------------|
101
+ | Why are we building this? Who is it for? | `vision.md` |
102
+ | What are we building and how? | `roadmap.md` |
103
+ | Which milestone am I in? Which stories are done? | `milestones.md` |
104
+ | What am I working on right now? | `now.md` |
105
+ | What exactly does Story N require? | `design/M{N}-PRD.md` |
106
+ | What happened last Tuesday? | `reports/YYYY-MM-DD.md` |
107
+ | How do I explain this project in one page? | `one-pager.md` |
108
+
109
+ ---
110
+
111
+ ## Change Tracking
112
+
113
+ Different documents track changes differently:
114
+
115
+ | Document | Tracking mechanism | Why |
116
+ |---|---|---|
117
+ | `vision.md` | Decision Log at the bottom (append-only) | Changes are rare and high-signal — losing the old direction costs context |
118
+ | `roadmap.md` | Decision Log + resolved Open Questions move to Key Decisions | Architecture pivots need "why we ended up here", not silent rewrites |
119
+ | `milestones.md` | None — git history + session reports are the trail | Changes too frequently; a log would duplicate reports |
120
+ | PRDs in `design/` | Decision Log at the bottom | Story-level design decisions are what future-you will question |
121
+
122
+ The Decision Log format used in `vision.md` and `roadmap.md`:
123
+ ```markdown
124
+ ## Decision Log
125
+
126
+ | Date | Section | Change | Rationale |
127
+ |------|---------|--------|-----------|
128
+ | YYYY-MM-DD | <section name> | <what changed — brief> | <why> |
129
+ ```
130
+
131
+ ---
132
+
133
+ ## How Project-Specific Extensions Work
134
+
135
+ Each session skill can be extended with a project-specific file in `product/how-to/`:
136
+
137
+ | File | Extends | Common use |
138
+ |------|---------|------------|
139
+ | `how-to/nu-pm-continue.md` | `/nu-pm-continue` | Extra context sources to read at session start (e.g. a CURRENT_STATE.md, cluster status) |
140
+ | `how-to/nu-pm-halt.md` | `/nu-pm-halt` | Infrastructure shutdown steps (scale down GPU nodes, hibernate cluster, etc.) |
141
+ | `how-to/nu-pm-update.md` | `/nu-pm-update` | Extra state to capture in mid-session snapshots |
142
+ | `how-to/nu-pm-status.md` | `/nu-pm-status` | Infrastructure prerequisite checks before suggesting the next task |
143
+
144
+ **How-to files contain only the project-specific additions.** The generic steps live in the global skills. If nothing is project-specific, delete the file.
145
+
146
+ ---
147
+
148
+ ## Typical Workflows
149
+
150
+ ### Starting a new project
151
+ ```
152
+ /nu-pm-scaffold [description] # create product/ structure
153
+ /nu-pm-vision # fill in vision.md interactively
154
+ /nu-pm-roadmap # fill in roadmap.md interactively
155
+ # edit product/how-to/nu-pm-halt.md — add your infra shutdown steps
156
+ # edit milestones.md — replace placeholder tasks with real ones
157
+ /nu-pm-continue # start first session
158
+ ```
159
+
160
+ ### Daily session
161
+ ```
162
+ /nu-pm-continue # read resume brief, orient to active story
163
+ # ... do the work ...
164
+ /nu-pm-update # optional mid-session checkpoint
165
+ # ... more work ...
166
+ /nu-pm-halt # update docs, commit, push, shut down infra
167
+ ```
168
+
169
+ ### After finishing a task mid-session
170
+ ```
171
+ /nu-pm-status # find the next task with prerequisite check
172
+ ```
173
+
174
+ ### End of milestone — check if strategy still holds
175
+ ```
176
+ /nu-pm-vision # review: did this milestone change our understanding?
177
+ /nu-pm-roadmap # review: is the plan still right? resolve open questions
178
+ ```
179
+
180
+ ### Before a meeting or investor conversation
181
+ ```
182
+ /nu-pm-one-pager # generate or refresh the one-pager
183
+ /nu-pm-elevator-pitch # generate or refine the pitch
184
+ ```
185
+
186
+ ---
187
+
188
+ ## Where the Skills Live
189
+
190
+ All `nu-pm-*` commands are global — they work in any project. They live in:
191
+ ```
192
+ ~/.claude/commands/nu-pm-*.md
193
+ ```
194
+
195
+ Each skill file is the complete prompt for that command. To modify a skill's behavior, edit the file there. Changes take effect immediately in the next invocation.
196
+
197
+ Project-specific additions go in `product/how-to/` inside each project — not in the global skill files.
198
+
199
+ ---
200
+
201
+ ## All Arguments Default to `product/`
202
+
203
+ Every command that takes a directory argument (`[dir]`) defaults to `product/` if no argument is given. Pass a different path when your project uses a non-standard layout:
204
+ ```
205
+ /nu-pm-status # uses product/
206
+ /nu-pm-status src/product # uses src/product/
207
+ ```
208
+
209
+ ---
210
+
211
+ *The per-project copy of operational conventions lives in `product/project-management-principles.md`. That document covers how milestones, PRDs, and commits work within a project. This user guide covers the tooling itself.*
@@ -0,0 +1,153 @@
1
+ ---
2
+ name: nu-pm-vision
3
+ description: Interactively create or review product/vision.md. Creates it from scratch if missing (e.g. after scaffold), or reviews it against current project state and proposes updates.
4
+ ---
5
+
6
+ You are helping the user create or review the product vision document. Branch on whether the document exists and is filled in.
7
+
8
+ The target directory is: `$ARGUMENTS` (use `product/` if empty or not provided).
9
+
10
+ ---
11
+
12
+ ## Step 1 — Assess what exists
13
+
14
+ Read `<dir>/vision.md`.
15
+
16
+ Classify its state:
17
+ - **Missing**: file does not exist
18
+ - **Placeholder**: file exists but contains scaffold boilerplate (`<Describe...>`, `TODO`, `> Replace this placeholder`, empty sections)
19
+ - **Filled**: file has real content
20
+
21
+ Then read these in parallel (they inform both creation and review):
22
+ - `<dir>/milestones.md` — what has been proven or completed
23
+ - `<dir>/now.md` — most recent completed work and current focus
24
+ - The most recent file in `<dir>/reports/` — last session's findings
25
+
26
+ ---
27
+
28
+ ## Step 2A — If Missing or Placeholder: Create Mode
29
+
30
+ Walk the user through each section interactively. Do not generate all sections at once — complete one, show it, get feedback, then move on.
31
+
32
+ Work through these sections in order:
33
+
34
+ ### Problem
35
+ Ask: *"What pain are you solving, for whom, and why existing options fall short?"*
36
+
37
+ Generate a draft from whatever the user says. Aim for 3–5 sentences covering:
38
+ - Who feels the pain and in what context
39
+ - What they do today (and why that's inadequate)
40
+ - What the gap is
41
+
42
+ Show the draft. Offer to sharpen it. Move on when the user is satisfied.
43
+
44
+ ### Customer / Target user
45
+ Ask: *"Who is this for — be as specific as you can about their role, team, and the moment they hit this problem."*
46
+
47
+ Draft 2–3 sentences. Offer to add a secondary user if relevant. Move on.
48
+
49
+ ### Market context
50
+ Ask: *"What alternatives exist and what's wrong with each? Are there any competitors or adjacent products?"*
51
+
52
+ Draft a short paragraph. Refer to `<dir>/market-research/` if it exists and has content. Move on.
53
+
54
+ ### North star
55
+ Ask: *"What does success look like in 2–3 years? What can a user do then that they can't do today?"*
56
+
57
+ Draft 2–3 sentences. This should be aspirational but specific — not "best product in category" but a concrete capability or outcome. Move on.
58
+
59
+ ### Why now
60
+ Ask: *"Why is this the right moment to build this — what's changed recently that makes it viable or urgent?"*
61
+
62
+ Draft 1–2 sentences. Could be a technology shift, a market gap that just opened, a regulatory change, or simply that the infrastructure now exists to make it feasible. Move on.
63
+
64
+ ### What we are not
65
+ Ask: *"What are the product-level anti-goals — things this product will deliberately never try to be?"*
66
+
67
+ Draft 3–5 bullets. These should be principled product-scope cuts, not just feature gaps. Move on.
68
+
69
+ ### Finalize
70
+ Show the complete draft. List 2–3 suggestions for anything that seems vague, unsupported, or weak.
71
+
72
+ Ask: *"Anything to change before I save this?"* Iterate until the user confirms.
73
+
74
+ Write to `<dir>/vision.md`. Do not include a Decision Log yet — the document is new.
75
+
76
+ ---
77
+
78
+ ## Step 2B — If Filled: Review Mode
79
+
80
+ The goal is to surface drift: places where the vision no longer matches what has been learned or built.
81
+
82
+ ### Load context
83
+ Read the filled `<dir>/vision.md` fully.
84
+
85
+ ### Check for drift — work through each section
86
+
87
+ **Problem section**: Does recent work confirm or complicate the problem statement?
88
+ - Did any completed milestone reveal that the problem is harder, narrower, or different than stated?
89
+ - Is the "why existing options fall short" still accurate?
90
+
91
+ **Customer section**: Has the target user sharpened or shifted?
92
+ - Did actual usage (or benchmark results, or customer feedback) reveal a more specific or different user profile?
93
+
94
+ **Market context**: Is this still accurate?
95
+ - Any new competitors or reference points from the session reports or design docs?
96
+
97
+ **North star**: Does it still point the right direction?
98
+ - Did any milestone reveal that the north star is too ambitious, too narrow, or needs reframing?
99
+
100
+ **Why now**: Is the timing argument still valid, or has it strengthened?
101
+ - Did completed work prove out a key technical assumption?
102
+
103
+ **What we are not**: Are the anti-goals still holding?
104
+ - Did any scope decision in milestones or PRDs imply a different boundary?
105
+
106
+ ### Propose specific edits
107
+
108
+ For each section where you detect drift or weakness, propose a specific change:
109
+
110
+ ```
111
+ ### [Section name] — suggested update
112
+
113
+ **Current**: "<exact quote from current doc>"
114
+
115
+ **Proposed**: "<replacement text>"
116
+
117
+ **Why**: <one sentence — what changed or what's weak>
118
+ ```
119
+
120
+ If a section looks solid, say so briefly and skip it.
121
+
122
+ Aim for 2–5 targeted proposals. Do not rewrite the whole document.
123
+
124
+ ### Iterate
125
+ Ask: *"Which of these would you like to apply? I can also make other changes or leave anything as-is."*
126
+
127
+ Apply changes one at a time. Show the updated section after each change.
128
+
129
+ ### Decision Log
130
+ If any changes are applied, append a row to the Decision Log at the bottom of the file:
131
+
132
+ ```markdown
133
+ ---
134
+
135
+ ## Decision Log
136
+
137
+ | Date | Section | Change | Rationale |
138
+ |------|---------|--------|-----------|
139
+ | YYYY-MM-DD | <section name> | <what changed — brief> | <why — what prompted the update> |
140
+ ```
141
+
142
+ If a Decision Log already exists, append a new row. Do not rewrite existing rows.
143
+
144
+ Write the file when the user confirms.
145
+
146
+ ---
147
+
148
+ ## Step 3 — After saving
149
+
150
+ Tell the user:
151
+ - What was written or updated
152
+ - If this was a creation: suggest running `/nu-pm-roadmap` next to align the roadmap with the vision
153
+ - If this was a review: note any vision changes that may require a roadmap review (`/nu-pm-roadmap`)
package/package.json ADDED
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "@nudata/nu-claude-pm",
3
+ "version": "0.1.0",
4
+ "description": "Claude Code slash commands for end-to-end project management — session flow, vision, roadmap, research, and external comms.",
5
+ "keywords": ["claude", "claude-code", "pm", "project-management", "ai"],
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "bin": {
9
+ "nu-claude-pm": "./bin/nu-claude-pm.js"
10
+ },
11
+ "files": [
12
+ "bin/",
13
+ "commands/"
14
+ ],
15
+ "engines": {
16
+ "node": ">=18"
17
+ },
18
+ "publishConfig": {
19
+ "access": "public"
20
+ }
21
+ }