@dedesfr/prompter 0.4.2 → 0.4.3
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/dist/cli/index.js +1 -11
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/prd-agent-generator.d.ts +11 -0
- package/dist/commands/prd-agent-generator.d.ts.map +1 -0
- package/dist/commands/prd-agent-generator.js +95 -0
- package/dist/commands/prd-agent-generator.js.map +1 -0
- package/dist/core/configurators/slash/antigravity.d.ts.map +1 -1
- package/dist/core/configurators/slash/antigravity.js +2 -0
- package/dist/core/configurators/slash/antigravity.js.map +1 -1
- package/dist/core/configurators/slash/base.js +1 -1
- package/dist/core/configurators/slash/base.js.map +1 -1
- package/dist/core/configurators/slash/claude.d.ts.map +1 -1
- package/dist/core/configurators/slash/claude.js +2 -0
- package/dist/core/configurators/slash/claude.js.map +1 -1
- package/dist/core/configurators/slash/codex.d.ts.map +1 -1
- package/dist/core/configurators/slash/codex.js +2 -0
- package/dist/core/configurators/slash/codex.js.map +1 -1
- package/dist/core/configurators/slash/github-copilot.d.ts.map +1 -1
- package/dist/core/configurators/slash/github-copilot.js +2 -0
- package/dist/core/configurators/slash/github-copilot.js.map +1 -1
- package/dist/core/configurators/slash/kilocode.d.ts.map +1 -1
- package/dist/core/configurators/slash/kilocode.js +2 -0
- package/dist/core/configurators/slash/kilocode.js.map +1 -1
- package/dist/core/configurators/slash/opencode.d.ts.map +1 -1
- package/dist/core/configurators/slash/opencode.js +2 -0
- package/dist/core/configurators/slash/opencode.js.map +1 -1
- package/dist/core/templates/slash-command-templates.d.ts +1 -1
- package/dist/core/templates/slash-command-templates.d.ts.map +1 -1
- package/dist/core/templates/slash-command-templates.js +128 -0
- package/dist/core/templates/slash-command-templates.js.map +1 -1
- package/package.json +1 -1
- package/prompt/prd-agent-generator.md +147 -0
- package/src/cli/index.ts +1 -12
- package/src/commands/prd-agent-generator.ts +115 -0
- package/src/core/configurators/slash/antigravity.ts +2 -0
- package/src/core/configurators/slash/base.ts +1 -1
- package/src/core/configurators/slash/claude.ts +2 -0
- package/src/core/configurators/slash/codex.ts +2 -0
- package/src/core/configurators/slash/github-copilot.ts +2 -0
- package/src/core/configurators/slash/kilocode.ts +2 -0
- package/src/core/configurators/slash/opencode.ts +2 -0
- package/src/core/templates/slash-command-templates.ts +130 -1
package/dist/cli/index.js
CHANGED
|
@@ -3,12 +3,11 @@ import { InitCommand } from '../commands/init.js';
|
|
|
3
3
|
import { UpdateCommand } from '../commands/update.js';
|
|
4
4
|
import { ListCommand } from '../commands/list.js';
|
|
5
5
|
import { GuideCommand } from '../commands/guide.js';
|
|
6
|
-
import { AiHumanizerCommand } from '../commands/ai-humanizer.js';
|
|
7
6
|
const program = new Command();
|
|
8
7
|
program
|
|
9
8
|
.name('prompter')
|
|
10
9
|
.description('Enhance prompts directly in your AI coding workflow')
|
|
11
|
-
.version('0.4.
|
|
10
|
+
.version('0.4.3');
|
|
12
11
|
program
|
|
13
12
|
.command('init')
|
|
14
13
|
.description('Initialize Prompter in your project')
|
|
@@ -40,14 +39,5 @@ program
|
|
|
40
39
|
const guideCommand = new GuideCommand();
|
|
41
40
|
await guideCommand.execute();
|
|
42
41
|
});
|
|
43
|
-
program
|
|
44
|
-
.command('ai-humanizer')
|
|
45
|
-
.description('Generate AI humanizer workflow files for configured tools')
|
|
46
|
-
.option('--tools <tools...>', 'Specify AI tools to generate for')
|
|
47
|
-
.option('--no-interactive', 'Run without interactive prompts')
|
|
48
|
-
.action(async (options) => {
|
|
49
|
-
const aiHumanizerCommand = new AiHumanizerCommand();
|
|
50
|
-
await aiHumanizerCommand.execute(options);
|
|
51
|
-
});
|
|
52
42
|
program.parse();
|
|
53
43
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,qDAAqD,CAAC;KAClE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,oBAAoB,EAAE,gGAAgG,CAAC;KAC9H,MAAM,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,MAAM,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC;AAClC,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,MAAM,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IACxC,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface PrdAgentGeneratorOptions {
|
|
2
|
+
tools?: string[];
|
|
3
|
+
noInteractive?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare class PrdAgentGeneratorCommand {
|
|
6
|
+
execute(options?: PrdAgentGeneratorOptions): Promise<void>;
|
|
7
|
+
private fileExists;
|
|
8
|
+
private detectConfiguredTools;
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=prd-agent-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prd-agent-generator.d.ts","sourceRoot":"","sources":["../../src/commands/prd-agent-generator.ts"],"names":[],"mappings":"AAMA,UAAU,wBAAwB;IAC9B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,wBAAwB;IAC3B,OAAO,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;YAyEtD,UAAU;YASV,qBAAqB;CAoBtC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { promises as fs } from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { PrompterConfig, PROMPTER_MARKERS } from '../core/config.js';
|
|
5
|
+
import { registry } from '../core/configurators/slash/index.js';
|
|
6
|
+
export class PrdAgentGeneratorCommand {
|
|
7
|
+
async execute(options = {}) {
|
|
8
|
+
const projectPath = process.cwd();
|
|
9
|
+
// Check if initialized
|
|
10
|
+
if (!await PrompterConfig.prompterDirExists(projectPath)) {
|
|
11
|
+
console.log(chalk.red('\n❌ Prompter is not initialized in this project.\n'));
|
|
12
|
+
console.log(chalk.gray(' Run `prompter init` first.\n'));
|
|
13
|
+
process.exitCode = 1;
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
console.log(chalk.blue('\n🤖 Generating PRD agent generator workflow files...\n'));
|
|
17
|
+
// Detect currently configured tools
|
|
18
|
+
const configuredTools = await this.detectConfiguredTools(projectPath);
|
|
19
|
+
if (configuredTools.length === 0) {
|
|
20
|
+
console.log(chalk.yellow('⚠️ No tools configured yet.\n'));
|
|
21
|
+
console.log(chalk.gray(' Run `prompter init` to configure AI tools first.\n'));
|
|
22
|
+
process.exitCode = 1;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Generate prd-agent-generator workflow files for all configured tools
|
|
26
|
+
let successCount = 0;
|
|
27
|
+
let failCount = 0;
|
|
28
|
+
for (const toolId of configuredTools) {
|
|
29
|
+
const configurator = registry.get(toolId);
|
|
30
|
+
if (configurator) {
|
|
31
|
+
try {
|
|
32
|
+
// Generate only the prd-agent-generator workflow file
|
|
33
|
+
const body = configurator['getBody']('prd-agent-generator');
|
|
34
|
+
const relativePath = configurator['getRelativePath']('prd-agent-generator');
|
|
35
|
+
const filePath = path.join(projectPath, relativePath);
|
|
36
|
+
// Ensure directory exists
|
|
37
|
+
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
38
|
+
// Check if file exists
|
|
39
|
+
const fileExists = await this.fileExists(filePath);
|
|
40
|
+
if (fileExists) {
|
|
41
|
+
console.log(chalk.yellow('⚠️') + ` ${chalk.cyan(relativePath)} already exists, skipping`);
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
// Get frontmatter if needed
|
|
45
|
+
const frontmatter = configurator['getFrontmatter']('prd-agent-generator');
|
|
46
|
+
const sections = [];
|
|
47
|
+
if (frontmatter) {
|
|
48
|
+
sections.push(frontmatter.trim());
|
|
49
|
+
}
|
|
50
|
+
sections.push(`${PROMPTER_MARKERS.start}\n${body}\n${PROMPTER_MARKERS.end}`);
|
|
51
|
+
const content = sections.join('\n') + '\n';
|
|
52
|
+
await fs.writeFile(filePath, content, 'utf-8');
|
|
53
|
+
console.log(chalk.green('✓') + ` Created ${chalk.cyan(relativePath)}`);
|
|
54
|
+
successCount++;
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
console.log(chalk.red('✗') + ` Failed to create files for ${toolId}: ${error}`);
|
|
58
|
+
failCount++;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Success message
|
|
63
|
+
console.log(chalk.green(`\n✅ PRD agent generator workflow files created successfully!\n`));
|
|
64
|
+
console.log(chalk.blue('Next steps:'));
|
|
65
|
+
console.log(chalk.gray(' 1. Use /prd-agent-generator in your AI tool to create PRDs'));
|
|
66
|
+
console.log(chalk.gray(' 2. PRDs will be saved to prompter/<slug>/prd-agent.md\n'));
|
|
67
|
+
}
|
|
68
|
+
async fileExists(filePath) {
|
|
69
|
+
try {
|
|
70
|
+
await fs.access(filePath);
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async detectConfiguredTools(projectPath) {
|
|
78
|
+
const configuredTools = [];
|
|
79
|
+
const allConfigurators = registry.getAll();
|
|
80
|
+
for (const configurator of allConfigurators) {
|
|
81
|
+
const targets = configurator.getTargets();
|
|
82
|
+
if (targets.length === 0)
|
|
83
|
+
continue;
|
|
84
|
+
// Check if any workflow file exists for this tool
|
|
85
|
+
const firstTarget = targets[0];
|
|
86
|
+
const firstPath = path.join(projectPath, firstTarget.path);
|
|
87
|
+
const exists = await this.fileExists(path.dirname(firstPath));
|
|
88
|
+
if (exists) {
|
|
89
|
+
configuredTools.push(configurator.toolId);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return configuredTools;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=prd-agent-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prd-agent-generator.js","sourceRoot":"","sources":["../../src/commands/prd-agent-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAgB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAOhE,MAAM,OAAO,wBAAwB;IACjC,KAAK,CAAC,OAAO,CAAC,UAAoC,EAAE;QAChD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAElC,uBAAuB;QACvB,IAAI,CAAC,MAAM,cAAc,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC,CAAC;QAEnF,oCAAoC;QACpC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAEtE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC;YACjF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACX,CAAC;QAED,uEAAuE;QACvE,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,YAAY,EAAE,CAAC;gBACf,IAAI,CAAC;oBACD,sDAAsD;oBACtD,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC;oBAC5D,MAAM,YAAY,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC,qBAAqB,CAAC,CAAC;oBAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;oBAEtD,0BAA0B;oBAC1B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAE5D,uBAAuB;oBACvB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAEnD,IAAI,UAAU,EAAE,CAAC;wBACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;wBAC1F,SAAS;oBACb,CAAC;oBAED,4BAA4B;oBAC5B,MAAM,WAAW,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC;oBAC1E,MAAM,QAAQ,GAAa,EAAE,CAAC;oBAC9B,IAAI,WAAW,EAAE,CAAC;wBACd,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;oBACtC,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,KAAK,KAAK,IAAI,KAAK,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC7E,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBAE3C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;oBACvE,YAAY,EAAE,CAAC;gBACnB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,+BAA+B,MAAM,KAAK,KAAK,EAAE,CAAC,CAAC;oBAChF,SAAS,EAAE,CAAC;gBAChB,CAAC;YACL,CAAC;QACL,CAAC;QAED,kBAAkB;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC,CAAC;QAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC;IACzF,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,QAAgB;QACrC,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,WAAmB;QACnD,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QAE3C,KAAK,MAAM,YAAY,IAAI,gBAAgB,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEnC,kDAAkD;YAClD,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YAE9D,IAAI,MAAM,EAAE,CAAC;gBACT,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;QACL,CAAC;QAED,OAAO,eAAe,CAAC;IAC3B,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"antigravity.d.ts","sourceRoot":"","sources":["../../../../src/core/configurators/slash/antigravity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"antigravity.d.ts","sourceRoot":"","sources":["../../../../src/core/configurators/slash/antigravity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA0B1D,qBAAa,uBAAwB,SAAQ,wBAAwB;IACjE,QAAQ,CAAC,MAAM,iBAAiB;IAChC,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;CAInE"}
|
|
@@ -2,6 +2,7 @@ import { SlashCommandConfigurator } from './base.js';
|
|
|
2
2
|
const FILE_PATHS = {
|
|
3
3
|
enhance: '.agent/workflows/prompter-enhance.md',
|
|
4
4
|
'prd-generator': '.agent/workflows/prd-generator.md',
|
|
5
|
+
'prd-agent-generator': '.agent/workflows/prd-agent-generator.md',
|
|
5
6
|
'product-brief': '.agent/workflows/product-brief.md',
|
|
6
7
|
'epic-single': '.agent/workflows/epic-single.md',
|
|
7
8
|
'story-single': '.agent/workflows/story-single.md',
|
|
@@ -12,6 +13,7 @@ const FILE_PATHS = {
|
|
|
12
13
|
const DESCRIPTIONS = {
|
|
13
14
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
14
15
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
16
|
+
'prd-agent-generator': 'Generate a PRD with autonomous assumptions (non-interactive mode)',
|
|
15
17
|
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
16
18
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
17
19
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/antigravity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,MAAM,UAAU,GAAmC;IAC/C,OAAO,EAAE,sCAAsC;IAC/C,eAAe,EAAE,mCAAmC;IACpD,eAAe,EAAE,mCAAmC;IACpD,aAAa,EAAE,iCAAiC;IAChD,cAAc,EAAE,kCAAkC;IAClD,kBAAkB,EAAE,sCAAsC;IAC1D,eAAe,EAAE,mCAAmC;IACpD,cAAc,EAAE,kCAAkC;CACrD,CAAC;AAEF,MAAM,YAAY,GAAmC;IACjD,OAAO,EAAE,0DAA0D;IACnE,eAAe,EAAE,8DAA8D;IAC/E,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,uBAAwB,SAAQ,wBAAwB;IACxD,MAAM,GAAG,aAAa,CAAC;IACvB,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;CACJ"}
|
|
1
|
+
{"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/antigravity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,MAAM,UAAU,GAAmC;IAC/C,OAAO,EAAE,sCAAsC;IAC/C,eAAe,EAAE,mCAAmC;IACpD,qBAAqB,EAAE,yCAAyC;IAChE,eAAe,EAAE,mCAAmC;IACpD,aAAa,EAAE,iCAAiC;IAChD,cAAc,EAAE,kCAAkC;IAClD,kBAAkB,EAAE,sCAAsC;IAC1D,eAAe,EAAE,mCAAmC;IACpD,cAAc,EAAE,kCAAkC;CACrD,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,uBAAwB,SAAQ,wBAAwB;IACxD,MAAM,GAAG,aAAa,CAAC;IACvB,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;CACJ"}
|
|
@@ -2,7 +2,7 @@ import { promises as fs } from 'fs';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { TemplateManager } from '../../templates/index.js';
|
|
4
4
|
import { PROMPTER_MARKERS } from '../../config.js';
|
|
5
|
-
const ALL_COMMANDS = ['enhance', 'prd-generator', 'product-brief', 'epic-single', 'story-single', 'qa-test-scenario', 'skill-creator', 'ai-humanizer'];
|
|
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
7
|
getTargets() {
|
|
8
8
|
return ALL_COMMANDS.map((id) => ({
|
|
@@ -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,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../../src/core/configurators/slash/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../../src/core/configurators/slash/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA0B1D,qBAAa,kBAAmB,SAAQ,wBAAwB;IAC5D,QAAQ,CAAC,MAAM,YAAY;IAC3B,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;CAInE"}
|
|
@@ -2,6 +2,7 @@ import { SlashCommandConfigurator } from './base.js';
|
|
|
2
2
|
const FILE_PATHS = {
|
|
3
3
|
enhance: '.claude/commands/prompter/enhance.md',
|
|
4
4
|
'prd-generator': '.claude/commands/prompter/prd-generator.md',
|
|
5
|
+
'prd-agent-generator': '.claude/commands/prompter/prd-agent-generator.md',
|
|
5
6
|
'product-brief': '.claude/commands/prompter/product-brief.md',
|
|
6
7
|
'epic-single': '.claude/commands/prompter/epic-single.md',
|
|
7
8
|
'story-single': '.claude/commands/prompter/story-single.md',
|
|
@@ -12,6 +13,7 @@ const FILE_PATHS = {
|
|
|
12
13
|
const DESCRIPTIONS = {
|
|
13
14
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
14
15
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
16
|
+
'prd-agent-generator': 'Generate a PRD with autonomous assumptions (non-interactive mode)',
|
|
15
17
|
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
16
18
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
17
19
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,MAAM,UAAU,GAAmC;IAC/C,OAAO,EAAE,sCAAsC;IAC/C,eAAe,EAAE,4CAA4C;IAC7D,eAAe,EAAE,4CAA4C;IAC7D,aAAa,EAAE,0CAA0C;IACzD,cAAc,EAAE,2CAA2C;IAC3D,kBAAkB,EAAE,+CAA+C;IACnE,eAAe,EAAE,4CAA4C;IAC7D,cAAc,EAAE,2CAA2C;CAC9D,CAAC;AAEF,MAAM,YAAY,GAAmC;IACjD,OAAO,EAAE,0DAA0D;IACnE,eAAe,EAAE,8DAA8D;IAC/E,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,kBAAmB,SAAQ,wBAAwB;IACnD,MAAM,GAAG,QAAQ,CAAC;IAClB,WAAW,GAAG,IAAI,CAAC;IAElB,eAAe,CAAC,EAAkB;QACxC,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAES,cAAc,CAAC,EAAkB;QACvC,oDAAoD;QACpD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,MAAM,UAAU,GAAmC;IAC/C,OAAO,EAAE,sCAAsC;IAC/C,eAAe,EAAE,4CAA4C;IAC7D,qBAAqB,EAAE,kDAAkD;IACzE,eAAe,EAAE,4CAA4C;IAC7D,aAAa,EAAE,0CAA0C;IACzD,cAAc,EAAE,2CAA2C;IAC3D,kBAAkB,EAAE,+CAA+C;IACnE,eAAe,EAAE,4CAA4C;IAC7D,cAAc,EAAE,2CAA2C;CAC9D,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,kBAAmB,SAAQ,wBAAwB;IACnD,MAAM,GAAG,QAAQ,CAAC;IAClB,WAAW,GAAG,IAAI,CAAC;IAElB,eAAe,CAAC,EAAkB;QACxC,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAES,cAAc,CAAC,EAAkB;QACvC,oDAAoD;QACpD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/core/configurators/slash/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/core/configurators/slash/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA0B1D,qBAAa,iBAAkB,SAAQ,wBAAwB;IAC3D,QAAQ,CAAC,MAAM,WAAW;IAC1B,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;CAInE"}
|
|
@@ -2,6 +2,7 @@ import { SlashCommandConfigurator } from './base.js';
|
|
|
2
2
|
const FILE_PATHS = {
|
|
3
3
|
enhance: '.codex/prompts/prompter-enhance.md',
|
|
4
4
|
'prd-generator': '.codex/prompts/prd-generator.md',
|
|
5
|
+
'prd-agent-generator': '.codex/prompts/prd-agent-generator.md',
|
|
5
6
|
'product-brief': '.codex/prompts/product-brief.md',
|
|
6
7
|
'epic-single': '.codex/prompts/epic-single.md',
|
|
7
8
|
'story-single': '.codex/prompts/story-single.md',
|
|
@@ -12,6 +13,7 @@ const FILE_PATHS = {
|
|
|
12
13
|
const DESCRIPTIONS = {
|
|
13
14
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
14
15
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
16
|
+
'prd-agent-generator': 'Generate a PRD with autonomous assumptions (non-interactive mode)',
|
|
15
17
|
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
16
18
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
17
19
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,MAAM,UAAU,GAAmC;IAC/C,OAAO,EAAE,oCAAoC;IAC7C,eAAe,EAAE,iCAAiC;IAClD,eAAe,EAAE,iCAAiC;IAClD,aAAa,EAAE,+BAA+B;IAC9C,cAAc,EAAE,gCAAgC;IAChD,kBAAkB,EAAE,oCAAoC;IACxD,eAAe,EAAE,iCAAiC;IAClD,cAAc,EAAE,gCAAgC;CACnD,CAAC;AAEF,MAAM,YAAY,GAAmC;IACjD,OAAO,EAAE,0DAA0D;IACnE,eAAe,EAAE,8DAA8D;IAC/E,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,iBAAkB,SAAQ,wBAAwB;IAClD,MAAM,GAAG,OAAO,CAAC;IACjB,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;CACJ"}
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,MAAM,UAAU,GAAmC;IAC/C,OAAO,EAAE,oCAAoC;IAC7C,eAAe,EAAE,iCAAiC;IAClD,qBAAqB,EAAE,uCAAuC;IAC9D,eAAe,EAAE,iCAAiC;IAClD,aAAa,EAAE,+BAA+B;IAC9C,cAAc,EAAE,gCAAgC;IAChD,kBAAkB,EAAE,oCAAoC;IACxD,eAAe,EAAE,iCAAiC;IAClD,cAAc,EAAE,gCAAgC;CACnD,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,iBAAkB,SAAQ,wBAAwB;IAClD,MAAM,GAAG,OAAO,CAAC;IACjB,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;CACJ"}
|
|
@@ -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;
|
|
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;YAgC3C,eAAe;CAQhC"}
|
|
@@ -5,6 +5,7 @@ import { PROMPTER_MARKERS } from '../../config.js';
|
|
|
5
5
|
const FILE_PATHS = {
|
|
6
6
|
enhance: '.github/prompts/prompter-enhance.prompt.md',
|
|
7
7
|
'prd-generator': '.github/prompts/prd-generator.prompt.md',
|
|
8
|
+
'prd-agent-generator': '.github/prompts/prd-agent-generator.prompt.md',
|
|
8
9
|
'product-brief': '.github/prompts/product-brief.prompt.md',
|
|
9
10
|
'epic-single': '.github/prompts/epic-single.prompt.md',
|
|
10
11
|
'story-single': '.github/prompts/story-single.prompt.md',
|
|
@@ -15,6 +16,7 @@ const FILE_PATHS = {
|
|
|
15
16
|
const DESCRIPTIONS = {
|
|
16
17
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
17
18
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
19
|
+
'prd-agent-generator': 'Generate a PRD with autonomous assumptions (non-interactive mode)',
|
|
18
20
|
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
19
21
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
20
22
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
@@ -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,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,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;QACjC,MAAM,gBAAgB,GAAa,EAAE,CAAC;QAEtC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAErD,0BAA0B;YAC1B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACJ,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,QAAQ,GAAa,EAAE,CAAC;gBAC9B,IAAI,WAAW,EAAE,CAAC;oBACd,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtC,CAAC;gBACD,mCAAmC;gBACnC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,KAAK,KAAK,IAAI,KAAK,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC7E,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC3C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACnD,CAAC;YAED,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,QAAgB;QAC1C,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"github-copilot.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/github-copilot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kilocode.d.ts","sourceRoot":"","sources":["../../../../src/core/configurators/slash/kilocode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"kilocode.d.ts","sourceRoot":"","sources":["../../../../src/core/configurators/slash/kilocode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA0B1D,qBAAa,oBAAqB,SAAQ,wBAAwB;IAC9D,QAAQ,CAAC,MAAM,cAAc;IAC7B,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;CAInE"}
|
|
@@ -2,6 +2,7 @@ import { SlashCommandConfigurator } from './base.js';
|
|
|
2
2
|
const FILE_PATHS = {
|
|
3
3
|
enhance: '.kilocode/workflows/prompter-enhance.md',
|
|
4
4
|
'prd-generator': '.kilocode/workflows/prd-generator.md',
|
|
5
|
+
'prd-agent-generator': '.kilocode/workflows/prd-agent-generator.md',
|
|
5
6
|
'product-brief': '.kilocode/workflows/product-brief.md',
|
|
6
7
|
'epic-single': '.kilocode/workflows/epic-single.md',
|
|
7
8
|
'story-single': '.kilocode/workflows/story-single.md',
|
|
@@ -12,6 +13,7 @@ const FILE_PATHS = {
|
|
|
12
13
|
const DESCRIPTIONS = {
|
|
13
14
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
14
15
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
16
|
+
'prd-agent-generator': 'Generate a PRD with autonomous assumptions (non-interactive mode)',
|
|
15
17
|
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
16
18
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
17
19
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kilocode.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/kilocode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,MAAM,UAAU,GAAmC;IAC/C,OAAO,EAAE,yCAAyC;IAClD,eAAe,EAAE,sCAAsC;IACvD,eAAe,EAAE,sCAAsC;IACvD,aAAa,EAAE,oCAAoC;IACnD,cAAc,EAAE,qCAAqC;IACrD,kBAAkB,EAAE,yCAAyC;IAC7D,eAAe,EAAE,sCAAsC;IACvD,cAAc,EAAE,qCAAqC;CACxD,CAAC;AAEF,MAAM,YAAY,GAAmC;IACjD,OAAO,EAAE,0DAA0D;IACnE,eAAe,EAAE,8DAA8D;IAC/E,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,oBAAqB,SAAQ,wBAAwB;IACrD,MAAM,GAAG,UAAU,CAAC;IACpB,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;CACJ"}
|
|
1
|
+
{"version":3,"file":"kilocode.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/kilocode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,MAAM,UAAU,GAAmC;IAC/C,OAAO,EAAE,yCAAyC;IAClD,eAAe,EAAE,sCAAsC;IACvD,qBAAqB,EAAE,4CAA4C;IACnE,eAAe,EAAE,sCAAsC;IACvD,aAAa,EAAE,oCAAoC;IACnD,cAAc,EAAE,qCAAqC;IACrD,kBAAkB,EAAE,yCAAyC;IAC7D,eAAe,EAAE,sCAAsC;IACvD,cAAc,EAAE,qCAAqC;CACxD,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,oBAAqB,SAAQ,wBAAwB;IACrD,MAAM,GAAG,UAAU,CAAC;IACpB,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;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../../src/core/configurators/slash/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../../src/core/configurators/slash/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA0B1D,qBAAa,oBAAqB,SAAQ,wBAAwB;IAC9D,QAAQ,CAAC,MAAM,cAAc;IAC7B,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;CAInE"}
|
|
@@ -2,6 +2,7 @@ import { SlashCommandConfigurator } from './base.js';
|
|
|
2
2
|
const FILE_PATHS = {
|
|
3
3
|
enhance: '.opencode/prompts/prompter-enhance.md',
|
|
4
4
|
'prd-generator': '.opencode/prompts/prd-generator.md',
|
|
5
|
+
'prd-agent-generator': '.opencode/prompts/prd-agent-generator.md',
|
|
5
6
|
'product-brief': '.opencode/prompts/product-brief.md',
|
|
6
7
|
'epic-single': '.opencode/prompts/epic-single.md',
|
|
7
8
|
'story-single': '.opencode/prompts/story-single.md',
|
|
@@ -12,6 +13,7 @@ const FILE_PATHS = {
|
|
|
12
13
|
const DESCRIPTIONS = {
|
|
13
14
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
14
15
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
16
|
+
'prd-agent-generator': 'Generate a PRD with autonomous assumptions (non-interactive mode)',
|
|
15
17
|
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
16
18
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
17
19
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,MAAM,UAAU,GAAmC;IAC/C,OAAO,EAAE,uCAAuC;IAChD,eAAe,EAAE,oCAAoC;IACrD,eAAe,EAAE,oCAAoC;IACrD,aAAa,EAAE,kCAAkC;IACjD,cAAc,EAAE,mCAAmC;IACnD,kBAAkB,EAAE,uCAAuC;IAC3D,eAAe,EAAE,oCAAoC;IACrD,cAAc,EAAE,mCAAmC;CACtD,CAAC;AAEF,MAAM,YAAY,GAAmC;IACjD,OAAO,EAAE,0DAA0D;IACnE,eAAe,EAAE,8DAA8D;IAC/E,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,oBAAqB,SAAQ,wBAAwB;IACrD,MAAM,GAAG,UAAU,CAAC;IACpB,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;CACJ"}
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,MAAM,UAAU,GAAmC;IAC/C,OAAO,EAAE,uCAAuC;IAChD,eAAe,EAAE,oCAAoC;IACrD,qBAAqB,EAAE,0CAA0C;IACjE,eAAe,EAAE,oCAAoC;IACrD,aAAa,EAAE,kCAAkC;IACjD,cAAc,EAAE,mCAAmC;IACnD,kBAAkB,EAAE,uCAAuC;IAC3D,eAAe,EAAE,oCAAoC;IACrD,cAAc,EAAE,mCAAmC;CACtD,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,oBAAqB,SAAQ,wBAAwB;IACrD,MAAM,GAAG,UAAU,CAAC;IACpB,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;CACJ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type SlashCommandId = 'enhance' | 'prd-generator' | 'product-brief' | 'epic-single' | 'story-single' | 'qa-test-scenario' | 'skill-creator' | 'ai-humanizer';
|
|
1
|
+
export type SlashCommandId = 'enhance' | 'prd-generator' | 'prd-agent-generator' | 'product-brief' | 'epic-single' | 'story-single' | 'qa-test-scenario' | 'skill-creator' | 'ai-humanizer';
|
|
2
2
|
export declare const slashCommandBodies: Record<SlashCommandId, string>;
|
|
3
3
|
export declare function getSlashCommandBody(id: SlashCommandId): string;
|
|
4
4
|
export declare class TemplateManager {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash-command-templates.d.ts","sourceRoot":"","sources":["../../../src/core/templates/slash-command-templates.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,eAAe,GAAG,eAAe,GAAG,aAAa,GAAG,cAAc,GAAG,kBAAkB,GAAG,eAAe,GAAG,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"slash-command-templates.d.ts","sourceRoot":"","sources":["../../../src/core/templates/slash-command-templates.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,eAAe,GAAG,qBAAqB,GAAG,eAAe,GAAG,aAAa,GAAG,cAAc,GAAG,kBAAkB,GAAG,eAAe,GAAG,cAAc,CAAC;AA0/B5L,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAU7D,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAE9D;AAED,qBAAa,eAAe;IACxB,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM;CAGzD"}
|
|
@@ -244,6 +244,133 @@ Before finalizing, verify:
|
|
|
244
244
|
5. Save the PRD to \`prompter/<slug>/prd.md\`
|
|
245
245
|
6. Report the saved file path
|
|
246
246
|
|
|
247
|
+
## REFERENCE
|
|
248
|
+
- Read \`prompter/project.md\` for project context if needed`;
|
|
249
|
+
const prdAgentGeneratorWorkflow = `# PRD Generator (Non-Interactive Mode)
|
|
250
|
+
|
|
251
|
+
Create detailed Product Requirements Documents that are clear, actionable, and suitable for implementation based solely on the user's initial input.
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## The Job
|
|
256
|
+
|
|
257
|
+
1. Receive a feature description from the user
|
|
258
|
+
2. Analyze the input and make reasonable assumptions where details are missing
|
|
259
|
+
3. Generate a structured PRD based on the input
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## Handling Ambiguity
|
|
264
|
+
|
|
265
|
+
When the user's input lacks specific details:
|
|
266
|
+
|
|
267
|
+
- **Make reasonable assumptions** based on common patterns and best practices
|
|
268
|
+
- **Document assumptions** in the PRD under "Assumptions Made"
|
|
269
|
+
- **Flag critical unknowns** in the "Open Questions" section
|
|
270
|
+
- **Err on the side of MVP scope** when scope is unclear
|
|
271
|
+
- **Default to standard patterns** (e.g., CRUD operations, standard UI components)
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## PRD Structure
|
|
276
|
+
|
|
277
|
+
Generate the PRD with these sections:
|
|
278
|
+
|
|
279
|
+
### 1. Introduction/Overview
|
|
280
|
+
Brief description of the feature and the problem it solves.
|
|
281
|
+
|
|
282
|
+
### 2. Assumptions Made
|
|
283
|
+
List key assumptions made due to missing details in the original request:
|
|
284
|
+
- "Assumed target users are [X] based on feature context"
|
|
285
|
+
- "Assumed MVP scope since no specific scope mentioned"
|
|
286
|
+
- "Assumed standard authentication is already in place"
|
|
287
|
+
|
|
288
|
+
### 3. Goals
|
|
289
|
+
Specific, measurable objectives (bullet list).
|
|
290
|
+
|
|
291
|
+
### 4. User Stories
|
|
292
|
+
Each story needs:
|
|
293
|
+
- **Title:** Short descriptive name
|
|
294
|
+
- **Description:** "As a [user], I want [feature] so that [benefit]"
|
|
295
|
+
- **Acceptance Criteria:** Verifiable checklist of what "done" means
|
|
296
|
+
|
|
297
|
+
Each story should be small enough to implement in one focused session.
|
|
298
|
+
|
|
299
|
+
**Format:**
|
|
300
|
+
\`\`\`markdown
|
|
301
|
+
### US-001: [Title]
|
|
302
|
+
**Description:** As a [user], I want [feature] so that [benefit].
|
|
303
|
+
|
|
304
|
+
**Acceptance Criteria:**
|
|
305
|
+
- [ ] Specific verifiable criterion
|
|
306
|
+
- [ ] Another criterion
|
|
307
|
+
- [ ] Typecheck/lint passes
|
|
308
|
+
- [ ] **[UI stories only]** Verify in browser using dev-browser skill
|
|
309
|
+
\`\`\`
|
|
310
|
+
|
|
311
|
+
**Important:**
|
|
312
|
+
- Acceptance criteria must be verifiable, not vague. "Works correctly" is bad. "Button shows confirmation dialog before deleting" is good.
|
|
313
|
+
- **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.
|
|
314
|
+
|
|
315
|
+
### 5. Functional Requirements
|
|
316
|
+
Numbered list of specific functionalities:
|
|
317
|
+
- "FR-1: The system must allow users to..."
|
|
318
|
+
- "FR-2: When a user clicks X, the system must..."
|
|
319
|
+
|
|
320
|
+
Be explicit and unambiguous.
|
|
321
|
+
|
|
322
|
+
### 6. Non-Goals (Out of Scope)
|
|
323
|
+
What this feature will NOT include. Critical for managing scope.
|
|
324
|
+
|
|
325
|
+
### 7. Design Considerations (Optional)
|
|
326
|
+
- UI/UX requirements
|
|
327
|
+
- Link to mockups if available
|
|
328
|
+
- Relevant existing components to reuse
|
|
329
|
+
|
|
330
|
+
### 8. Technical Considerations (Optional)
|
|
331
|
+
- Known constraints or dependencies
|
|
332
|
+
- Integration points with existing systems
|
|
333
|
+
- Performance requirements
|
|
334
|
+
|
|
335
|
+
### 9. Success Metrics
|
|
336
|
+
How will success be measured?
|
|
337
|
+
- "Reduce time to complete X by 50%"
|
|
338
|
+
- "Increase conversion rate by 10%"
|
|
339
|
+
|
|
340
|
+
### 10. Open Questions
|
|
341
|
+
Remaining questions or areas needing clarification. This is where you document:
|
|
342
|
+
- Critical unknowns that affect implementation
|
|
343
|
+
- Areas where the original request was ambiguous
|
|
344
|
+
- Decisions that may need stakeholder input
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## Writing for Junior Developers
|
|
349
|
+
|
|
350
|
+
The PRD reader may be a junior developer or AI agent. Therefore:
|
|
351
|
+
|
|
352
|
+
- Be explicit and unambiguous
|
|
353
|
+
- Avoid jargon or explain it
|
|
354
|
+
- Provide enough detail to understand purpose and core logic
|
|
355
|
+
- Number requirements for easy reference
|
|
356
|
+
- Use concrete examples where helpful
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## Output
|
|
361
|
+
|
|
362
|
+
- **Format:** Markdown (\`.md\`)
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
## WORKFLOW STEPS
|
|
367
|
+
1. Read the user's input about the feature
|
|
368
|
+
2. Generate a unique, URL-friendly slug from the feature name (lowercase, hyphen-separated)
|
|
369
|
+
3. Create the directory \`prompter/<slug>/\` if it doesn't exist
|
|
370
|
+
4. Generate the complete PRD following all requirements above
|
|
371
|
+
5. Save the PRD to \`prompter/<slug>/prd-agent.md\`
|
|
372
|
+
6. Report the saved file path
|
|
373
|
+
|
|
247
374
|
## REFERENCE
|
|
248
375
|
- Read \`prompter/project.md\` for project context if needed`;
|
|
249
376
|
const epicSingleWorkflow = `Your job is to take a user requirement and structure it into **a single, well-defined Jira Epic**.
|
|
@@ -881,6 +1008,7 @@ You are an expert copywriter and proofreader. Your mission is to meticulously re
|
|
|
881
1008
|
export const slashCommandBodies = {
|
|
882
1009
|
enhance: enhanceWorkflow,
|
|
883
1010
|
'prd-generator': prdGeneratorWorkflow,
|
|
1011
|
+
'prd-agent-generator': prdAgentGeneratorWorkflow,
|
|
884
1012
|
'product-brief': productBriefWorkflow,
|
|
885
1013
|
'epic-single': epicSingleWorkflow,
|
|
886
1014
|
'story-single': storySingleWorkflow,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash-command-templates.js","sourceRoot":"","sources":["../../../src/core/templates/slash-command-templates.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAyC2C,CAAC;AAEpE,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DA6MgC,CAAC;AAE9D,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DAyDkC,CAAC;AAE9D,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DAgFiC,CAAC;AAE9D,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DA+I8B,CAAC;AAE9D,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DAuKgC,CAAC;AAE9D,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iEAuIoC,CAAC;AAElE,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEA4CuC,CAAC;AAEpE,MAAM,CAAC,MAAM,kBAAkB,GAAmC;IAC9D,OAAO,EAAE,eAAe;IACxB,eAAe,EAAE,oBAAoB;IACrC,eAAe,EAAE,oBAAoB;IACrC,aAAa,EAAE,kBAAkB;IACjC,cAAc,EAAE,mBAAmB;IACnC,kBAAkB,EAAE,sBAAsB;IAC1C,eAAe,EAAE,oBAAoB;IACrC,cAAc,EAAE,mBAAmB;CACtC,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,EAAkB;IAClD,OAAO,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,OAAO,eAAe;IACxB,MAAM,CAAC,mBAAmB,CAAC,EAAkB;QACzC,OAAO,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"slash-command-templates.js","sourceRoot":"","sources":["../../../src/core/templates/slash-command-templates.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAyC2C,CAAC;AAEpE,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DA6MgC,CAAC;AAE9D,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DA8H2B,CAAC;AAE9D,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DAyDkC,CAAC;AAE9D,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DAgFiC,CAAC;AAE9D,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DA+I8B,CAAC;AAE9D,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DAuKgC,CAAC;AAE9D,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iEAuIoC,CAAC;AAElE,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEA4CuC,CAAC;AAEpE,MAAM,CAAC,MAAM,kBAAkB,GAAmC;IAC9D,OAAO,EAAE,eAAe;IACxB,eAAe,EAAE,oBAAoB;IACrC,qBAAqB,EAAE,yBAAyB;IAChD,eAAe,EAAE,oBAAoB;IACrC,aAAa,EAAE,kBAAkB;IACjC,cAAc,EAAE,mBAAmB;IACnC,kBAAkB,EAAE,sBAAsB;IAC1C,eAAe,EAAE,oBAAoB;IACrC,cAAc,EAAE,mBAAmB;CACtC,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,EAAkB;IAClD,OAAO,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,OAAO,eAAe;IACxB,MAAM,CAAC,mBAAmB,CAAC,EAAkB;QACzC,OAAO,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# PRD Generator (Non-Interactive Mode)
|
|
2
|
+
|
|
3
|
+
Create detailed Product Requirements Documents that are clear, actionable, and suitable for implementation based solely on the user's initial input.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## The Job
|
|
8
|
+
|
|
9
|
+
1. Receive a feature description from the user
|
|
10
|
+
2. Analyze the input and make reasonable assumptions where details are missing
|
|
11
|
+
3. Generate a structured PRD based on the input
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Handling Ambiguity
|
|
16
|
+
|
|
17
|
+
When the user's input lacks specific details:
|
|
18
|
+
|
|
19
|
+
- **Make reasonable assumptions** based on common patterns and best practices
|
|
20
|
+
- **Document assumptions** in the PRD under "Assumptions Made"
|
|
21
|
+
- **Flag critical unknowns** in the "Open Questions" section
|
|
22
|
+
- **Err on the side of MVP scope** when scope is unclear
|
|
23
|
+
- **Default to standard patterns** (e.g., CRUD operations, standard UI components)
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## PRD Structure
|
|
28
|
+
|
|
29
|
+
Generate the PRD with these sections:
|
|
30
|
+
|
|
31
|
+
### 1. Introduction/Overview
|
|
32
|
+
Brief description of the feature and the problem it solves.
|
|
33
|
+
|
|
34
|
+
### 2. Assumptions Made
|
|
35
|
+
List key assumptions made due to missing details in the original request:
|
|
36
|
+
- "Assumed target users are [X] based on feature context"
|
|
37
|
+
- "Assumed MVP scope since no specific scope mentioned"
|
|
38
|
+
- "Assumed standard authentication is already in place"
|
|
39
|
+
|
|
40
|
+
### 3. Goals
|
|
41
|
+
Specific, measurable objectives (bullet list).
|
|
42
|
+
|
|
43
|
+
### 4. User Stories
|
|
44
|
+
Each story needs:
|
|
45
|
+
- **Title:** Short descriptive name
|
|
46
|
+
- **Description:** "As a [user], I want [feature] so that [benefit]"
|
|
47
|
+
- **Acceptance Criteria:** Verifiable checklist of what "done" means
|
|
48
|
+
|
|
49
|
+
Each story should be small enough to implement in one focused session.
|
|
50
|
+
|
|
51
|
+
**Format:**
|
|
52
|
+
```markdown
|
|
53
|
+
### US-001: [Title]
|
|
54
|
+
**Description:** As a [user], I want [feature] so that [benefit].
|
|
55
|
+
|
|
56
|
+
**Acceptance Criteria:**
|
|
57
|
+
- [ ] Specific verifiable criterion
|
|
58
|
+
- [ ] Another criterion
|
|
59
|
+
- [ ] Typecheck/lint passes
|
|
60
|
+
- [ ] **[UI stories only]** Verify in browser using dev-browser skill
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Important:**
|
|
64
|
+
- Acceptance criteria must be verifiable, not vague. "Works correctly" is bad. "Button shows confirmation dialog before deleting" is good.
|
|
65
|
+
- **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.
|
|
66
|
+
|
|
67
|
+
### 5. Functional Requirements
|
|
68
|
+
Numbered list of specific functionalities:
|
|
69
|
+
- "FR-1: The system must allow users to..."
|
|
70
|
+
- "FR-2: When a user clicks X, the system must..."
|
|
71
|
+
|
|
72
|
+
Be explicit and unambiguous.
|
|
73
|
+
|
|
74
|
+
### 6. Non-Goals (Out of Scope)
|
|
75
|
+
What this feature will NOT include. Critical for managing scope.
|
|
76
|
+
|
|
77
|
+
### 7. Design Considerations (Optional)
|
|
78
|
+
- UI/UX requirements
|
|
79
|
+
- Link to mockups if available
|
|
80
|
+
- Relevant existing components to reuse
|
|
81
|
+
|
|
82
|
+
### 8. Technical Considerations (Optional)
|
|
83
|
+
- Known constraints or dependencies
|
|
84
|
+
- Integration points with existing systems
|
|
85
|
+
- Performance requirements
|
|
86
|
+
|
|
87
|
+
### 9. Success Metrics
|
|
88
|
+
How will success be measured?
|
|
89
|
+
- "Reduce time to complete X by 50%"
|
|
90
|
+
- "Increase conversion rate by 10%"
|
|
91
|
+
|
|
92
|
+
### 10. Open Questions
|
|
93
|
+
Remaining questions or areas needing clarification. This is where you document:
|
|
94
|
+
- Critical unknowns that affect implementation
|
|
95
|
+
- Areas where the original request was ambiguous
|
|
96
|
+
- Decisions that may need stakeholder input
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Writing for Junior Developers
|
|
101
|
+
|
|
102
|
+
The PRD reader may be a junior developer or AI agent. Therefore:
|
|
103
|
+
|
|
104
|
+
- Be explicit and unambiguous
|
|
105
|
+
- Avoid jargon or explain it
|
|
106
|
+
- Provide enough detail to understand purpose and core logic
|
|
107
|
+
- Number requirements for easy reference
|
|
108
|
+
- Use concrete examples where helpful
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Output
|
|
113
|
+
|
|
114
|
+
- **Format:** Markdown (`.md`)
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Example PRD
|
|
119
|
+
|
|
120
|
+
```markdown
|
|
121
|
+
# PRD: Task Priority System
|
|
122
|
+
|
|
123
|
+
## Introduction
|
|
124
|
+
|
|
125
|
+
Add 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.
|
|
126
|
+
|
|
127
|
+
## Assumptions Made
|
|
128
|
+
|
|
129
|
+
- Assumed this is for an existing task management system with a tasks table
|
|
130
|
+
- Assumed standard web UI (not mobile app)
|
|
131
|
+
- Assumed MVP scope - basic priority features without advanced automation
|
|
132
|
+
- Assumed users are familiar with priority systems from other tools
|
|
133
|
+
|
|
134
|
+
## Goals
|
|
135
|
+
|
|
136
|
+
- Allow assigning priority (high/medium/low) to any task
|
|
137
|
+
- Provide clear visual differentiation between priority levels
|
|
138
|
+
- Enable filtering and sorting by priority
|
|
139
|
+
- Default new tasks to medium priority
|
|
140
|
+
|
|
141
|
+
## User Stories
|
|
142
|
+
|
|
143
|
+
### US-001: Add priority field to database
|
|
144
|
+
**Description:** As a developer, I need to store task priority so it persists across sessions.
|
|
145
|
+
|
|
146
|
+
**Acceptance Criteria:**
|
|
147
|
+
- [ ] Add priority column to tasks table: 'high' | 'medium' | 'low' (default 'medium')
|
package/src/cli/index.ts
CHANGED
|
@@ -3,14 +3,13 @@ import { InitCommand } from '../commands/init.js';
|
|
|
3
3
|
import { UpdateCommand } from '../commands/update.js';
|
|
4
4
|
import { ListCommand } from '../commands/list.js';
|
|
5
5
|
import { GuideCommand } from '../commands/guide.js';
|
|
6
|
-
import { AiHumanizerCommand } from '../commands/ai-humanizer.js';
|
|
7
6
|
|
|
8
7
|
const program = new Command();
|
|
9
8
|
|
|
10
9
|
program
|
|
11
10
|
.name('prompter')
|
|
12
11
|
.description('Enhance prompts directly in your AI coding workflow')
|
|
13
|
-
.version('0.4.
|
|
12
|
+
.version('0.4.3');
|
|
14
13
|
|
|
15
14
|
program
|
|
16
15
|
.command('init')
|
|
@@ -47,14 +46,4 @@ program
|
|
|
47
46
|
await guideCommand.execute();
|
|
48
47
|
});
|
|
49
48
|
|
|
50
|
-
program
|
|
51
|
-
.command('ai-humanizer')
|
|
52
|
-
.description('Generate AI humanizer workflow files for configured tools')
|
|
53
|
-
.option('--tools <tools...>', 'Specify AI tools to generate for')
|
|
54
|
-
.option('--no-interactive', 'Run without interactive prompts')
|
|
55
|
-
.action(async (options) => {
|
|
56
|
-
const aiHumanizerCommand = new AiHumanizerCommand();
|
|
57
|
-
await aiHumanizerCommand.execute(options);
|
|
58
|
-
});
|
|
59
|
-
|
|
60
49
|
program.parse();
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { promises as fs } from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { PrompterConfig, PROMPTER_DIR, PROMPTER_MARKERS } from '../core/config.js';
|
|
5
|
+
import { registry } from '../core/configurators/slash/index.js';
|
|
6
|
+
|
|
7
|
+
interface PrdAgentGeneratorOptions {
|
|
8
|
+
tools?: string[];
|
|
9
|
+
noInteractive?: boolean;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export class PrdAgentGeneratorCommand {
|
|
13
|
+
async execute(options: PrdAgentGeneratorOptions = {}): Promise<void> {
|
|
14
|
+
const projectPath = process.cwd();
|
|
15
|
+
|
|
16
|
+
// Check if initialized
|
|
17
|
+
if (!await PrompterConfig.prompterDirExists(projectPath)) {
|
|
18
|
+
console.log(chalk.red('\n❌ Prompter is not initialized in this project.\n'));
|
|
19
|
+
console.log(chalk.gray(' Run `prompter init` first.\n'));
|
|
20
|
+
process.exitCode = 1;
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
console.log(chalk.blue('\n🤖 Generating PRD agent generator workflow files...\n'));
|
|
25
|
+
|
|
26
|
+
// Detect currently configured tools
|
|
27
|
+
const configuredTools = await this.detectConfiguredTools(projectPath);
|
|
28
|
+
|
|
29
|
+
if (configuredTools.length === 0) {
|
|
30
|
+
console.log(chalk.yellow('⚠️ No tools configured yet.\n'));
|
|
31
|
+
console.log(chalk.gray(' Run `prompter init` to configure AI tools first.\n'));
|
|
32
|
+
process.exitCode = 1;
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Generate prd-agent-generator workflow files for all configured tools
|
|
37
|
+
let successCount = 0;
|
|
38
|
+
let failCount = 0;
|
|
39
|
+
|
|
40
|
+
for (const toolId of configuredTools) {
|
|
41
|
+
const configurator = registry.get(toolId);
|
|
42
|
+
if (configurator) {
|
|
43
|
+
try {
|
|
44
|
+
// Generate only the prd-agent-generator workflow file
|
|
45
|
+
const body = configurator['getBody']('prd-agent-generator');
|
|
46
|
+
const relativePath = configurator['getRelativePath']('prd-agent-generator');
|
|
47
|
+
const filePath = path.join(projectPath, relativePath);
|
|
48
|
+
|
|
49
|
+
// Ensure directory exists
|
|
50
|
+
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
51
|
+
|
|
52
|
+
// Check if file exists
|
|
53
|
+
const fileExists = await this.fileExists(filePath);
|
|
54
|
+
|
|
55
|
+
if (fileExists) {
|
|
56
|
+
console.log(chalk.yellow('⚠️') + ` ${chalk.cyan(relativePath)} already exists, skipping`);
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Get frontmatter if needed
|
|
61
|
+
const frontmatter = configurator['getFrontmatter']('prd-agent-generator');
|
|
62
|
+
const sections: string[] = [];
|
|
63
|
+
if (frontmatter) {
|
|
64
|
+
sections.push(frontmatter.trim());
|
|
65
|
+
}
|
|
66
|
+
sections.push(`${PROMPTER_MARKERS.start}\n${body}\n${PROMPTER_MARKERS.end}`);
|
|
67
|
+
const content = sections.join('\n') + '\n';
|
|
68
|
+
|
|
69
|
+
await fs.writeFile(filePath, content, 'utf-8');
|
|
70
|
+
console.log(chalk.green('✓') + ` Created ${chalk.cyan(relativePath)}`);
|
|
71
|
+
successCount++;
|
|
72
|
+
} catch (error) {
|
|
73
|
+
console.log(chalk.red('✗') + ` Failed to create files for ${toolId}: ${error}`);
|
|
74
|
+
failCount++;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Success message
|
|
80
|
+
console.log(chalk.green(`\n✅ PRD agent generator workflow files created successfully!\n`));
|
|
81
|
+
console.log(chalk.blue('Next steps:'));
|
|
82
|
+
console.log(chalk.gray(' 1. Use /prd-agent-generator in your AI tool to create PRDs'));
|
|
83
|
+
console.log(chalk.gray(' 2. PRDs will be saved to prompter/<slug>/prd-agent.md\n'));
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
private async fileExists(filePath: string): Promise<boolean> {
|
|
87
|
+
try {
|
|
88
|
+
await fs.access(filePath);
|
|
89
|
+
return true;
|
|
90
|
+
} catch {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
private async detectConfiguredTools(projectPath: string): Promise<string[]> {
|
|
96
|
+
const configuredTools: string[] = [];
|
|
97
|
+
const allConfigurators = registry.getAll();
|
|
98
|
+
|
|
99
|
+
for (const configurator of allConfigurators) {
|
|
100
|
+
const targets = configurator.getTargets();
|
|
101
|
+
if (targets.length === 0) continue;
|
|
102
|
+
|
|
103
|
+
// Check if any workflow file exists for this tool
|
|
104
|
+
const firstTarget = targets[0];
|
|
105
|
+
const firstPath = path.join(projectPath, firstTarget.path);
|
|
106
|
+
const exists = await this.fileExists(path.dirname(firstPath));
|
|
107
|
+
|
|
108
|
+
if (exists) {
|
|
109
|
+
configuredTools.push(configurator.toolId);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return configuredTools;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -4,6 +4,7 @@ import { SlashCommandId } from '../../templates/index.js';
|
|
|
4
4
|
const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
5
5
|
enhance: '.agent/workflows/prompter-enhance.md',
|
|
6
6
|
'prd-generator': '.agent/workflows/prd-generator.md',
|
|
7
|
+
'prd-agent-generator': '.agent/workflows/prd-agent-generator.md',
|
|
7
8
|
'product-brief': '.agent/workflows/product-brief.md',
|
|
8
9
|
'epic-single': '.agent/workflows/epic-single.md',
|
|
9
10
|
'story-single': '.agent/workflows/story-single.md',
|
|
@@ -15,6 +16,7 @@ const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
|
15
16
|
const DESCRIPTIONS: Record<SlashCommandId, string> = {
|
|
16
17
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
17
18
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
19
|
+
'prd-agent-generator': 'Generate a PRD with autonomous assumptions (non-interactive mode)',
|
|
18
20
|
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
19
21
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
20
22
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
@@ -9,7 +9,7 @@ export interface SlashCommandTarget {
|
|
|
9
9
|
kind: 'slash';
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
const ALL_COMMANDS: SlashCommandId[] = ['enhance', 'prd-generator', 'product-brief', 'epic-single', 'story-single', 'qa-test-scenario', 'skill-creator', 'ai-humanizer'];
|
|
12
|
+
const ALL_COMMANDS: SlashCommandId[] = ['enhance', 'prd-generator', 'prd-agent-generator', 'product-brief', 'epic-single', 'story-single', 'qa-test-scenario', 'skill-creator', 'ai-humanizer'];
|
|
13
13
|
|
|
14
14
|
export abstract class SlashCommandConfigurator {
|
|
15
15
|
abstract readonly toolId: string;
|
|
@@ -4,6 +4,7 @@ import { SlashCommandId } from '../../templates/index.js';
|
|
|
4
4
|
const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
5
5
|
enhance: '.claude/commands/prompter/enhance.md',
|
|
6
6
|
'prd-generator': '.claude/commands/prompter/prd-generator.md',
|
|
7
|
+
'prd-agent-generator': '.claude/commands/prompter/prd-agent-generator.md',
|
|
7
8
|
'product-brief': '.claude/commands/prompter/product-brief.md',
|
|
8
9
|
'epic-single': '.claude/commands/prompter/epic-single.md',
|
|
9
10
|
'story-single': '.claude/commands/prompter/story-single.md',
|
|
@@ -15,6 +16,7 @@ const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
|
15
16
|
const DESCRIPTIONS: Record<SlashCommandId, string> = {
|
|
16
17
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
17
18
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
19
|
+
'prd-agent-generator': 'Generate a PRD with autonomous assumptions (non-interactive mode)',
|
|
18
20
|
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
19
21
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
20
22
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
@@ -4,6 +4,7 @@ import { SlashCommandId } from '../../templates/index.js';
|
|
|
4
4
|
const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
5
5
|
enhance: '.codex/prompts/prompter-enhance.md',
|
|
6
6
|
'prd-generator': '.codex/prompts/prd-generator.md',
|
|
7
|
+
'prd-agent-generator': '.codex/prompts/prd-agent-generator.md',
|
|
7
8
|
'product-brief': '.codex/prompts/product-brief.md',
|
|
8
9
|
'epic-single': '.codex/prompts/epic-single.md',
|
|
9
10
|
'story-single': '.codex/prompts/story-single.md',
|
|
@@ -15,6 +16,7 @@ const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
|
15
16
|
const DESCRIPTIONS: Record<SlashCommandId, string> = {
|
|
16
17
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
17
18
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
19
|
+
'prd-agent-generator': 'Generate a PRD with autonomous assumptions (non-interactive mode)',
|
|
18
20
|
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
19
21
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
20
22
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
@@ -7,6 +7,7 @@ import { PROMPTER_MARKERS } from '../../config.js';
|
|
|
7
7
|
const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
8
8
|
enhance: '.github/prompts/prompter-enhance.prompt.md',
|
|
9
9
|
'prd-generator': '.github/prompts/prd-generator.prompt.md',
|
|
10
|
+
'prd-agent-generator': '.github/prompts/prd-agent-generator.prompt.md',
|
|
10
11
|
'product-brief': '.github/prompts/product-brief.prompt.md',
|
|
11
12
|
'epic-single': '.github/prompts/epic-single.prompt.md',
|
|
12
13
|
'story-single': '.github/prompts/story-single.prompt.md',
|
|
@@ -18,6 +19,7 @@ const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
|
18
19
|
const DESCRIPTIONS: Record<SlashCommandId, string> = {
|
|
19
20
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
20
21
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
22
|
+
'prd-agent-generator': 'Generate a PRD with autonomous assumptions (non-interactive mode)',
|
|
21
23
|
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
22
24
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
23
25
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
@@ -4,6 +4,7 @@ import { SlashCommandId } from '../../templates/index.js';
|
|
|
4
4
|
const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
5
5
|
enhance: '.kilocode/workflows/prompter-enhance.md',
|
|
6
6
|
'prd-generator': '.kilocode/workflows/prd-generator.md',
|
|
7
|
+
'prd-agent-generator': '.kilocode/workflows/prd-agent-generator.md',
|
|
7
8
|
'product-brief': '.kilocode/workflows/product-brief.md',
|
|
8
9
|
'epic-single': '.kilocode/workflows/epic-single.md',
|
|
9
10
|
'story-single': '.kilocode/workflows/story-single.md',
|
|
@@ -15,6 +16,7 @@ const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
|
15
16
|
const DESCRIPTIONS: Record<SlashCommandId, string> = {
|
|
16
17
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
17
18
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
19
|
+
'prd-agent-generator': 'Generate a PRD with autonomous assumptions (non-interactive mode)',
|
|
18
20
|
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
19
21
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
20
22
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
@@ -4,6 +4,7 @@ import { SlashCommandId } from '../../templates/index.js';
|
|
|
4
4
|
const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
5
5
|
enhance: '.opencode/prompts/prompter-enhance.md',
|
|
6
6
|
'prd-generator': '.opencode/prompts/prd-generator.md',
|
|
7
|
+
'prd-agent-generator': '.opencode/prompts/prd-agent-generator.md',
|
|
7
8
|
'product-brief': '.opencode/prompts/product-brief.md',
|
|
8
9
|
'epic-single': '.opencode/prompts/epic-single.md',
|
|
9
10
|
'story-single': '.opencode/prompts/story-single.md',
|
|
@@ -15,6 +16,7 @@ const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
|
15
16
|
const DESCRIPTIONS: Record<SlashCommandId, string> = {
|
|
16
17
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
17
18
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
19
|
+
'prd-agent-generator': 'Generate a PRD with autonomous assumptions (non-interactive mode)',
|
|
18
20
|
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
19
21
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
20
22
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type SlashCommandId = 'enhance' | 'prd-generator' | 'product-brief' | 'epic-single' | 'story-single' | 'qa-test-scenario' | 'skill-creator' | 'ai-humanizer';
|
|
1
|
+
export type SlashCommandId = 'enhance' | 'prd-generator' | 'prd-agent-generator' | 'product-brief' | 'epic-single' | 'story-single' | 'qa-test-scenario' | 'skill-creator' | 'ai-humanizer';
|
|
2
2
|
|
|
3
3
|
const enhanceWorkflow = `## MUST FOLLOW
|
|
4
4
|
- Response Language: {User Request Language}
|
|
@@ -250,6 +250,134 @@ Before finalizing, verify:
|
|
|
250
250
|
## REFERENCE
|
|
251
251
|
- Read \`prompter/project.md\` for project context if needed`;
|
|
252
252
|
|
|
253
|
+
const prdAgentGeneratorWorkflow = `# PRD Generator (Non-Interactive Mode)
|
|
254
|
+
|
|
255
|
+
Create detailed Product Requirements Documents that are clear, actionable, and suitable for implementation based solely on the user's initial input.
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## The Job
|
|
260
|
+
|
|
261
|
+
1. Receive a feature description from the user
|
|
262
|
+
2. Analyze the input and make reasonable assumptions where details are missing
|
|
263
|
+
3. Generate a structured PRD based on the input
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Handling Ambiguity
|
|
268
|
+
|
|
269
|
+
When the user's input lacks specific details:
|
|
270
|
+
|
|
271
|
+
- **Make reasonable assumptions** based on common patterns and best practices
|
|
272
|
+
- **Document assumptions** in the PRD under "Assumptions Made"
|
|
273
|
+
- **Flag critical unknowns** in the "Open Questions" section
|
|
274
|
+
- **Err on the side of MVP scope** when scope is unclear
|
|
275
|
+
- **Default to standard patterns** (e.g., CRUD operations, standard UI components)
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## PRD Structure
|
|
280
|
+
|
|
281
|
+
Generate the PRD with these sections:
|
|
282
|
+
|
|
283
|
+
### 1. Introduction/Overview
|
|
284
|
+
Brief description of the feature and the problem it solves.
|
|
285
|
+
|
|
286
|
+
### 2. Assumptions Made
|
|
287
|
+
List key assumptions made due to missing details in the original request:
|
|
288
|
+
- "Assumed target users are [X] based on feature context"
|
|
289
|
+
- "Assumed MVP scope since no specific scope mentioned"
|
|
290
|
+
- "Assumed standard authentication is already in place"
|
|
291
|
+
|
|
292
|
+
### 3. Goals
|
|
293
|
+
Specific, measurable objectives (bullet list).
|
|
294
|
+
|
|
295
|
+
### 4. User Stories
|
|
296
|
+
Each story needs:
|
|
297
|
+
- **Title:** Short descriptive name
|
|
298
|
+
- **Description:** "As a [user], I want [feature] so that [benefit]"
|
|
299
|
+
- **Acceptance Criteria:** Verifiable checklist of what "done" means
|
|
300
|
+
|
|
301
|
+
Each story should be small enough to implement in one focused session.
|
|
302
|
+
|
|
303
|
+
**Format:**
|
|
304
|
+
\`\`\`markdown
|
|
305
|
+
### US-001: [Title]
|
|
306
|
+
**Description:** As a [user], I want [feature] so that [benefit].
|
|
307
|
+
|
|
308
|
+
**Acceptance Criteria:**
|
|
309
|
+
- [ ] Specific verifiable criterion
|
|
310
|
+
- [ ] Another criterion
|
|
311
|
+
- [ ] Typecheck/lint passes
|
|
312
|
+
- [ ] **[UI stories only]** Verify in browser using dev-browser skill
|
|
313
|
+
\`\`\`
|
|
314
|
+
|
|
315
|
+
**Important:**
|
|
316
|
+
- Acceptance criteria must be verifiable, not vague. "Works correctly" is bad. "Button shows confirmation dialog before deleting" is good.
|
|
317
|
+
- **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.
|
|
318
|
+
|
|
319
|
+
### 5. Functional Requirements
|
|
320
|
+
Numbered list of specific functionalities:
|
|
321
|
+
- "FR-1: The system must allow users to..."
|
|
322
|
+
- "FR-2: When a user clicks X, the system must..."
|
|
323
|
+
|
|
324
|
+
Be explicit and unambiguous.
|
|
325
|
+
|
|
326
|
+
### 6. Non-Goals (Out of Scope)
|
|
327
|
+
What this feature will NOT include. Critical for managing scope.
|
|
328
|
+
|
|
329
|
+
### 7. Design Considerations (Optional)
|
|
330
|
+
- UI/UX requirements
|
|
331
|
+
- Link to mockups if available
|
|
332
|
+
- Relevant existing components to reuse
|
|
333
|
+
|
|
334
|
+
### 8. Technical Considerations (Optional)
|
|
335
|
+
- Known constraints or dependencies
|
|
336
|
+
- Integration points with existing systems
|
|
337
|
+
- Performance requirements
|
|
338
|
+
|
|
339
|
+
### 9. Success Metrics
|
|
340
|
+
How will success be measured?
|
|
341
|
+
- "Reduce time to complete X by 50%"
|
|
342
|
+
- "Increase conversion rate by 10%"
|
|
343
|
+
|
|
344
|
+
### 10. Open Questions
|
|
345
|
+
Remaining questions or areas needing clarification. This is where you document:
|
|
346
|
+
- Critical unknowns that affect implementation
|
|
347
|
+
- Areas where the original request was ambiguous
|
|
348
|
+
- Decisions that may need stakeholder input
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## Writing for Junior Developers
|
|
353
|
+
|
|
354
|
+
The PRD reader may be a junior developer or AI agent. Therefore:
|
|
355
|
+
|
|
356
|
+
- Be explicit and unambiguous
|
|
357
|
+
- Avoid jargon or explain it
|
|
358
|
+
- Provide enough detail to understand purpose and core logic
|
|
359
|
+
- Number requirements for easy reference
|
|
360
|
+
- Use concrete examples where helpful
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
## Output
|
|
365
|
+
|
|
366
|
+
- **Format:** Markdown (\`.md\`)
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
|
|
370
|
+
## WORKFLOW STEPS
|
|
371
|
+
1. Read the user's input about the feature
|
|
372
|
+
2. Generate a unique, URL-friendly slug from the feature name (lowercase, hyphen-separated)
|
|
373
|
+
3. Create the directory \`prompter/<slug>/\` if it doesn't exist
|
|
374
|
+
4. Generate the complete PRD following all requirements above
|
|
375
|
+
5. Save the PRD to \`prompter/<slug>/prd-agent.md\`
|
|
376
|
+
6. Report the saved file path
|
|
377
|
+
|
|
378
|
+
## REFERENCE
|
|
379
|
+
- Read \`prompter/project.md\` for project context if needed`;
|
|
380
|
+
|
|
253
381
|
const epicSingleWorkflow = `Your job is to take a user requirement and structure it into **a single, well-defined Jira Epic**.
|
|
254
382
|
|
|
255
383
|
### Input
|
|
@@ -891,6 +1019,7 @@ You are an expert copywriter and proofreader. Your mission is to meticulously re
|
|
|
891
1019
|
export const slashCommandBodies: Record<SlashCommandId, string> = {
|
|
892
1020
|
enhance: enhanceWorkflow,
|
|
893
1021
|
'prd-generator': prdGeneratorWorkflow,
|
|
1022
|
+
'prd-agent-generator': prdAgentGeneratorWorkflow,
|
|
894
1023
|
'product-brief': productBriefWorkflow,
|
|
895
1024
|
'epic-single': epicSingleWorkflow,
|
|
896
1025
|
'story-single': storySingleWorkflow,
|