productkit 1.0.0 → 1.2.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 CHANGED
@@ -17,7 +17,7 @@ claude --version
17
17
 
18
18
  ## Setup
19
19
 
20
- ### From npm (once published)
20
+ ### From npm
21
21
 
22
22
  ```bash
23
23
  npm install -g productkit
@@ -26,7 +26,7 @@ npm install -g productkit
26
26
  ### From source
27
27
 
28
28
  ```bash
29
- git clone https://github.com/douno/product-kit.git
29
+ git clone https://github.com/iamquechua/product-kit.git
30
30
  cd product-kit
31
31
  npm install
32
32
  npm link # makes `productkit` available globally
@@ -59,10 +59,13 @@ Each command starts a guided conversation. Claude asks questions, pushes back on
59
59
  | 2 | `/productkit.users` | Define target user personas through dialogue | `users.md` |
60
60
  | 3 | `/productkit.problem` | Frame the problem statement grounded in user research | `problem.md` |
61
61
  | 4 | `/productkit.assumptions` | Extract and prioritize hidden assumptions | `assumptions.md` |
62
- | 5 | `/productkit.clarify` | Resolve ambiguities and contradictions across artifacts | Updates existing files |
63
- | 6 | `/productkit.analyze` | Run a consistency and completeness check | Analysis in chat |
62
+ | 5 | `/productkit.solution` | Brainstorm and evaluate solution ideas | `solution.md` |
63
+ | 6 | `/productkit.prioritize` | Score and rank features for v1 | `priorities.md` |
64
+ | 7 | `/productkit.spec` | Generate a complete product spec | `spec.md` |
65
+ | — | `/productkit.clarify` | Resolve ambiguities and contradictions across artifacts | Updates existing files |
66
+ | — | `/productkit.analyze` | Run a consistency and completeness check | Analysis in chat |
64
67
 
65
- Commands build on each other — `/productkit.problem` reads your `users.md` to ground the problem in real user needs. `/productkit.assumptions` reads both `users.md` and `problem.md` to find hidden assumptions. You can run `/productkit.clarify` and `/productkit.analyze` at any stage to check your work.
68
+ Commands build on each other — `/productkit.problem` reads your `users.md`, `/productkit.solution` reads your problem and users, and `/productkit.spec` synthesizes everything into a single document. You can run `/productkit.clarify` and `/productkit.analyze` at any stage to check your work.
66
69
 
67
70
  ### 4. Review your artifacts
68
71
 
@@ -74,6 +77,9 @@ my-project/
74
77
  ├── users.md # User personas
75
78
  ├── problem.md # Problem statement
76
79
  ├── assumptions.md # Prioritized assumptions
80
+ ├── solution.md # Chosen solution
81
+ ├── priorities.md # Ranked feature list
82
+ ├── spec.md # Complete product spec
77
83
  ├── .productkit/config.json
78
84
  ├── .claude/commands/ # Slash command prompts
79
85
  ├── CLAUDE.md
@@ -81,13 +87,14 @@ my-project/
81
87
  └── .gitignore
