@dedesfr/prompter 0.9.0 → 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 (216) hide show
  1. package/CHANGELOG.md +21 -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.map +1 -1
  6. package/dist/commands/init.js +32 -9
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/login.d.ts +4 -0
  9. package/dist/commands/login.d.ts.map +1 -0
  10. package/dist/commands/login.js +56 -0
  11. package/dist/commands/login.js.map +1 -0
  12. package/dist/commands/logout.d.ts +4 -0
  13. package/dist/commands/logout.d.ts.map +1 -0
  14. package/dist/commands/logout.js +14 -0
  15. package/dist/commands/logout.js.map +1 -0
  16. package/dist/commands/update.d.ts.map +1 -1
  17. package/dist/commands/update.js +18 -5
  18. package/dist/commands/update.js.map +1 -1
  19. package/dist/commands/whoami.d.ts +4 -0
  20. package/dist/commands/whoami.d.ts.map +1 -0
  21. package/dist/commands/whoami.js +42 -0
  22. package/dist/commands/whoami.js.map +1 -0
  23. package/dist/core/auth-store.d.ts +10 -0
  24. package/dist/core/auth-store.d.ts.map +1 -0
  25. package/dist/core/auth-store.js +39 -0
  26. package/dist/core/auth-store.js.map +1 -0
  27. package/dist/core/registry.d.ts +18 -0
  28. package/dist/core/registry.d.ts.map +1 -0
  29. package/dist/core/registry.js +94 -0
  30. package/dist/core/registry.js.map +1 -0
  31. package/package.json +7 -1
  32. package/AGENTS.md +0 -123
  33. package/CLAUDE.md +0 -17
  34. package/build.js +0 -20
  35. package/convex-setup.md +0 -403
  36. package/prompt/ai-humanizer.md +0 -45
  37. package/prompt/api-contract-generator.md +0 -234
  38. package/prompt/apply.md +0 -17
  39. package/prompt/archive.md +0 -21
  40. package/prompt/design-system.md +0 -210
  41. package/prompt/document-explainer.md +0 -149
  42. package/prompt/epic-generator.md +0 -198
  43. package/prompt/epic-single.md +0 -47
  44. package/prompt/erd-generator.md +0 -130
  45. package/prompt/fsd-generator.md +0 -157
  46. package/prompt/prd-agent-generator.md +0 -147
  47. package/prompt/prd-generator.md +0 -195
  48. package/prompt/product-brief.md +0 -289
  49. package/prompt/proposal.md +0 -22
  50. package/prompt/qa-test-scenario.md +0 -133
  51. package/prompt/skill-creator.md +0 -350
  52. package/prompt/story-generator.md +0 -278
  53. package/prompt/story-single.md +0 -70
  54. package/prompt/tdd-generator.md +0 -294
  55. package/prompt/tdd-lite-generator.md +0 -224
  56. package/prompt/wireframe-generator.md +0 -219
  57. package/skills/ai-context-generator/SKILL.md +0 -54
  58. package/skills/ai-context-generator/references/AGENTS.template.md +0 -83
  59. package/skills/ai-context-generator/references/CLAUDE.template.md +0 -39
  60. package/skills/ai-context-generator/references/behavioral-guidelines.md +0 -71
  61. package/skills/ai-context-generator/references/discovery-checklist.md +0 -40
  62. package/skills/ai-context-generator/references/examples/AGENTS.good.md +0 -103
  63. package/skills/ai-context-generator/references/extraction-checklist.md +0 -23
  64. package/skills/ai-context-generator/references/overlays/laravel.md +0 -44
  65. package/skills/ai-humanizer/SKILL.md +0 -50
  66. package/skills/api-contract-generator/SKILL.md +0 -243
  67. package/skills/apply/SKILL.md +0 -23
  68. package/skills/archive/SKILL.md +0 -27
  69. package/skills/cerebro/SKILL.md +0 -187
  70. package/skills/cerebro/references/agents.md +0 -213
  71. package/skills/code-review/SKILL.md +0 -373
  72. package/skills/code-review/assets/report-template-agent.md +0 -212
  73. package/skills/code-review/assets/report-template-compact.md +0 -81
  74. package/skills/code-review/assets/report-template-full.md +0 -264
  75. package/skills/code-review/assets/report-template-human.md +0 -168
  76. package/skills/code-review/references/universal-patterns.md +0 -495
  77. package/skills/design-md/README.md +0 -34
  78. package/skills/design-md/SKILL.md +0 -172
  79. package/skills/design-md/examples/DESIGN.md +0 -154
  80. package/skills/design-system/SKILL.md +0 -216
  81. package/skills/design-system-generator/SKILL.md +0 -324
  82. package/skills/design-system-generator/assets/design-system-template.md +0 -348
  83. package/skills/design-system-generator/references/extraction-patterns.md +0 -321
  84. package/skills/doc-builder/SKILL.md +0 -115
  85. package/skills/doc-builder/references/ui-patterns.md +0 -394
  86. package/skills/document-explainer/SKILL.md +0 -155
  87. package/skills/document-translator/SKILL.md +0 -58
  88. package/skills/enhance/SKILL.md +0 -47
  89. package/skills/enhance-prompt/README.md +0 -34
  90. package/skills/enhance-prompt/SKILL.md +0 -204
  91. package/skills/enhance-prompt/references/KEYWORDS.md +0 -114
  92. package/skills/epic-generator/SKILL.md +0 -204
  93. package/skills/epic-single/SKILL.md +0 -63
  94. package/skills/erd-generator/SKILL.md +0 -138
  95. package/skills/feature-planner/SKILL.md +0 -305
  96. package/skills/feature-planner/assets/implementation-plan-template.md +0 -85
  97. package/skills/frontend-design/LICENSE.txt +0 -177
  98. package/skills/frontend-design/SKILL.md +0 -42
  99. package/skills/fsd-generator/SKILL.md +0 -163
  100. package/skills/gamma-builder/SKILL.md +0 -134
  101. package/skills/laravel-code-review/SKILL.md +0 -383
  102. package/skills/laravel-code-review/assets/report-template-agent.md +0 -195
  103. package/skills/laravel-code-review/assets/report-template-compact.md +0 -79
  104. package/skills/laravel-code-review/assets/report-template-full.md +0 -253
  105. package/skills/laravel-code-review/assets/report-template-human.md +0 -159
  106. package/skills/laravel-code-review/references/laravel-patterns.md +0 -571
  107. package/skills/laravel-code-review/references/php84-features.md +0 -442
  108. package/skills/mcp-builder/LICENSE.txt +0 -202
  109. package/skills/mcp-builder/SKILL.md +0 -236
  110. package/skills/mcp-builder/reference/evaluation.md +0 -602
  111. package/skills/mcp-builder/reference/mcp_best_practices.md +0 -249
  112. package/skills/mcp-builder/reference/node_mcp_server.md +0 -970
  113. package/skills/mcp-builder/reference/python_mcp_server.md +0 -719
  114. package/skills/mcp-builder/scripts/connections.py +0 -151
  115. package/skills/mcp-builder/scripts/evaluation.py +0 -373
  116. package/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
  117. package/skills/mcp-builder/scripts/requirements.txt +0 -2
  118. package/skills/meeting-notes/SKILL.md +0 -159
  119. package/skills/meeting-notes/evals/evals.json +0 -23
  120. package/skills/prd-agent-generator/SKILL.md +0 -132
  121. package/skills/prd-generator/SKILL.md +0 -211
  122. package/skills/product-brief/SKILL.md +0 -141
  123. package/skills/project-orchestrator/SKILL.md +0 -487
  124. package/skills/project-orchestrator/assets/caddy-vps-setup.md +0 -180
  125. package/skills/project-orchestrator/assets/plan-summary-template.md +0 -159
  126. package/skills/prompter-specs/SKILL.md +0 -115
  127. package/skills/prompter-workflow/SKILL.md +0 -166
  128. package/skills/prompter-workflow/evals/evals.json +0 -89
  129. package/skills/proposal/SKILL.md +0 -28
  130. package/skills/qa-test-scenario/SKILL.md +0 -149
  131. package/skills/skill-creator/SKILL.md +0 -173
  132. package/skills/sph-generator/SKILL.md +0 -488
  133. package/skills/story-generator/SKILL.md +0 -285
  134. package/skills/story-single/SKILL.md +0 -86
  135. package/skills/tdd-generator/SKILL.md +0 -300
  136. package/skills/tdd-lite-generator/SKILL.md +0 -230
  137. package/skills/ui-ux-pro/SKILL.md +0 -199
  138. package/skills/ui-ux-pro/assets/design-spec-template.md +0 -173
  139. package/skills/ui-ux-pro/references/component-patterns.md +0 -255
  140. package/skills/ui-ux-pro/references/design-principles.md +0 -167
  141. package/skills/wireframe-generator/SKILL.md +0 -227
  142. package/src/cli/index.ts +0 -223
  143. package/src/commands/archive.ts +0 -302
  144. package/src/commands/change.ts +0 -292
  145. package/src/commands/config.ts +0 -233
  146. package/src/commands/guide.ts +0 -50
  147. package/src/commands/init.ts +0 -597
  148. package/src/commands/list.ts +0 -194
  149. package/src/commands/show.ts +0 -138
  150. package/src/commands/spec.ts +0 -251
  151. package/src/commands/update.ts +0 -129
  152. package/src/commands/upgrade.ts +0 -30
  153. package/src/commands/validate.ts +0 -326
  154. package/src/core/artifact-graph/graph.ts +0 -167
  155. package/src/core/artifact-graph/index.ts +0 -44
  156. package/src/core/artifact-graph/instruction-loader.ts +0 -302
  157. package/src/core/artifact-graph/resolver.ts +0 -226
  158. package/src/core/artifact-graph/schema.ts +0 -124
  159. package/src/core/artifact-graph/state.ts +0 -64
  160. package/src/core/artifact-graph/types.ts +0 -65
  161. package/src/core/completions/command-registry.ts +0 -382
  162. package/src/core/completions/completion-provider.ts +0 -128
  163. package/src/core/completions/generators/bash-generator.ts +0 -191
  164. package/src/core/completions/generators/fish-generator.ts +0 -188
  165. package/src/core/completions/generators/powershell-generator.ts +0 -223
  166. package/src/core/completions/generators/zsh-generator.ts +0 -281
  167. package/src/core/completions/templates/bash-templates.ts +0 -24
  168. package/src/core/completions/templates/fish-templates.ts +0 -40
  169. package/src/core/completions/templates/powershell-templates.ts +0 -25
  170. package/src/core/completions/templates/zsh-templates.ts +0 -36
  171. package/src/core/completions/types.ts +0 -90
  172. package/src/core/config-schema.ts +0 -230
  173. package/src/core/config.ts +0 -181
  174. package/src/core/configurators/slash/antigravity.ts +0 -10
  175. package/src/core/configurators/slash/base.ts +0 -109
  176. package/src/core/configurators/slash/claude.ts +0 -10
  177. package/src/core/configurators/slash/codex.ts +0 -10
  178. package/src/core/configurators/slash/droid.ts +0 -10
  179. package/src/core/configurators/slash/forge.ts +0 -10
  180. package/src/core/configurators/slash/github-copilot.ts +0 -10
  181. package/src/core/configurators/slash/index.ts +0 -10
  182. package/src/core/configurators/slash/kilocode.ts +0 -10
  183. package/src/core/configurators/slash/opencode.ts +0 -10
  184. package/src/core/configurators/slash/registry.ts +0 -51
  185. package/src/core/converters/json-converter.ts +0 -62
  186. package/src/core/global-config.ts +0 -136
  187. package/src/core/parsers/change-parser.ts +0 -234
  188. package/src/core/parsers/markdown-parser.ts +0 -237
  189. package/src/core/parsers/requirement-blocks.ts +0 -234
  190. package/src/core/prompt-templates.ts +0 -3504
  191. package/src/core/schemas/base.schema.ts +0 -20
  192. package/src/core/schemas/change.schema.ts +0 -42
  193. package/src/core/schemas/index.ts +0 -20
  194. package/src/core/schemas/spec.schema.ts +0 -17
  195. package/src/core/skill-discovery.ts +0 -68
  196. package/src/core/specs-apply.ts +0 -483
  197. package/src/core/styles/palette.ts +0 -8
  198. package/src/core/templates/agents-template.ts +0 -459
  199. package/src/core/templates/claude-template.ts +0 -2
  200. package/src/core/templates/index.ts +0 -3
  201. package/src/core/templates/project-template.ts +0 -32
  202. package/src/core/validation/constants.ts +0 -48
  203. package/src/core/validation/types.ts +0 -19
  204. package/src/core/validation/validator.ts +0 -449
  205. package/src/core/view.ts +0 -219
  206. package/src/index.ts +0 -1
  207. package/src/utils/change-metadata.ts +0 -171
  208. package/src/utils/change-utils.ts +0 -131
  209. package/src/utils/file-system.ts +0 -252
  210. package/src/utils/index.ts +0 -12
  211. package/src/utils/interactive.ts +0 -29
  212. package/src/utils/item-discovery.ts +0 -66
  213. package/src/utils/match.ts +0 -26
  214. package/src/utils/shell-detection.ts +0 -62
  215. package/src/utils/task-progress.ts +0 -43
  216. package/tsconfig.json +0 -28
