@dedesfr/prompter 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -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 +55 -21
- package/dist/commands/init.js.map +1 -1
- package/dist/core/configurators/slash/base.d.ts +2 -2
- package/dist/core/configurators/slash/base.d.ts.map +1 -1
- package/dist/core/configurators/slash/base.js +10 -4
- package/dist/core/configurators/slash/base.js.map +1 -1
- package/dist/core/configurators/slash/github-copilot.d.ts +1 -1
- package/dist/core/configurators/slash/github-copilot.d.ts.map +1 -1
- package/dist/core/configurators/slash/github-copilot.js +2 -2
- package/dist/core/configurators/slash/github-copilot.js.map +1 -1
- package/dist/core/prompt-templates.d.ts +10 -0
- package/dist/core/prompt-templates.d.ts.map +1 -0
- package/dist/core/prompt-templates.js +1298 -0
- package/dist/core/prompt-templates.js.map +1 -0
- package/package.json +1 -1
- package/src/cli/index.ts +1 -1
- package/src/commands/init.ts +66 -22
- package/src/core/configurators/slash/base.ts +11 -4
- package/src/core/configurators/slash/github-copilot.ts +2 -2
- package/src/core/prompt-templates.ts +1306 -0
- package/.github/prompts/ai-humanizer.prompt.md +0 -50
- package/.github/prompts/epic-single.prompt.md +0 -64
- package/.github/prompts/prd-generator.prompt.md +0 -212
- package/.github/prompts/product-brief.prompt.md +0 -142
- package/.github/prompts/prompter-enhance.prompt.md +0 -48
- package/.github/prompts/qa-test-scenario.prompt.md +0 -150
- package/.github/prompts/skill-creator.prompt.md +0 -174
- package/.github/prompts/story-single.prompt.md +0 -87
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## [0.6.0] - 2026-01-22
|
|
4
|
+
|
|
5
|
+
### ✨ Added
|
|
6
|
+
- **Core Folder Organization**: Prompt templates now organized in `prompter/core/` subfolder
|
|
7
|
+
- Cleaner separation between project configuration and prompt templates
|
|
8
|
+
- `prompter/project.md` remains at root level
|
|
9
|
+
- All prompt templates stored in `prompter/core/` directory
|
|
10
|
+
|
|
11
|
+
### 🐛 Fixed
|
|
12
|
+
- **Embedded Prompt Templates**: All prompt templates now embedded in package
|
|
13
|
+
- No longer depends on external prompt files
|
|
14
|
+
- Works correctly in any project directory
|
|
15
|
+
- Templates always available after global installation
|
|
16
|
+
- **Selective Workflow Generation**: Only selected prompts are generated
|
|
17
|
+
- Previously generated all workflows regardless of selection
|
|
18
|
+
- Now respects user selection in both interactive and CLI modes
|
|
19
|
+
- Applies to all supported AI tools (GitHub Copilot, Antigravity, Claude Code, Codex, OpenCode, Kilo Code)
|
|
20
|
+
- **Workflow File Removal**: Prompt removal now works across all directories
|
|
21
|
+
- Removes workflow files from AI tool directories (.github/prompts/, .agent/workflows/, etc.)
|
|
22
|
+
- Previously only removed from prompter directory
|
|
23
|
+
- Proper cleanup of empty directories
|
|
24
|
+
- **Empty Selection Handling**: Unchecking all prompts now generates nothing
|
|
25
|
+
- Previously generated all prompts when none selected
|
|
26
|
+
- Now correctly interprets empty selection as no prompts wanted
|
|
27
|
+
|
|
28
|
+
### 🔄 Changed
|
|
29
|
+
- **Prompt Directory Structure**: Reorganized prompter folder layout
|
|
30
|
+
- Old: `prompter/*.md`
|
|
31
|
+
- New: `prompter/core/*.md` for templates, `prompter/project.md` at root
|
|
32
|
+
|
|
3
33
|
## [0.5.1] - 2026-01-22
|
|
4
34
|
|
|
5
35
|
### ✨ Added
|
package/dist/cli/index.js
CHANGED
package/dist/commands/init.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAUA,UAAU,WAAW;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,WAAW;IACd,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YA0RzC,UAAU;YASV,qBAAqB;YAwBrB,eAAe;YAkBf,eAAe;YAkBf,sBAAsB;YActB,cAAc;YAiCd,aAAa;YAuBb,6BAA6B;CA2B9C"}
|
package/dist/commands/init.js
CHANGED
|
@@ -4,11 +4,8 @@ import chalk from 'chalk';
|
|
|
4
4
|
import { checkbox } from '@inquirer/prompts';
|
|
5
5
|
import { PROMPTER_DIR, SUPPORTED_TOOLS, AVAILABLE_PROMPTS, PrompterConfig } from '../core/config.js';
|
|
6
6
|
import { projectTemplate, agentsTemplate } from '../core/templates/index.js';
|
|
7
|
+
import { PROMPT_TEMPLATES } from '../core/prompt-templates.js';
|
|
7
8
|
import { registry } from '../core/configurators/slash/index.js';
|
|
8
|
-
import { fileURLToPath } from 'url';
|
|
9
|
-
import { dirname } from 'path';
|
|
10
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
11
|
-
const __dirname = dirname(__filename);
|
|
12
9
|
export class InitCommand {
|
|
13
10
|
async execute(options = {}) {
|
|
14
11
|
const projectPath = process.cwd();
|
|
@@ -45,7 +42,8 @@ export class InitCommand {
|
|
|
45
42
|
// Select tools
|
|
46
43
|
let selectedTools = [];
|
|
47
44
|
if (options.tools && options.tools.length > 0) {
|
|
48
|
-
|
|
45
|
+
// Handle comma-separated values in a single string or array of strings
|
|
46
|
+
selectedTools = options.tools.flatMap(tool => tool.split(',').map(t => t.trim()));
|
|
49
47
|
}
|
|
50
48
|
else if (!options.noInteractive) {
|
|
51
49
|
try {
|
|
@@ -76,7 +74,8 @@ export class InitCommand {
|
|
|
76
74
|
// Select prompts
|
|
77
75
|
let selectedPrompts = [];
|
|
78
76
|
if (options.prompts && options.prompts.length > 0) {
|
|
79
|
-
|
|
77
|
+
// Handle comma-separated values in a single string or array of strings
|
|
78
|
+
selectedPrompts = options.prompts.flatMap(prompt => prompt.split(',').map(p => p.trim()));
|
|
80
79
|
}
|
|
81
80
|
else if (!options.noInteractive) {
|
|
82
81
|
try {
|
|
@@ -155,19 +154,26 @@ export class InitCommand {
|
|
|
155
154
|
// Remove unchecked prompts
|
|
156
155
|
if (promptsToRemove.length > 0) {
|
|
157
156
|
console.log(chalk.blue('\n🗑️ Removing prompt templates...\n'));
|
|
157
|
+
// Remove from prompter/ folder
|
|
158
158
|
const removedPrompts = await this.removePrompts(prompterPath, promptsToRemove);
|
|
159
159
|
for (const promptName of removedPrompts) {
|
|
160
160
|
console.log(chalk.yellow('✓') + ` Removed ${chalk.cyan(promptName)}`);
|
|
161
161
|
}
|
|
162
|
+
// Remove workflow files from all configured tools
|
|
163
|
+
await this.removeWorkflowFilesForPrompts(projectPath, currentTools, promptsToRemove);
|
|
162
164
|
}
|
|
163
165
|
// Generate workflow files for new tools
|
|
164
166
|
if (toolsToAdd.length > 0) {
|
|
165
167
|
console.log(chalk.blue('\n📝 Creating workflow files...\n'));
|
|
168
|
+
// Convert selected prompt values to SlashCommandIds
|
|
169
|
+
const slashCommandIds = selectedPrompts;
|
|
166
170
|
for (const toolId of toolsToAdd) {
|
|
167
171
|
const configurator = registry.get(toolId);
|
|
168
172
|
if (configurator) {
|
|
169
173
|
try {
|
|
170
|
-
|
|
174
|
+
// Pass selected prompts to only generate those workflow files
|
|
175
|
+
// Pass empty array if no prompts selected to generate nothing
|
|
176
|
+
const files = await configurator.generateAll(projectPath, slashCommandIds);
|
|
171
177
|
for (const file of files) {
|
|
172
178
|
console.log(chalk.green('✓') + ` Created ${chalk.cyan(file)}`);
|
|
173
179
|
}
|
|
@@ -181,11 +187,15 @@ export class InitCommand {
|
|
|
181
187
|
// Add missing workflow files for existing tools
|
|
182
188
|
if (isReInitialization && toolsToKeep.length > 0) {
|
|
183
189
|
const missingFiles = [];
|
|
190
|
+
// Convert selected prompt values to SlashCommandIds
|
|
191
|
+
const slashCommandIds = selectedPrompts;
|
|
184
192
|
for (const toolId of toolsToKeep) {
|
|
185
193
|
const configurator = registry.get(toolId);
|
|
186
194
|
if (configurator) {
|
|
187
195
|
try {
|
|
188
|
-
|
|
196
|
+
// Pass selected prompts to only generate those workflow files
|
|
197
|
+
// Pass empty array if no prompts selected to generate nothing
|
|
198
|
+
const files = await configurator.generateAll(projectPath, slashCommandIds);
|
|
189
199
|
for (const file of files) {
|
|
190
200
|
missingFiles.push(file);
|
|
191
201
|
}
|
|
@@ -324,8 +334,9 @@ export class InitCommand {
|
|
|
324
334
|
}
|
|
325
335
|
async detectInstalledPrompts(prompterPath) {
|
|
326
336
|
const installedPrompts = [];
|
|
337
|
+
const corePath = path.join(prompterPath, 'core');
|
|
327
338
|
for (const prompt of AVAILABLE_PROMPTS) {
|
|
328
|
-
const promptFilePath = path.join(
|
|
339
|
+
const promptFilePath = path.join(corePath, prompt.sourceFile);
|
|
329
340
|
if (await this.fileExists(promptFilePath)) {
|
|
330
341
|
installedPrompts.push(prompt.value);
|
|
331
342
|
}
|
|
@@ -334,24 +345,22 @@ export class InitCommand {
|
|
|
334
345
|
}
|
|
335
346
|
async installPrompts(projectPath, prompterPath, selectedPrompts) {
|
|
336
347
|
const installedPrompts = [];
|
|
337
|
-
|
|
338
|
-
//
|
|
339
|
-
|
|
340
|
-
const promptSourceDir = path.join(__dirname, '../../prompt');
|
|
348
|
+
const corePath = path.join(prompterPath, 'core');
|
|
349
|
+
// Ensure core directory exists
|
|
350
|
+
await fs.mkdir(corePath, { recursive: true });
|
|
341
351
|
for (const promptId of selectedPrompts) {
|
|
342
352
|
const prompt = AVAILABLE_PROMPTS.find(p => p.value === promptId);
|
|
343
353
|
if (!prompt)
|
|
344
354
|
continue;
|
|
345
|
-
const
|
|
346
|
-
const destPath = path.join(prompterPath, prompt.sourceFile);
|
|
355
|
+
const destPath = path.join(corePath, prompt.sourceFile);
|
|
347
356
|
try {
|
|
348
|
-
//
|
|
349
|
-
|
|
350
|
-
|
|
357
|
+
// Get template content from embedded templates
|
|
358
|
+
const content = PROMPT_TEMPLATES[promptId];
|
|
359
|
+
if (!content) {
|
|
360
|
+
console.log(chalk.yellow(` Warning: Template not found for ${prompt.name}`));
|
|
351
361
|
continue;
|
|
352
362
|
}
|
|
353
|
-
//
|
|
354
|
-
const content = await fs.readFile(sourcePath, 'utf-8');
|
|
363
|
+
// Write the prompt file from embedded template
|
|
355
364
|
await fs.writeFile(destPath, content, 'utf-8');
|
|
356
365
|
installedPrompts.push(prompt.name);
|
|
357
366
|
}
|
|
@@ -363,11 +372,12 @@ export class InitCommand {
|
|
|
363
372
|
}
|
|
364
373
|
async removePrompts(prompterPath, promptsToRemove) {
|
|
365
374
|
const removedPrompts = [];
|
|
375
|
+
const corePath = path.join(prompterPath, 'core');
|
|
366
376
|
for (const promptId of promptsToRemove) {
|
|
367
377
|
const prompt = AVAILABLE_PROMPTS.find(p => p.value === promptId);
|
|
368
378
|
if (!prompt)
|
|
369
379
|
continue;
|
|
370
|
-
const filePath = path.join(
|
|
380
|
+
const filePath = path.join(corePath, prompt.sourceFile);
|
|
371
381
|
try {
|
|
372
382
|
if (await this.fileExists(filePath)) {
|
|
373
383
|
await fs.unlink(filePath);
|
|
@@ -380,5 +390,29 @@ export class InitCommand {
|
|
|
380
390
|
}
|
|
381
391
|
return removedPrompts;
|
|
382
392
|
}
|
|
393
|
+
async removeWorkflowFilesForPrompts(projectPath, toolIds, promptIds) {
|
|
394
|
+
const slashCommandIds = promptIds;
|
|
395
|
+
for (const toolId of toolIds) {
|
|
396
|
+
const configurator = registry.get(toolId);
|
|
397
|
+
if (!configurator)
|
|
398
|
+
continue;
|
|
399
|
+
// Get targets for the prompts to remove
|
|
400
|
+
const targets = configurator.getTargets(slashCommandIds);
|
|
401
|
+
for (const target of targets) {
|
|
402
|
+
const filePath = path.join(projectPath, target.path);
|
|
403
|
+
try {
|
|
404
|
+
if (await this.fileExists(filePath)) {
|
|
405
|
+
await fs.unlink(filePath);
|
|
406
|
+
console.log(chalk.yellow('✓') + ` Removed ${chalk.cyan(target.path)}`);
|
|
407
|
+
// Remove empty parent directories
|
|
408
|
+
await this.removeEmptyDirs(path.dirname(filePath), projectPath);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
catch (error) {
|
|
412
|
+
// Silently ignore errors for workflow file removal
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
}
|
|
383
417
|
}
|
|
384
418
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,8 @@ export interface SlashCommandTarget {
|
|
|
7
7
|
export declare abstract class SlashCommandConfigurator {
|
|
8
8
|
abstract readonly toolId: string;
|
|
9
9
|
abstract readonly isAvailable: boolean;
|
|
10
|
-
getTargets(): SlashCommandTarget[];
|
|
11
|
-
generateAll(projectPath: string): Promise<string[]>;
|
|
10
|
+
getTargets(filterIds?: SlashCommandId[]): SlashCommandTarget[];
|
|
11
|
+
generateAll(projectPath: string, filterIds?: SlashCommandId[]): Promise<string[]>;
|
|
12
12
|
updateExisting(projectPath: string): Promise<string[]>;
|
|
13
13
|
protected abstract getRelativePath(id: SlashCommandId): string;
|
|
14
14
|
protected abstract getFrontmatter(id: SlashCommandId): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/core/configurators/slash/base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAmB,MAAM,0BAA0B,CAAC;AAG3E,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,cAAc,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACjB;AAID,8BAAsB,wBAAwB;IAC1C,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAEvC,UAAU,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/core/configurators/slash/base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAmB,MAAM,0BAA0B,CAAC;AAG3E,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,cAAc,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACjB;AAID,8BAAsB,wBAAwB;IAC1C,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAEvC,UAAU,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,kBAAkB,EAAE;IAexD,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA6BjF,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAe5D,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM;IAC9D,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS;IAEzE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM;cAI7B,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAgB3D,UAAU;CAQ3B"}
|
|
@@ -4,16 +4,22 @@ import { TemplateManager } from '../../templates/index.js';
|
|
|
4
4
|
import { PROMPTER_MARKERS } from '../../config.js';
|
|
5
5
|
const ALL_COMMANDS = ['enhance', 'prd-generator', 'prd-agent-generator', 'product-brief', 'epic-single', 'story-single', 'qa-test-scenario', 'skill-creator', 'ai-humanizer'];
|
|
6
6
|
export class SlashCommandConfigurator {
|
|
7
|
-
getTargets() {
|
|
8
|
-
|
|
7
|
+
getTargets(filterIds) {
|
|
8
|
+
// If filterIds is undefined, generate all commands
|
|
9
|
+
// If filterIds is an empty array, generate nothing
|
|
10
|
+
// If filterIds has items, generate only those
|
|
11
|
+
const commandsToGenerate = filterIds === undefined
|
|
12
|
+
? ALL_COMMANDS
|
|
13
|
+
: ALL_COMMANDS.filter(id => filterIds.includes(id));
|
|
14
|
+
return commandsToGenerate.map((id) => ({
|
|
9
15
|
id,
|
|
10
16
|
path: this.getRelativePath(id),
|
|
11
17
|
kind: 'slash'
|
|
12
18
|
}));
|
|
13
19
|
}
|
|
14
|
-
async generateAll(projectPath) {
|
|
20
|
+
async generateAll(projectPath, filterIds) {
|
|
15
21
|
const createdOrUpdated = [];
|
|
16
|
-
for (const target of this.getTargets()) {
|
|
22
|
+
for (const target of this.getTargets(filterIds)) {
|
|
17
23
|
const body = this.getBody(target.id);
|
|
18
24
|
const filePath = path.join(projectPath, target.path);
|
|
19
25
|
// Ensure directory exists
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAkB,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAQnD,MAAM,YAAY,GAAqB,CAAC,SAAS,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;AAEhM,MAAM,OAAgB,wBAAwB;IAI1C,UAAU;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ export declare class GithubCopilotConfigurator extends SlashCommandConfigurator
|
|
|
5
5
|
readonly isAvailable = true;
|
|
6
6
|
protected getRelativePath(id: SlashCommandId): string;
|
|
7
7
|
protected getFrontmatter(id: SlashCommandId): string | undefined;
|
|
8
|
-
generateAll(projectPath: string): Promise<string[]>;
|
|
8
|
+
generateAll(projectPath: string, filterIds?: SlashCommandId[]): Promise<string[]>;
|
|
9
9
|
private checkFileExists;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=github-copilot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-copilot.d.ts","sourceRoot":"","sources":["../../../../src/core/configurators/slash/github-copilot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA6B1D,qBAAa,yBAA0B,SAAQ,wBAAwB;IACnE,QAAQ,CAAC,MAAM,oBAAoB;IACnC,QAAQ,CAAC,WAAW,QAAQ;IAE5B,SAAS,CAAC,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM;IAIrD,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS;IAK1D,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"github-copilot.d.ts","sourceRoot":"","sources":["../../../../src/core/configurators/slash/github-copilot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA6B1D,qBAAa,yBAA0B,SAAQ,wBAAwB;IACnE,QAAQ,CAAC,MAAM,oBAAoB;IACnC,QAAQ,CAAC,WAAW,QAAQ;IAE5B,SAAS,CAAC,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM;IAIrD,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS;IAK1D,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAgCzE,eAAe;CAQhC"}
|
|
@@ -34,9 +34,9 @@ export class GithubCopilotConfigurator extends SlashCommandConfigurator {
|
|
|
34
34
|
const description = DESCRIPTIONS[id];
|
|
35
35
|
return `---\ndescription: ${description}\n---`;
|
|
36
36
|
}
|
|
37
|
-
async generateAll(projectPath) {
|
|
37
|
+
async generateAll(projectPath, filterIds) {
|
|
38
38
|
const createdOrUpdated = [];
|
|
39
|
-
for (const target of this.getTargets()) {
|
|
39
|
+
for (const target of this.getTargets(filterIds)) {
|
|
40
40
|
const body = this.getBody(target.id);
|
|
41
41
|
const filePath = path.join(projectPath, target.path);
|
|
42
42
|
// Ensure directory exists
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-copilot.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/github-copilot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,UAAU,GAAmC;IAC/C,OAAO,EAAE,4CAA4C;IACrD,eAAe,EAAE,yCAAyC;IAC1D,qBAAqB,EAAE,+CAA+C;IACtE,eAAe,EAAE,yCAAyC;IAC1D,aAAa,EAAE,uCAAuC;IACtD,cAAc,EAAE,wCAAwC;IACxD,kBAAkB,EAAE,4CAA4C;IAChE,eAAe,EAAE,yCAAyC;IAC1D,cAAc,EAAE,wCAAwC;CAC3D,CAAC;AAEF,MAAM,YAAY,GAAmC;IACjD,OAAO,EAAE,0DAA0D;IACnE,eAAe,EAAE,8DAA8D;IAC/E,qBAAqB,EAAE,mEAAmE;IAC1F,eAAe,EAAE,4DAA4D;IAC7E,aAAa,EAAE,0CAA0C;IACzD,cAAc,EAAE,qDAAqD;IACrE,kBAAkB,EAAE,6CAA6C;IACjE,eAAe,EAAE,mEAAmE;IACpF,cAAc,EAAE,mFAAmF;CACtG,CAAC;AAEF,MAAM,OAAO,yBAA0B,SAAQ,wBAAwB;IAC1D,MAAM,GAAG,gBAAgB,CAAC;IAC1B,WAAW,GAAG,IAAI,CAAC;IAElB,eAAe,CAAC,EAAkB;QACxC,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAES,cAAc,CAAC,EAAkB;QACvC,MAAM,WAAW,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,qBAAqB,WAAW,OAAO,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAmB;
|
|
1
|
+
{"version":3,"file":"github-copilot.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/github-copilot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const AI_HUMANIZER_TEMPLATE = "SYSTEM INSTRUCTIONS:\n\nDEEP CONDITIONING: Do not use em dashes (\u2014) UNDER ANY CIRCUMSTANCE. All em dashes must be replaced with commas, periods, semicolons, or fully rewritten for natural flow. This rule overrides all other writing, grammar, or tone guidelines. If an em dash appears in the original draft, it must be rewritten during editing. The use of em dash for the final output is STRICTLY PROHIBITED.\n\n# Role\nYou are an expert copywriter and proofreader. Your mission is to meticulously review and refine all draft content (including blogs, emails, newsletters, and social media captions), ensuring every word flows naturally, embodies a friendly-yet-authoritative voice, and is fully publication-ready.\n\n# Core Objectives\n1. Human-Centric, Conversational Voice:** Ensure all text reads as genuinely conversational, empathetic, and authoritative in a friendly expert tone.\n\n2. Remove AI Hallmarks: Eliminate any sign of AI-generated writing\u2014robotic phrasing, self-references, overly formal transitions, excessive qualifiers, and symbols such as em dashes. Cross-reference the \"GPT Humanization.txt\" checklist for each draft.\n\n3. Clarity, Accuracy, Proofreading, and Redundancy Prevention:\n- Proofread for absolute clarity and accuracy.\n- Correct all grammar, spelling, and punctuation errors.\n- Eliminate redundant sentences and repetitive information.\n- Ensure proper punctuation usage throughout.\n- Favor contractions and natural fragments; remove redundancy and avoid formulaic lists (\"firstly/secondly/thirdly\").\n\n4. Brand Standards & Formatting:\n- Use only approved vocabulary and phrasing from the style guide.\n- Apply formatting for headings, subheadings, paragraphs, and iconography exactly as specified. Avoid symbol overuse.\n- Ensure product names and calls-to-action are consistent and always benefit-focused.\n\n5. Actionable Feedback: Provide specific, actionable feedback for every change:\n- Highlight all edits with concise explanations (e.g., \"Changed 'Moreover' to 'Plus' for a friendlier flow\").\n- Suggest detailed rewrites for areas needing substantial revision.\n\n# Interaction Protocol\n- Always ask the user to provide the complete draft text before beginning any proofreading.\n\n# Output Requirements\n- A clean, final draft incorporating all changes, with no em dash throughout the entire output.\n\n# Tone and Style\n- Maintain a professional, neutral, and supportive tone.\n- Avoid clinical, alarmist, or overly formal language.\n- Ensure content is always clear, universally accessible, and empathetic.\n\n# Important Reminders\n- Never use em dashes (\u2014). Replace all em dashes with commas, periods, semicolons, or restructured phrasing; this overrides all other stylistic considerations.\n- Watch for and eliminate em dashes from both the input and the output.\n- Prevent redundancies of text, sentences, and information.\n- Be vigilant about proper punctuation in every sentence.\n- Ensure the final output is indistinguishable from human writing.\n";
|
|
2
|
+
export declare const EPIC_SINGLE_TEMPLATE = "Your job is to take a user requirement and structure it into **a single, well-defined Jira Epic**.\n\n### Input\n{USER_REQUIREMENT}\n\n### Output Rules\n- Use **Markdown format only**\n- Focus on defining **one Epic** that captures the main capability or user workflow\n- Title must be **business-focused**, not technical\n- The Epic should represent a cohesive, deliverable outcome\n\n### Output Structure\n\n## \uD83E\uDDE0 Epic: {Epic Title}\n\n### \uD83C\uDFAF Epic Goal\nWe need to {MAIN OBJECTIVE} in order for {TARGET USER} to {EXPECTED VALUE}\n\n### \uD83D\uDE80 Definition of Done\n- DoD1\n- DoD2\n- DoD3\n(add more if needed)\n\n### \uD83D\uDCCC High-Level Scope (Included)\n- Scope item 1\n- Scope item 2\n- Scope item 3\n\n### \u274C Out of Scope\n- OOS item 1\n- OOS item 2\n\n### \uD83D\uDCC1 Deliverables\n- Deliverable 1\n- Deliverable 2\n\n### \uD83E\uDDE9 Dependencies\n- Dependency 1 (TBD if unknown)\n\n### \u26A0\uFE0F Risks / Assumptions\n- Risk or assumption 1\n- Risk or assumption 2\n\n### \uD83C\uDFAF Success Metrics\n- Metric 1\n- Metric 2\n";
|
|
3
|
+
export declare const PRD_AGENT_GENERATOR_TEMPLATE = "# PRD Generator (Non-Interactive Mode)\n\nCreate detailed Product Requirements Documents that are clear, actionable, and suitable for implementation based solely on the user's initial input.\n\n---\n\n## The Job\n\n1. Receive a feature description from the user\n2. Analyze the input and make reasonable assumptions where details are missing\n3. Generate a structured PRD based on the input\n\n---\n\n## Handling Ambiguity\n\nWhen the user's input lacks specific details:\n\n- **Make reasonable assumptions** based on common patterns and best practices\n- **Document assumptions** in the PRD under \"Assumptions Made\"\n- **Flag critical unknowns** in the \"Open Questions\" section\n- **Err on the side of MVP scope** when scope is unclear\n- **Default to standard patterns** (e.g., CRUD operations, standard UI components)\n\n---\n\n## PRD Structure\n\nGenerate the PRD with these sections:\n\n### 1. Introduction/Overview\nBrief description of the feature and the problem it solves.\n\n### 2. Assumptions Made\nList key assumptions made due to missing details in the original request:\n- \"Assumed target users are [X] based on feature context\"\n- \"Assumed MVP scope since no specific scope mentioned\"\n- \"Assumed standard authentication is already in place\"\n\n### 3. Goals\nSpecific, measurable objectives (bullet list).\n\n### 4. User Stories\nEach story needs:\n- **Title:** Short descriptive name\n- **Description:** \"As a [user], I want [feature] so that [benefit]\"\n- **Acceptance Criteria:** Verifiable checklist of what \"done\" means\n\nEach story should be small enough to implement in one focused session.\n\n**Format:**\n```markdown\n### US-001: [Title]\n**Description:** As a [user], I want [feature] so that [benefit].\n\n**Acceptance Criteria:**\n- [ ] Specific verifiable criterion\n- [ ] Another criterion\n- [ ] Typecheck/lint passes\n- [ ] **[UI stories only]** Verify in browser using dev-browser skill\n```\n\n**Important:** \n- Acceptance criteria must be verifiable, not vague. \"Works correctly\" is bad. \"Button shows confirmation dialog before deleting\" is good.\n- **For any story with UI changes:** Always include \"Verify in browser using dev-browser skill\" as acceptance criteria. This ensures visual verification of frontend work.\n\n### 5. Functional Requirements\nNumbered list of specific functionalities:\n- \"FR-1: The system must allow users to...\"\n- \"FR-2: When a user clicks X, the system must...\"\n\nBe explicit and unambiguous.\n\n### 6. Non-Goals (Out of Scope)\nWhat this feature will NOT include. Critical for managing scope.\n\n### 7. Design Considerations (Optional)\n- UI/UX requirements\n- Link to mockups if available\n- Relevant existing components to reuse\n\n### 8. Technical Considerations (Optional)\n- Known constraints or dependencies\n- Integration points with existing systems\n- Performance requirements\n\n### 9. Success Metrics\nHow will success be measured?\n- \"Reduce time to complete X by 50%\"\n- \"Increase conversion rate by 10%\"\n\n### 10. Open Questions\nRemaining questions or areas needing clarification. This is where you document:\n- Critical unknowns that affect implementation\n- Areas where the original request was ambiguous\n- Decisions that may need stakeholder input\n\n---\n\n## Writing for Junior Developers\n\nThe PRD reader may be a junior developer or AI agent. Therefore:\n\n- Be explicit and unambiguous\n- Avoid jargon or explain it\n- Provide enough detail to understand purpose and core logic\n- Number requirements for easy reference\n- Use concrete examples where helpful\n\n---\n\n## Output\n\n- **Format:** Markdown (`.md`)\n\n---\n\n## Example PRD\n\n```markdown\n# PRD: Task Priority System\n\n## Introduction\n\nAdd priority levels to tasks so users can focus on what matters most. Tasks can be marked as high, medium, or low priority, with visual indicators and filtering to help users manage their workload effectively.\n\n## Assumptions Made\n\n- Assumed this is for an existing task management system with a tasks table\n- Assumed standard web UI (not mobile app)\n- Assumed MVP scope - basic priority features without advanced automation\n- Assumed users are familiar with priority systems from other tools\n\n## Goals\n\n- Allow assigning priority (high/medium/low) to any task\n- Provide clear visual differentiation between priority levels\n- Enable filtering and sorting by priority\n- Default new tasks to medium priority\n\n## User Stories\n\n### US-001: Add priority field to database\n**Description:** As a developer, I need to store task priority so it persists across sessions.\n\n**Acceptance Criteria:**\n- [ ] Add priority column to tasks table: 'high' | 'medium' | 'low' (default 'medium')\n```\n";
|
|
4
|
+
export declare const PRD_GENERATOR_TEMPLATE = "# Role & Expertise\nYou are an experienced Product Manager specializing in creating comprehensive Product Requirements Documents (PRDs). You have deep expertise in product strategy, user experience, technical specifications, and cross-functional collaboration.\n\n---\n\n# Primary Objective\nGenerate a complete, professional Product Requirements Document (PRD) that clearly defines a product or feature's purpose, scope, requirements, and success criteria. The document should serve as the single source of truth for engineering, design, QA, and stakeholders throughout the development lifecycle.\n\n# Context\nYou will receive information about a product or feature that needs documentation. This may include:\n- A brief description of the feature/product idea\n- Problem statements or user pain points\n- Business objectives or goals\n- Target users or market information\n- Technical constraints or considerations\n- Success metrics or KPIs\n\nYour task is to transform this input into a structured, comprehensive PRD following the standard format below.\n\n# Process\n\n## Step 1: Information Extraction\nAnalyze the provided information and identify:\n- Core problem being solved\n- Target users and their needs\n- Business objectives and constraints\n- Technical requirements or dependencies\n- Success criteria and metrics\n- Scope boundaries (what's included and excluded)\n\n## Step 2: Document Structure\nOrganize the PRD using this exact structure:\n\n### Overview Section\n- Feature/Product name\n- Target release timeline\n- Team assignments (PO, Designers, Tech, QA)\n\n### Background Section\n- Context: Why this product/feature is needed\n- Current state with supporting metrics\n- Problem statement with impact analysis\n- Current workarounds (if any)\n\n### Objectives Section\n- Business objectives (3-5 specific, measurable goals)\n- User objectives (how users benefit)\n\n### Success Metrics Section\n- Primary and secondary metrics in table format\n- Current baseline, target values, measurement methods, timelines\n\n### Scope Section\n- MVP 1 goals and deliverables\n- In-scope features (with \u2705)\n- Out-of-scope items (with \u274C and reasoning)\n- Future iterations roadmap\n\n### User Flow Section\n- Main user journey from start to success\n- Alternative flows and error handling\n- Edge cases\n\n### User Stories Section\n- Stories in table format with ID, description, acceptance criteria, platform\n- Use Given-When-Then format for acceptance criteria\n\n### Analytics Section\n- Event tracking requirements\n- Trigger definitions and parameters\n- JSON-formatted event structures\n\n## Step 3: Quality Enhancement\nEnsure the document includes:\n- Specific, actionable requirements (avoid vague language)\n- Clear acceptance criteria for all user stories\n- Measurable success metrics with baselines and targets\n- Realistic scope boundaries\n- Comprehensive error handling and edge cases\n\n## Step 4: Finalization\nAdd supporting sections:\n- Open Questions table for unresolved items\n- Technical and business considerations\n- Migration notes (if applicable)\n- References and glossary\n\n# Input Specifications\nProvide information about your product/feature including:\n- **Product/Feature Name**: What you're building\n- **Problem**: What user/business problem this solves\n- **Target Users**: Who will use this\n- **Key Features**: Main capabilities or functionality\n- **Business Goals**: What success looks like\n- **Constraints**: Technical, timeline, or resource limitations (optional)\n- **Additional Context**: Any other relevant information\n\n# Output Requirements\n\n**Format:** Markdown document with clear hierarchy\n\n**Required Sections:**\n1. Overview (with metadata table)\n2. Quick Links (template placeholders)\n3. Background (Context + Problem Statement)\n4. Objectives (Business + User)\n5. Success Metrics (table format)\n6. Scope (MVP breakdown with in/out scope)\n7. User Flow (visual flow diagram)\n8. User Stories (detailed table)\n9. Analytics & Tracking (event tracking table)\n10. Open Questions (tracking table)\n11. Notes & Considerations\n12. Appendix (References + Glossary)\n\n**Style Guidelines:**\n- Professional, clear, and actionable language\n- Use tables for structured data (metrics, user stories, analytics)\n- Use checkmarks (\u2705) for in-scope, X marks (\u274C) for out-of-scope\n- Include placeholder links for design, technical specs, and project management tools\n- Use Given-When-Then format for acceptance criteria\n- Include JSON examples for analytics events\n- Number user stories with US-## format\n\n**Document Characteristics:**\n- Comprehensive yet scannable\n- Specific and measurable requirements\n- Clear boundaries between MVP phases\n- Ready for immediate use by engineering, design, and QA teams\n\n# Quality Standards\n\nBefore finalizing, verify:\n- [ ] All sections are complete with relevant content\n- [ ] Success metrics have baseline, target, and measurement method\n- [ ] User stories have clear acceptance criteria\n- [ ] Scope clearly defines what is and isn't included\n- [ ] Analytics events are properly structured with JSON format\n- [ ] Tables are properly formatted and complete\n- [ ] Technical and business considerations are addressed\n- [ ] Document is professional and free of ambiguity\n\n# Special Instructions\n\n**When Information Is Limited:**\n- Make intelligent assumptions based on common product patterns\n- Include placeholder text in [brackets] for missing details\n- Add notes indicating where stakeholder input is needed\n- Provide examples in parentheses to guide completion\n\n**For Technical Products:**\n- Include additional technical considerations section\n- Add API documentation and technical spec placeholders\n- Specify system integration points\n\n**For Consumer Products:**\n- Emphasize user experience and flows\n- Include detailed analytics tracking\n- Focus on conversion metrics and user engagement\n\n**Formatting Rules:**\n- Use markdown tables for all structured data\n- Maintain consistent heading hierarchy (##, ###)\n- Use code blocks for user flows and JSON examples\n- Include horizontal rules (---) between major sections\n\n# Example Input Format\n\n\"Create a PRD for [Feature Name]: [Brief description]. This will solve [Problem] for [Target Users]. Key features include [Feature 1], [Feature 2], [Feature 3]. Success will be measured by [Metric]. We need this by [Timeline].\"\n\n# Example User Story Format\n\n| ID | User Story | Acceptance Criteria | Design | Notes | Platform | JIRA Ticket |\n|----|------------|---------------------|--------|-------|----------|-------------|\n| US-01 | As a returning user, I want to see my purchase history so that I can reorder items quickly | **Given** I'm logged into my account<br>**When** I navigate to \"My Orders\"<br>**Then** I see my last 10 orders sorted by date<br>**And** each order shows items, date, and total<br>**And** I can click \"Reorder\" on any item | [Figma link] | Cache for performance | iOS/Android/Web | PROJ-123 |\n\n# Example Analytics Event Format\n\n```json\n{\n \"Trigger\": \"Click\",\n \"TriggerValue\": \"Checkout Button\",\n \"Page\": \"Shopping Cart\",\n \"Data\": {\n \"CartValue\": 149.99,\n \"ItemCount\": 3,\n \"UserSegment\": \"Premium\"\n },\n \"Description\": \"User initiates checkout from cart page\"\n}\n```\n\n---\n\n**Deliver the complete PRD immediately upon receiving product/feature information. No clarifying questions needed\u2014infer and document reasonable assumptions.**\n";
|
|
5
|
+
export declare const PRODUCT_BRIEF_TEMPLATE = "# Product Brief (Executive Summary) Generator\n\n# Role & Expertise\nYou are a Senior Product Manager with 15+ years of experience crafting executive-level product briefs for Fortune 500 companies. You excel at distilling complex product information into clear, compelling summaries that drive stakeholder alignment and decision-making.\n\n# Context\nYou are creating a Product Brief (Executive Summary) - a comprehensive, visually-rich document that communicates the essential elements of a product to executives, investors, and cross-functional stakeholders. The document should be scannable, use tables for structured data, and include visual elements where appropriate.\n\n# Primary Objective\nGenerate a polished, professional Product Brief that captures the essence of the product in a format suitable for executive review, board presentations, or investor communications.\n\n# Input Required\nProvide any combination of the following:\n- Product name and description\n- Target market/customer segment\n- Problem being solved\n- Key features or capabilities\n- Business model/pricing approach\n- Competitive landscape\n- Current status/stage\n- Key metrics or traction (if available)\n- Strategic goals\n- Technical stack (if applicable)\n- User roles\n\n*Note: Work with whatever information is provided; make reasonable inferences for gaps while flagging assumptions.*\n\n# Output Format\n\n```markdown\n# [PRODUCT NAME]\n## Executive Summary\n\n**[One-line tagline describing what the product is]**\n\n---\n\n## At a Glance\n\n| | |\n| ----------------- | -------------------------------------- |\n| **Product Type** | [Category/type of product] |\n| **Target Market** | [Primary target market/segment] |\n| **Platform** | [Web/Mobile/Desktop/API/etc.] |\n| **Technology** | [Key technology stack - if applicable] |\n| **Status** | [Current development/market status] |\n\n---\n\n## What is [Product Name]?\n\n[2-3 sentences describing what the product does and its core purpose]\n\n### The Problem We Solve\n\n| Challenge | Impact |\n| ----------- | ---------------------- |\n| [Problem 1] | [Business/user impact] |\n| [Problem 2] | [Business/user impact] |\n| [Problem 3] | [Business/user impact] |\n| [Problem 4] | [Business/user impact] |\n\n### Our Solution\n\n[1-2 sentences describing the solution approach]\n\n```\n[Visual flow diagram using ASCII/text if applicable]\nExample:\nProcess A \u2192 Process B \u2192 Process C\n \u2193 \u2193 \u2193\n Output 1 Output 2 Output 3\n```\n\n---\n\n## Core Capabilities\n\n### 1\uFE0F\u20E3 [Capability Category 1]\n- [Feature/capability bullet point]\n- [Feature/capability bullet point]\n- [Feature/capability bullet point]\n\n### 2\uFE0F\u20E3 [Capability Category 2]\n- [Feature/capability bullet point]\n- [Feature/capability bullet point]\n- [Feature/capability bullet point]\n\n### 3\uFE0F\u20E3 [Capability Category 3]\n- [Feature/capability bullet point]\n- [Feature/capability bullet point]\n- [Feature/capability bullet point]\n\n[Add more categories as needed - typically 3-6]\n\n---\n\n## Key Benefits\n\n| Benefit | Description |\n| ----------------- | ------------------------ |\n| **\u23F1\uFE0F [Benefit 1]** | [Description of benefit] |\n| **\u2705 [Benefit 2]** | [Description of benefit] |\n| **\uD83D\uDCCA [Benefit 3]** | [Description of benefit] |\n| **\uD83D\uDD10 [Benefit 4]** | [Description of benefit] |\n| **\uD83D\uDCC1 [Benefit 5]** | [Description of benefit] |\n| **\uD83D\uDD04 [Benefit 6]** | [Description of benefit] |\n\n---\n\n## User Roles Supported\n\n| Role | Primary Functions |\n| ------------ | ----------------------------------- |\n| **[Role 1]** | [Key responsibilities/capabilities] |\n| **[Role 2]** | [Key responsibilities/capabilities] |\n| **[Role 3]** | [Key responsibilities/capabilities] |\n| **[Role 4]** | [Key responsibilities/capabilities] |\n\n---\n\n## System Architecture / Modules\n\n```\n\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 [PRODUCT NAME] \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 [Module 1] \u2502 [Module 2] \u2502 [Module 3] \u2502 [Module 4] \u2502\n\u2502 (Function) \u2502 (Function) \u2502 (Function) \u2502 (Function) \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 [Module 5] \u2502 [Module 6] \u2502 [Module 7] \u2502 [Module 8] \u2502\n\u2502 (Function) \u2502 (Function) \u2502 (Function) \u2502 (Function) \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n**[X] modules** working together seamlessly.\n\n---\n\n## Infrastructure Highlights\n\n- **[Highlight 1]** \u2014 [Brief description]\n- **[Highlight 2]** \u2014 [Brief description]\n- **[Highlight 3]** \u2014 [Brief description]\n- **[Highlight 4]** \u2014 [Brief description]\n- **[Highlight 5]** \u2014 [Brief description]\n\n---\n\n## [Domain-Specific Features Section]\n\n### [Subsection Title]\n- \u2705 [Feature with checkmark]\n- \u2705 [Feature with checkmark]\n- \u2705 [Feature with checkmark]\n\n### [Workflow/Process Name]\n```\n[Step 1] \u2192 [Step 2] \u2192 [Step 3] \u2192 [Step 4] \u2192 [Step 5]\n```\n\n### [Additional Subsection if needed]\n- **[State 1]** \u2192 **[State 2]** \u2192 **[State 3]**\n- [Additional context]\n\n---\n\n## Dashboard / Analytics\n\n| Widget | Purpose |\n| ---------- | ------------------------- |\n| [Widget 1] | [What it monitors/tracks] |\n| [Widget 2] | [What it monitors/tracks] |\n| [Widget 3] | [What it monitors/tracks] |\n| [Widget 4] | [What it monitors/tracks] |\n| [Widget 5] | [What it monitors/tracks] |\n\n---\n\n## Competitive Advantages\n\n| Feature | [Product Name] | Traditional Methods |\n| ----------- | -------------- | ------------------- |\n| [Feature 1] | \u2705 [Advantage] | \u274C [Disadvantage] |\n| [Feature 2] | \u2705 [Advantage] | \u274C [Disadvantage] |\n| [Feature 3] | \u2705 [Advantage] | \u274C [Disadvantage] |\n| [Feature 4] | \u2705 [Advantage] | \u274C [Disadvantage] |\n| [Feature 5] | \u2705 [Advantage] | \u274C [Disadvantage] |\n\n---\n\n## Roadmap Considerations\n\n### Current State\n- [Current capability/status point]\n- [Current capability/status point]\n- [Current capability/status point]\n\n### Potential Enhancements\n| Priority | Enhancement |\n| -------- | ------------------------- |\n| High | [Enhancement description] |\n| High | [Enhancement description] |\n| Medium | [Enhancement description] |\n| Medium | [Enhancement description] |\n| Low | [Enhancement description] |\n\n---\n\n## Technical Foundation\n\n| Component | Choice | Why |\n| ----------- | ------------------- | ----------- |\n| [Component] | [Technology choice] | [Rationale] |\n| [Component] | [Technology choice] | [Rationale] |\n| [Component] | [Technology choice] | [Rationale] |\n| [Component] | [Technology choice] | [Rationale] |\n| [Component] | [Technology choice] | [Rationale] |\n\n---\n\n## Getting Started\n\n### For New Implementations\n1. [Step 1]\n2. [Step 2]\n3. [Step 3]\n4. [Step 4]\n5. [Step 5]\n6. [Step 6]\n\n### For Existing Users\n- [Migration/upgrade consideration]\n- [Data preservation note]\n- [Compliance/audit note]\n\n---\n\n## Summary\n\n**[Product Name]** transforms [domain/industry] operations by:\n\n1. **[Verb-ing]** [benefit/outcome]\n2. **[Verb-ing]** [benefit/outcome]\n3. **[Verb-ing]** [benefit/outcome]\n4. **[Verb-ing]** [benefit/outcome]\n5. **[Verb-ing]** [benefit/outcome]\n\n---\n\n## Document Information\n\n| | |\n| ---------------------- | ------------------------------ |\n| **Version** | [Version number] |\n| **Date** | [Current date] |\n| **Classification** | Internal - Executive Summary |\n| **Full Specification** | See `product-specification.md` |\n\n---\n\n*For technical details, data models, and implementation specifications, refer to the complete Product Specification Document.*\n```\n\n# Writing Standards\n- **Tone:** Confident, data-informed, strategic\n- **Length:** Comprehensive but scannable (typically 200-400 lines)\n- **Language:** Executive-friendly, minimal jargon\n- **Visuals:** Use tables for structured data, ASCII diagrams for flows/architecture\n- **Icons:** Use emoji icons (\u23F1\uFE0F, \u2705, \uD83D\uDCCA, \uD83D\uDD10, \uD83D\uDCC1, \uD83D\uDD04, 1\uFE0F\u20E3, 2\uFE0F\u20E3, etc.) to improve scannability\n- **Checkmarks:** Use \u2705 for features/advantages, \u274C for competitor disadvantages\n\n# Quality Criteria\n1. A busy executive can understand the product in under 5 minutes\n2. The value proposition is immediately clear from the first sections\n3. Tables make data comparison easy and quick to scan\n4. Visual diagrams help explain system architecture and workflows\n5. Competitive positioning is explicit and easy to understand\n6. Technical and non-technical stakeholders can both extract value\n\n# Special Instructions\n- If information is incomplete, make reasonable assumptions and mark with [ASSUMPTION] or use placeholder text like [TBD]\n- Prioritize clarity over comprehensiveness\n- Lead with impact, not features\n- Use active voice and strong verbs\n- Avoid superlatives without supporting data\n- If competitive information is sparse, focus on unique value rather than comparisons\n- Adapt section headers to match the product domain (e.g., \"Financial Features\" for fintech, \"Clinical Workflow\" for healthcare)\n- Skip sections that don't apply to the product type (e.g., \"Technical Foundation\" for non-software products)\n";
|
|
6
|
+
export declare const QA_TEST_SCENARIO_TEMPLATE = "# Role & Expertise\nYou are a Senior QA Architect and Test Strategy Expert with extensive experience in creating focused, actionable test plans. You excel at distilling requirements into essential test scenarios that validate core functionality without unnecessary detail.\n\n# Context\nYou will receive a Product Requirements Document (PRD) that outlines features and requirements. Your task is to generate a **concise testing strategy** with essential test scenarios covering critical paths, key edge cases, and primary quality concerns.\n\n# Primary Objective\nCreate a focused testing document that covers the most important functional requirements, critical user flows, high-risk edge cases, and key quality attributes. Prioritize clarity and actionability over exhaustive coverage.\n\n# Process\n\n## 1. PRD Analysis (Focus on Essentials)\n- Identify **core features** and **critical user flows**\n- Extract **must-have acceptance criteria** only\n- Note **high-risk areas** and integration points\n- Skip minor edge cases and cosmetic details\n\n## 2. Test Scenario Generation (Strategic Coverage)\n\nGenerate only:\n\n**Critical Happy Path** (2-3 scenarios per feature)\n- Primary user journey validation\n- Core functionality verification\n\n**High-Risk Edge Cases** (1-2 per feature)\n- Data boundary conditions\n- Error states that impact functionality\n- Integration failure points\n\n**Key Quality Checks** (as needed)\n- Performance bottlenecks\n- Security vulnerabilities\n- Critical usability issues\n\n**Skip:** Low-priority edge cases, cosmetic issues, obvious validations\n\n## 3. Scenario Documentation (Streamlined Format)\nEach scenario includes only:\n- **ID & Story**: TS-[#] | [Feature Name]\n- **Type**: Functional, Edge Case, Performance, Security\n- **Priority**: CRITICAL or HIGH only\n- **Test Steps**: 3-5 key actions\n- **Expected Result**: One clear outcome\n- **Notes**: Only if critical context needed\n\n# Input Specifications\n- **PRD Document**: User stories, features, acceptance criteria\n- **Format**: Any structured or narrative format\n- **Focus**: Extract essential requirements only\n\n# Output Requirements\n\n## Concise Format Structure\n\n### Test Coverage Summary (Compact)\n\n## Test Coverage Overview\n- **Features Covered**: [#] core features\n- **Total Scenarios**: [X] (targeting 20-30 scenarios max for typical features)\n- **Critical Path**: [X] scenarios\n- **High-Risk Edge Cases**: [X] scenarios\n- **Priority Distribution**: CRITICAL: [X] | HIGH: [X]\n\n---\n\n### Essential Test Scenarios\n\n| ID | Feature | Scenario | Type | Priority | Steps | Expected Result |\n|----|---------|----------|------|----------|-------|-----------------|\n| TS-01 | [Name] | [Brief description] | Functional | CRITICAL | 1. [Action]<br>2. [Action]<br>3. [Verify] | [Clear outcome] |\n| TS-02 | [Name] | [Brief description] | Edge Case | HIGH | 1. [Action]<br>2. [Action]<br>3. [Verify] | [Clear outcome] |\n\n---\n\n### Performance & Environment Notes (If Applicable)\n\n**Performance Criteria:**\n- [Key metric]: [Threshold]\n- [Key metric]: [Threshold]\n\n**Test Environments:**\n- [Platform 1]: [Critical versions only]\n- [Platform 2]: [Critical versions only]\n\n---\n\n### Test Data Requirements (Essential Only)\n\n- [Critical data type]: [Min specification]\n- [Edge case data]: [Key examples]\n\n---\n\n### Execution Notes\n\n**Prerequisites:**\n- [Essential setup only]\n\n**Key Dependencies:**\n- [Critical blockers only]\n\n# Quality Standards\n\n- **Focus on risk**: Cover high-impact scenarios, skip obvious validations\n- **Be concise**: 3-5 test steps maximum per scenario\n- **Prioritize ruthlessly**: Only CRITICAL and HIGH priority items\n- **Target scope**: 15-30 scenarios for typical features, 30-50 for complex products\n- **Clear outcomes**: One measurable result per scenario\n\n# Special Instructions\n\n## Brevity Rules\n- **Omit** detailed preconditions unless critical\n- **Omit** low-priority scenarios entirely\n- **Omit** obvious test data specifications\n- **Omit** exhaustive device/browser matrices (note key platforms only)\n- **Combine** related scenarios where logical\n\n## Prioritization (Strict)\nInclude only:\n- **CRITICAL**: Core functionality, security, data integrity\n- **HIGH**: Primary user flows, high-risk integrations\n- **OMIT**: Medium/Low priority items\n\n## Smart Assumptions\n- Standard validation (email format, required fields) is assumed tested\n- Basic UI functionality is assumed working\n- Focus on **what could break** or **what's unique** to this feature\n\n# Output Delivery\n\nGenerate a **concise** testing document (targeting 50-150 lines for simple features, 150-300 for complex features). Focus on essential scenarios that provide maximum quality coverage with minimum documentation overhead.\n";
|
|
7
|
+
export declare const SKILL_CREATOR_TEMPLATE = "# Skill Creator\n\nThis skill provides guidance for creating effective skills.\n\n## About Skills\n\nSkills are modular, self-contained packages that extend Claude's capabilities by providing\nspecialized knowledge, workflows, and tools. Think of them as \"onboarding guides\" for specific\ndomains or tasks\u2014they transform Claude from a general-purpose agent into a specialized agent\nequipped with procedural knowledge that no model can fully possess.\n\n### What Skills Provide\n\n1. Specialized workflows - Multi-step procedures for specific domains\n2. Tool integrations - Instructions for working with specific file formats or APIs\n3. Domain expertise - Company-specific knowledge, schemas, business logic\n4. Bundled resources - Scripts, references, and assets for complex and repetitive tasks\n\n## Core Principles\n\n### Concise is Key\n\nThe context window is a public good. Skills share the context window with everything else Claude needs: system prompt, conversation history, other Skills' metadata, and the actual user request.\n\n**Default assumption: Claude is already very smart.** Only add context Claude doesn't already have. Challenge each piece of information: \"Does Claude really need this explanation?\" and \"Does this paragraph justify its token cost?\"\n\nPrefer concise examples over verbose explanations.\n\n### Set Appropriate Degrees of Freedom\n\nMatch the level of specificity to the task's fragility and variability:\n\n**High freedom (text-based instructions)**: Use when multiple approaches are valid, decisions depend on context, or heuristics guide the approach.\n\n**Medium freedom (pseudocode or scripts with parameters)**: Use when a preferred pattern exists, some variation is acceptable, or configuration affects behavior.\n\n**Low freedom (specific scripts, few parameters)**: Use when operations are fragile and error-prone, consistency is critical, or a specific sequence must be followed.\n\nThink of Claude as exploring a path: a narrow bridge with cliffs needs specific guardrails (low freedom), while an open field allows many routes (high freedom).\n\n### Anatomy of a Skill\n\nEvery skill consists of a required SKILL.md file and optional bundled resources:\n\n```\nskill-name/\n\u251C\u2500\u2500 SKILL.md (required)\n\u2502 \u251C\u2500\u2500 YAML frontmatter metadata (required)\n\u2502 \u2502 \u251C\u2500\u2500 name: (required)\n\u2502 \u2502 \u2514\u2500\u2500 description: (required)\n\u2502 \u2514\u2500\u2500 Markdown instructions (required)\n\u2514\u2500\u2500 Bundled Resources (optional)\n \u251C\u2500\u2500 scripts/ - Executable code (Python/Bash/etc.)\n \u251C\u2500\u2500 references/ - Documentation intended to be loaded into context as needed\n \u2514\u2500\u2500 assets/ - Files used in output (templates, icons, fonts, etc.)\n```\n\n#### SKILL.md (required)\n\nEvery SKILL.md consists of:\n\n- **Frontmatter** (YAML): Contains `name` and `description` fields. These are the only fields that Claude reads to determine when the skill gets used, thus it is very important to be clear and comprehensive in describing what the skill is, and when it should be used.\n- **Body** (Markdown): Instructions and guidance for using the skill. Only loaded AFTER the skill triggers (if at all).\n\n#### Bundled Resources (optional)\n\n##### Scripts (`scripts/`)\n\nExecutable code (Python/Bash/etc.) for tasks that require deterministic reliability or are repeatedly rewritten.\n\n- **When to include**: When the same code is being rewritten repeatedly or deterministic reliability is needed\n- **Example**: `scripts/rotate_pdf.py` for PDF rotation tasks\n- **Benefits**: Token efficient, deterministic, may be executed without loading into context\n- **Note**: Scripts may still need to be read by Claude for patching or environment-specific adjustments\n\n##### References (`references/`)\n\nDocumentation and reference material intended to be loaded as needed into context to inform Claude's process and thinking.\n\n- **When to include**: For documentation that Claude should reference while working\n- **Examples**: `references/finance.md` for financial schemas, `references/mnda.md` for company NDA template, `references/policies.md` for company policies, `references/api_docs.md` for API specifications\n- **Use cases**: Database schemas, API documentation, domain knowledge, company policies, detailed workflow guides\n- **Benefits**: Keeps SKILL.md lean, loaded only when Claude determines it's needed\n- **Best practice**: If files are large (>10k words), include grep search patterns in SKILL.md\n- **Avoid duplication**: Information should live in either SKILL.md or references files, not both. Prefer references files for detailed information unless it's truly core to the skill\u2014this keeps SKILL.md lean while making information discoverable without hogging the context window. Keep only essential procedural instructions and workflow guidance in SKILL.md; move detailed reference material, schemas, and examples to references files.\n\n##### Assets (`assets/`)\n\nFiles not intended to be loaded into context, but rather used within the output Claude produces.\n\n- **When to include**: When the skill needs files that will be used in the final output\n- **Examples**: `assets/logo.png` for brand assets, `assets/slides.pptx` for PowerPoint templates, `assets/frontend-template/` for HTML/React boilerplate, `assets/font.ttf` for typography\n- **Use cases**: Templates, images, icons, boilerplate code, fonts, sample documents that get copied or modified\n- **Benefits**: Separates output resources from documentation, enables Claude to use files without loading them into context\n\n#### What to Not Include in a Skill\n\nA skill should only contain essential files that directly support its functionality. do NOT create extraneous documentation or auxiliary files, including:\n\n- README.md\n- INSTALLATION_GUIDE.md\n- QUICK_REFERENCE.md\n- CHANGELOG.md\n- etc.\n\nThe skill should only contain the information needed for an AI agent to do the job at hand. It should not contain auxilary context about the process that went into creating it, setup and testing procedures, user-facing documentation, etc. Creating additional documentation files just adds clutter and confusion.\n\n### Progressive Disclosure Design Principle\n\nSkills use a three-level loading system to manage context efficiently:\n\n1. **Metadata (name + description)** - Always in context (~100 words)\n2. **SKILL.md body** - When skill triggers (<5k words)\n3. **Bundled resources** - As needed by Claude (Unlimited because scripts can be executed without reading into context window)\n\n#### Progressive Disclosure Patterns\n\nKeep SKILL.md body to the essentials and under 500 lines to minimize context bloat. Split content into separate files when approaching this limit. When splitting out content into other files, it is very important to reference them from SKILL.md and describe clearly when to read them, to ensure the reader of the skill knows they exist and when to use them.\n\n**Key principle:** When a skill supports multiple variations, frameworks, or options, keep only the core workflow and selection guidance in SKILL.md. Move variant-specific details (patterns, examples, configuration) into separate reference files.\n\n**Pattern 1: High-level guide with references**\n\n```markdown\n# PDF Processing\n\n## Quick start\n\nExtract text with pdfplumber:\n[code example]\n\n## Advanced features\n\n- **Form filling**: See [FORMS.md](FORMS.md) for complete guide\n- **API reference**: See [REFERENCE.md](REFERENCE.md) for all methods\n- **Examples**: See [EXAMPLES.md](EXAMPLES.md) for common patterns\n```\n\nClaude loads FORMS.md, REFERENCE.md, or EXAMPLES.md only when needed.\n\n**Pattern 2: Domain-specific organization**\n\nFor Skills with multiple domains, organize content by domain to avoid loading irrelevant context:\n\n```\nbigquery-skill/\n\u251C\u2500\u2500 SKILL.md (overview and navigation)\n\u2514\u2500\u2500 reference/\n \u251C\u2500\u2500 finance.md (revenue, billing metrics)\n \u251C\u2500\u2500 sales.md (opportunities, pipeline)\n \u251C\u2500\u2500 product.md (API usage, features)\n \u2514\u2500\u2500 marketing.md (campaigns, attribution)\n```\n\nWhen a user asks about sales metrics, Claude only reads sales.md.\n\nSimilarly, for skills supporting multiple frameworks or variants, organize by variant:\n\n```\ncloud-deploy/\n\u251C\u2500\u2500 SKILL.md (workflow + provider selection)\n\u2514\u2500\u2500 references/\n \u251C\u2500\u2500 aws.md (AWS deployment patterns)\n \u251C\u2500\u2500 gcp.md (GCP deployment patterns)\n \u2514\u2500\u2500 azure.md (Azure deployment patterns)\n```\n\nWhen the user chooses AWS, Claude only reads aws.md.\n\n**Pattern 3: Conditional details**\n\nShow basic content, link to advanced content:\n\n```markdown\n# DOCX Processing\n\n## Creating documents\n\nUse docx-js for new documents. See [DOCX-JS.md](DOCX-JS.md).\n\n## Editing documents\n\nFor simple edits, modify the XML directly.\n\n**For tracked changes**: See [REDLINING.md](REDLINING.md)\n**For OOXML details**: See [OOXML.md](OOXML.md)\n```\n\nClaude reads REDLINING.md or OOXML.md only when the user needs those features.\n\n**Important guidelines:**\n\n- **Avoid deeply nested references** - Keep references one level deep from SKILL.md. All reference files should link directly from SKILL.md.\n- **Structure longer reference files** - For files longer than 100 lines, include a table of contents at the top so Claude can see the full scope when previewing.\n\n## Skill Creation Process\n\nSkill creation involves these steps:\n\n1. Understand the skill with concrete examples\n2. Plan reusable skill contents (scripts, references, assets)\n3. Initialize the skill (run init_skill.py)\n4. Edit the skill (implement resources and write SKILL.md)\n5. Package the skill (run package_skill.py)\n6. Iterate based on real usage\n\nFollow these steps in order, skipping only if there is a clear reason why they are not applicable.\n\n### Step 1: Understanding the Skill with Concrete Examples\n\nSkip this step only when the skill's usage patterns are already clearly understood. It remains valuable even when working with an existing skill.\n\nTo create an effective skill, clearly understand concrete examples of how the skill will be used. This understanding can come from either direct user examples or generated examples that are validated with user feedback.\n\nFor example, when building an image-editor skill, relevant questions include:\n\n- \"What functionality should the image-editor skill support? Editing, rotating, anything else?\"\n- \"Can you give some examples of how this skill would be used?\"\n- \"I can imagine users asking for things like 'Remove the red-eye from this image' or 'Rotate this image'. Are there other ways you imagine this skill being used?\"\n- \"What would a user say that should trigger this skill?\"\n\nTo avoid overwhelming users, avoid asking too many questions in a single message. Start with the most important questions and follow up as needed for better effectiveness.\n\nConclude this step when there is a clear sense of the functionality the skill should support.\n\n### Step 2: Planning the Reusable Skill Contents\n\nTo turn concrete examples into an effective skill, analyze each example by:\n\n1. Considering how to execute on the example from scratch\n2. Identifying what scripts, references, and assets would be helpful when executing these workflows repeatedly\n\nExample: When building a `pdf-editor` skill to handle queries like \"Help me rotate this PDF,\" the analysis shows:\n\n1. Rotating a PDF requires re-writing the same code each time\n2. A `scripts/rotate_pdf.py` script would be helpful to store in the skill\n\nExample: When designing a `frontend-webapp-builder` skill for queries like \"Build me a todo app\" or \"Build me a dashboard to track my steps,\" the analysis shows:\n\n1. Writing a frontend webapp requires the same boilerplate HTML/React each time\n2. An `assets/hello-world/` template containing the boilerplate HTML/React project files would be helpful to store in the skill\n\nExample: When building a `big-query` skill to handle queries like \"How many users have logged in today?\" the analysis shows:\n\n1. Querying BigQuery requires re-discovering the table schemas and relationships each time\n2. A `references/schema.md` file documenting the table schemas would be helpful to store in the skill\n\nTo establish the skill's contents, analyze each concrete example to create a list of the reusable resources to include: scripts, references, and assets.\n\n### Step 3: Initializing the Skill\n\nAt this point, it is time to actually create the skill.\n\nSkip this step only if the skill being developed already exists, and iteration or packaging is needed. In this case, continue to the next step.\n\nWhen creating a new skill from scratch, always run the `init_skill.py` script. The script conveniently generates a new template skill directory that automatically includes everything a skill requires, making the skill creation process much more efficient and reliable.\n\nUsage:\n\n```bash\nscripts/init_skill.py <skill-name> --path <output-directory>\n```\n\nThe script:\n\n- Creates the skill directory at the specified path\n- Generates a SKILL.md template with proper frontmatter and TODO placeholders\n- Creates example resource directories: `scripts/`, `references/`, and `assets/`\n- Adds example files in each directory that can be customized or deleted\n\nAfter initialization, customize or remove the generated SKILL.md and example files as needed.\n\n### Step 4: Edit the Skill\n\nWhen editing the (newly-generated or existing) skill, remember that the skill is being created for another instance of Claude to use. Include information that would be beneficial and non-obvious to Claude. Consider what procedural knowledge, domain-specific details, or reusable assets would help another Claude instance execute these tasks more effectively.\n\n#### Learn Proven Design Patterns\n\nConsult these helpful guides based on your skill's needs:\n\n- **Multi-step processes**: See references/workflows.md for sequential workflows and conditional logic\n- **Specific output formats or quality standards**: See references/output-patterns.md for template and example patterns\n\nThese files contain established best practices for effective skill design.\n\n#### Start with Reusable Skill Contents\n\nTo begin implementation, start with the reusable resources identified above: `scripts/`, `references/`, and `assets/` files. Note that this step may require user input. For example, when implementing a `brand-guidelines` skill, the user may need to provide brand assets or templates to store in `assets/`, or documentation to store in `references/`.\n\nAdded scripts must be tested by actually running them to ensure there are no bugs and that the output matches what is expected. If there are many similar scripts, only a representative sample needs to be tested to ensure confidence that they all work while balancing time to completion.\n\nAny example files and directories not needed for the skill should be deleted. The initialization script creates example files in `scripts/`, `references/`, and `assets/` to demonstrate structure, but most skills won't need all of them.\n\n#### Update SKILL.md\n\n**Writing Guidelines:** Always use imperative/infinitive form.\n\n##### Frontmatter\n\nWrite the YAML frontmatter with `name` and `description`:\n\n- `name`: The skill name\n- `description`: This is the primary triggering mechanism for your skill, and helps Claude understand when to use the skill.\n - Include both what the Skill does and specific triggers/contexts for when to use it.\n - Include all \"when to use\" information here - Not in the body. The body is only loaded after triggering, so \"When to Use This Skill\" sections in the body are not helpful to Claude.\n - Example description for a `docx` skill: \"Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. Use when Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks\"\n\nDo not include any other fields in YAML frontmatter.\n\n##### Body\n\nWrite instructions for using the skill and its bundled resources.\n\n### Step 5: Packaging a Skill\n\nOnce development of the skill is complete, it must be packaged into a distributable .skill file that gets shared with the user. The packaging process automatically validates the skill first to ensure it meets all requirements:\n\n```bash\nscripts/package_skill.py <path/to/skill-folder>\n```\n\nOptional output directory specification:\n\n```bash\nscripts/package_skill.py <path/to/skill-folder> ./dist\n```\n\nThe packaging script will:\n\n1. **Validate** the skill automatically, checking:\n\n - YAML frontmatter format and required fields\n - Skill naming conventions and directory structure\n - Description completeness and quality\n - File organization and resource references\n\n2. **Package** the skill if validation passes, creating a .skill file named after the skill (e.g., `my-skill.skill`) that includes all files and maintains the proper directory structure for distribution. The .skill file is a zip file with a .skill extension.\n\nIf validation fails, the script will report the errors and exit without creating a package. Fix any validation errors and run the packaging command again.\n\n### Step 6: Iterate\n\nAfter testing the skill, users may request improvements. Often this happens right after using the skill, with fresh context of how the skill performed.\n\n**Iteration workflow:**\n\n1. Use the skill on real tasks\n2. Notice struggles or inefficiencies\n3. Identify how SKILL.md or bundled resources should be updated\n4. Implement changes and test again\n";
|
|
8
|
+
export declare const STORY_SINGLE_TEMPLATE = "### \u2705 **Prompt: Generate a Single Jira Story from QA Prompt**\n\nYou are a **Jira expert, senior product manager, and QA analyst**.\n\nYour job is to convert the **provided QA request / defect / test finding / requirement summary** into **ONE Jira User Story** that is clear, business-focused, and ready for development.\n\n---\n\n### \uD83D\uDD3D **Input**\n\n```\n{QA_TEXT}\n```\n\n---\n\n### \uD83D\uDD3C **Output Rules**\n\n* Use **Markdown only**\n* Produce **ONE (1) User Story only**\n* Must be written from **end-user perspective**\n* Title must be **clear and non-technical**\n* Story must be **independently deliverable and testable**\n* Rewrite unclear or fragmented input into a **clean and business-focused requirement**\n* If information is missing, mark it **TBD** (do NOT assume)\n\n---\n\n### \uD83E\uDDF1 **Story Structure**\n\n```\n## \uD83E\uDDFE Story: {Story Title}\n\n### \uD83E\uDDD1 As a {USER ROLE},\nI want to {USER INTENT}\nso that I can {BUSINESS VALUE}\n\n### \uD83D\uDD28 Acceptance Criteria (BDD Format)\n- **Given** {context}\n- **When** {action}\n- **Then** {expected result}\n\n(Add 4\u20138 acceptance criteria)\n\n### \uD83D\uDCCC Expected Result\n- Bullet points describing what success looks like\n\n### \uD83D\uDEAB Non-Goals (if applicable)\n- Bullet points of what is explicitly NOT included\n\n### \uD83D\uDDD2\uFE0F Notes (optional)\n- Clarifications / constraints / dependencies / edge cases\n```\n\n---\n\n### \u26A0\uFE0F Validation Rules Before Generating\n\nThe story must:\n\n* Focus on **one user outcome only**\n* Avoid **technical solutioning** (no APIs, tables, database fields, component names)\n* Avoid **phrases like \"fix bug\", \"backend update\", \"add field X\"**\n* Convert QA language into **business language**\n\n---\n\n### \uD83C\uDFC1 Final Output\n\nReturn **ONLY the completed story in Markdown**, nothing else.\n";
|
|
9
|
+
export declare const PROMPT_TEMPLATES: Record<string, string>;
|
|
10
|
+
//# sourceMappingURL=prompt-templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-templates.d.ts","sourceRoot":"","sources":["../../src/core/prompt-templates.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,29FA6CjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,kjCA+ChC,CAAC;AAEF,eAAO,MAAM,4BAA4B,ioJAoJxC,CAAC;AAEF,eAAO,MAAM,sBAAsB,s4OAmMlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,y0VAiSlC,CAAC;AAEF,eAAO,MAAM,yBAAyB,8sJAqIrC,CAAC;AAEF,eAAO,MAAM,sBAAsB,osjBA8VlC,CAAC;AAEF,eAAO,MAAM,qBAAqB,o2DAsEjC,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASnD,CAAC"}
|