@dedesfr/prompter 0.8.23 → 1.0.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.
Files changed (247) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/README.md +105 -77
  3. package/dist/cli/index.js +25 -1
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/commands/init.d.ts +1 -7
  6. package/dist/commands/init.d.ts.map +1 -1
  7. package/dist/commands/init.js +60 -299
  8. package/dist/commands/init.js.map +1 -1
  9. package/dist/commands/login.d.ts +4 -0
  10. package/dist/commands/login.d.ts.map +1 -0
  11. package/dist/commands/login.js +56 -0
  12. package/dist/commands/login.js.map +1 -0
  13. package/dist/commands/logout.d.ts +4 -0
  14. package/dist/commands/logout.d.ts.map +1 -0
  15. package/dist/commands/logout.js +14 -0
  16. package/dist/commands/logout.js.map +1 -0
  17. package/dist/commands/update.d.ts.map +1 -1
  18. package/dist/commands/update.js +31 -41
  19. package/dist/commands/update.js.map +1 -1
  20. package/dist/commands/whoami.d.ts +4 -0
  21. package/dist/commands/whoami.d.ts.map +1 -0
  22. package/dist/commands/whoami.js +42 -0
  23. package/dist/commands/whoami.js.map +1 -0
  24. package/dist/core/auth-store.d.ts +10 -0
  25. package/dist/core/auth-store.d.ts.map +1 -0
  26. package/dist/core/auth-store.js +39 -0
  27. package/dist/core/auth-store.js.map +1 -0
  28. package/dist/core/configurators/slash/antigravity.d.ts +2 -5
  29. package/dist/core/configurators/slash/antigravity.d.ts.map +1 -1
  30. package/dist/core/configurators/slash/antigravity.js +2 -57
  31. package/dist/core/configurators/slash/antigravity.js.map +1 -1
  32. package/dist/core/configurators/slash/base.d.ts +6 -18
  33. package/dist/core/configurators/slash/base.d.ts.map +1 -1
  34. package/dist/core/configurators/slash/base.js +8 -77
  35. package/dist/core/configurators/slash/base.js.map +1 -1
  36. package/dist/core/configurators/slash/claude.d.ts +2 -5
  37. package/dist/core/configurators/slash/claude.d.ts.map +1 -1
  38. package/dist/core/configurators/slash/claude.js +2 -57
  39. package/dist/core/configurators/slash/claude.js.map +1 -1
  40. package/dist/core/configurators/slash/codex.d.ts +2 -5
  41. package/dist/core/configurators/slash/codex.d.ts.map +1 -1
  42. package/dist/core/configurators/slash/codex.js +2 -57
  43. package/dist/core/configurators/slash/codex.js.map +1 -1
  44. package/dist/core/configurators/slash/droid.d.ts +2 -5
  45. package/dist/core/configurators/slash/droid.d.ts.map +1 -1
  46. package/dist/core/configurators/slash/droid.js +2 -32
  47. package/dist/core/configurators/slash/droid.js.map +1 -1
  48. package/dist/core/configurators/slash/forge.d.ts +2 -5
  49. package/dist/core/configurators/slash/forge.d.ts.map +1 -1
  50. package/dist/core/configurators/slash/forge.js +2 -32
  51. package/dist/core/configurators/slash/forge.js.map +1 -1
  52. package/dist/core/configurators/slash/github-copilot.d.ts +2 -7
  53. package/dist/core/configurators/slash/github-copilot.d.ts.map +1 -1
  54. package/dist/core/configurators/slash/github-copilot.js +2 -96
  55. package/dist/core/configurators/slash/github-copilot.js.map +1 -1
  56. package/dist/core/configurators/slash/index.d.ts +1 -1
  57. package/dist/core/configurators/slash/index.d.ts.map +1 -1
  58. package/dist/core/configurators/slash/index.js +1 -1
  59. package/dist/core/configurators/slash/index.js.map +1 -1
  60. package/dist/core/configurators/slash/kilocode.d.ts +2 -5
  61. package/dist/core/configurators/slash/kilocode.d.ts.map +1 -1
  62. package/dist/core/configurators/slash/kilocode.js +2 -57
  63. package/dist/core/configurators/slash/kilocode.js.map +1 -1
  64. package/dist/core/configurators/slash/opencode.d.ts +2 -5
  65. package/dist/core/configurators/slash/opencode.d.ts.map +1 -1
  66. package/dist/core/configurators/slash/opencode.js +2 -57
  67. package/dist/core/configurators/slash/opencode.js.map +1 -1
  68. package/dist/core/configurators/slash/registry.d.ts +4 -4
  69. package/dist/core/configurators/slash/registry.d.ts.map +1 -1
  70. package/dist/core/configurators/slash/registry.js.map +1 -1
  71. package/dist/core/registry.d.ts +18 -0
  72. package/dist/core/registry.d.ts.map +1 -0
  73. package/dist/core/registry.js +94 -0
  74. package/dist/core/registry.js.map +1 -0
  75. package/dist/core/templates/index.d.ts +0 -1
  76. package/dist/core/templates/index.d.ts.map +1 -1
  77. package/dist/core/templates/index.js +0 -1
  78. package/dist/core/templates/index.js.map +1 -1
  79. package/package.json +7 -1
  80. package/AGENTS.md +0 -123
  81. package/CLAUDE.md +0 -17
  82. package/build.js +0 -20
  83. package/convex-setup.md +0 -403
  84. package/dist/core/templates/slash-command-templates.d.ts +0 -7
  85. package/dist/core/templates/slash-command-templates.d.ts.map +0 -1
  86. package/dist/core/templates/slash-command-templates.js +0 -1041
  87. package/dist/core/templates/slash-command-templates.js.map +0 -1
  88. package/prompt/ai-humanizer.md +0 -45
  89. package/prompt/api-contract-generator.md +0 -234
  90. package/prompt/apply.md +0 -17
  91. package/prompt/archive.md +0 -21
  92. package/prompt/design-system.md +0 -210
  93. package/prompt/document-explainer.md +0 -149
  94. package/prompt/epic-generator.md +0 -198
  95. package/prompt/epic-single.md +0 -47
  96. package/prompt/erd-generator.md +0 -130
  97. package/prompt/fsd-generator.md +0 -157
  98. package/prompt/prd-agent-generator.md +0 -147
  99. package/prompt/prd-generator.md +0 -195
  100. package/prompt/product-brief.md +0 -289
  101. package/prompt/proposal.md +0 -22
  102. package/prompt/qa-test-scenario.md +0 -133
  103. package/prompt/skill-creator.md +0 -350
  104. package/prompt/story-generator.md +0 -278
  105. package/prompt/story-single.md +0 -70
  106. package/prompt/tdd-generator.md +0 -294
  107. package/prompt/tdd-lite-generator.md +0 -224
  108. package/prompt/wireframe-generator.md +0 -219
  109. package/skills/ai-context-generator/SKILL.md +0 -54
  110. package/skills/ai-context-generator/references/AGENTS.template.md +0 -83
  111. package/skills/ai-context-generator/references/CLAUDE.template.md +0 -39
  112. package/skills/ai-context-generator/references/behavioral-guidelines.md +0 -71
  113. package/skills/ai-context-generator/references/discovery-checklist.md +0 -40
  114. package/skills/ai-context-generator/references/examples/AGENTS.good.md +0 -103
  115. package/skills/ai-context-generator/references/extraction-checklist.md +0 -23
  116. package/skills/ai-context-generator/references/overlays/laravel.md +0 -44
  117. package/skills/cerebro/SKILL.md +0 -187
  118. package/skills/cerebro/references/agents.md +0 -213
  119. package/skills/code-review/SKILL.md +0 -373
  120. package/skills/code-review/assets/report-template-agent.md +0 -212
  121. package/skills/code-review/assets/report-template-compact.md +0 -81
  122. package/skills/code-review/assets/report-template-full.md +0 -264
  123. package/skills/code-review/assets/report-template-human.md +0 -168
  124. package/skills/code-review/references/universal-patterns.md +0 -495
  125. package/skills/design-md/README.md +0 -34
  126. package/skills/design-md/SKILL.md +0 -172
  127. package/skills/design-md/examples/DESIGN.md +0 -154
  128. package/skills/design-system-generator/SKILL.md +0 -324
  129. package/skills/design-system-generator/assets/design-system-template.md +0 -348
  130. package/skills/design-system-generator/references/extraction-patterns.md +0 -321
  131. package/skills/doc-builder/SKILL.md +0 -115
  132. package/skills/doc-builder/references/ui-patterns.md +0 -394
  133. package/skills/document-translator/SKILL.md +0 -58
  134. package/skills/enhance-prompt/README.md +0 -34
  135. package/skills/enhance-prompt/SKILL.md +0 -204
  136. package/skills/enhance-prompt/references/KEYWORDS.md +0 -114
  137. package/skills/feature-planner/SKILL.md +0 -305
  138. package/skills/feature-planner/assets/implementation-plan-template.md +0 -85
  139. package/skills/frontend-design/LICENSE.txt +0 -177
  140. package/skills/frontend-design/SKILL.md +0 -42
  141. package/skills/gamma-builder/SKILL.md +0 -134
  142. package/skills/laravel-code-review/SKILL.md +0 -383
  143. package/skills/laravel-code-review/assets/report-template-agent.md +0 -195
  144. package/skills/laravel-code-review/assets/report-template-compact.md +0 -79
  145. package/skills/laravel-code-review/assets/report-template-full.md +0 -253
  146. package/skills/laravel-code-review/assets/report-template-human.md +0 -159
  147. package/skills/laravel-code-review/references/laravel-patterns.md +0 -571
  148. package/skills/laravel-code-review/references/php84-features.md +0 -442
  149. package/skills/mcp-builder/LICENSE.txt +0 -202
  150. package/skills/mcp-builder/SKILL.md +0 -236
  151. package/skills/mcp-builder/reference/evaluation.md +0 -602
  152. package/skills/mcp-builder/reference/mcp_best_practices.md +0 -249
  153. package/skills/mcp-builder/reference/node_mcp_server.md +0 -970
  154. package/skills/mcp-builder/reference/python_mcp_server.md +0 -719
  155. package/skills/mcp-builder/scripts/connections.py +0 -151
  156. package/skills/mcp-builder/scripts/evaluation.py +0 -373
  157. package/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
  158. package/skills/mcp-builder/scripts/requirements.txt +0 -2
  159. package/skills/meeting-notes/SKILL.md +0 -159
  160. package/skills/meeting-notes/evals/evals.json +0 -23
  161. package/skills/project-orchestrator/SKILL.md +0 -487
  162. package/skills/project-orchestrator/assets/caddy-vps-setup.md +0 -180
  163. package/skills/project-orchestrator/assets/plan-summary-template.md +0 -159
  164. package/skills/prompter-specs/SKILL.md +0 -115
  165. package/skills/prompter-workflow/SKILL.md +0 -166
  166. package/skills/prompter-workflow/evals/evals.json +0 -89
  167. package/skills/sph-generator/SKILL.md +0 -488
  168. package/skills/ui-ux-pro/SKILL.md +0 -199
  169. package/skills/ui-ux-pro/assets/design-spec-template.md +0 -173
  170. package/skills/ui-ux-pro/references/component-patterns.md +0 -255
  171. package/skills/ui-ux-pro/references/design-principles.md +0 -167
  172. package/src/cli/index.ts +0 -223
  173. package/src/commands/archive.ts +0 -302
  174. package/src/commands/change.ts +0 -292
  175. package/src/commands/config.ts +0 -233
  176. package/src/commands/guide.ts +0 -50
  177. package/src/commands/init.ts +0 -899
  178. package/src/commands/list.ts +0 -194
  179. package/src/commands/show.ts +0 -138
  180. package/src/commands/spec.ts +0 -251
  181. package/src/commands/update.ts +0 -156
  182. package/src/commands/upgrade.ts +0 -30
  183. package/src/commands/validate.ts +0 -326
  184. package/src/core/artifact-graph/graph.ts +0 -167
  185. package/src/core/artifact-graph/index.ts +0 -44
  186. package/src/core/artifact-graph/instruction-loader.ts +0 -302
  187. package/src/core/artifact-graph/resolver.ts +0 -226
  188. package/src/core/artifact-graph/schema.ts +0 -124
  189. package/src/core/artifact-graph/state.ts +0 -64
  190. package/src/core/artifact-graph/types.ts +0 -65
  191. package/src/core/completions/command-registry.ts +0 -382
  192. package/src/core/completions/completion-provider.ts +0 -128
  193. package/src/core/completions/generators/bash-generator.ts +0 -191
  194. package/src/core/completions/generators/fish-generator.ts +0 -188
  195. package/src/core/completions/generators/powershell-generator.ts +0 -223
  196. package/src/core/completions/generators/zsh-generator.ts +0 -281
  197. package/src/core/completions/templates/bash-templates.ts +0 -24
  198. package/src/core/completions/templates/fish-templates.ts +0 -40
  199. package/src/core/completions/templates/powershell-templates.ts +0 -25
  200. package/src/core/completions/templates/zsh-templates.ts +0 -36
  201. package/src/core/completions/types.ts +0 -90
  202. package/src/core/config-schema.ts +0 -230
  203. package/src/core/config.ts +0 -181
  204. package/src/core/configurators/slash/antigravity.ts +0 -70
  205. package/src/core/configurators/slash/base.ts +0 -203
  206. package/src/core/configurators/slash/claude.ts +0 -70
  207. package/src/core/configurators/slash/codex.ts +0 -70
  208. package/src/core/configurators/slash/droid.ts +0 -44
  209. package/src/core/configurators/slash/forge.ts +0 -44
  210. package/src/core/configurators/slash/github-copilot.ts +0 -114
  211. package/src/core/configurators/slash/index.ts +0 -10
  212. package/src/core/configurators/slash/kilocode.ts +0 -70
  213. package/src/core/configurators/slash/opencode.ts +0 -70
  214. package/src/core/configurators/slash/registry.ts +0 -51
  215. package/src/core/converters/json-converter.ts +0 -62
  216. package/src/core/global-config.ts +0 -136
  217. package/src/core/parsers/change-parser.ts +0 -234
  218. package/src/core/parsers/markdown-parser.ts +0 -237
  219. package/src/core/parsers/requirement-blocks.ts +0 -234
  220. package/src/core/prompt-templates.ts +0 -3504
  221. package/src/core/schemas/base.schema.ts +0 -20
  222. package/src/core/schemas/change.schema.ts +0 -42
  223. package/src/core/schemas/index.ts +0 -20
  224. package/src/core/schemas/spec.schema.ts +0 -17
  225. package/src/core/skill-discovery.ts +0 -68
  226. package/src/core/specs-apply.ts +0 -483
  227. package/src/core/styles/palette.ts +0 -8
  228. package/src/core/templates/agents-template.ts +0 -459
  229. package/src/core/templates/claude-template.ts +0 -2
  230. package/src/core/templates/index.ts +0 -4
  231. package/src/core/templates/project-template.ts +0 -32
  232. package/src/core/templates/slash-command-templates.ts +0 -1068
  233. package/src/core/validation/constants.ts +0 -48
  234. package/src/core/validation/types.ts +0 -19
  235. package/src/core/validation/validator.ts +0 -449
  236. package/src/core/view.ts +0 -219
  237. package/src/index.ts +0 -1
  238. package/src/utils/change-metadata.ts +0 -171
  239. package/src/utils/change-utils.ts +0 -131
  240. package/src/utils/file-system.ts +0 -252
  241. package/src/utils/index.ts +0 -12
  242. package/src/utils/interactive.ts +0 -29
  243. package/src/utils/item-discovery.ts +0 -66
  244. package/src/utils/match.ts +0 -26
  245. package/src/utils/shell-detection.ts +0 -62
  246. package/src/utils/task-progress.ts +0 -43
  247. package/tsconfig.json +0 -28