@@ -1,159 +0,0 @@
1
- # Project Plan: [Project Name]
2
-
3
- ## Project Overview
4
- [1-2 sentence summary of the project, its purpose, and target audience]
5
-
6
- ---
7
-
8
- ## MVP Scope
9
-
10
- ### In Scope
11
- - [ ] [Feature 1]
12
- - [ ] [Feature 2]
13
- - [ ] [Feature 3]
14
-
15
- ### Out of Scope (Deferred)
16
- - [Deferred item 1] -- [reason]
17
- - [Deferred item 2] -- [reason]
18
-
19
- ---
20
-
21
- ## User Roles
22
- | Role | Description | MVP? |
23
- |------|-------------|------|
24
- | [Role] | [What they do] | Yes/No |
25
-
26
- ---
27
-
28
- ## Core Features (Prioritized)
29
- | # | Feature | Priority | Complexity | Notes |
30
- |---|---------|----------|------------|-------|
31
- | 1 | [Feature] | Must-have | [Low/Med/High] | [Notes] |
32
- | 2 | [Feature] | Must-have | [Low/Med/High] | [Notes] |
33
- | 3 | [Feature] | Nice-to-have | [Low/Med/High] | [Notes] |
34
-
35
- ---
36
-
37
- ## Data Model Sketch
38
-
39
- ### Core Entities
40
- - **[Entity 1]**: [key fields]
41
- - **[Entity 2]**: [key fields]
42
- - **[Entity 3]**: [key fields]
43
-
44
- ### Key Relationships
45
- - [Entity A] has many [Entity B]
46
- - [Entity B] belongs to [Entity A]
47
-
48
- ---
49
-
50
- ## Integrations & Services
51
-
52
- | Capability | Needed? | Service/Tool | Notes |
53
- |------------|---------|--------------|-------|
54
- | Caching | Yes/No | [e.g., Redis] | [Notes] |
55
- | Queues / Background Jobs | Yes/No | [e.g., Redis Queue] | [Notes] |
56
- | Real-Time | Yes/No | [e.g., Pusher, WebSockets] | [Notes] |
57
- | Full-Text Search | Yes/No | [e.g., Meilisearch] | [Notes] |
58
- | File Storage | Yes/No | [e.g., S3] | [Notes] |
59
- | Email / SMS | Yes/No | [e.g., Resend, Twilio] | [Notes] |
60
- | Analytics | Yes/No | [e.g., PostHog, Plausible] | [Notes] |
61
- | Payments | Yes/No | [e.g., Stripe] | [Notes] |
62
- | Third-Party | Yes/No | [e.g., social login, maps] | [Notes] |
63
-
64
- ---
65
-
66
- ## Tech Stack
67
-
68
- | Layer | Choice | Rationale |
69
- |-------|--------|-----------|
70
- | Frontend | [e.g., Next.js] | [Why] |
71
- | Backend | [e.g., NestJS / Convex] | [Why] |
72
- | ORM / DB Layer | [e.g., Drizzle / Convex built-in] | [Why] |
73
- | Database | [e.g., PostgreSQL / Convex document DB] | [Why] |
74
- | Convex Hosting | [Cloud / Self-Hosted] | [Why -- only include if using Convex] |
75
- | Convex Storage Backend | [SQLite / PostgreSQL -- only include if self-hosted Convex] | [Why -- SQLite for dev/hobby; Postgres for production] |
76
- | Styling | [e.g., Tailwind CSS] | [Why] |
77
- | Web Server | [e.g., Caddy] | [Why -- include when Docker is used] |
78
- | Docker | Yes/No | [Why] |
79
-
80
- ---
81
-
82
- ## Deployment & Environments
83
-
84
- | Environment | Platform | URL (if known) | Notes |
85
- |-------------|----------|----------------|-------|
86
- | Development | [e.g., Local + Docker] | localhost | |
87
- | Staging | [e.g., Railway] | [TBD] | |
88
- | Production | [e.g., VPS / DigitalOcean] | [TBD] | |
89
-
90
- ---
91
-
92
- ## Non-Functional Requirements
93
-
94
- | Requirement | Detail |
95
- |-------------|--------|
96
- | Security | [e.g., standard auth, 2FA, GDPR] |
97
- | Performance | [e.g., <1k users expected] |
98
- | SEO | [e.g., required / not required] |
99
-
100
- ---
101
-
102
- ## Open Questions / Risks
103
- - [Open question or risk 1]
104
- - [Open question or risk 2]
105
-
106
- ---
107
-
108
- ## Recommended Next Steps
109
-
110
- ### 1. Scaffold the project
111
- ```bash
112
- # [Insert the exact setup command(s) for the chosen stack]
113
- # React (Vite): npm create vite@latest
114
- # Next.js: npx create-next-app@latest {project_name} --yes
115
- # React + Convex: npm create convex@latest
116
- # Express: npm install express --save
117
- # NestJS: npm i -g @nestjs/cli && nest new {project_name}
118
- # Laravel 12: composer create-project laravel/laravel:^12.0 {project_name}
119
- # Filament: composer require filament/filament && php artisan filament:install --panels
120
- ```
121
- > Replace the above with only the command(s) matching the selected stack.
122
-
123
- ### 2. Convex Self-Hosted Setup (only if self-hosted Convex was chosen)
124
- ```bash
125
- # 1. Copy environment files
126
- cp env.dev.example .env.dev
127
- # Edit .env.dev with your port and origin values
128
-
129
- # 2. Create initial .env.local
130
- echo 'VITE_CONVEX_URL=http://localhost:3220' > .env.local
131
-
132
- # 3. Start Convex backend and dashboard
133
- docker compose --env-file .env.dev up -d convex convex-dashboard
134
-
135
- # 4. Generate the self-hosted admin key from the running container
136
- docker compose --env-file .env.dev exec convex ./generate_admin_key.sh
137
- # Copy the printed convex-self-hosted|... value
138
-
139
- # 5. Append CLI credentials to .env.local
140
- # CONVEX_SELF_HOSTED_URL=http://localhost:3220
141
- # CONVEX_SELF_HOSTED_ADMIN_KEY=convex-self-hosted|...
142
-
143
- # 6. Deploy schema and functions
144
- npm run deploy:selfhosted
145
-
146
- # 7. (Optional) Seed data
147
- npx convex run seed:run '{}' --url http://localhost:3220 --admin-key "$CONVEX_SELF_HOSTED_ADMIN_KEY"
148
- ```
149
- > Notes:
150
- > - Do NOT use a random string as `CONVEX_SELF_HOSTED_ADMIN_KEY` -- always generate it from the container.
151
- > - Avoid reserved index names like `by_id` in your Convex schema -- rename them (e.g., `by_external_id`) before deploying.
152
- > - `VITE_CONVEX_URL` must be reachable by the browser; pass it as a Docker build argument when building the frontend image.
153
-
154
- ### 3. Further steps
155
- - [e.g., Define database schema based on data model above]
156
- - [e.g., Implement authentication and user management]
157
- - [e.g., Build core feature X]
158
- - [e.g., Set up CI/CD pipeline]
159
- - [e.g., Deploy staging environment]
@@ -1,115 +0,0 @@
1
- ---
2
- name: prompter-specs
3
- description: Generate structured implementation specs from casual change requests. Analyzes the codebase first, then produces a clear specification with problem statement, current state analysis, proposed solution, files to modify, implementation details, and visual representation. Use when the user describes a desired change, improvement, or reorganization — especially in casual or vague terms — and needs a structured plan before implementation. Triggers on requests like "can you organize...", "I want to change...", "restructure this...", "clean up the...", "make it better", "plan out how to...", or any request implying a codebase change where analysis should precede coding. Also use when the user explicitly asks for a "spec", "specs mode", "implementation plan", or "analysis before coding". Even when the user's request sounds simple, if it involves modifying multiple files or making structural decisions, produce a spec first.
4
- ---
5
-
6
- # Prompter Specs
7
-
8
- Generate structured implementation specifications from casual user requests. Analyze first, spec second, implement only after approval.
9
-
10
- ## Core Principle
11
-
12
- Do not jump to coding. When this skill activates, the job is to **understand the problem, analyze the current state, and produce a clear spec**. The user wants to see what will change and why before any code is written.
13
-
14
- ## Workflow
15
-
16
- ### 1. Understand the Request
17
-
18
- Parse what the user is asking for, even if vague or casual. Phrases like "it's too long", "make it better", "organize this", "clean it up" all carry intent — identify the core problem behind them.
19
-
20
- If the request is truly ambiguous (multiple valid interpretations), ask one focused clarifying question. Otherwise, proceed with analysis.
21
-
22
- ### 2. Explore the Codebase
23
-
24
- Read the relevant files to understand the current state. Use Glob, Grep, and Read to build a complete picture. The spec must be grounded in what actually exists — never guess at file contents, counts, or structures.
25
-
26
- Look for:
27
- - The files and code directly related to the request
28
- - Existing patterns and conventions the project uses
29
- - Related systems that might be affected
30
-
31
- ### 3. Analyze and Decide
32
-
33
- Formulate a solution based on what you found. When the user gives open-ended direction ("you decide", "figure it out", "whatever makes sense"), commit to a specific, well-reasoned approach. Present one clear recommendation — not a menu of options.
34
-
35
- If there's a genuine trade-off worth flagging, mention it briefly in Implementation Details, but still recommend one path.
36
-
37
- ### 4. Write the Spec
38
-
39
- Output a structured specification using the format below. Adapt section titles and depth to fit the change — a small reorganization needs less detail than an architecture shift.
40
-
41
- ### 5. Wait for Approval
42
-
43
- After presenting the spec, ask if the user wants to:
44
- - Proceed with implementation
45
- - Adjust the proposal
46
- - Discard and try a different approach
47
-
48
- Do not start coding until the user confirms.
49
-
50
- ## Spec Format
51
-
52
- ```markdown
53
- ## Problem
54
- [1-3 sentences describing what's wrong or what could be better.
55
- Be specific — reference actual counts, names, or metrics from the codebase.]
56
-
57
- ## Current [Descriptive Title]
58
- [Describe what exists right now. List items, show structure, reference actual
59
- file contents. This section proves you've actually read the code.
60
- Use a descriptive title that fits the context, e.g.:
61
- - "Current Menu Items (flat list under Master Data)"
62
- - "Current API Endpoints"
63
- - "Current File Structure"]
64
-
65
- ## Proposed Solution: [Solution Title]
66
- [Brief description of the approach — the "what" and "why" at a high level.]
67
-
68
- ### [Detail Section — titled to fit the change]
69
- [The detailed proposal. Use nested lists, tables, diagrams, or whatever
70
- format best communicates the new structure. Be specific — show exactly
71
- what the result looks like, not vague descriptions.]
72
-
73
- ### Files to Modify
74
- [For each file that needs changes:]
75
- 1. **`path/to/file`** — [What changes and why. Be specific about the
76
- nature of the change, not just "update this file".]
77
-
78
- ### Implementation Details
79
- [Technical specifics:]
80
- - What new fields, properties, or patterns to introduce
81
- - How existing code adapts to the change
82
- - What stays unchanged (helps the user assess risk and scope)
83
- - Migration or backwards-compatibility notes if applicable
84
- - Performance or security considerations if relevant
85
-
86
- ### Visual Result
87
- [Where it helps, show a text-based visualization of the end result.
88
- Skip this section if the change doesn't benefit from visual representation.
89
- Good candidates: UI layouts, directory trees, data flows, table structures,
90
- menu hierarchies, architecture diagrams.]
91
- ```
92
-
93
- ## Guidelines
94
-
95
- ### Match the Project's World
96
-
97
- Read the project before writing the spec. Use its naming conventions, file organization patterns, and existing abstractions. Reference what the codebase already supports ("The sidebar already supports nested items — we extend this pattern") rather than proposing alien patterns.
98
-
99
- ### Ground Every Claim in Code
100
-
101
- The "Current State" section must contain real information from the codebase. If the user says "the menu is too long" — count the items. If they say "the API is messy" — list the actual endpoints. If they say "the tests are slow" — check what test framework and patterns exist.
102
-
103
- ### Scale the Spec to the Change
104
-
105
- - **Small changes** (rename, fix layout, reorder items): Shorter spec, skip Visual Result if not needed
106
- - **Medium changes** (reorganize UI, refactor a module, add a feature): Full spec with all sections
107
- - **Large changes** (new architecture, multi-service change): Consider splitting into phases, flag dependencies between them
108
-
109
- ### Call Out What Does NOT Change
110
-
111
- Explicitly state what's unaffected. "No route or controller changes needed — purely presentation layer" or "Database schema unchanged" helps the user assess blast radius and risk.
112
-
113
- ### Stay Tech-Stack Agnostic
114
-
115
- This workflow applies to any project. Whether it's Laravel, React, Django, Rails, Go, Swift, or a CLI tool — adapt the spec's language and file references to match. There's no assumption about framework or language.
@@ -1,166 +0,0 @@
1
- ---
2
- name: prompter-workflow
3
- description: Guide spec-driven development through Prompter's three-stage workflow — creating change proposals with spec deltas, implementing approved changes, and archiving completed work. Use this skill whenever the user mentions proposals, specs, changes, plans, or asks to create/apply/archive a Prompter change. Also trigger when the user wants to add features, make breaking changes, update architecture, or plan implementation work that should go through a formal proposal process.
4
- ---
5
-
6
- # Prompter Workflow
7
-
8
- Drive spec-driven development through three stages: **Propose**, **Apply**, and **Archive**. Each stage has guardrails to keep changes minimal, scoped, and traceable.
9
-
10
- ## Before You Begin
11
-
12
- 1. Search existing specs under `prompter/specs/` and active changes under `prompter/changes/` to understand current state and avoid conflicts.
13
- 2. Search existing requirements with `rg -n "Requirement:|Scenario:" prompter/specs` before writing new ones.
14
-
15
- ## Detecting Which Stage
16
-
17
- Determine which stage the user needs based on their request:
18
-
19
- | Signal | Stage |
20
- |--------|-------|
21
- | "create a proposal", "plan a change", "add a feature", "I want to spec..." | **Propose** |
22
- | "implement", "apply", "build this", references an existing change ID + wants code | **Apply** |
23
- | "archive", "mark as done", "move to archive", references a completed change | **Archive** |
24
-
25
- If unclear, default to **Propose** — it's always safer to plan first.
26
-
27
- ---
28
-
29
- ## Stage 1: Propose
30
-
31
- Create a change proposal with spec deltas. No code gets written here — only design documents.
32
-
33
- ### Guardrails
34
-
35
- - Favor straightforward, minimal implementations first.
36
- - Keep changes tightly scoped to the requested outcome.
37
- - Identify vague or ambiguous details and ask follow-up questions before editing files.
38
- - Do not write any code during this stage.
39
-
40
- ### Steps
41
-
42
- 1. **Ground the proposal in current state.**
43
- - List `prompter/changes/` to see active changes (check for conflicts).
44
- - List `prompter/specs/` to see existing capabilities.
45
- - Inspect related code or docs to understand current behavior.
46
- - Note any gaps that require clarification from the user.
47
-
48
- 2. **Choose a change ID and scaffold.**
49
- - Pick a unique, verb-led, kebab-case ID (e.g., `add-two-factor-auth`, `update-payment-flow`, `remove-legacy-api`).
50
- - Create the directory structure:
51
- ```
52
- prompter/changes/<change-id>/
53
- ├── proposal.md
54
- ├── tasks.md
55
- ├── design.md (only if needed — see criteria below)
56
- └── specs/
57
- └── <capability>/
58
- └── spec.md
59
- ```
60
-
61
- 3. **Map the change into capabilities.**
62
- - Break multi-scope efforts into distinct spec deltas with clear relationships.
63
- - Prefer modifying existing specs over creating duplicates.
64
- - One folder per affected capability under `specs/`.
65
-
66
- 4. **Write design.md (only when needed).**
67
- Create `design.md` if the solution spans multiple systems, introduces new patterns, or demands trade-off discussion. Include: Context, Goals/Non-Goals, Decisions, Risks/Trade-offs, Migration Plan, Open Questions.
68
-
69
- 5. **Draft spec deltas.**
70
- - Use `## ADDED|MODIFIED|REMOVED|RENAMED Requirements` headers.
71
- - Include at least one `#### Scenario:` per requirement.
72
- - Use SHALL/MUST for normative requirements.
73
- - Cross-reference related capabilities when relevant.
74
- - For MODIFIED requirements: copy the full existing requirement, then edit. Partial deltas lose detail at archive time.
75
-
76
- 6. **Draft tasks.md.**
77
- - Ordered list of small, verifiable work items.
78
- - Each task should deliver user-visible progress.
79
- - Include validation steps (tests, tooling).
80
- - Highlight dependencies or parallelizable work.
81
-
82
- ### Spec Format Reference
83
-
84
- ```markdown
85
- ## ADDED Requirements
86
- ### Requirement: Feature Name
87
- The system SHALL provide [capability].
88
-
89
- #### Scenario: Success case
90
- - **WHEN** user performs action
91
- - **THEN** expected result occurs
92
-
93
- ## MODIFIED Requirements
94
- ### Requirement: Existing Feature (full copy, then edit)
95
- ...
96
-
97
- ## REMOVED Requirements
98
- ### Requirement: Old Feature
99
- **Reason**: [Why removing]
100
- **Migration**: [How to handle]
101
- ```
102
-
103
- ---
104
-
105
- ## Stage 2: Apply
106
-
107
- Implement an approved change proposal. Work through tasks sequentially, keeping edits minimal.
108
-
109
- ### Guardrails
110
-
111
- - Do not start implementation until the proposal is reviewed and approved.
112
- - Keep changes tightly scoped to what the proposal specifies.
113
- - Favor straightforward, minimal implementations.
114
-
115
- ### Steps
116
-
117
- 1. **Read the proposal.**
118
- - Read `changes/<id>/proposal.md` to understand scope and motivation.
119
- - Read `changes/<id>/design.md` (if present) for technical decisions.
120
- - Read `changes/<id>/tasks.md` for the implementation checklist.
121
-
122
- 2. **Implement tasks sequentially.**
123
- - Work through each task in order.
124
- - Keep edits minimal and focused on the requested change.
125
-
126
- 3. **Confirm completion.**
127
- - Verify every item in `tasks.md` is actually finished before updating statuses.
128
- - Run tests and validation as specified in the tasks.
129
-
130
- 4. **Update the checklist.**
131
- - Mark each task `- [x]` only after all work is done.
132
- - Ensure the checklist reflects reality.
133
-
134
- ---
135
-
136
- ## Stage 3: Archive
137
-
138
- Move a completed change to the archive and update specs.
139
-
140
- ### Steps
141
-
142
- 1. **Determine the change ID.**
143
- - If the user specified a change ID, use it (trim whitespace).
144
- - If referenced loosely (by title or summary), list `prompter/changes/` to find candidates and confirm with the user.
145
-
146
- 2. **Verify the change exists and is ready.**
147
- - Check `prompter/changes/<id>/` exists and is not already under `prompter/changes/archive/`.
148
-
149
- 3. **Move the change to archive.**
150
- - Move `prompter/changes/<id>/` to `prompter/changes/archive/YYYY-MM-DD-<id>/` (use today's date).
151
- - Apply the spec deltas: for each `changes/<id>/specs/<capability>/spec.md`, merge the ADDED/MODIFIED/REMOVED requirements into the corresponding `prompter/specs/<capability>/spec.md`.
152
- - Skip spec merging only for tooling-only changes that don't affect specifications.
153
-
154
- 4. **Confirm archive landed.**
155
- - Verify the directory moved to `prompter/changes/archive/`.
156
- - Verify target specs were updated correctly.
157
-
158
- ---
159
-
160
- ## Troubleshooting
161
-
162
- | Error | Fix |
163
- |-------|-----|
164
- | "Change must have at least one delta" | Check `changes/<id>/specs/` has `.md` files with `## ADDED\|MODIFIED\|REMOVED Requirements` headers |
165
- | "Requirement must have at least one scenario" | Use `#### Scenario:` format (4 hashtags, not bullets or bold) |
166
- | Silent scenario parsing failures | Exact format required: `#### Scenario: Name` |
@@ -1,89 +0,0 @@
1
- {
2
- "skill_name": "prompter-workflow",
3
- "evals": [
4
- {
5
- "id": 1,
6
- "prompt": "I want to add a webhook notification system so that when a user completes an order, we fire a POST to their configured endpoint. Can you create a proposal for this?",
7
- "expected_output": "Creates a change proposal under prompter/changes/add-webhook-notifications/ with proposal.md, tasks.md, and at least one spec delta under specs/ with ADDED Requirements and Scenario blocks. Runs prompter validate with --strict.",
8
- "files": [],
9
- "assertions": [
10
- {
11
- "name": "Creates proposal.md with Why section",
12
- "description": "Output or created files include a proposal.md that contains a ## Why section explaining the motivation"
13
- },
14
- {
15
- "name": "Creates tasks.md",
16
- "description": "Output or created files include a tasks.md with a checklist of implementation tasks using - [ ] format"
17
- },
18
- {
19
- "name": "Creates spec delta with ADDED Requirements",
20
- "description": "A spec delta file under specs/ contains '## ADDED Requirements' header"
21
- },
22
- {
23
- "name": "Spec delta has Scenario block",
24
- "description": "The spec delta contains at least one '#### Scenario:' block (4 hashtags, not bold or bullet)"
25
- },
26
- {
27
- "name": "Does not write implementation code",
28
- "description": "The output does not contain actual code implementation (no function definitions, no API endpoint implementations) — only design documents"
29
- },
30
- {
31
- "name": "Mentions running prompter validate",
32
- "description": "The output mentions running prompter validate with --strict flag to verify the proposal"
33
- }
34
- ]
35
- },
36
- {
37
- "id": 2,
38
- "prompt": "The add-webhook-notifications proposal has been approved. Please implement it now.",
39
- "expected_output": "Reads the proposal.md, design.md (if any), and tasks.md from the change directory. Works through tasks sequentially. Updates tasks.md with checkmarks when done.",
40
- "files": [],
41
- "assertions": [
42
- {
43
- "name": "Reads proposal.md before implementing",
44
- "description": "Output explicitly mentions reading or referencing proposal.md before starting implementation"
45
- },
46
- {
47
- "name": "Reads tasks.md",
48
- "description": "Output explicitly mentions reading or referencing tasks.md"
49
- },
50
- {
51
- "name": "Works through tasks sequentially",
52
- "description": "Output describes completing tasks in order, not all at once or in arbitrary order"
53
- },
54
- {
55
- "name": "Updates task checklist",
56
- "description": "Output mentions updating tasks.md checkboxes (- [x]) after completion"
57
- },
58
- {
59
- "name": "Does not skip approval gate",
60
- "description": "Output does not implement before acknowledging the proposal was approved — respects the approval gate"
61
- }
62
- ]
63
- },
64
- {
65
- "id": 3,
66
- "prompt": "We shipped the webhook feature last week. Can you archive that change?",
67
- "expected_output": "Runs prompter list to identify the change, confirms the ID with the user or uses it directly, runs prompter archive <id> --yes, then validates with prompter validate --strict.",
68
- "files": [],
69
- "assertions": [
70
- {
71
- "name": "Mentions running prompter list to identify change",
72
- "description": "Output mentions running `prompter list` or `prompter show` to verify the change ID before archiving"
73
- },
74
- {
75
- "name": "Uses correct archive command with --yes",
76
- "description": "Output includes `prompter archive add-webhook-notifications --yes` (or similar with the correct change ID and --yes flag)"
77
- },
78
- {
79
- "name": "Runs post-archive validation",
80
- "description": "Output mentions running `prompter validate --strict` after archiving to confirm specs are consistent"
81
- },
82
- {
83
- "name": "Does not archive blindly without ID check",
84
- "description": "Output shows the agent verifying or confirming the change ID rather than immediately running the archive command"
85
- }
86
- ]
87
- }
88
- ]
89
- }
@@ -1,28 +0,0 @@
1
- ---
2
- name: proposal
3
- description: Create a new change proposal with spec deltas
4
- ---
5
-
6
- <!-- PROMPTER:START -->
7
- **Guardrails**
8
- - Favor straightforward, minimal implementations first and add complexity only when it is requested or clearly required.
9
- - Keep changes tightly scoped to the requested outcome.
10
- - Refer to `prompter/AGENTS.md` (located inside the `prompter/` directory—run `ls prompter` if you don't see it) if you need additional Prompter conventions or clarifications.
11
- - Identify any vague or ambiguous details and ask the necessary follow-up questions before editing files.
12
- - Do not write any code during the proposal stage. Only create design documents (proposal.md, tasks.md, design.md, and spec deltas). Implementation happens in the apply stage after approval.
13
-
14
- **Steps**
15
- 1. Review `prompter/project.md`, run `prompter list` and `prompter list --specs`, and inspect related code or docs (e.g., via `rg`/`ls`) to ground the proposal in current behaviour; note any gaps that require clarification.
16
- 2. Choose a unique verb-led `change-id` and scaffold `proposal.md`, `tasks.md`, and `design.md` (when needed) under `prompter/changes/<id>/`.
17
- 3. Map the change into concrete capabilities or requirements, breaking multi-scope efforts into distinct spec deltas with clear relationships and sequencing.
18
- 4. Capture architectural reasoning in `design.md` when the solution spans multiple systems, introduces new patterns, or demands trade-off discussion before committing to specs.
19
- 5. Draft spec deltas in `changes/<id>/specs/<capability>/spec.md` (one folder per capability) using `## ADDED|MODIFIED|REMOVED Requirements` with at least one `#### Scenario:` per requirement and cross-reference related capabilities when relevant.
20
- 6. Draft `tasks.md` as an ordered list of small, verifiable work items that deliver user-visible progress, include validation (tests, tooling), and highlight dependencies or parallelizable work.
21
- 7. Validate with `prompter validate <id> --strict` and resolve every issue before sharing the proposal.
22
-
23
- **Reference**
24
- - Use `prompter show <id> --json --deltas-only` or `prompter show <spec> --type spec` to inspect details when validation fails.
25
- - Search existing requirements with `rg -n "Requirement:|Scenario:" prompter/specs` before writing new ones.
26
- - Explore the codebase with `rg <keyword>`, `ls`, or direct file reads so proposals align with current implementation realities.
27
- <!-- PROMPTER:END -->
28
-