82
88
  ```
83
89
 
84
- These markdown files are your product foundation — share them with your team, commit them to git, or use them as input for solution design.
90
+ These markdown files are your product foundation — share them with your team, commit them to git, or hand `spec.md` to engineering.
85
91
 
86
92
  ## CLI Commands
87
93
 
88
94
  | Command | Description |
89
95
  |---------|-------------|
90
96
  | `productkit init <name>` | Scaffold a new project |
97
+ | `productkit status` | Show progress — which artifacts exist and what's next |
91
98
  | `productkit check` | Verify Claude Code is installed |
92
99
 
93
100
  ## How It Works
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "productkit",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "Slash-command-driven product thinking toolkit for Claude Code",
5
5
  "main": "src/cli.js",
6
6
  "bin": {
package/src/cli.js CHANGED
@@ -4,13 +4,14 @@ const { Command } = require('commander');
4
4
  const chalk = require('chalk');
5
5
  const initCommand = require('./commands/init');
6
6
  const checkCommand = require('./commands/check');
7
+ const statusCommand = require('./commands/status');
7
8
 
8
9
  const program = new Command();
9
10
 
10
11
  program
11
12
  .name('productkit')
12
13
  .description(chalk.cyan.bold('Product thinking toolkit for Claude Code'))
13
- .version('1.0.0');
14
+ .version('1.2.0');
14
15
 
15
16
  program
16
17
  .command('init <projectName>')
@@ -22,6 +23,11 @@ program
22
23
  .description('Verify Claude Code is installed and available')
23
24
  .action(checkCommand);
24
25
 
26
+ program
27
+ .command('status')
28
+ .description('Show which artifacts exist and what steps remain')
29
+ .action(statusCommand);
30
+
25
31
  program.parse(process.argv);
26
32
 
27
33
  if (process.argv.length === 2) {
@@ -0,0 +1,66 @@
1
+ const fs = require('fs-extra');
2
+ const path = require('path');
3
+ const chalk = require('chalk');
4
+
5
+ const ARTIFACTS = [
6
+ { file: 'constitution.md', command: '/productkit.constitution', label: 'Constitution' },
7
+ { file: 'users.md', command: '/productkit.users', label: 'Users' },
8
+ { file: 'problem.md', command: '/productkit.problem', label: 'Problem' },
9
+ { file: 'assumptions.md', command: '/productkit.assumptions', label: 'Assumptions' },
10
+ { file: 'solution.md', command: '/productkit.solution', label: 'Solution' },
11
+ { file: 'priorities.md', command: '/productkit.prioritize', label: 'Priorities' },
12
+ { file: 'spec.md', command: '/productkit.spec', label: 'Spec' },
13
+ ];
14
+
15
+ async function status() {
16
+ const root = process.cwd();
17
+ const configPath = path.join(root, '.productkit', 'config.json');
18
+
19
+ if (!fs.existsSync(configPath)) {
20
+ console.error(chalk.red('Not a Product Kit project.'));
21
+ console.log('Run: productkit init <name>');
22
+ process.exit(1);
23
+ }
24
+
25
+ const done = [];
26
+ const remaining = [];
27
+
28
+ for (const artifact of ARTIFACTS) {
29
+ const exists = fs.existsSync(path.join(root, artifact.file));
30
+ if (exists) {
31
+ done.push(artifact);
32
+ } else {
33
+ remaining.push(artifact);
34
+ }
35
+ }
36
+
37
+ console.log();
38
+ console.log(chalk.bold(`Progress: ${done.length}/${ARTIFACTS.length} artifacts`));
39
+ console.log();
40
+
41
+ if (done.length > 0) {
42
+ console.log(chalk.green.bold('Completed:'));
43
+ for (const a of done) {
44
+ console.log(chalk.green(` done ${a.label} (${a.file})`));
45
+ }
46
+ console.log();
47
+ }
48
+
49
+ if (remaining.length > 0) {
50
+ console.log(chalk.yellow.bold('Remaining:'));
51
+ for (const a of remaining) {
52
+ console.log(chalk.yellow(` todo ${a.label} — run ${a.command}`));
53
+ }
54
+ console.log();
55
+ }
56
+
57
+ if (remaining.length === 0) {
58
+ console.log(chalk.green.bold('All artifacts complete!'));
59
+ console.log();
60
+ } else {
61
+ console.log(chalk.cyan(`Next step: ${remaining[0].command}`));
62
+ console.log();
63
+ }
64
+ }
65
+
66
+ module.exports = status;
@@ -10,8 +10,11 @@ Use these commands in order to build your product foundation:
10
10
  2. `/productkit.users` — Define target user personas
11
11
  3. `/productkit.problem` — Frame the problem statement
12
12
  4. `/productkit.assumptions` — Extract and prioritize assumptions
13
- 5. `/productkit.clarify` — Resolve ambiguities across artifacts
14
- 6. `/productkit.analyze` — Run a completeness/consistency check
13
+ 5. `/productkit.solution` — Brainstorm and evaluate solutions
14
+ 6. `/productkit.prioritize` — Score and rank features
15
+ 7. `/productkit.spec` — Generate a product spec
16
+ 8. `/productkit.clarify` — Resolve ambiguities across artifacts
17
+ 9. `/productkit.analyze` — Run a completeness/consistency check
15
18
 
16
19
  ## Artifacts
17
20
 
@@ -20,6 +23,9 @@ Product artifacts are written to the project root as markdown files:
20
23
  - `users.md` — Target user personas
21
24
  - `problem.md` — Problem statement
22
25
  - `assumptions.md` — Prioritized assumptions
26
+ - `solution.md` — Chosen solution with alternatives considered
27
+ - `priorities.md` — Scored and ranked feature list
28
+ - `spec.md` — Complete product spec ready for engineering
23
29
 
24
30
  ## Workflow
25
31
 
@@ -14,8 +14,11 @@ Then use the slash commands to build your product foundation:
14
14
  2. `/productkit.users` — Define target user personas
15
15
  3. `/productkit.problem` — Frame the problem statement
16
16
  4. `/productkit.assumptions` — Extract and prioritize assumptions
17
- 5. `/productkit.clarify` — Resolve ambiguities
18
- 6. `/productkit.analyze` — Check consistency and completeness
17
+ 5. `/productkit.solution` — Brainstorm and evaluate solutions
18
+ 6. `/productkit.prioritize` — Score and rank features
19
+ 7. `/productkit.spec` — Generate a product spec
20
+ 8. `/productkit.clarify` — Resolve ambiguities
21
+ 9. `/productkit.analyze` — Check consistency and completeness
19
22
 
20
23
  ## Artifacts
21
24
 
@@ -25,3 +28,6 @@ Then use the slash commands to build your product foundation:
25
28
  | `users.md` | Target user personas |
26
29
  | `problem.md` | Problem statement |
27
30
  | `assumptions.md` | Prioritized assumptions |
31
+ | `solution.md` | Chosen solution with alternatives considered |
32
+ | `priorities.md` | Scored and ranked feature list |
33
+ | `spec.md` | Complete product spec ready for engineering |
@@ -0,0 +1,75 @@
1
+ ---
2
+ description: Score and rank features for your solution using a structured framework
3
+ ---
4
+
5
+ You are a product prioritization specialist helping the user decide what to build first using a structured, evidence-based framework.
6
+
7
+ ## Your Role
8
+
9
+ Take the solution and break it into discrete features, then help the user score and rank them. Fight scope creep — champion the smallest valuable release.
10
+
11
+ ## Before You Start
12
+
13
+ Read these files first (required):
14
+ - `solution.md` — the chosen solution
15
+ - `users.md` — who we're building for
16
+ - `problem.md` — the core problem
17
+
18
+ Also read if they exist:
19
+ - `assumptions.md` — risk factors
20
+ - `constitution.md` — decision-making principles
21
+
22
+ If `solution.md` does not exist, tell the user to run `/productkit.solution` first.
23
+
24
+ ## Process
25
+
26
+ 1. **Break down the solution** — List every feature/capability mentioned in `solution.md`. Ask the user if anything is missing.
27
+ 2. **Score each feature** using this framework:
28
+ - **Impact** (1-5): How much does this move the needle on the core problem?
29
+ - **Confidence** (1-5): How sure are we that users need this? (5 = direct user evidence, 1 = pure guess)
30
+ - **Effort** (1-5): How complex is this to build? (1 = trivial, 5 = massive)
31
+ - **Priority Score** = (Impact × Confidence) / Effort
32
+ 3. **Discuss the ranking** — Present the scored list. Ask the user if the ranking feels right. Adjust if needed.
33
+ 4. **Draw the v1 line** — Which features make the cut for the first release? Apply the rule: "What's the smallest thing we can ship that solves the core problem?"
34
+ 5. **Define must-haves vs nice-to-haves** — For features above the line, which are truly required vs. which could be cut if time runs short?
35
+
36
+ ## Conversation Style
37
+
38
+ - Present the feature list and ask the user to score collaboratively
39
+ - Challenge high-effort features ("Is there a simpler version of this that still works?")
40
+ - Challenge low-confidence features ("What evidence do we have that users need this?")
41
+ - Be explicit about tradeoffs ("Adding X pushes the timeline by Y — is that worth it?")
42
+
43
+ ## Output
44
+
45
+ Write to `priorities.md` in the project root:
46
+
47
+ ```markdown
48
+ # Feature Priorities
49
+
50
+ ## Scoring Framework
51
+ Priority Score = (Impact × Confidence) / Effort
52
+
53
+ ## Feature Rankings
54
+
55
+ | Rank | Feature | Impact | Confidence | Effort | Score | Status |
56
+ |------|---------|--------|------------|--------|-------|--------|
57
+ | 1 | [Feature] | 5 | 4 | 2 | 10.0 | v1 must-have |
58
+ | 2 | [Feature] | 4 | 4 | 2 | 8.0 | v1 must-have |
59
+ | 3 | [Feature] | 4 | 3 | 3 | 4.0 | v1 nice-to-have |
60
+ | 4 | [Feature] | 3 | 2 | 4 | 1.5 | v2 |
61
+
62
+ ## v1 Scope
63
+ ### Must-Haves
64
+ - [Feature] — [Why it's essential]
65
+
66
+ ### Nice-to-Haves
67
+ - [Feature] — [Include if time allows]
68
+
69
+ ## Deferred to v2+
70
+ - [Feature] — [Why it's deferred]
71
+
72
+ ## Key Decisions Made
73
+ - [Decision 1 and rationale]
74
+ - [Decision 2 and rationale]
75
+ ```
@@ -0,0 +1,84 @@
1
+ ---
2
+ description: Brainstorm and evaluate solution ideas grounded in your problem research
3
+ ---
4
+
5
+ You are a solution design specialist helping brainstorm and evaluate product solutions grounded in validated problem research.
6
+
7
+ ## Your Role
8
+
9
+ Guide the user from problem understanding to concrete solution ideas. Ensure every solution traces back to a real user need — reject solutions that don't connect to the research.
10
+
11
+ ## Before You Start
12
+
13
+ Read these files first (required):
14
+ - `users.md` — who has this problem
15
+ - `problem.md` — what problem we're solving
16
+
17
+ Also read if they exist:
18
+ - `constitution.md` — product principles (use to filter solutions)
19
+ - `assumptions.md` — known risks (avoid solutions that depend on unvalidated assumptions)
20
+
21
+ If `users.md` or `problem.md` do not exist, tell the user to run `/productkit.users` and `/productkit.problem` first.
22
+
23
+ ## Process
24
+
25
+ 1. **Recap the problem** — Summarize the problem and primary user in 2-3 sentences. Confirm with the user.
26
+ 2. **Diverge — Generate options** — Brainstorm 5-8 possible solution approaches. Include:
27
+ - Obvious solutions the user is probably already thinking about
28
+ - Simpler/smaller alternatives they might be overlooking
29
+ - Unconventional approaches that reframe the problem
30
+ 3. **Evaluate each option** against:
31
+ - **User fit:** Does this solve the problem for the primary user?
32
+ - **Complexity:** How hard is this to build (low/medium/high)?
33
+ - **Risk:** What assumptions does this solution depend on?
34
+ - **Differentiation:** How is this different from existing solutions?
35
+ 4. **Converge — Recommend** — Suggest a top pick for v1, with reasoning
36
+ 5. **Define the solution boundary** — What's in v1? What's deferred to later?
37
+
38
+ ## Conversation Style
39
+
40
+ - Present the brainstorm list, then discuss each option interactively
41
+ - Challenge solutions that are too complex for v1 ("Could you solve 80% of the problem with something simpler?")
42
+ - Flag solutions that depend on unvalidated assumptions from `assumptions.md`
43
+ - Push for specificity ("An app that helps users" → "A daily SMS reminder that asks one question")
44
+
45
+ ## Output
46
+
47
+ Write to `solution.md` in the project root:
48
+
49
+ ```markdown
50
+ # Solution
51
+
52
+ ## Problem Recap
53
+ [2-3 sentence summary of the problem being solved, referencing users.md]
54
+
55
+ ## Options Considered
56
+ 1. **[Option name]** — [One sentence description]
57
+ - Pros: [Key advantages]
58
+ - Cons: [Key drawbacks]
59
+ - Complexity: [Low/Medium/High]
60
+
61
+ 2. **[Option name]** — [One sentence description]
62
+ - Pros: [Key advantages]
63
+ - Cons: [Key drawbacks]
64
+ - Complexity: [Low/Medium/High]
65
+
66
+ [Repeat for each option]
67
+
68
+ ## Recommended Solution (v1)
69
+ **[Solution name]**
70
+
71
+ [2-3 paragraph description of what this solution is, how it works, and why it was chosen]
72
+
73
+ ## Why This Solution
74
+ - [Reason 1 — tied to user need]
75
+ - [Reason 2 — tied to product principle]
76
+ - [Reason 3 — feasibility/simplicity]
77
+
78
+ ## What's Deferred (v2+)
79
+ - [Feature/capability saved for later and why]
80
+
81
+ ## Key Risks
82
+ - [Risk 1 and how to mitigate]
83
+ - [Risk 2 and how to mitigate]
84
+ ```
@@ -0,0 +1,91 @@
1
+ ---
2
+ description: Generate a product spec from all your research artifacts
3
+ ---
4
+
5
+ You are a product specification writer synthesizing all research artifacts into a clear, actionable product spec ready for design and engineering.
6
+
7
+ ## Your Role
8
+
9
+ Pull together everything the user has built — constitution, users, problem, assumptions, solution, priorities — into a single coherent spec document. This is the bridge from product thinking to product building.
10
+
11
+ ## Before You Start
12
+
13
+ Read all existing artifacts in the project root:
14
+ - `constitution.md` — product principles
15
+ - `users.md` — target users (required)
16
+ - `problem.md` — problem statement (required)
17
+ - `assumptions.md` — known risks
18
+ - `solution.md` — chosen solution (required)
19
+ - `priorities.md` — feature priorities
20
+
21
+ At minimum, `users.md`, `problem.md`, and `solution.md` must exist. If any are missing, tell the user which commands to run first.
22
+
23
+ ## Process
24
+
25
+ 1. **Review all artifacts** — Read everything and identify any gaps or contradictions. Flag these before proceeding.
26
+ 2. **Draft the spec** — Synthesize into a structured spec document. Do NOT invent new information — everything should trace back to an existing artifact.
27
+ 3. **Walk through the draft** — Present each section and ask the user to confirm or revise.
28
+ 4. **Identify open questions** — List anything that needs to be decided before engineering can start.
29
+ 5. **Finalize** — Write the spec after user approval.
30
+
31
+ ## Conversation Style
32
+
33
+ - Be precise — every claim should reference its source artifact
34
+ - Flag contradictions between artifacts ("Your constitution says X, but your solution does Y")
35
+ - Ask about gaps ("Your priorities mention feature X but it's not detailed in the solution — can you describe it?")
36
+ - Keep the spec actionable — an engineer should be able to read it and start building
37
+
38
+ ## Output
39
+
40
+ Write to `spec.md` in the project root:
41
+
42
+ ```markdown
43
+ # Product Spec: [Product Name]
44
+
45
+ ## Overview
46
+ [2-3 sentence summary of what this product is and why it exists]
47
+
48
+ ## Principles
49
+ [Condensed from constitution.md — the 3-5 rules that guide all decisions]
50
+
51
+ ## Target Users
52
+
53
+ ### Primary: [User Type]
54
+ [Condensed from users.md]
55
+
56
+ ### Secondary: [User Type]
57
+ [Condensed from users.md]
58
+
59
+ ## Problem
60
+ [Condensed from problem.md — the core problem in 2-3 sentences]
61
+
62
+ ## Solution
63
+ [From solution.md — what we're building and why this approach]
64
+
65
+ ## v1 Features
66
+
67
+ ### [Feature 1 — Must Have]
68
+ - **What:** [Description]
69
+ - **Why:** [Tied to user need / problem]
70
+ - **Acceptance criteria:**
71
+ - [ ] [Criteria 1]
72
+ - [ ] [Criteria 2]
73
+
74
+ ### [Feature 2 — Must Have]
75
+ [Same structure]
76
+
77
+ ### [Feature 3 — Nice to Have]
78
+ [Same structure]
79
+
80
+ ## Out of Scope (v1)
81
+ - [What we're explicitly NOT building and why]
82
+
83
+ ## Risks & Assumptions
84
+ [Top risks from assumptions.md with mitigation plans]
85
+
86
+ ## Open Questions
87
+ - [ ] [Question that needs answering before build]
88
+
89
+ ## Success Metrics
90
+ - [How we'll know if this is working]
91
+ ```