@@ -1,159 +0,0 @@
1
- ---
2
- name: meeting-notes
3
- description: Transform raw meeting notes, transcripts, or informal notes into a structured, actionable to-do list ready for AI agent execution. Automatically extracts tasks, categorizes by priority and context, and formats output for direct copy-paste into Claude or other AI agents. Use this skill whenever a user pastes meeting notes, a transcript, a brain dump, or unstructured notes and wants tasks extracted — even if they just say "here are my meeting notes" or "can you turn this into tasks". Also triggers when users want to organize action items from a meeting, sync-up, standup, retrospective, or planning session.
4
- ---
5
-
6
- # Meeting Notes → Structured To-Do List
7
-
8
- Convert raw, informal meeting notes into a clean, actionable task list formatted for direct execution by an AI agent. Each output task is self-contained — the agent executing it should never need to reference the original notes.
9
-
10
- ## Step 1: Accept Input
11
-
12
- Accept notes in any format:
13
- - Pasted plain text or markdown
14
- - A file path (read the file)
15
- - A transcript with speaker labels
16
- - Bullet-pointed jottings or a brain dump
17
-
18
- If the user hasn't provided notes yet, ask: "Please paste your meeting notes or provide a file path."
19
-
20
- ---
21
-
22
- ## Step 2: Check for Project Context (If in a Repo)
23
-
24
- Before extracting tasks, check whether you're inside a project repository. This context helps align output with the project's conventions.
25
-
26
- 1. Look for `CLAUDE.md` or `prompter/CLAUDE.md` — project guidelines, naming conventions, tech stack
27
- 2. Look for `AGENTS.md` — workflow context and existing structure
28
- 3. Check for existing task files: `TODO.md`, `tasks.md`, `.taskmaster/`, or similar
29
- 4. Run `git log --oneline -10` to understand current work in flight
30
-
31
- Use this context to:
32
- - Align task titles with project conventions (e.g., `feat(auth):` prefixes, snake_case names)
33
- - Flag tasks that likely duplicate existing in-progress work
34
- - Reference specific files or modules from the repo when the notes mention them
35
-
36
- If no repo context is found, proceed with general formatting.
37
-
38
- ---
39
-
40
- ## Step 3: Extract Tasks
41
-
42
- Scan the notes for everything that implies work to be done.
43
-
44
- **Extract these:**
45
- - Explicit action items: "we need to…", "John will…", "TODO:", "action item:"
46
- - Decisions requiring implementation: "we decided to X — someone needs to build it"
47
- - Open questions needing resolution: "TBD", "to figure out", "need to check"
48
- - Implicit commitments: "before the release", "I'll handle it", "by next week"
49
-
50
- **Skip these:**
51
- - Background context with no next step
52
- - Already-completed work: "we shipped X last week"
53
- - Opinions with no concrete follow-through
54
-
55
- For each task, capture:
56
- - **Title** — short imperative verb phrase: "Set up CI pipeline for mobile builds"
57
- - **Description** — what needs to happen, with enough context for execution without the notes
58
- - **Owner** — who's responsible (leave blank if not mentioned)
59
- - **Priority** — see Priority Guide below
60
- - **Category** — see Categories below
61
- - **Due date** — only if explicitly mentioned
62
-
63
- ### Priority Guide
64
-
65
- | Priority | Signals |
66
- |----------|---------|
67
- | **High** | "blocker", "urgent", "ASAP", "before launch", "critical", deadline within ~1 week |
68
- | **Medium** | "should", "this sprint", "next week", general items with no urgency signal |
69
- | **Low** | "nice to have", "eventually", "backlog", "when we get to it", open questions with no deadline |
70
-
71
- ### Categories
72
-
73
- Choose the best fit:
74
- - **Development** — coding, implementation, bug fixes
75
- - **Design** — UI/UX, wireframes, visual assets
76
- - **Research** — investigation, spikes, discovery
77
- - **DevOps/Infra** — CI/CD, deployments, infrastructure
78
- - **Product** — requirements, roadmap, stakeholder decisions
79
- - **Testing/QA** — test writing, QA passes, review
80
- - **Documentation** — docs, READMEs, guides
81
- - **Communication** — follow-up emails, meetings to schedule
82
- - **Admin/Other** — anything else
83
-
84
- ---
85
-
86
- ## Step 4: Format Output
87
-
88
- Produce two blocks.
89
-
90
- ### Block 1: Summary Table
91
-
92
- A markdown table for quick scanning:
93
-
94
- ```
95
- | # | Task | Owner | Priority | Category | Due |
96
- |---|------|-------|----------|----------|-----|
97
- | 1 | Set up CI pipeline for mobile builds | @alice | High | DevOps/Infra | Mar 22 |
98
- | 2 | ... |
99
- ```
100
-
101
- ### Block 2: AI-Agent-Ready Task List
102
-
103
- Each task as a standalone, copy-pasteable prompt block. The goal is that someone can paste any single block directly into an AI agent and it will know exactly what to do — no additional context needed.
104
-
105
- Use this template for each task:
106
-
107
- ---
108
-
109
- **TASK [N] · [Priority] · [Category]**
110
- **[Title]**
111
-
112
- > **Context:** [1–2 sentences explaining why this task exists and what decision or discussion led to it]
113
-
114
- **What to do:**
115
- - [Concrete imperative step 1]
116
- - [Concrete imperative step 2]
117
- - [Add more as needed]
118
-
119
- **Assignee:** [owner or "Unassigned"]
120
- **Due:** [date or "Not specified"]
121
-
122
- ---
123
-
124
- **Writing good task blocks — the key principles:**
125
- - The title is an imperative verb phrase, not a noun phrase ("Fix the auth bug" not "Auth bug fix")
126
- - The Context block carries the *why*, so the agent understands the goal, not just the mechanics
127
- - "What to do" steps are concrete and specific — name files, tools, systems, and outputs by name when the notes mention them
128
- - Self-contained means: no pronouns without antecedents, no references to "the meeting", no unexplained abbreviations
129
-
130
- ---
131
-
132
- ## Step 5: Validate Against Project Context (If Applicable)
133
-
134
- If you gathered project context in Step 2, do a final pass before printing output:
135
-
136
- 1. **Naming alignment** — rewrite task titles to match project conventions
137
- 2. **Duplicate detection** — if a task matches something in git history or existing task files, flag it: `⚠️ Possible duplicate: [reference]`
138
- 3. **File/module references** — replace vague references ("the auth module") with actual repo paths when you can identify them
139
- 4. **Missing context** — if a task needs project knowledge not present in the notes, flag it: `ℹ️ Context needed: [what's unclear]`
140
-
141
- ---
142
-
143
- ## Step 6: Present and Offer to Save
144
-
145
- 1. Print the Summary Table
146
- 2. Print the AI-Agent-Ready Task List
147
- 3. Offer to save to a file (default: `meeting-tasks-YYYY-MM-DD.md`)
148
-
149
- If the user wants changes — reordering, reprioritization, a missing task, merging two tasks — iterate quickly.
150
-
151
- ---
152
-
153
- ## Edge Cases
154
-
155
- - **No clear tasks found** — Tell the user and ask whether to extract implicit decisions or discussion points that might need follow-up
156
- - **Very long meeting (many items)** — Ask if they want to filter by owner, topic, or priority tier
157
- - **Ambiguous owner** — Write "Unassigned"; never guess
158
- - **Conflicting priority signals** — Use the most urgent signal
159
- - **Non-English notes** — Process and output in the same language
@@ -1,23 +0,0 @@
1
- {
2
- "skill_name": "meeting-notes-to-todo",
3
- "evals": [
4
- {
5
- "id": 1,
6
- "prompt": "hey can you turn these into a task list?\n\n---\nProduct sync – March 18 2026\nAttendees: Sarah (PM), Dev (backend), Mia (design), Tom (QA)\n\nWe talked about the upcoming v2.1 release. Launch is March 28.\n\n- Sarah said the onboarding flow redesign needs to be done before we release. Mia is handling the wireframes, needs to be done by March 21 so dev can implement.\n- Dev mentioned the payment webhook is still broken on sandbox. He'll fix it this week, it's a blocker.\n- Tom hasn't started regression testing yet – needs to start by March 24 at the latest or we'll miss the launch window.\n- We need to write release notes before launch. Sarah said she'll draft them but needs input from dev on what changed technically.\n- Someone (nobody claimed it) needs to update the docs for the new API endpoints. Mia suggested we do a quick loom video too.\n- The analytics dashboard is broken in Safari – not a launch blocker but should be fixed soon. Dev will look into it after the release.\n- Sarah wants a go/no-go meeting on March 26. She'll send the invite.\n---\n\ncan you make each task ready to paste into claude so it can do the work?",
7
- "expected_output": "A summary table with all 7+ tasks, each with owner, priority, and due date where specified. Followed by individual AI-agent-ready task blocks — each self-contained with context, concrete steps, assignee, and due date. High priority on the payment webhook fix and Mia's wireframes due to blockers/deadline. Go/no-go meeting invite should be a Communication task.",
8
- "files": []
9
- },
10
- {
11
- "id": 2,
12
- "prompt": "here are my notes from today's backend team standup, can you extract the action items and make a proper todo list?\n\nStandup notes 3/18:\n- alice: finished auth refactor PR, waiting on review from bob. also discovered that the session token TTL logic has a bug where it doesn't handle timezone offsets correctly — filed issue #847\n- bob: reviewing alice's PR today. blocked on the redis cluster upgrade because ops team hasn't provisioned the new nodes yet. bob will ping ops (jake) about it\n- carol: working on the data export feature. the CSV generation is done, still need to wire up the S3 upload and add retry logic. estimates 2 more days\n- team decision: we're going to use structured logging (pino) across all new services starting now. carol will add it to the data export service as she finishes. alice will document the convention in the backend README\n- also need to add integration tests for the auth refactor before it can merge — bob mentioned this\n- reminder: sprint review is friday, everyone should have their items demoed or marked done",
13
- "expected_output": "A clean task list covering: reviewing alice's PR (bob, high), pinging ops about redis nodes (bob, medium), finishing S3 upload + retry logic for data export (carol, medium), adding pino structured logging to data export service (carol, medium), documenting logging convention in README (alice, medium), adding integration tests for auth refactor (medium, before merge), preparing sprint review items (friday deadline). Summary table plus AI-agent-ready blocks with clear context.",
14
- "files": []
15
- },
16
- {
17
- "id": 3,
18
- "prompt": "I just got out of a long planning session, my brain is fried. here are my rough notes — lots of things mixed together, some things were just discussed but a few are actual todos. can you sort it all out and give me a clean task list formatted so I can paste each task into claude to work on?\n\n=== planning session notes ===\ntalked about Q2 roadmap. main themes: retention, performance, mobile parity\n\nretention:\n- churn is at 8% which is bad. need to understand why. -> spike: analyze churn data from mixpanel, look at cohorts from jan-mar. who's churning and at what point in lifecycle?\n- idea: add email drip campaign for users who haven't logged in for 7 days. not sure if this is the right move. needs product sign-off from lisa\n- subscription cancellation page — we should add a \"pause instead of cancel\" option. this one is approved and prioritized. design + dev work needed.\n\nperformance:\n- homepage loads in 4.2s on mobile, goal is sub-2s. jake looked at it and thinks it's the hero image and 3 blocking JS scripts. -> optimize hero image (webp, lazy load) and defer non-critical JS\n- database query for user feed is N+1, has been on the backlog forever. now it's causing timeouts on accounts with >1000 connections. urgent fix needed.\n- CDN caching headers are wrong, static assets are being re-fetched every request. quick fix, someone just needs to do it\n\nmobile:\n- ios app is missing the notifications tab that android has. 3 sprints of work estimated.\n- push notifications are broken on ios 17.4+ (regression from last month). super urgent, lots of user complaints\n- android: dark mode looks bad on samsung devices specifically (OLED screens). medium priority, aesthetic issue\n\nother:\n- we never documented the data retention policy after legal asked us to. someone needs to write that doc. probably high priority given compliance.\n- offsite planning in april, need to book venue\n===",
19
- "expected_output": "Should separate actual tasks from pure discussion. High-priority items: fix N+1 query, fix iOS push notification regression, write data retention policy doc. Medium: optimize homepage performance, fix CDN caching, pause-vs-cancel feature (design + dev). Low/research: churn analysis spike, email drip campaign (needs sign-off), Samsung dark mode fix. Long-horizon: iOS notifications tab (3 sprints), book offsite venue. Each task should be clearly scoped as an AI-agent-ready block with context and concrete steps.",
20
- "files": []
21
- }
22
- ]
23
- }
@@ -1,487 +0,0 @@
1
- ---
2
- name: project-orchestrator
3
- description: Interview users to define and verify a software project plan through a structured conversation. Collects project description, MVP scope, user roles, features, tech stack, integrations, and deployment preferences. Asks minimal clarifying questions grouped logically, provides tailored recommendations after each answer, and produces a verified project plan summary. Use when a user wants to plan a new software project, define MVP scope, choose a tech stack, or create a project brief.
4
- ---
5
-
6
- # Project Orchestrator
7
-
8
- Interview the user to define a verified software project plan. Guide them through scope, features, tech stack, and deployment with minimal, focused questions. Provide a recommendation after every answer.
9
-
10
- ## Quick Start
11
-
12
- 1. **COLLECT** -- Ask for project description + top 3 MVP features
13
- 2. **VERIFY** -- Walk through scope, roles, data, integrations, non-functional needs
14
- 3. **SELECT STACK** -- Present bundled stack options, resolve sub-choices
15
- 4. **CONFIGURE** -- Docker preference, deployment, environments
16
- 5. **SUMMARIZE** -- Output the verified plan using the final summary template
17
- 6. **CONFIRM** -- Ask the user to approve or correct the plan
18
-
19
- ---
20
-
21
- ## Before You Begin (REQUIRED)
22
-
23
- Before starting the interview, **always read `prompter/AGENTS.md`** and follow its instructions. This ensures the final output is structured as a proper spec that integrates with the Prompter workflow.
24
-
25
- ---
26
-
27
- ## Interactive Terminal Tool (REQUIRED)
28
-
29
- Use the `AskUserQuestion` tool for **every question** in the interview. This renders an interactive UI in the terminal instead of plain text, making it easier for the user to respond.
30
-
31
- ### How to Use AskUserQuestion
32
-
33
- - **Single-choice questions**: Set `multiSelect: false`. Use for mutually exclusive picks (e.g., stack selection, database choice, Docker yes/no).
34
- - **Multi-choice questions**: Set `multiSelect: true`. Use for checklists (e.g., integrations, roles, features).
35
- - **Keep options concise**: Labels should be 1–5 words. Add detail in the `description` field.
36
- - **Always include an "Unsure" option** when the user may not know. Handle it by recommending a default.
37
- - **Group related sub-choices** into one `AskUserQuestion` call with multiple `questions` when they are always asked together and order doesn't matter.
38
-
39
- ### Example: Stack Selection
40
-
41
- ```json
42
- {
43
- "questions": [
44
- {
45
- "question": "Which tech stack bundle fits your project best?",
46
- "header": "Stack",
47
- "multiSelect": false,
48
- "options": [
49
- { "label": "JS/TS Full-Stack", "description": "React or Next.js + Drizzle + Express or NestJS + PostgreSQL/MySQL" },
50
- { "label": "React + Convex", "description": "React (Vite or Next.js) + Convex (real-time backend + built-in DB)" },
51
- { "label": "Laravel Classic", "description": "Laravel + Blade + Tailwind + PostgreSQL/MySQL" },
52
- { "label": "Laravel + React", "description": "Laravel + Inertia.js (React) + PostgreSQL/MySQL" },
53
- { "label": "Laravel + Filament", "description": "Laravel + Filament (admin panel & CRUD) + Tailwind + PostgreSQL/MySQL" },
54
- { "label": "Unsure", "description": "I'll recommend based on your project needs" }
55
- ]
56
- }
57
- ]
58
- }
59
- ```
60
-
61
- ### Example: Integrations Checklist
62
-
63
- ```json
64
- {
65
- "questions": [
66
- {
67
- "question": "Which integrations or capabilities does your MVP need?",
68
- "header": "Integrations",
69
- "multiSelect": true,
70
- "options": [
71
- { "label": "Caching", "description": "e.g., Redis for fast data access" },
72
- { "label": "Queues / Jobs", "description": "e.g., sending emails, processing uploads" },
73
- { "label": "Real-Time", "description": "e.g., live chat, notifications, WebSockets" },
74
- { "label": "File Storage", "description": "e.g., S3, local uploads" }
75
- ]
76
- }
77
- ]
78
- }
79
- ```
80
-
81
- ---
82
-
83
- ## Core Rules
84
-
85
- - Use `AskUserQuestion` for every question -- never ask interview questions as plain text.
86
- - Ask one question or one small grouped set at a time. Never overwhelm.
87
- - After every answer (or group), provide a short recommendation tailored to what the user said.
88
- - Use plain language. Only introduce jargon if the user shows technical comfort.
89
- - If the user says "unsure", recommend a pragmatic default and explain briefly.
90
- - Keep optional topics gated -- only go deeper if the user says yes or unsure.
91
-
92
- ---
93
-
94
- ## Project Setup Commands (PRIORITY)
95
-
96
- Always use these exact commands when scaffolding projects. Include the correct command in the final summary's "Recommended Next Steps" based on the chosen stack.
97
-
98
- | Technology | Command |
99
- |------------|---------|
100
- | React (Vite) | `npm create vite@latest` |
101
- | Next.js | `npx create-next-app@latest {project_name} --yes` |
102
- | Express | `npm install express --save` |
103
- | NestJS | `npm i -g @nestjs/cli && nest new {project_name}` |
104
- | Laravel 12 | `composer create-project laravel/laravel:^12.0 {project_name}` |
105
- | Filament | `composer require filament/filament && php artisan filament:install --panels` |
106
- | React + Convex | `npm create convex@latest` |
107
-
108
- **Rules:**
109
- - Always include the matching setup command(s) as the first recommended next step in the final plan.
110
- - For Bundle 1 (JS/TS Full-Stack): include the frontend command (React via Vite or Next.js) AND the backend command (Express or NestJS).
111
- - For Bundle 2 (React + Convex): include only `npm create convex@latest` -- it scaffolds both the React frontend and Convex backend in one step.
112
- - For Bundles 3 and 4 (Laravel): include only the Laravel command -- Blade, Inertia, and Tailwind are configured within the Laravel project.
113
- - For Bundle 5 (Laravel + Filament): include the Laravel command first, then the Filament install command (`composer require filament/filament && php artisan filament:install --panels`).
114
- - Never invent or substitute alternative installation commands. Use these exactly as shown.
115
-
116
- ---
117
-
118
- ## Step 1: Project Description (REQUIRED)
119
-
120
- Open with:
121
-
122
- ```
123
- Let's define your project. To start, tell me:
124
-
125
- 1. What problem does your project solve, and who is it for?
126
- 2. What is the desired outcome (e.g., a web app, mobile app, SaaS platform)?
127
- 3. What are your top 3 MVP features -- the minimum needed to launch?
128
- ```
129
-
130
- Wait for the user's response. Summarize what you understood and give a brief recommendation (e.g., "This sounds like a good fit for a standard web app with auth and a dashboard. Let's verify the details.").
131
-
132
- ---
133
-
134
- ## Step 2: MVP Scope Confirmation
135
-
136
- Based on the user's description, present a draft scope:
137
-
138
- ```
139
- Here's what I'd put in scope for the MVP:
140
-
141
- **In scope:**
142
- - [feature 1]
143
- - [feature 2]
144
- - [feature 3]
145
-
146
- **Out of scope (for later):**
147
- - [deferred item 1]
148
- - [deferred item 2]
149
-
150
- Does this match your expectations? Anything to add or move?
151
- ```
152
-
153
- Recommendation: Briefly explain why you deferred certain items (e.g., "Reporting dashboards add complexity -- better to ship core functionality first and add analytics in v2.").
154
-
155
- ---
156
-
157
- ## Step 3: Users & Roles
158
-
159
- Ask:
160
-
161
- ```
162
- Who will use this application? For example:
163
- - Public visitors (unauthenticated)
164
- - Registered users
165
- - Admins
166
- - Other roles (e.g., moderators, vendors, managers)
167
-
168
- Which roles does the MVP need?
169
- ```
170
-
171
- Recommendation: Suggest a minimal role set (e.g., "For MVP, I'd recommend just User + Admin. You can add granular roles later without rearchitecting.").
172
-
173
- ---
174
-
175
- ## Step 4: Data & Content Types
176
-
177
- Ask:
178
-
179
- ```
180
- What are the main things your app manages? For example:
181
- - Users / profiles
182
- - Products / listings
183
- - Orders / bookings
184
- - Posts / articles
185
- - Messages / notifications
186
-
187
- List the key entities your MVP needs to store and manage.
188
- ```
189
-
190
- Recommendation: Sketch a quick high-level data model (e.g., "So we'd have Users, Products, and Orders as core entities, with Orders linking Users to Products.").
191
-
192
- ---
193
-
194
- ## Step 5: Integrations & Optional Capabilities
195
-
196
- Present optional topics as a checklist. Do NOT deep-dive unless the user says yes or unsure.
197
-
198
- ```
199
- Do you need any of the following? (Yes / No / Unsure for each)
200
-
201
- 1. Caching (e.g., Redis for fast data access)
202
- 2. Queues / background jobs (e.g., sending emails, processing uploads)
203
- 3. Real-time features (e.g., live chat, notifications, WebSockets)
204
- 4. Full-text search (e.g., Elasticsearch, Algolia, Meilisearch)
205
- 5. File storage / uploads (e.g., S3, local storage)
206
- 6. Email or SMS notifications
207
- 7. Analytics / event tracking
208
- 8. Payments (e.g., Stripe, PayPal)
209
- 9. Third-party integrations (e.g., social login, maps, calendar)
210
- ```
211
-
212
- For each "yes" or "unsure":
213
- - Ask which service they prefer (or recommend one).
214
- - Give a 1-2 sentence recommendation (e.g., "For queues, Redis with a simple job runner is the easiest starting point. You can scale to dedicated queue services later.").
215
-
216
- For each "no": Move on. Don't push.
217
-
218
- ---
219
-
220
- ## Step 6: Non-Functional Requirements
221
-
222
- Ask as a grouped set:
223
-
224
- ```
225
- A few quick questions about non-functional needs:
226
-
227
- 1. **Security**: Any specific requirements beyond standard auth? (e.g., 2FA, encryption at rest, compliance like GDPR/HIPAA)
228
- 2. **Performance**: Expected traffic volume? (e.g., <1k users, 1k-10k, 10k+)
229
- 3. **SEO**: Does this app need to rank in search engines? (important for stack choice)
230
- ```
231
-
232
- Recommendation: Tailor to their answers (e.g., "With SEO needs, server-side rendering will matter -- that'll influence our stack choice next." or "At <1k users, you won't need to worry about caching or CDN right away.").
233
-
234
- ---
235
-
236
- ## Step 7: Tech Stack Selection (REQUIRED)
237
-
238
- Present exactly these bundled options:
239
-
240
- ```
241
- Let's pick your tech stack. Here are four proven bundles:
242
-
243
- 1. **JS/TS Full-Stack**: React or Next.js + Drizzle ORM + Express or NestJS + MySQL or PostgreSQL
244
- 2. **React + Convex**: React (Vite or Next.js) + Convex (real-time backend + built-in document DB, no SQL setup needed)
245
- 3. **Laravel Classic**: Laravel + Blade + Tailwind CSS + MySQL or PostgreSQL
246
- 4. **Laravel + React**: Laravel + Inertia.js (React) + MySQL or PostgreSQL
247
- 5. **Laravel + Filament**: Laravel + Filament (admin panel & CRUD generator) + Tailwind CSS + MySQL or PostgreSQL
248
-
249
- Which bundle fits your project best? (Pick 1-5, or say "unsure")
250
- ```
251
-
252
- If unsure: Recommend based on what you've learned (e.g., "Since you need SEO and prefer a simpler setup, I'd go with Laravel Classic -- it's fast to build, great for server-rendered pages, and has excellent built-in tooling." Or "If you want real-time features out of the box with minimal backend setup, React + Convex is a great choice." Or "If your app is primarily an admin panel, back-office tool, or data management system, Laravel + Filament gives you a complete CRUD interface with minimal custom frontend work.").
253
-
254
- ### Sub-Choices
255
-
256
- After the user picks a bundle, ask ONLY the necessary sub-choices:
257
-
258
- **Bundle 1 sub-choices:**
259
- - Next.js vs React SPA? (Recommend Next.js if SEO matters or if they want SSR; React SPA if it's a dashboard/internal tool)
260
- - Express vs NestJS? (Recommend Express for simplicity and speed; NestJS if they want structure and the app is complex)
261
- - MySQL vs PostgreSQL? (Recommend PostgreSQL as the default -- richer features, JSON support, better for most new projects. Recommend MySQL if team is already familiar or hosting is MySQL-only)
262
-
263
- **Bundle 2 sub-choices:**
264
- - Next.js vs React (Vite)? (Recommend Next.js if SEO matters; Vite if it's a dashboard or real-time app where SSR isn't needed)
265
- - No database sub-choice needed -- Convex includes a built-in document database with real-time sync.
266
- - **Convex hosting**: Convex Cloud (managed, easiest) vs Self-Hosted (Docker, full control)? (Recommend Convex Cloud for most projects -- zero infrastructure overhead. Recommend Self-Hosted if the user needs data sovereignty, air-gapped environments, or wants to avoid vendor lock-in.)
267
- - **Convex storage backend** (Self-Hosted only): SQLite vs Postgres?
268
- - **SQLite** — single file on disk, zero config. Fine for dev/hobby projects up to ~1–2 GB data on a single server. Back up by copying the file.
269
- - **Postgres** — networked database. Required for production: handles concurrent connections, proper backups (`pg_dump` to S3/R2), point-in-time recovery, and horizontal scaling. Add a `postgres` service to `docker-compose.yml` and pass `DATABASE_URL` to Convex.
270
- - **Important framing**: Postgres is Convex's *storage engine*, not your application database. You never write SQL or query Postgres directly — Convex reads/writes its own internal format there. You only touch Postgres for ops: running the container and taking backups.
271
- - Recommend Postgres for any self-hosted project with real users. Recommend SQLite only for solo dev environments or throwaway prototypes.
272
-
273
- **Bundle 3 sub-choices:**
274
- - MySQL vs PostgreSQL? (Same guidance as above)
275
-
276
- **Bundle 4 sub-choices:**
277
- - MySQL vs PostgreSQL? (Same guidance as above)
278
-
279
- **Bundle 5 sub-choices:**
280
- - MySQL vs PostgreSQL? (Same guidance as above)
281
- - Filament panels: Admin only, or also a user-facing app panel? (Recommend admin-only for MVP -- add a user-facing panel later if needed. If the user needs a public-facing frontend beyond Filament, suggest combining with Blade or consider Bundle 4 instead.)
282
-
283
- Provide a brief recommendation for each sub-choice based on the project's stated needs.
284
-
285
- ---
286
-
287
- ## Step 8: Docker Preference (REQUIRED)
288
-
289
- Always ask:
290
-
291
- ```
292
- Do you want Docker for this project? (Yes / No / Unsure)
293
-
294
- Quick context: Docker makes it easy to set up identical dev environments across machines and simplifies deployment. The tradeoff is a small learning curve and slightly more setup upfront.
295
- ```
296
-
297
- If unsure: Recommend based on team size and deployment target (e.g., "For a solo project deploying to a single VPS, Docker is optional. For a team or cloud deployment, I'd recommend it.").
298
-
299
- ### Web Server / Reverse Proxy Guidelines
300
-
301
- When Docker is used and a web server or reverse proxy is needed (e.g., for Laravel, Express, NestJS, or a Dockerized frontend):
302
-
303
- - **Always use Caddy** as the web server and reverse proxy -- do NOT use or recommend Nginx or Apache.
304
- - Caddy automatically handles HTTPS (via Let's Encrypt or ZeroSSL) in production with zero extra configuration.
305
- - For local development, Caddy serves HTTP by default -- no certificate setup needed.
306
- - Mention Caddy in the final plan summary under the Docker/web server row and in the recommended next steps.
307
-
308
- **Always install Caddy directly on the host** (via the OS package manager) -- do NOT run Caddy inside Docker. Running Caddy on the host avoids Docker network overhead, survives Docker daemon restarts, and is managed by systemd automatically. Do NOT embed Caddy in any project's `docker-compose.yml`.
309
-
310
- The correct setup:
311
-
312
- 1. **Caddy installed on the host** via `apt install caddy` (Ubuntu/Debian) or equivalent. Systemd manages it -- starts on boot, restarts on failure.
313
- 2. **Each project exposes only an internal port** (e.g., `3001`, `3002`) -- no `ports: - "80:80"` in their `docker-compose.yml`.
314
- 3. The host Caddyfile (`/etc/caddy/Caddyfile`) routes by domain:
315
-
316
- ```caddy
317
- project-a.com {
318
- reverse_proxy localhost:3001
319
- }
320
-
321
- project-b.com {
322
- reverse_proxy localhost:3002
323
- }
324
- ```
325
-
326
- 4. After editing the Caddyfile, reload with `sudo systemctl reload caddy`.
327
-
328
- During Step 9 (Deployment), ask whether Caddy is already installed on the VPS:
329
-
330
- - **Yes** -- skip installing Caddy. Just add a new block to `/etc/caddy/Caddyfile` for the new domain, then run `sudo systemctl reload caddy`. Include only this step in the recommended next steps.
331
- - **No** -- include the full Caddy install in the recommended next steps:
332
- ```bash
333
- sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
334
- curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
335
- curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
336
- sudo apt update && sudo apt install caddy
337
- ```
338
-
339
- Include the appropriate Caddy setup in the final plan summary and recommended next steps.
340
-
341
- ### Laravel + Docker Guidelines
342
-
343
- When the user chooses a Laravel stack (Bundle 3, 4, or 5) with Docker:
344
-
345
- - **Use regular Docker and Docker Compose** -- do NOT use or recommend Laravel Sail. Set up a standard `Dockerfile` and `docker-compose.yml` with services for the app, database, and any other dependencies (e.g., Redis).
346
- - **Use Supervisor** for managing background processes inside the container. Laravel workers like `php artisan queue:work` must run continuously -- Supervisor ensures they stay alive and restart on failure. Include a `supervisord.conf` that manages:
347
- - `php artisan queue:work` (queue worker)
348
- - Any other long-running processes the project needs (e.g., scheduler via `php artisan schedule:work`)
349
- - Mention this in the final plan summary under the Docker row and in the recommended next steps.
350
-
351
- ### Convex Self-Hosted Guidelines
352
-
353
- When the user chooses React + Convex (Bundle 2) with **self-hosted** deployment:
354
-
355
- - **Storage backend**: Include in `docker-compose.yml` based on what the user chose:
356
- - **SQLite** (dev/hobby): No extra service needed — Convex stores data in a local SQLite file inside the container. Mount a volume to persist it across restarts.
357
- - **Postgres** (production): Add a `postgres` service (e.g., `postgres:16`) and pass `DATABASE_URL` to the Convex container. Postgres is Convex's internal filing cabinet — the user's data lives in `document_json` columns managed by Convex, not in SQL tables they'd recognize. The user never writes SQL; they only run `pg_dump` for backups.
358
- - **Use Docker Compose** with two Convex services:
359
- - `convex` — backend image `ghcr.io/get-convex/convex-backend:latest`
360
- - `convex-dashboard` — dashboard image `ghcr.io/get-convex/convex-dashboard:latest`
361
- - **Two environment files** are required:
362
- - `.env.dev` (Docker Compose config) — contains `CONVEX_PORT`, `CONVEX_DASHBOARD_PORT`, `CONVEX_DASHBOARD_UI_PORT`, `VITE_CONVEX_URL`, `CONVEX_ADMIN_KEY`, `CONVEX_CLOUD_ORIGIN`, `CONVEX_SITE_ORIGIN`
363
- - `.env.local` (CLI and frontend, never committed) — contains `VITE_CONVEX_URL`, `CONVEX_SELF_HOSTED_URL`, `CONVEX_SELF_HOSTED_ADMIN_KEY`
364
- - **Admin key generation**: After starting the backend, generate the CLI admin key from the running container:
365
- ```bash
366
- docker compose --env-file .env.dev exec convex ./generate_admin_key.sh
367
- ```
368
- Copy the printed `convex-self-hosted|...` value into `.env.local` as `CONVEX_SELF_HOSTED_ADMIN_KEY`. Never use a random string or the Docker `CONVEX_ADMIN_KEY` value directly for CLI use.
369
- - **Add a deploy script** to `package.json`:
370
- ```json
371
- "deploy:selfhosted": "convex deploy --url $CONVEX_SELF_HOSTED_URL --admin-key $CONVEX_SELF_HOSTED_ADMIN_KEY"
372
- ```
373
- - **Reserved index names**: Self-hosted Convex does not allow reserved index names such as `by_id`. Rename them to non-reserved names (e.g., `by_external_id`) before deploying.
374
- - **Frontend wiring**: The frontend reads `VITE_CONVEX_URL` at build time. Ensure this value is reachable by the browser and is passed as a Docker build argument when building the frontend image.
375
- - Mention this setup in the final plan summary under the Docker/Convex row and in the recommended next steps.
376
-
377
- ---
378
-
379
- ## Step 9: Deployment & Hosting
380
-
381
- Ask:
382
-
383
- ```
384
- Where do you plan to deploy?
385
-
386
- Common options:
387
- - **VPS** (e.g., DigitalOcean, Hetzner, Linode) -- most flexible, you manage the server
388
- - **PaaS** (e.g., Railway, Render, Fly.io) -- easier, less control
389
- - **Cloud** (e.g., AWS, GCP, Azure) -- most scalable, most complex
390
- - **Shared hosting** (e.g., cPanel) -- cheapest, limited
391
-
392
- Also: do you need separate environments? (e.g., dev / staging / production)
393
- ```
394
-
395
- Recommendation: Match to their context (e.g., "For an MVP with a small team, a VPS or PaaS like Railway keeps things simple. You can migrate to AWS later if you need to scale.").
396
-
397
- ---
398
-
399
- ## Step 10: Final Summary (REQUIRED)
400
-
401
- After all questions are answered, produce the verified plan using the template in `assets/plan-summary-template.md`.
402
-
403
- Present it to the user and ask (using `AskUserQuestion`):
404
-
405
- ```json
406
- {
407
- "questions": [
408
- {
409
- "question": "Does this project plan look correct?",
410
- "header": "Plan Review",
411
- "multiSelect": false,
412
- "options": [
413
- { "label": "Looks good", "description": "Approve and save the plan" },
414
- { "label": "Needs changes", "description": "I'll tell you what to correct" }
415
- ]
416
- }
417
- ]
418
- }
419
- ```
420
-
421
- Iterate if the user requests changes. The plan is final only when the user confirms.
422
-
423
- ### Save the Plan (REQUIRED)
424
-
425
- Once the user approves, **write the final plan to `prompter/project-plan.md`** using the Write tool. Use the filled-in plan summary template as the file content.
426
-
427
- ```
428
- Write the approved plan content to: prompter/project-plan.md
429
- ```
430
-
431
- After saving, confirm to the user:
432
-
433
- ```
434
- Your project plan has been saved to prompter/project-plan.md.
435
- ```
436
-
437
- ### Proposal Creation (Conditional)
438
-
439
- After confirming the plan is saved, check whether the proposal feature is installed by verifying that `prompter/core/proposal.md` exists (use the Glob tool). If the file does not exist, skip this section entirely.
440
-
441
- If the file exists, ask the user using `AskUserQuestion`:
442
-
443
- ```json
444
- {
445
- "questions": [
446
- {
447
- "question": "Would you like to create a Prompter change proposal based on this project plan?",
448
- "header": "Create Proposal",
449
- "multiSelect": false,
450
- "options": [
451
- { "label": "Yes, create a proposal", "description": "Scaffold a change proposal using the project plan as context" },
452
- { "label": "No, skip", "description": "I'll create the proposal manually later" }
453
- ]
454
- }
455
- ]
456
- }
457
- ```
458
-
459
- If the user agrees, read `prompter/core/proposal.md` and `prompter/AGENTS.md` and follow their instructions to scaffold the proposal. Use the approved project plan from `prompter/project-plan.md` as the source of context (e.g., to derive the change-id, capabilities, requirements, and tasks).
460
-
461
- ---
462
-
463
- ## Conversation Tips
464
-
465
- ### Handling "I don't know" / "Unsure"
466
- - Always recommend a sensible default.
467
- - Explain the recommendation in 1-2 sentences.
468
- - Frame it as: "You can always change this later."
469
-
470
- ### Handling Overly Complex Requests
471
- - Gently suggest deferring non-essential features.
472
- - Use: "That's a great v2 feature. For MVP, I'd recommend [simpler alternative]."
473
-
474
- ### Handling Very Technical Users
475
- - Skip basic explanations if the user demonstrates expertise.
476
- - Engage at their level -- discuss tradeoffs, not definitions.
477
-
478
- ### Handling Non-Technical Users
479
- - Avoid jargon. Use analogies when helpful.
480
- - Make decisions for them when they're stuck, but always explain why.
481
-
482
- ---
483
-
484
- ## Resources
485
-
486
- - **Plan summary template**: [plan-summary-template.md](assets/plan-summary-template.md) -- Structured output format for the final verified plan
487
- - **Caddy VPS setup guide**: [caddy-vps-setup.md](assets/caddy-vps-setup.md) -- Step-by-step guide for installing and managing Caddy on a VPS (share this with users who are unfamiliar with VPS operations)