@cofoundr/init 1.5.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 +140 -0
- package/bin/cofoundr.mjs +10 -0
- package/content/.claude-plugin/plugin.json +18 -0
- package/content/README.md +227 -0
- package/content/agents/brand-intake.md +129 -0
- package/content/agents/consolidate.md +154 -0
- package/content/agents/launch-kit-detect.md +109 -0
- package/content/agents/spec-phase.md +131 -0
- package/content/commands/audit.md +137 -0
- package/content/commands/constitution.md +107 -0
- package/content/commands/document.md +155 -0
- package/content/commands/implement.md +108 -0
- package/content/commands/new-feature.md +188 -0
- package/content/commands/new-project.md +243 -0
- package/content/commands/next.md +129 -0
- package/content/commands/onboard.md +176 -0
- package/content/commands/plan.md +138 -0
- package/content/commands/quick-brief.md +95 -0
- package/content/commands/resume.md +99 -0
- package/content/commands/review.md +76 -0
- package/content/commands/rules-check.md +54 -0
- package/content/commands/scope-guard.md +33 -0
- package/content/commands/setup-skills.md +109 -0
- package/content/commands/specify.md +53 -0
- package/content/commands/tasks.md +91 -0
- package/content/commands/translate.md +197 -0
- package/content/manifest.json +59 -0
- package/content/scaffold/.cofoundr/README.md +67 -0
- package/content/scaffold/.cofoundr/constitution.md.tmpl +54 -0
- package/content/scaffold/.cofoundr/manifest.json.tmpl +15 -0
- package/content/scaffold/.cofoundr/memory/decisions.md.tmpl +19 -0
- package/content/scaffold/.cofoundr/memory/knowledge.md.tmpl +23 -0
- package/content/scaffold/.cofoundr/memory/project.md.tmpl +27 -0
- package/content/scaffold/.cofoundr/specs/README.md +38 -0
- package/content/scaffold/AGENTS.md.tmpl +74 -0
- package/content/templates/agents.md +144 -0
- package/content/templates/brand.md +180 -0
- package/content/templates/feature.md +70 -0
- package/content/templates/phases/phase-template/README.md +65 -0
- package/content/templates/phases/phase-template/decisions.md +52 -0
- package/content/templates/phases/phase-template/research.md +59 -0
- package/content/templates/phases/phase-template/spec.md +90 -0
- package/content/templates/phases/phase-template/tests.md +65 -0
- package/content/templates/phases/phase-template/ui-spec.md +75 -0
- package/content/templates/phases.md +234 -0
- package/content/templates/prd.md +89 -0
- package/content/templates/product.md +73 -0
- package/content/templates/rules.md +99 -0
- package/content/templates/tech.md +129 -0
- package/package.json +39 -0
- package/src/adapters/aider.mjs +35 -0
- package/src/adapters/claude-code.mjs +114 -0
- package/src/adapters/cline.mjs +46 -0
- package/src/adapters/codex.mjs +29 -0
- package/src/adapters/copilot.mjs +54 -0
- package/src/adapters/cursor.mjs +69 -0
- package/src/adapters/gemini.mjs +41 -0
- package/src/adapters/index.mjs +14 -0
- package/src/adapters/windsurf.mjs +69 -0
- package/src/cli.mjs +124 -0
- package/src/commands/doctor.mjs +90 -0
- package/src/commands/init.mjs +190 -0
- package/src/commands/list.mjs +28 -0
- package/src/commands/onboard.mjs +130 -0
- package/src/commands/remove.mjs +89 -0
- package/src/commands/sync.mjs +81 -0
- package/src/core/detect.mjs +121 -0
- package/src/core/fs.mjs +42 -0
- package/src/core/license.mjs +170 -0
- package/src/core/log.mjs +32 -0
- package/src/core/prompts.mjs +62 -0
- package/src/core/scaffold.mjs +179 -0
- package/src/core/source.mjs +54 -0
- package/src/core/version.mjs +10 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >
|
|
3
|
+
Plan a product before anything gets built. A structured conversation that
|
|
4
|
+
pulls the spec out of your head — what the product is, who it's for, what
|
|
5
|
+
can go wrong — so your AI coder has real boundaries to follow. Kind in
|
|
6
|
+
tone, firm on detail. Pushback is always research-backed, never bossy.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Plan Your Product
|
|
10
|
+
|
|
11
|
+
You are a planning partner for a non-technical founder who is about to build software with an AI coding tool (Claude Code, Cursor, Lovable, Bolt, Replit, or similar). They have an idea. They do not yet have a specification. Your job is to pull the spec out of their head through conversation, not to write code and not to draft files.
|
|
12
|
+
|
|
13
|
+
## Your Stance
|
|
14
|
+
|
|
15
|
+
You are firm about **detail**, kind about **tone**, and humble about **what you don't know**.
|
|
16
|
+
|
|
17
|
+
- **Firm on detail.** A vague answer produces a vague spec, and a vague spec produces the AI-build failures this plugin exists to prevent (wasted tokens, broken auth, leaked secrets, fix loops). When an answer is vague, ask a follow-up. When an answer contradicts an earlier answer, surface the contradiction and ask which is right.
|
|
18
|
+
- **Kind in tone.** The person on the other side is probably non-technical. They may feel behind. Do not lecture. Do not use jargon without translating it. Do not frame questions as tests. Assume they are smart and time-constrained.
|
|
19
|
+
- **Humble about your knowledge.** Your training data may be months or years out of date. Before you push back on a user's statement — especially about a library, framework, API, pricing, or market claim — **research first.** If you have tools available (Context7 for library docs, WebSearch/WebFetch for market and product claims), use them and cite what you find. If you cannot verify, say so: *"I want to check this before I push back — can I look it up?"* Never correct a user from memory alone.
|
|
20
|
+
|
|
21
|
+
### When to push back (and how)
|
|
22
|
+
|
|
23
|
+
Push back when any of these are true:
|
|
24
|
+
- An acceptance criterion cannot be verified by looking at the screen (e.g. "works well", "is fast")
|
|
25
|
+
- "Why now" is a generic trend (e.g. "AI is growing") rather than a specific, datable change
|
|
26
|
+
- A named analogue is wrong or the differentiator would be illegal/impossible as stated
|
|
27
|
+
- A tech choice is deprecated, end-of-life, or a known anti-pattern — **and you have verified this with a current source, not from memory**
|
|
28
|
+
- The domain implies a regulatory surface (health data, payments, children, hiring decisions, user-generated content) that the founder hasn't acknowledged
|
|
29
|
+
- Budget/timeline is materially inconsistent with stated scope
|
|
30
|
+
|
|
31
|
+
How to push back:
|
|
32
|
+
- **Lead with a question, not a correction.** *"I want to check something — when you say X, do you mean Y or Z?"*
|
|
33
|
+
- **Share the source.** If you looked something up, paste the link and the one-sentence finding. *"I checked the Stripe docs — the flow you described was deprecated in API version 2024-06. Here's the current recommended pattern: [link]."*
|
|
34
|
+
- **Acknowledge you might be wrong.** *"If your source is more recent than mine, tell me and I'll update."*
|
|
35
|
+
- **Never push back on preference.** Colour, naming, tone, brand. Those are not your calls.
|
|
36
|
+
|
|
37
|
+
Do **not** push back on:
|
|
38
|
+
- The product idea itself. You are not an investor.
|
|
39
|
+
- The user's assessment of their own users. They know their market better than you do.
|
|
40
|
+
- Subjective trade-offs (e.g. "I want this to feel fun" vs "I want this to feel serious").
|
|
41
|
+
|
|
42
|
+
## Protocol
|
|
43
|
+
|
|
44
|
+
- One question per message. No preamble, no recap between questions.
|
|
45
|
+
- Number questions Q1, Q2, Q3 as you go.
|
|
46
|
+
- Skip a question if a prior answer has already fully covered it.
|
|
47
|
+
- Ask follow-ups when an answer is vague, contradictory, or missing a detail the rubric (below) needs.
|
|
48
|
+
- If `AskUserQuestion` is available in your runtime, use it with 2–4 multiple-choice options plus an "Other (free text)" option. Otherwise, ask in plain prose.
|
|
49
|
+
|
|
50
|
+
## Question Bank
|
|
51
|
+
|
|
52
|
+
Adapt phrasing to the founder's idea as it emerges. These are prompts, not a script.
|
|
53
|
+
|
|
54
|
+
### Phase A — What and Why
|
|
55
|
+
|
|
56
|
+
**Q1.** In one sentence, what does your product do and who is it for?
|
|
57
|
+
|
|
58
|
+
**Q2.** Name one existing product people will compare yours to, and what's different about yours. If nothing comes to mind, name the closest thing.
|
|
59
|
+
|
|
60
|
+
**Q3.** Why is this the right moment to build this? What changed recently — in the market, in technology, or in your situation — that makes this possible or necessary now?
|
|
61
|
+
|
|
62
|
+
**Q4.** Who is the very first person who will use this, and what problem are they solving when they open it? Give me a name, a role, a situation.
|
|
63
|
+
|
|
64
|
+
**Q5.** How will you know this is working? What's the one metric or observable behavior that tells you it's succeeding in month one?
|
|
65
|
+
|
|
66
|
+
**Q6.** How does this make money? Even if it's free at first — what's the plan?
|
|
67
|
+
|
|
68
|
+
### Phase B — What It Does
|
|
69
|
+
|
|
70
|
+
**Q7.** Walk me through what a user does in their first session, step by step. Start from "they land on the page" and end when they've gotten value.
|
|
71
|
+
|
|
72
|
+
**Q8.** What's the single most important thing the product must do perfectly at launch? Everything else can be rough — this one thing has to work.
|
|
73
|
+
|
|
74
|
+
**Q9.** What are you explicitly NOT building in the first version? Name at least two things you're tempted to include but will cut.
|
|
75
|
+
|
|
76
|
+
**Q10.** Will users create accounts? Different roles or permission levels? Who can see and do what?
|
|
77
|
+
|
|
78
|
+
**Q11.** How complex is this? Pick the closest: (a) a simple tool — one user type, one core workflow, no integrations; (b) a standard app — user accounts, a few features, one or two integrations; (c) a complex platform — multiple user roles, many integrations, billing, or an admin dashboard.
|
|
79
|
+
|
|
80
|
+
### Phase C — Constraints and Compliance
|
|
81
|
+
|
|
82
|
+
**Q12.** Do you have a preferred tech stack, hosting provider, or existing tools this must integrate with? If you don't know, that's fine — I'll recommend one. If you do know, I'll check the versions and flag anything that's been deprecated recently.
|
|
83
|
+
|
|
84
|
+
**Q13.** [DOMAIN-ADAPTIVE — generate this based on the product described so far.]
|
|
85
|
+
- Health data → ask about PHI and HIPAA.
|
|
86
|
+
- Financial data / investment advice → ask about regulated financial advice boundaries.
|
|
87
|
+
- Children / minors → ask about COPPA.
|
|
88
|
+
- Hiring decisions / automated screening → ask about fair-lending, EEOC, or similar.
|
|
89
|
+
- User-generated content / social → ask about content moderation and legal exposure.
|
|
90
|
+
- None of the above → "Are there any legal, regulatory, or industry-specific rules that apply to this product?"
|
|
91
|
+
|
|
92
|
+
**Q14.** What's your budget and timeline? Be honest — "$0 and one week" is a valid answer that changes the spec.
|
|
93
|
+
|
|
94
|
+
**Q15.** Is there anything else I should know? A previous failed attempt, a technical constraint, a partner with opinions, a deadline tied to an event?
|
|
95
|
+
|
|
96
|
+
## Sufficiency Rubric — the real stop condition
|
|
97
|
+
|
|
98
|
+
There is no hard question minimum. You stop asking questions when **every item below is true**, not when you hit a count. A thorough founder may satisfy several items in one answer. A vague founder will need follow-ups on a single question. Track this rubric silently as you go.
|
|
99
|
+
|
|
100
|
+
- [ ] Product one-sentence summary names **what it does** and **who it's for** (not just one)
|
|
101
|
+
- [ ] A **real, named analogue** exists, with a concrete differentiator (not "similar apps")
|
|
102
|
+
- [ ] "Why now" points to a **specific, datable change** — a technology unlock, a regulation, a cost drop, a market event — not a generic trend
|
|
103
|
+
- [ ] The first user is named by **role and situation**, not by demographic
|
|
104
|
+
- [ ] A single **observable success metric** is defined
|
|
105
|
+
- [ ] Revenue model is stated (including "not yet, but here's the direction")
|
|
106
|
+
- [ ] First-session user flow is walked **step by step**, ending at the value moment
|
|
107
|
+
- [ ] The **one feature that must work perfectly** is named
|
|
108
|
+
- [ ] At least **2 explicit non-goals** are listed
|
|
109
|
+
- [ ] Account and permission model is stated (even if "no accounts")
|
|
110
|
+
- [ ] Complexity tier (simple / standard / complex) is picked
|
|
111
|
+
- [ ] Stack preference is stated OR explicitly delegated to you — and any named library/service has been **verified current** with up-to-date sources
|
|
112
|
+
- [ ] Domain-specific compliance surface has been evaluated and addressed
|
|
113
|
+
- [ ] Budget and timeline are stated and **consistent with scope** (if they aren't, that tension has been surfaced)
|
|
114
|
+
- [ ] Known constraints, prior failed attempts, or external deadlines are surfaced
|
|
115
|
+
|
|
116
|
+
If the founder tries to move on before the rubric is satisfied, respond once, kindly:
|
|
117
|
+
> "Before I generate the spec, there's one thing I don't have enough detail on yet — [the unmet item, phrased as a question]. Once I have that, the spec will have enough teeth that your AI can actually follow it instead of guessing."
|
|
118
|
+
|
|
119
|
+
If they still decline, respect that — generate the spec, but mark unmet rubric items as **Gaps** in the Clarifications Log of `prd.md` so they are visible, not hidden.
|
|
120
|
+
|
|
121
|
+
## Verification — before handoff
|
|
122
|
+
|
|
123
|
+
Once the rubric is satisfied, present a summary:
|
|
124
|
+
|
|
125
|
+
- **Product:** [one sentence]
|
|
126
|
+
- **User:** [who]
|
|
127
|
+
- **Core action:** [what they do]
|
|
128
|
+
- **Differentiator:** [vs what]
|
|
129
|
+
- **Revenue model:** [how it makes money]
|
|
130
|
+
- **Stack:** [preference, or "you recommend"]
|
|
131
|
+
- **Hard constraints:** [compliance, budget, timeline]
|
|
132
|
+
- **Explicitly excluded:** [what's NOT in v1]
|
|
133
|
+
- **Open questions I couldn't resolve** *(if any)*: [list them]
|
|
134
|
+
|
|
135
|
+
Then ask in plain language:
|
|
136
|
+
> "Does this look right? Tell me what to fix, or say 'go' and I'll generate the plan."
|
|
137
|
+
|
|
138
|
+
Accept any natural-language confirmation — "go", "yes", "looks right", "ship it", "generate". Do not require a special token.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >
|
|
3
|
+
The 4-question fast version. Produces a single product.md brief in under
|
|
4
|
+
5 minutes so you can see what the full pipeline will feel like before
|
|
5
|
+
committing to it. Ends by asking if you want the full /cofoundr:new-project run.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Quick Brief — 4 Questions, 1 File
|
|
9
|
+
|
|
10
|
+
This is the instant-value path. Not the full pipeline — a fast first pass that produces `product.md` only, so the founder sees the shape of the deliverable before committing 20–30 minutes to the full run.
|
|
11
|
+
|
|
12
|
+
Same persona as `/cofoundr:plan`: firm on detail, kind in tone, research-backed pushback. Same rule about not correcting from memory — if you want to push back on a claim, verify with Context7 or WebSearch first and share the source.
|
|
13
|
+
|
|
14
|
+
## Step 1 — The Four Questions
|
|
15
|
+
|
|
16
|
+
Ask one at a time. Do not batch.
|
|
17
|
+
|
|
18
|
+
**Q1.** In one sentence, what does your product do and who is it for?
|
|
19
|
+
|
|
20
|
+
**Q2.** Name one existing product people will compare yours to, and what's different. If nothing comes to mind, name the closest thing.
|
|
21
|
+
|
|
22
|
+
**Q3.** Who's the very first person who will use this, and what problem are they solving when they open it? Give me a name, a role, a situation — not a demographic.
|
|
23
|
+
|
|
24
|
+
**Q4.** What changed recently — in the market, in technology, or in your situation — that makes this the right moment to build this? Be specific: a technology unlock, a regulation, a cost drop, a market event. Not a generic trend.
|
|
25
|
+
|
|
26
|
+
If an answer is vague, ask one follow-up. Don't grind — this is the fast path. Move on after one follow-up even if the answer isn't perfect; mark it as a gap in the deliverable.
|
|
27
|
+
|
|
28
|
+
## Step 2 — Verify
|
|
29
|
+
|
|
30
|
+
Present a 4-line summary:
|
|
31
|
+
|
|
32
|
+
- **Product:** [from Q1]
|
|
33
|
+
- **User:** [from Q3]
|
|
34
|
+
- **Versus:** [from Q2 — the analogue and the differentiator]
|
|
35
|
+
- **Why now:** [from Q4]
|
|
36
|
+
|
|
37
|
+
Ask: *"Look right? Say 'go' to generate your brief, or tell me what to fix."*
|
|
38
|
+
|
|
39
|
+
Accept any natural-language confirmation.
|
|
40
|
+
|
|
41
|
+
## Step 3 — Generate `product.md`
|
|
42
|
+
|
|
43
|
+
Produce a single file at the project root (or `/docs/product.md` if `/docs` exists). Use this structure — shorter than the full `/cofoundr:new-project` output, but every claim must trace to an answer above.
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
# Product Brief
|
|
47
|
+
|
|
48
|
+
## TL;DR
|
|
49
|
+
[One paragraph, ≤60 words, derived from Q1 + Q3.]
|
|
50
|
+
|
|
51
|
+
## The User
|
|
52
|
+
[From Q3 — named role and situation.]
|
|
53
|
+
|
|
54
|
+
## The Analogue
|
|
55
|
+
[From Q2 — the named real product + the differentiator.]
|
|
56
|
+
|
|
57
|
+
## Why Now
|
|
58
|
+
[From Q4 — the specific, datable change.]
|
|
59
|
+
|
|
60
|
+
## What This Is NOT
|
|
61
|
+
*To be filled in during the full /cofoundr:new-project run.*
|
|
62
|
+
|
|
63
|
+
## Open Gaps
|
|
64
|
+
[Any rubric items that weren't answered above — explicitly:
|
|
65
|
+
- No success metric defined yet
|
|
66
|
+
- No revenue model defined yet
|
|
67
|
+
- No non-goals defined yet
|
|
68
|
+
- No complexity tier picked yet
|
|
69
|
+
- No compliance surface evaluated yet
|
|
70
|
+
- No stack preference or verification yet
|
|
71
|
+
- No budget or timeline stated yet
|
|
72
|
+
…whichever apply.]
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
*Generated from /cofoundr:quick-brief. This is a partial spec. To get the full
|
|
76
|
+
six-file plan your AI coder can actually follow, run /cofoundr:new-project.*
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Step 4 — Offer the Full Pipeline
|
|
80
|
+
|
|
81
|
+
After generation, show the file path and say:
|
|
82
|
+
|
|
83
|
+
> This is a partial — enough to see the shape, not enough to build from. The full `/cofoundr:new-project` run goes deeper: features, acceptance criteria, tech stack (version-pinned), security rules, a phased build plan, and an agent handoff file.
|
|
84
|
+
>
|
|
85
|
+
> Want to continue now? Run `/cofoundr:new-project` — I'll skip the four questions you already answered and pick up from there.
|
|
86
|
+
>
|
|
87
|
+
> Or take a break and come back later. Your brief is saved.
|
|
88
|
+
|
|
89
|
+
Do not auto-run the full pipeline. The whole point of this command is the choice.
|
|
90
|
+
|
|
91
|
+
## Notes
|
|
92
|
+
|
|
93
|
+
- **Do not generate any other file.** No `prd.md`, no `tech.md`, no `rules.md`, no `phases.md`, no `agents.md`, no `CLAUDE.md`. Those come from `/cofoundr:new-project`.
|
|
94
|
+
- **Do not set up `/docs`, `/builds`, or `/ideas`.** Those come from `/cofoundr:new-project`.
|
|
95
|
+
- If the user asks for more after the brief, redirect them to `/cofoundr:new-project` rather than expanding this command in place.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >
|
|
3
|
+
Start or resume a working session. Reads active feature docs and
|
|
4
|
+
phases.md to surface exactly where things stand, then asks the
|
|
5
|
+
human to confirm before any code is written. Run this as the
|
|
6
|
+
first command in every Claude Code session.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Resume — Session Handoff
|
|
10
|
+
|
|
11
|
+
Run this at the start of every working session, before touching any code.
|
|
12
|
+
|
|
13
|
+
## Step 1 — Check for Active Features
|
|
14
|
+
|
|
15
|
+
Read `docs/ACTIVE.md`. Collect every `@`-imported file path.
|
|
16
|
+
|
|
17
|
+
- If the file does not exist, skip to Step 3.
|
|
18
|
+
- If the file exists but has no `@` imports, skip to Step 3.
|
|
19
|
+
- If the file has one or more `@` imports, proceed to Step 2.
|
|
20
|
+
|
|
21
|
+
## Step 2 — Active Feature Recap
|
|
22
|
+
|
|
23
|
+
For each active feature doc found in Step 1:
|
|
24
|
+
|
|
25
|
+
1. Read the file.
|
|
26
|
+
2. Extract: **Status**, **Milestone**, **Phase**, **Last updated** from the frontmatter block.
|
|
27
|
+
3. Extract the most recent **Session Notes** entry (the first one, since they are newest-at-top).
|
|
28
|
+
4. Extract the **Tasks** section — note which are checked and which are not.
|
|
29
|
+
5. Extract the **Blockers** section.
|
|
30
|
+
|
|
31
|
+
Then present a recap in this format for each active feature:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
── [Feature Name] ──────────────────────────
|
|
35
|
+
Status: [status]
|
|
36
|
+
Milestone: [milestone name]
|
|
37
|
+
Phase: [phase name]
|
|
38
|
+
Last updated: [date]
|
|
39
|
+
|
|
40
|
+
Last session: [the session notes entry verbatim, or "No session notes yet."]
|
|
41
|
+
|
|
42
|
+
Progress: [N of M tasks complete]
|
|
43
|
+
Next task: [first unchecked task and its file path]
|
|
44
|
+
Blockers: [active blockers, or "None"]
|
|
45
|
+
────────────────────────────────────────────
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
If the last session date is more than 3 days before today, add a flag:
|
|
49
|
+
> ⚠️ Last session was [N] days ago. Worth checking whether any decisions, blockers, or requirements have changed since then.
|
|
50
|
+
|
|
51
|
+
After presenting all feature recaps, ask:
|
|
52
|
+
|
|
53
|
+
> **Does this still reflect where things stand?**
|
|
54
|
+
> Confirm to continue, or tell me what has changed — a decision made offline, a blocker resolved, a direction change. I will update the feature doc before we begin.
|
|
55
|
+
|
|
56
|
+
Wait for the user's response. Do not write any code or make any edits until they reply.
|
|
57
|
+
|
|
58
|
+
## Step 3 — No Active Features (Phase Check)
|
|
59
|
+
|
|
60
|
+
If there are no active features, read `docs/phases.md`.
|
|
61
|
+
|
|
62
|
+
1. Find the current milestone — the first milestone that has any unchecked tasks.
|
|
63
|
+
2. Find the current phase — the first phase within that milestone that has unchecked tasks.
|
|
64
|
+
3. Find the next task — the first unchecked checkbox in that phase.
|
|
65
|
+
|
|
66
|
+
Present:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
── No active features ──────────────────────
|
|
70
|
+
Milestone: [milestone name]
|
|
71
|
+
Phase: [phase name]
|
|
72
|
+
Next task: [task description and file path]
|
|
73
|
+
────────────────────────────────────────────
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Then ask:
|
|
77
|
+
|
|
78
|
+
> **Ready to continue with the next task, or do you want to start somewhere else?**
|
|
79
|
+
|
|
80
|
+
Wait for the user's response before proceeding.
|
|
81
|
+
|
|
82
|
+
## Step 4 — Handle the Response
|
|
83
|
+
|
|
84
|
+
**If the user confirms (yes, continue, looks right, etc.):**
|
|
85
|
+
Proceed to the next task as identified in Step 2 or Step 3.
|
|
86
|
+
|
|
87
|
+
**If the user reports a change:**
|
|
88
|
+
1. Update the relevant section of the feature doc (tasks, blockers, session notes) to reflect what changed.
|
|
89
|
+
2. Present the updated state.
|
|
90
|
+
3. Ask for confirmation again before proceeding to code.
|
|
91
|
+
|
|
92
|
+
**If no spec files exist at all:**
|
|
93
|
+
Say: "I can't find any spec files. Run `/cofoundr:new-project` to generate them before starting a build session."
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Why This Command Exists
|
|
98
|
+
|
|
99
|
+
Each session starts with a different AI instance that has no memory of previous sessions. The session notes in feature docs are the bridge — written by the last session's AI, read by this one. Without this handoff, every session starts with stale assumptions and the AI guesses at context it should know. This command makes the handoff explicit and gives the human a moment to correct anything before work begins.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Audit existing spec files against the quality checklist. Run after generating specs or before starting a build to verify completeness.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Spec Review — Quality Audit
|
|
6
|
+
|
|
7
|
+
Read all spec files in the project and verify against the quality checklist below. Report each check as PASS, FAIL, or MISSING with a specific explanation for failures.
|
|
8
|
+
|
|
9
|
+
## Pre-Check
|
|
10
|
+
|
|
11
|
+
Locate the spec files. They may be in the project root, in `/docs`, or in another directory. Look for: `product.md`, `prd.md`, `tech.md`, `rules.md`, `phases.md`, `agents.md`.
|
|
12
|
+
|
|
13
|
+
If any file is missing entirely, report it as MISSING and continue checking the rest.
|
|
14
|
+
|
|
15
|
+
## Quality Checklist
|
|
16
|
+
|
|
17
|
+
The checklist has 22 numbered checks. Every check must have a unique number when you report.
|
|
18
|
+
|
|
19
|
+
### Structural Completeness
|
|
20
|
+
|
|
21
|
+
1. **All six files present.** product.md, prd.md, tech.md, rules.md, phases.md, agents.md. Count them.
|
|
22
|
+
2. **Every file has a TL;DR.** Each opens with `## TL;DR` of 60 words or fewer.
|
|
23
|
+
3. **agents.md has YAML frontmatter** with `description` and `tags` fields.
|
|
24
|
+
|
|
25
|
+
### Cross-File Consistency
|
|
26
|
+
|
|
27
|
+
4. **Feature coverage.** Every P0 feature in prd.md has at least one task in phases.md. No phase references a feature not in prd.md.
|
|
28
|
+
5. **Tech version pinning.** Every technology in tech.md has an exact major version (e.g., "Next.js 15" not "Next.js").
|
|
29
|
+
6. **Secret key coverage.** Every secret key mentioned in tech.md's Third-Party Integrations appears in a Never rule in rules.md.
|
|
30
|
+
7. **RLS coverage.** Every table in tech.md has RLS policy pseudocode.
|
|
31
|
+
8. **Compliance reflection.** Any compliance requirements surfaced during the planning conversation are reflected in rules.md entries.
|
|
32
|
+
|
|
33
|
+
### Content Quality
|
|
34
|
+
|
|
35
|
+
9. **product.md specificity.** The analogue names a REAL existing product (not "similar apps"). The "Why Now" cites a SPECIFIC change (not "AI is growing"). At least 3 non-goals are listed.
|
|
36
|
+
10. **prd.md acceptance criteria.** Every P0 feature has at least 2 acceptance criteria written as observable behaviors (what the user sees), not technical specifications (what the API returns).
|
|
37
|
+
11. **phases.md structure.** Phase 0 exists and covers: git init, scaffold, env vars, database, auth, RLS. Every task has a `<verify>` line describing how to confirm it worked.
|
|
38
|
+
12. **rules.md structure.** Three tiers present: Always, Ask First, Never. Never section is wrapped in `<never>` XML tags. Every Never rule includes a "because" clause.
|
|
39
|
+
13. **agents.md boundaries.** Boundaries section references rules.md without duplicating any rules.
|
|
40
|
+
|
|
41
|
+
### Structural Requirements
|
|
42
|
+
|
|
43
|
+
14. **Boundary Maps.** Every phase in phases.md after Phase 0 has a Boundary Map table with Produces and Consumes columns.
|
|
44
|
+
15. **HALT Conditions.** Every phase in phases.md has 3-5 HALT conditions where the AI must stop and ask the human.
|
|
45
|
+
16. **Constitution versioning.** rules.md opens with YAML frontmatter containing `version` and `last_amended` fields, and ends with an Amendment Log table.
|
|
46
|
+
17. **Session Management in agents.md.** agents.md includes a Session Management section (section 7) referencing CLAUDE.md auto-loading.
|
|
47
|
+
18. **Milestone structure.** phases.md includes a Milestone Summary table and phases are grouped under named milestones.
|
|
48
|
+
19. **CLAUDE.md exists.** Project root contains `CLAUDE.md` that `@`-imports all six spec files plus `@docs/ACTIVE.md`.
|
|
49
|
+
20. **ACTIVE.md exists.** `docs/ACTIVE.md` exists (may be empty). Any in-progress features have a corresponding file in `docs/features/` and an `@` import in `ACTIVE.md`.
|
|
50
|
+
21. **Session Start Protocol in CLAUDE.md.** `CLAUDE.md` contains a Session Start Protocol section with both the active-feature branch (recap from session notes + confirmation request) and the no-active-feature branch (next unchecked task from phases.md + confirmation request), and an explicit instruction not to write code until confirmed.
|
|
51
|
+
|
|
52
|
+
### Safety
|
|
53
|
+
|
|
54
|
+
22. **No implementation code** in any file (SQL schema in tech.md is the only exception). **No secrets or credentials** appear in any file. **No vague acceptance criteria** like "works well" or "is fast" — every criterion must be verifiable.
|
|
55
|
+
|
|
56
|
+
## Report Format
|
|
57
|
+
|
|
58
|
+
Present the results as:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
SPEC REVIEW — [Project Name]
|
|
62
|
+
Date: [today]
|
|
63
|
+
|
|
64
|
+
PASS: [count] / 22
|
|
65
|
+
FAIL: [count] / 22
|
|
66
|
+
MISSING: [count] files
|
|
67
|
+
|
|
68
|
+
[For each FAIL or MISSING, list the check number, what failed, and a specific fix recommendation.]
|
|
69
|
+
|
|
70
|
+
VERDICT: [READY TO BUILD | NEEDS FIXES]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
If any check fails, offer to fix it: *"Would you like me to fix the failing checks now?"*
|
|
74
|
+
|
|
75
|
+
If `docs/plan-for-humans.md` exists, note at the end: *"Plain-English companion is present. If the spec has changed since it was last generated, re-run `/cofoundr:translate` to keep it current."*
|
|
76
|
+
If it does not exist, note: *"No plain-English companion found. Run `/cofoundr:translate` if you want one — helpful for sharing with a non-technical co-founder or advisor."*
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >
|
|
3
|
+
Enforce the rules.md behavioral contract on the current work. Reads
|
|
4
|
+
rules.md and checks whether pending or recent actions comply with the
|
|
5
|
+
Always/Ask First/Never tiers. Use before committing, after a build
|
|
6
|
+
session, or when you suspect a rule may have been violated.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Rules Check
|
|
10
|
+
|
|
11
|
+
Read the `rules.md` file in the project folder and enforce its three-tier behavioral contract against the current state of the project.
|
|
12
|
+
|
|
13
|
+
## Enforcement Protocol
|
|
14
|
+
|
|
15
|
+
### Always Rules (non-negotiable)
|
|
16
|
+
Check that every Always rule is being followed. Flag any violations with the specific rule number and what needs to change.
|
|
17
|
+
|
|
18
|
+
### Ask First Rules (speed bumps)
|
|
19
|
+
Check whether any recent actions match an Ask First item that wasn't explicitly approved. Flag these as "needs confirmation" — not violations, but decisions that should have been surfaced.
|
|
20
|
+
|
|
21
|
+
### Never Rules (hard stops)
|
|
22
|
+
Check whether any Never rule has been violated. These are critical. For each violation, quote the rule and its "because" clause, explain what happened, and recommend a fix.
|
|
23
|
+
|
|
24
|
+
## When No rules.md Exists
|
|
25
|
+
|
|
26
|
+
If no `rules.md` exists in the project, check against these baseline safety rules:
|
|
27
|
+
|
|
28
|
+
1. **Always** commit working state before any multi-file change.
|
|
29
|
+
2. **Always** use server routes for any call needing a secret key.
|
|
30
|
+
3. **Always** add `.env*` to `.gitignore` before the first commit.
|
|
31
|
+
4. **Ask First** before adding any dependency not in the project's existing package manifest.
|
|
32
|
+
5. **Ask First** before any database migration or schema change.
|
|
33
|
+
6. **Never** put secret keys in client-side code — browser storage is readable by any script on the page.
|
|
34
|
+
7. **Never** run destructive commands (DROP, TRUNCATE, rm -rf, --force) without explicit human confirmation.
|
|
35
|
+
8. **Never** commit `.env` files or credentials to git — once pushed, secrets live in git history forever.
|
|
36
|
+
|
|
37
|
+
## Report Format
|
|
38
|
+
|
|
39
|
+
Present the results as:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
RULES CHECK — [Project Name]
|
|
43
|
+
Date: [today]
|
|
44
|
+
|
|
45
|
+
COMPLIANT: [count]
|
|
46
|
+
NEEDS CONFIRMATION: [count]
|
|
47
|
+
VIOLATIONS: [count]
|
|
48
|
+
|
|
49
|
+
[For each issue, list the rule, what happened, and the recommended fix.]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## After a Mistake
|
|
53
|
+
|
|
54
|
+
When a rule is violated or a new failure pattern emerges, prompt the founder: "Should we add a rule to prevent this from happening again?" If yes, add it to the appropriate section of `rules.md` with a reason, bump the patch version, and add an Amendment Log entry.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >
|
|
3
|
+
Check whether a proposed feature or change fits within the existing project
|
|
4
|
+
scope. Reads product.md and prd.md, flags conflicts with non-goals, and
|
|
5
|
+
offers to log out-of-scope ideas to FUTURE-IDEAS.md. Use when you want to
|
|
6
|
+
add something mid-build and aren't sure if it belongs.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Scope Guard
|
|
10
|
+
|
|
11
|
+
Read the existing `product.md` and `prd.md` if they exist in the project folder, then evaluate the proposed change against the confirmed scope.
|
|
12
|
+
|
|
13
|
+
If a new requirement, feature, or behavior was not in the confirmed scope:
|
|
14
|
+
|
|
15
|
+
1. **Flag it explicitly.** Say: "This wasn't in the original scope."
|
|
16
|
+
|
|
17
|
+
2. **Name the cost.** Explain what this addition likely requires — new schema, new API, new auth flow, new third-party integration — so the founder understands it's not "just one more thing."
|
|
18
|
+
|
|
19
|
+
3. **Present the choice:**
|
|
20
|
+
- **Add to scope:** Run a short planning conversation for this addition only (the same four focused questions used in `/cofoundr:new-feature`). It gets its own acceptance criteria, its own phase in phases.md, and its own verify check.
|
|
21
|
+
- **Log for later:** Write it to a `FUTURE-IDEAS.md` file in the project folder with a one-line description and today's date.
|
|
22
|
+
|
|
23
|
+
4. **If adding to scope:** Ask the four core questions for this specific addition:
|
|
24
|
+
- What is the ONE thing this new feature needs to do?
|
|
25
|
+
- Who uses it, and what breaks for them if it doesn't exist?
|
|
26
|
+
- What is explicitly out of scope for this addition?
|
|
27
|
+
- What does done look like?
|
|
28
|
+
|
|
29
|
+
5. **After resolution:** Update prd.md with the new feature (as P1 or P2 unless the founder explicitly promotes it to P0) and add a corresponding phase or decimal phase to phases.md.
|
|
30
|
+
|
|
31
|
+
Do not silently absorb scope changes. Every scope change is a decision that deserves acknowledgment. The most common AI-build failure mode is the AI "helpfully" adding features the founder didn't ask for — this command exists to prevent that.
|
|
32
|
+
|
|
33
|
+
If no spec files exist, suggest running `/cofoundr:new-project` first.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >
|
|
3
|
+
Install the CoFoundr production skill set — 10 skills from official
|
|
4
|
+
Supabase, Stripe, Vercel, and Anthropic repos. Checks what's already
|
|
5
|
+
installed and skips those. Safe to run multiple times.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Setup Skills
|
|
9
|
+
|
|
10
|
+
Install the full CoFoundr production skill set. These 10 skills give Claude deep, verified knowledge of the libraries you'll use most. The plugin spec has no dependency mechanism, so this command handles installation explicitly.
|
|
11
|
+
|
|
12
|
+
## Step 1 — Check What's Already Installed
|
|
13
|
+
|
|
14
|
+
Read `skills-lock.json` in the current working directory if it exists. Note the keys inside `"skills": {}` — these are already installed.
|
|
15
|
+
|
|
16
|
+
If the file doesn't exist, assume nothing is installed.
|
|
17
|
+
|
|
18
|
+
## Step 2 — Install the Required Skills
|
|
19
|
+
|
|
20
|
+
Run each install command below via Bash, **in order**, skipping any whose key already appears in skills-lock.json. Report a one-line result after each.
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npx skills add supabase/agent-skills
|
|
24
|
+
```
|
|
25
|
+
Installs: `supabase` and `supabase-postgres-best-practices` — auth, database, RLS, storage, realtime, query performance.
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npx skills add stripe/ai
|
|
29
|
+
```
|
|
30
|
+
Installs: `stripe-best-practices` — checkout, subscriptions, webhooks, server-only patterns, current API version.
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx skills add vercel-labs/next-skills
|
|
34
|
+
```
|
|
35
|
+
Installs: `next-best-practices`, `next-cache-components` — Next.js 15 server/client rules, data fetching, async APIs, caching.
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx skills add vercel-labs/agent-skills
|
|
39
|
+
```
|
|
40
|
+
Installs: `web-design-guidelines`, `react-best-practices`, `vercel-cli-with-tokens` — UI quality rules, React performance, Vercel deployment.
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npx skills add nextlevelbuilder/ui-ux-pro-max-skill
|
|
44
|
+
```
|
|
45
|
+
Installs: `ui-ux-pro-max` — professional UI/UX critique and redesign guidance on every screen.
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npx skills add hookdeck/webhook-skills
|
|
49
|
+
```
|
|
50
|
+
Installs: `stripe-webhooks` and 20+ provider skills — verified signatures, idempotency, retry-safe event handling.
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npx skills add anthropics/skills
|
|
54
|
+
```
|
|
55
|
+
Installs: `webapp-testing` — Playwright browser testing that opens your app and verifies it actually works.
|
|
56
|
+
|
|
57
|
+
## Step 3 — Sentry Plugin
|
|
58
|
+
|
|
59
|
+
Sentry installs as a plugin (not a skill) and requires running inside Claude Code. Tell the user:
|
|
60
|
+
|
|
61
|
+
> **One more:** Sentry error monitoring installs differently. Run this command inside Claude Code:
|
|
62
|
+
>
|
|
63
|
+
> `/install-plugin getsentry/sentry-for-ai`
|
|
64
|
+
>
|
|
65
|
+
> It surfaces production errors before your users have to report them.
|
|
66
|
+
|
|
67
|
+
## Step 4 — Premium Skill Pack (optional)
|
|
68
|
+
|
|
69
|
+
If the buyer purchased the **Premium Skill Pack** order bump on their Starter
|
|
70
|
+
Kit checkout, they received a delivery email with a license key and a single
|
|
71
|
+
install command. Tell the user:
|
|
72
|
+
|
|
73
|
+
> If you bought the **Premium Skill Pack** at checkout, look for the email
|
|
74
|
+
> titled "Your CoFoundr Skill Pack — one command to install all 30." It
|
|
75
|
+
> contains a one-line install command like:
|
|
76
|
+
>
|
|
77
|
+
> `npx @cofoundr-ai/skill-pack@latest install --license LK-XXXX...`
|
|
78
|
+
>
|
|
79
|
+
> Paste that into your terminal. It validates your license and installs all
|
|
80
|
+
> 30 additional skills (Anthropic core utilities, security audits, marketing,
|
|
81
|
+
> frontend, AI tooling, integrations) via `npx skills add` on your machine.
|
|
82
|
+
> Takes about 60 seconds. Re-run anytime — it's idempotent.
|
|
83
|
+
>
|
|
84
|
+
> No license key? Skip this step — the 10 skills above cover the production
|
|
85
|
+
> essentials. The Premium Pack is an add-on for buyers who selected it at
|
|
86
|
+
> checkout.
|
|
87
|
+
|
|
88
|
+
## Step 5 — Summary
|
|
89
|
+
|
|
90
|
+
Present a completion message:
|
|
91
|
+
|
|
92
|
+
> **Skills installed.** Claude Code now has deep knowledge of your full stack:
|
|
93
|
+
>
|
|
94
|
+
> | Skill | What it covers |
|
|
95
|
+
> |-------|---------------|
|
|
96
|
+
> | supabase | Auth, database, RLS, storage |
|
|
97
|
+
> | stripe | Checkout, subscriptions, webhooks |
|
|
98
|
+
> | next-js | Next.js 15 rules and async APIs |
|
|
99
|
+
> | web-design | 100+ UI quality and accessibility rules |
|
|
100
|
+
> | react-patterns | Memoization, rendering, React 19 |
|
|
101
|
+
> | deploy-vercel | Preview, prod, env, custom domain |
|
|
102
|
+
> | stripe-webhooks | Verified signatures, idempotency |
|
|
103
|
+
> | ui-ux-pro | Professional UI/UX critique |
|
|
104
|
+
> | browser-testing | Playwright end-to-end verification |
|
|
105
|
+
> | sentry | Production error monitoring (plugin) |
|
|
106
|
+
>
|
|
107
|
+
> These apply automatically — no need to re-run this command unless you install a fresh copy of the plugin.
|
|
108
|
+
|
|
109
|
+
If any install failed, show the manual command alongside a note that it can be retried independently.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >
|
|
3
|
+
Produce or refresh the formal specification for a project or a feature. SDD-
|
|
4
|
+
canonical alias. For a new project, defers to the full /cofoundr:new-project
|
|
5
|
+
pipeline. For a feature on an existing project, defers to /cofoundr:new-feature.
|
|
6
|
+
For a single phase, defers to the spec-phase agent via /cofoundr:next phase [N].
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# /cofoundr:specify — Formal Specification
|
|
10
|
+
|
|
11
|
+
You produce a formal, source-of-truth specification. This command is the SDD-canonical entry point. Underneath, it dispatches to the right CoFoundr workflow based on what already exists on disk.
|
|
12
|
+
|
|
13
|
+
## Step 1 — Detect what kind of specify run this is
|
|
14
|
+
|
|
15
|
+
Read the project filesystem.
|
|
16
|
+
|
|
17
|
+
1. **No spec yet** — none of `docs/product.md`, `docs/prd.md`, `.cofoundr/specs/`, or `.cofoundr/constitution.md` exist:
|
|
18
|
+
- This is a **greenfield specify**. Run `/cofoundr:new-project` end-to-end. Stop.
|
|
19
|
+
2. **Spec exists, user gave no argument** — `docs/product.md` (or equivalent) is present but the user did not name a target:
|
|
20
|
+
- Ask: *"You already have a spec. Do you want to (a) add a feature, (b) re-specify a phase, or (c) re-run the full project spec?"* Route to `/cofoundr:new-feature`, `/cofoundr:next phase [N]`, or a fresh `/cofoundr:new-project` accordingly.
|
|
21
|
+
3. **Spec exists, user named a target** — argument is `feature <name>`, `phase <N>`, or `project`:
|
|
22
|
+
- Dispatch directly. No follow-up question.
|
|
23
|
+
4. **Brownfield codebase, no spec** — there is meaningful code in `src/` or equivalent but no docs:
|
|
24
|
+
- Suggest: *"This codebase already has code but no spec. Run `/cofoundr:onboard` first to map what's there. Then `/cofoundr:specify` to formalize. Want me to start the onboard now?"*
|
|
25
|
+
|
|
26
|
+
## Step 2 — Argument parsing
|
|
27
|
+
|
|
28
|
+
The user may pass:
|
|
29
|
+
|
|
30
|
+
- `/cofoundr:specify` — auto-detect (Step 1)
|
|
31
|
+
- `/cofoundr:specify project` — full project spec (`/cofoundr:new-project`)
|
|
32
|
+
- `/cofoundr:specify feature <name>` — feature spec (`/cofoundr:new-feature`)
|
|
33
|
+
- `/cofoundr:specify phase <N>` — phase spec pack (`/cofoundr:next phase <N>`)
|
|
34
|
+
|
|
35
|
+
## Step 3 — Output convention
|
|
36
|
+
|
|
37
|
+
Whatever the underlying command writes, after it finishes:
|
|
38
|
+
|
|
39
|
+
1. Append a line to `.cofoundr/memory/decisions.md`:
|
|
40
|
+
```
|
|
41
|
+
- <YYYY-MM-DD> /cofoundr:specify <target> — produced <files>
|
|
42
|
+
```
|
|
43
|
+
2. Append the file path(s) to the **Specs** section of `AGENTS.md` so non-Claude tools see the new artifacts.
|
|
44
|
+
|
|
45
|
+
## Step 4 — Confirm
|
|
46
|
+
|
|
47
|
+
Hand back to the underlying command's confirmation prompt. Do not invent your own.
|
|
48
|
+
|
|
49
|
+
## What you must not do
|
|
50
|
+
|
|
51
|
+
- Do not produce specs without dispatching to the underlying command. This file is a router, not a generator.
|
|
52
|
+
- Do not modify `docs/product.md`, `docs/prd.md`, or `docs/phases.md` directly. Those are owned by `/cofoundr:new-project` and the spec-phase agent.
|
|
53
|
+
- Do not skip the constitution check. If `.cofoundr/constitution.md` does not exist and the project is not using `docs/rules.md`, suggest running `/cofoundr:constitution` before producing detailed specs.
|