@dedesfr/prompter 0.8.7 → 0.8.9
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/CHANGELOG.md +43 -0
- package/dist/cli/index.js +1 -1
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +57 -5
- package/dist/commands/init.js.map +1 -1
- package/package.json +1 -1
- package/skills/design-md/README.md +34 -0
- package/skills/design-md/SKILL.md +172 -0
- package/skills/design-md/examples/DESIGN.md +154 -0
- package/skills/doc-builder/SKILL.md +115 -0
- package/skills/doc-builder/references/ui-patterns.md +394 -0
- package/skills/document-translator/SKILL.md +58 -0
- package/skills/enhance-prompt/README.md +34 -0
- package/skills/enhance-prompt/SKILL.md +204 -0
- package/skills/enhance-prompt/references/KEYWORDS.md +114 -0
- package/skills/feature-planner/SKILL.md +305 -0
- package/skills/feature-planner/assets/implementation-plan-template.md +85 -0
- package/skills/gamma-builder/SKILL.md +134 -0
- package/skills/ui-ux-pro/SKILL.md +224 -233
- package/src/cli/index.ts +1 -1
- package/src/commands/init.ts +63 -5
- package/docs/product-spec.md +0 -151
- package/docs/tasks.md +0 -3
- package/skills/skill-creator/LICENSE.txt +0 -202
- package/skills/skill-creator/SKILL.md +0 -485
- package/skills/skill-creator/agents/analyzer.md +0 -274
- package/skills/skill-creator/agents/comparator.md +0 -202
- package/skills/skill-creator/agents/grader.md +0 -223
- package/skills/skill-creator/assets/eval_review.html +0 -146
- package/skills/skill-creator/eval-viewer/generate_review.py +0 -471
- package/skills/skill-creator/eval-viewer/viewer.html +0 -1325
- package/skills/skill-creator/references/schemas.md +0 -430
- package/skills/skill-creator/scripts/__init__.py +0 -0
- package/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
- package/skills/skill-creator/scripts/generate_report.py +0 -326
- package/skills/skill-creator/scripts/improve_description.py +0 -247
- package/skills/skill-creator/scripts/package_skill.py +0 -136
- package/skills/skill-creator/scripts/quick_validate.py +0 -103
- package/skills/skill-creator/scripts/run_eval.py +0 -310
- package/skills/skill-creator/scripts/run_loop.py +0 -328
- package/skills/skill-creator/scripts/utils.py +0 -47
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: feature-planner
|
|
3
|
+
description: Plan feature development on existing projects. Interview users about what they want to build, analyze the codebase to understand tech stack, patterns, and affected areas, then produce a structured implementation plan with phased tasks. Optionally scaffolds a Prompter change proposal. Use when a user wants to add a feature, make a change, or plan development work on a project that already exists.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Feature Developer
|
|
7
|
+
|
|
8
|
+
Interview the user about what they want to build, analyze the existing codebase, then produce a phased implementation plan with concrete tasks and file references.
|
|
9
|
+
|
|
10
|
+
## Quick Start
|
|
11
|
+
|
|
12
|
+
1. **DESCRIBE** -- Ask what the user wants to build and why
|
|
13
|
+
2. **ANALYZE** -- Scan the codebase: structure, tech stack, patterns, existing specs
|
|
14
|
+
3. **SCOPE** -- Present what's in/out of scope, identify affected files
|
|
15
|
+
4. **PLAN** -- Break down into phased implementation tasks
|
|
16
|
+
5. **REVIEW** -- Present the plan and iterate until approved
|
|
17
|
+
6. **PROPOSAL** -- Optionally create a Prompter change proposal
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Before You Begin (REQUIRED)
|
|
22
|
+
|
|
23
|
+
Before starting the interview:
|
|
24
|
+
|
|
25
|
+
1. **Read `AGENTS.md`** at the project root (if it exists) to understand the tech stack, conventions, and architecture.
|
|
26
|
+
2. **Read `prompter/project.md`** (if it exists) to understand project conventions.
|
|
27
|
+
3. **Scan the project structure** using Glob to understand the directory layout and key files.
|
|
28
|
+
|
|
29
|
+
Store what you learn -- you'll reference it when identifying affected files and patterns.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Interactive Terminal Tool (REQUIRED)
|
|
34
|
+
|
|
35
|
+
Use the `AskUserQuestion` tool for **every question** in the interview. This renders an interactive UI in the terminal.
|
|
36
|
+
|
|
37
|
+
### How to Use AskUserQuestion
|
|
38
|
+
|
|
39
|
+
- **Single-choice questions**: Set `multiSelect: false`. Use for yes/no, pick-one decisions.
|
|
40
|
+
- **Multi-choice questions**: Set `multiSelect: true`. Use for checklists.
|
|
41
|
+
- **Free-text input**: When you need the user to describe something open-ended (like the feature itself), ask as a plain message and wait for their response. Only use `AskUserQuestion` for structured choices.
|
|
42
|
+
- **Keep options concise**: Labels should be 1-5 words. Add detail in the `description` field.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Core Rules
|
|
47
|
+
|
|
48
|
+
- Use `AskUserQuestion` for every structured question -- never ask choice questions as plain text.
|
|
49
|
+
- Ask one question or one small grouped set at a time. Never overwhelm.
|
|
50
|
+
- After every answer, acknowledge what you understood before moving on.
|
|
51
|
+
- Ground every suggestion in what you observed in the codebase -- don't guess patterns.
|
|
52
|
+
- If unsure about something, look at the code before asking the user.
|
|
53
|
+
- Keep the interview short -- 3 to 5 questions max before producing the plan.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Step 1: Feature Description (REQUIRED)
|
|
58
|
+
|
|
59
|
+
Open with:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
What feature or change do you want to build? Tell me:
|
|
63
|
+
|
|
64
|
+
1. What it does (the user-visible behavior or system change)
|
|
65
|
+
2. Why you need it (the problem it solves or value it adds)
|
|
66
|
+
3. Any constraints or preferences (e.g., "must use existing auth system", "keep it simple")
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Wait for the user's response. Summarize what you understood in 2-3 sentences.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Step 2: Codebase Analysis (REQUIRED)
|
|
74
|
+
|
|
75
|
+
After understanding the feature, **silently analyze the codebase**. Do NOT ask the user about the tech stack -- discover it yourself.
|
|
76
|
+
|
|
77
|
+
### What to Analyze
|
|
78
|
+
|
|
79
|
+
1. **Project structure** -- Use Glob to map the directory layout (e.g., `src/**`, `app/**`, `resources/**`)
|
|
80
|
+
2. **Tech stack** -- Identify framework, language, database, styling from config files:
|
|
81
|
+
- `package.json`, `composer.json`, `Cargo.toml`, `go.mod`, `requirements.txt`
|
|
82
|
+
- Framework configs: `next.config.*`, `vite.config.*`, `artisan`, `convex/`
|
|
83
|
+
- Database: migrations folder, schema files, ORM config
|
|
84
|
+
3. **Existing patterns** -- Read 2-3 files similar to what you'll need to create/modify:
|
|
85
|
+
- If adding an API endpoint, read an existing endpoint
|
|
86
|
+
- If adding a UI component, read an existing component
|
|
87
|
+
- If adding a model, read an existing model
|
|
88
|
+
4. **Related code** -- Use Grep to find code related to the feature (e.g., if adding notifications, search for existing notification code)
|
|
89
|
+
5. **Existing specs** -- Check `prompter/specs/` for relevant capability specs
|
|
90
|
+
|
|
91
|
+
### Present Findings
|
|
92
|
+
|
|
93
|
+
After analysis, present a brief summary:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
Here's what I found in your codebase:
|
|
97
|
+
|
|
98
|
+
**Stack**: [e.g., Laravel 12 + Filament + PostgreSQL + Docker]
|
|
99
|
+
**Structure**: [e.g., Standard Laravel with domain-driven modules under app/Domains/]
|
|
100
|
+
**Relevant patterns**:
|
|
101
|
+
- [e.g., Controllers follow single-action pattern (app/Http/Controllers/)]
|
|
102
|
+
- [e.g., All models use UUIDs as primary keys]
|
|
103
|
+
- [e.g., Tests use Pest with factories]
|
|
104
|
+
|
|
105
|
+
**Related existing code**:
|
|
106
|
+
- [e.g., Similar notification system exists at app/Notifications/]
|
|
107
|
+
- [e.g., No existing code for webhooks -- this is net new]
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Then ask using `AskUserQuestion`:
|
|
111
|
+
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"questions": [
|
|
115
|
+
{
|
|
116
|
+
"question": "Does this look right? Anything I missed about how your project works?",
|
|
117
|
+
"header": "Codebase Analysis",
|
|
118
|
+
"multiSelect": false,
|
|
119
|
+
"options": [
|
|
120
|
+
{ "label": "Looks correct", "description": "Move on to scoping" },
|
|
121
|
+
{ "label": "Need to correct something", "description": "I'll clarify what's different" }
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
If the user corrects something, update your understanding and move on.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Step 3: Scope & Affected Areas
|
|
133
|
+
|
|
134
|
+
Based on the feature description and codebase analysis, present the scope:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
Here's what I'd include for this feature:
|
|
138
|
+
|
|
139
|
+
**In scope:**
|
|
140
|
+
- [change 1]
|
|
141
|
+
- [change 2]
|
|
142
|
+
- [change 3]
|
|
143
|
+
|
|
144
|
+
**Out of scope (can do later):**
|
|
145
|
+
- [deferred item 1] -- [reason]
|
|
146
|
+
|
|
147
|
+
**Files that will be affected:**
|
|
148
|
+
- `path/to/file.ext` -- [what changes: new / modify / delete]
|
|
149
|
+
- `path/to/file.ext` -- [what changes]
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Then ask:
|
|
153
|
+
|
|
154
|
+
```json
|
|
155
|
+
{
|
|
156
|
+
"questions": [
|
|
157
|
+
{
|
|
158
|
+
"question": "Does this scope match what you had in mind?",
|
|
159
|
+
"header": "Feature Scope",
|
|
160
|
+
"multiSelect": false,
|
|
161
|
+
"options": [
|
|
162
|
+
{ "label": "Looks good", "description": "Proceed to implementation plan" },
|
|
163
|
+
{ "label": "Too much", "description": "I want to trim the scope" },
|
|
164
|
+
{ "label": "Missing something", "description": "I'll tell you what to add" }
|
|
165
|
+
]
|
|
166
|
+
}
|
|
167
|
+
]
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Iterate until the user confirms the scope.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Step 4: Implementation Plan (REQUIRED)
|
|
176
|
+
|
|
177
|
+
Produce the implementation plan using the template in `assets/implementation-plan-template.md`.
|
|
178
|
+
|
|
179
|
+
### Planning Rules
|
|
180
|
+
|
|
181
|
+
- **Phase tasks logically**: database/schema first, then backend logic, then frontend, then tests.
|
|
182
|
+
- **Reference specific files**: Every task should mention the file path where the work happens. Use existing file paths for modifications; propose paths that follow existing conventions for new files.
|
|
183
|
+
- **Follow existing patterns**: If the project uses a specific pattern (e.g., repository pattern, single-action controllers), your plan must follow it.
|
|
184
|
+
- **Be concrete**: "Create UserNotification model with `user_id`, `type`, `message`, `read_at` columns" is better than "Create notification model".
|
|
185
|
+
- **Include test tasks**: Always include at least one testing phase.
|
|
186
|
+
- **Keep it achievable**: Aim for a plan that can be completed in a single session. If the feature is large, suggest splitting it and plan only the first part.
|
|
187
|
+
|
|
188
|
+
### Present the Plan
|
|
189
|
+
|
|
190
|
+
Output the filled-in implementation plan template, then ask:
|
|
191
|
+
|
|
192
|
+
```json
|
|
193
|
+
{
|
|
194
|
+
"questions": [
|
|
195
|
+
{
|
|
196
|
+
"question": "Does this implementation plan look correct?",
|
|
197
|
+
"header": "Plan Review",
|
|
198
|
+
"multiSelect": false,
|
|
199
|
+
"options": [
|
|
200
|
+
{ "label": "Approved", "description": "Save the plan and optionally create a proposal" },
|
|
201
|
+
{ "label": "Needs changes", "description": "I'll tell you what to adjust" }
|
|
202
|
+
]
|
|
203
|
+
}
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Iterate if the user requests changes.
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Step 5: Save & Next Steps (REQUIRED)
|
|
213
|
+
|
|
214
|
+
Once approved, save the plan based on what's available in the project.
|
|
215
|
+
|
|
216
|
+
### If Prompter is installed
|
|
217
|
+
|
|
218
|
+
Check whether `prompter/core/proposal.md` exists using Glob.
|
|
219
|
+
|
|
220
|
+
If it exists, ask:
|
|
221
|
+
|
|
222
|
+
```json
|
|
223
|
+
{
|
|
224
|
+
"questions": [
|
|
225
|
+
{
|
|
226
|
+
"question": "How would you like to proceed?",
|
|
227
|
+
"header": "Next Steps",
|
|
228
|
+
"multiSelect": false,
|
|
229
|
+
"options": [
|
|
230
|
+
{ "label": "Create proposal", "description": "Scaffold a Prompter change proposal from this plan" },
|
|
231
|
+
{ "label": "Start building", "description": "Jump straight into implementation using this plan" },
|
|
232
|
+
{ "label": "Save plan only", "description": "Save the plan to a file for later" }
|
|
233
|
+
]
|
|
234
|
+
}
|
|
235
|
+
]
|
|
236
|
+
}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**If "Create proposal"**: Read `prompter/core/proposal.md` and `prompter/AGENTS.md`, then follow their instructions to scaffold a full change proposal. Use the implementation plan as context to derive:
|
|
240
|
+
- `change-id` (verb-led, kebab-case)
|
|
241
|
+
- `proposal.md` (why, what changes, impact)
|
|
242
|
+
- `tasks.md` (from the implementation phases)
|
|
243
|
+
- `design.md` (only if needed per Prompter criteria)
|
|
244
|
+
- Spec deltas under `specs/[capability]/spec.md`
|
|
245
|
+
|
|
246
|
+
After scaffolding, run `prompter validate <change-id> --strict --no-interactive` and fix any issues.
|
|
247
|
+
|
|
248
|
+
**If "Start building"**: Begin implementing the tasks from the plan sequentially. Read the plan as your checklist and complete each task in order.
|
|
249
|
+
|
|
250
|
+
**If "Save plan only"**: Write the plan to `implementation-plan.md` in the project root.
|
|
251
|
+
|
|
252
|
+
### If Prompter is NOT installed
|
|
253
|
+
|
|
254
|
+
Ask:
|
|
255
|
+
|
|
256
|
+
```json
|
|
257
|
+
{
|
|
258
|
+
"questions": [
|
|
259
|
+
{
|
|
260
|
+
"question": "What would you like to do next?",
|
|
261
|
+
"header": "Next Steps",
|
|
262
|
+
"multiSelect": false,
|
|
263
|
+
"options": [
|
|
264
|
+
{ "label": "Start building", "description": "Begin implementing the tasks now" },
|
|
265
|
+
{ "label": "Save plan only", "description": "Save the plan to a file for later" }
|
|
266
|
+
]
|
|
267
|
+
}
|
|
268
|
+
]
|
|
269
|
+
}
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**If "Start building"**: Begin implementing tasks sequentially.
|
|
273
|
+
|
|
274
|
+
**If "Save plan only"**: Write the plan to `implementation-plan.md` in the project root.
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Conversation Tips
|
|
279
|
+
|
|
280
|
+
### Handling Large Features
|
|
281
|
+
- Suggest splitting into multiple increments.
|
|
282
|
+
- Plan only the first increment in detail.
|
|
283
|
+
- Note follow-up work in the "Out of scope" section.
|
|
284
|
+
- Use: "This is a big feature. I'd suggest we tackle [core part] first and add [extras] after."
|
|
285
|
+
|
|
286
|
+
### Handling Vague Requests
|
|
287
|
+
- Look at the codebase first to infer what the user might mean.
|
|
288
|
+
- If still unclear after codebase analysis, ask ONE focused clarifying question.
|
|
289
|
+
- Never ask more than 2 clarifying questions before producing a draft plan -- it's easier to iterate on a concrete plan than to keep asking questions.
|
|
290
|
+
|
|
291
|
+
### Handling Technical Users
|
|
292
|
+
- Skip obvious explanations.
|
|
293
|
+
- Focus on file paths, patterns, and concrete decisions.
|
|
294
|
+
- Be direct about tradeoffs.
|
|
295
|
+
|
|
296
|
+
### Handling Unfamiliar Codebases
|
|
297
|
+
- Spend more time in Step 2 (analysis).
|
|
298
|
+
- Read more example files to understand patterns.
|
|
299
|
+
- Be explicit about assumptions: "I'm assuming X based on what I see in Y -- correct me if wrong."
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## Resources
|
|
304
|
+
|
|
305
|
+
- **Implementation plan template**: [implementation-plan-template.md](assets/implementation-plan-template.md) -- Structured output format for the plan
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Implementation Plan: [Feature Name]
|
|
2
|
+
|
|
3
|
+
## Feature Overview
|
|
4
|
+
[1-2 sentence summary of what is being built and why]
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Scope
|
|
9
|
+
|
|
10
|
+
### In Scope
|
|
11
|
+
- [ ] [Change 1]
|
|
12
|
+
- [ ] [Change 2]
|
|
13
|
+
- [ ] [Change 3]
|
|
14
|
+
|
|
15
|
+
### Out of Scope
|
|
16
|
+
- [Deferred item 1] -- [reason]
|
|
17
|
+
- [Deferred item 2] -- [reason]
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Codebase Analysis
|
|
22
|
+
|
|
23
|
+
### Tech Stack Detected
|
|
24
|
+
| Layer | Technology |
|
|
25
|
+
|-------|-----------|
|
|
26
|
+
| Frontend | [e.g., Next.js, React] |
|
|
27
|
+
| Backend | [e.g., Laravel, Express] |
|
|
28
|
+
| Database | [e.g., PostgreSQL, MySQL] |
|
|
29
|
+
| Other | [e.g., Redis, Docker] |
|
|
30
|
+
|
|
31
|
+
### Affected Files & Modules
|
|
32
|
+
| File / Module | Change Type | Description |
|
|
33
|
+
|---------------|-------------|-------------|
|
|
34
|
+
| [path/to/file] | New / Modify / Delete | [What changes] |
|
|
35
|
+
|
|
36
|
+
### Existing Patterns to Follow
|
|
37
|
+
- [Pattern 1 observed in codebase -- e.g., "Controllers use single-action pattern"]
|
|
38
|
+
- [Pattern 2 -- e.g., "All API responses use ApiResource wrapper"]
|
|
39
|
+
- [Pattern 3 -- e.g., "Tests use factories with specific naming convention"]
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Data Model Changes
|
|
44
|
+
> Skip this section if no database changes are needed.
|
|
45
|
+
|
|
46
|
+
### New Tables / Collections
|
|
47
|
+
- **[table_name]**: [key columns/fields]
|
|
48
|
+
|
|
49
|
+
### Modified Tables / Collections
|
|
50
|
+
- **[table_name]**: Add [column] ([type]) -- [reason]
|
|
51
|
+
|
|
52
|
+
### New Relationships
|
|
53
|
+
- [Entity A] has many [Entity B]
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Implementation Tasks
|
|
58
|
+
|
|
59
|
+
### Phase 1: [Foundation / Database / Setup]
|
|
60
|
+
- [ ] 1.1 [Task description] -- `path/to/file`
|
|
61
|
+
- [ ] 1.2 [Task description] -- `path/to/file`
|
|
62
|
+
|
|
63
|
+
### Phase 2: [Core Logic / Backend]
|
|
64
|
+
- [ ] 2.1 [Task description] -- `path/to/file`
|
|
65
|
+
- [ ] 2.2 [Task description] -- `path/to/file`
|
|
66
|
+
|
|
67
|
+
### Phase 3: [Frontend / UI]
|
|
68
|
+
- [ ] 3.1 [Task description] -- `path/to/file`
|
|
69
|
+
- [ ] 3.2 [Task description] -- `path/to/file`
|
|
70
|
+
|
|
71
|
+
### Phase 4: [Tests / Validation]
|
|
72
|
+
- [ ] 4.1 [Task description] -- `path/to/file`
|
|
73
|
+
- [ ] 4.2 [Task description] -- `path/to/file`
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Dependencies & Risks
|
|
78
|
+
| Risk | Impact | Mitigation |
|
|
79
|
+
|------|--------|------------|
|
|
80
|
+
| [Risk 1] | [High/Med/Low] | [How to handle] |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Notes
|
|
85
|
+
- [Any additional context, edge cases, or decisions made during planning]
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gamma-builder
|
|
3
|
+
description: Transform documents, reports, articles, or unstructured text into polished, structured presentation outlines optimized for Gamma AI. Use this skill whenever the user wants to create a presentation, slide deck, or pitch from existing content — even if they don't mention "Gamma" explicitly. Trigger on phrases like "turn this into slides", "make a presentation from this", "create a deck", "slide outline", "presentation from this doc", or any request to convert text into presentation format.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Gamma Builder
|
|
7
|
+
|
|
8
|
+
Transform any document or text into a Gamma AI-ready presentation outline. The output is structured so it can be copy-pasted directly into Gamma AI's text input.
|
|
9
|
+
|
|
10
|
+
## Workflow
|
|
11
|
+
|
|
12
|
+
### Phase 1 — Clarification (always do this first)
|
|
13
|
+
|
|
14
|
+
When the user provides a document or text, gather four parameters before generating anything. Use `AskUserQuestion` if available, otherwise ask inline. If the user already provided these details upfront, skip to Phase 2.
|
|
15
|
+
|
|
16
|
+
Ask:
|
|
17
|
+
|
|
18
|
+
1. **Output Language** — Which language for the presentation?
|
|
19
|
+
- `English`
|
|
20
|
+
- `Indonesian` (Bahasa Indonesia)
|
|
21
|
+
|
|
22
|
+
2. **Presentation Length** — How many slides?
|
|
23
|
+
- 5 for brief overview, 10-12 for standard, 15-20 for in-depth
|
|
24
|
+
|
|
25
|
+
3. **Tone** — Pick one:
|
|
26
|
+
- `Formal` — Corporate, polished, authoritative
|
|
27
|
+
- `Casual` — Conversational, approachable, friendly
|
|
28
|
+
- `Technical` — Data-driven, precise, jargon-appropriate
|
|
29
|
+
- `Inspirational` — Motivational, story-driven, energizing
|
|
30
|
+
|
|
31
|
+
4. **Audience** — Who will view this?
|
|
32
|
+
- e.g., C-suite, investors, engineering team, marketing, students, clients
|
|
33
|
+
|
|
34
|
+
5. **Visual Style** — How should slides feel?
|
|
35
|
+
- `Minimal` — Clean, whitespace-heavy, few words per slide
|
|
36
|
+
- `Data-heavy` — Charts, statistics, tables, metrics-focused
|
|
37
|
+
- `Image-focused` — Visual-first, imagery cues on every slide
|
|
38
|
+
- `Balanced` — Mix of text, data, and visual elements
|
|
39
|
+
|
|
40
|
+
### Phase 2 — Content Transformation
|
|
41
|
+
|
|
42
|
+
With all four parameters in hand, transform the source material through these steps:
|
|
43
|
+
|
|
44
|
+
#### 1. Content Analysis
|
|
45
|
+
- Read the entire document
|
|
46
|
+
- Identify the core thesis / main message
|
|
47
|
+
- Extract key arguments, data points, supporting evidence
|
|
48
|
+
- Note quotes, statistics, or visual-worthy content
|
|
49
|
+
- Identify the natural narrative arc
|
|
50
|
+
|
|
51
|
+
#### 2. Information Architecture
|
|
52
|
+
- Map content to the target slide count
|
|
53
|
+
- Group related ideas into logical slide clusters
|
|
54
|
+
- Prioritize based on the specified audience
|
|
55
|
+
- Cut redundancies and filler
|
|
56
|
+
- Follow this flow: **Hook → Context → Core Content → Evidence → Takeaway/CTA**
|
|
57
|
+
|
|
58
|
+
#### 3. Tone Adaptation
|
|
59
|
+
Rewrite all text to match the selected tone — this matters because the same content lands very differently depending on delivery:
|
|
60
|
+
|
|
61
|
+
| Tone | Language Style |
|
|
62
|
+
|------|---------------|
|
|
63
|
+
| Formal | Precise language, third-person, no contractions |
|
|
64
|
+
| Casual | "you/we" language, contractions, relatable phrasing |
|
|
65
|
+
| Technical | Preserve jargon, include specs, data-first language |
|
|
66
|
+
| Inspirational | Power verbs, rhetorical questions, story hooks |
|
|
67
|
+
|
|
68
|
+
#### 4. Visual Style Integration
|
|
69
|
+
Each style drives how much content goes on a slide and what visual placeholders to include:
|
|
70
|
+
|
|
71
|
+
| Style | Content Rule | Visual Cues |
|
|
72
|
+
|-------|-------------|-------------|
|
|
73
|
+
| Minimal | Max 3 bullet points, short phrases only | Suggest whitespace |
|
|
74
|
+
| Data-heavy | Include specific data throughout | `[Chart]`, `[Graph]`, `[Table]` placeholders with data descriptions |
|
|
75
|
+
| Image-focused | Text supported by imagery | `[Image: description]` on every slide |
|
|
76
|
+
| Balanced | Mix text blocks with visuals naturally | Mixed placeholders |
|
|
77
|
+
|
|
78
|
+
## Output Format
|
|
79
|
+
|
|
80
|
+
Generate the output in exactly this structure — it's designed for direct copy-paste into Gamma AI — then **save it to a markdown file** named after the presentation title (e.g., `my-presentation-title.md`) in the current working directory using the Write tool.
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
Title: [Presentation Title]
|
|
84
|
+
Subtitle: [Subtitle or tagline]
|
|
85
|
+
Target: [X] slides | Tone: [Selected Tone] | Audience: [Specified Audience] | Style: [Visual Style] | Language: [English/Indonesian]
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
Slide 1: [Slide Title]
|
|
90
|
+
[Slide content — concise text, bullet points, or statement]
|
|
91
|
+
[Image: description] or [Chart: description] (if applicable)
|
|
92
|
+
Speaker Notes: [What the presenter should say/elaborate on]
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
Slide 2: [Slide Title]
|
|
97
|
+
[Slide content]
|
|
98
|
+
[Visual placeholder if applicable]
|
|
99
|
+
Speaker Notes: [Notes]
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
(Continue for all slides...)
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
Slide [X]: [Closing Slide Title]
|
|
108
|
+
[Call to action, summary, or closing statement]
|
|
109
|
+
[Visual placeholder if applicable]
|
|
110
|
+
Speaker Notes: [Final delivery notes]
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Quality Checklist
|
|
114
|
+
|
|
115
|
+
These aren't arbitrary rules — each one exists because Gamma presentations fail when they're violated:
|
|
116
|
+
|
|
117
|
+
- **Specific slide titles** — "Why Margins Dropped 12% in Q3" beats "Overview". Generic titles signal lazy thinking and lose the audience.
|
|
118
|
+
- **Max 40 words per slide body** (unless Data-heavy style) — Gamma renders slides visually; walls of text break the layout and kill engagement.
|
|
119
|
+
- **Strong opening hook** — The first slide must grab attention, not bore with an agenda. Lead with a provocative stat, question, or bold claim.
|
|
120
|
+
- **Clear closing CTA** — End with what you want the audience to do or remember, not a generic "Thank you."
|
|
121
|
+
- **Logical narrative flow** — A stranger should follow the story without the source document. Each slide should feel like it naturally leads to the next.
|
|
122
|
+
- **Preserve all key data** — Statistics and data points from the source must survive the transformation. They're the evidence.
|
|
123
|
+
- **Consistent tone** — A casual slide in a formal deck is jarring. Maintain the selected tone throughout.
|
|
124
|
+
- **Hit the slide count** — Stay within ±1 of the target. Going way over or under means the information architecture is off.
|
|
125
|
+
- **Self-contained content** — Never reference "the document" or "as mentioned." The presentation stands alone.
|
|
126
|
+
|
|
127
|
+
## Important Constraints
|
|
128
|
+
|
|
129
|
+
- **Rewrite, don't copy-paste.** Distill and restructure everything from the source. Raw paragraphs dropped into slides are not a presentation.
|
|
130
|
+
- **Don't fabricate.** Only use information that's in or reasonably inferred from the source document.
|
|
131
|
+
- **Include visual placeholders** with specific, descriptive prompts (e.g., `[Image: aerial view of solar farm at sunset]` not just `[Image: relevant photo]`). Gamma AI uses these to generate or find visuals. **Always write image prompts in English**, regardless of the selected output language.
|
|
132
|
+
- **Create narrative arc** even from dry or unstructured source material. That's the whole point of the transformation.
|
|
133
|
+
- If the source is **too short** for the requested slide count, tell the user and suggest a better count.
|
|
134
|
+
- If the source is **too long**, prioritize the most impactful content and note what was condensed or omitted.
|