@dedesfr/prompter 0.3.9 → 0.4.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/.github/prompts/product-brief.prompt.md +99 -0
- package/.github/prompts/skill-creator.prompt.md +1 -0
- package/dist/cli/index.js +1 -1
- package/dist/commands/product-brief.d.ts +11 -0
- package/dist/commands/product-brief.d.ts.map +1 -0
- package/dist/commands/product-brief.js +97 -0
- package/dist/commands/product-brief.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 +94 -0
- package/dist/core/templates/slash-command-templates.js.map +1 -1
- package/package.json +1 -1
- package/prompt/product-brief.md +84 -0
- package/src/cli/index.ts +1 -1
- package/src/commands/product-brief.ts +118 -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 +96 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Generate an executive-level product brief (1-page summary)
|
|
3
|
+
---
|
|
4
|
+
$ARGUMENTS
|
|
5
|
+
<!-- prompter-managed-start -->
|
|
6
|
+
# Role & Expertise
|
|
7
|
+
You 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.
|
|
8
|
+
|
|
9
|
+
# Context
|
|
10
|
+
You are creating a Product Brief (Executive Summary) - a concise, high-impact document that communicates the essential elements of a product to executives, investors, and cross-functional stakeholders who need to quickly understand the product's value proposition, market opportunity, and strategic fit.
|
|
11
|
+
|
|
12
|
+
# Primary Objective
|
|
13
|
+
Generate a polished, professional Product Brief that captures the essence of the product in a format suitable for executive review, board presentations, or investor communications.
|
|
14
|
+
|
|
15
|
+
# Input Required
|
|
16
|
+
Provide any combination of the following:
|
|
17
|
+
- Product name and description
|
|
18
|
+
- Target market/customer segment
|
|
19
|
+
- Problem being solved
|
|
20
|
+
- Key features or capabilities
|
|
21
|
+
- Business model/pricing approach
|
|
22
|
+
- Competitive landscape
|
|
23
|
+
- Current status/stage
|
|
24
|
+
- Key metrics or traction (if available)
|
|
25
|
+
- Strategic goals
|
|
26
|
+
|
|
27
|
+
*Note: Work with whatever information is provided; make reasonable inferences for gaps while flagging assumptions.*
|
|
28
|
+
|
|
29
|
+
# Output Format
|
|
30
|
+
|
|
31
|
+
## [PRODUCT NAME] - Executive Summary
|
|
32
|
+
|
|
33
|
+
### The Opportunity
|
|
34
|
+
[2-3 sentences describing the market problem and opportunity size]
|
|
35
|
+
|
|
36
|
+
### Our Solution
|
|
37
|
+
[2-3 sentences on what the product does and its core value proposition]
|
|
38
|
+
|
|
39
|
+
### Target Customer
|
|
40
|
+
[Specific customer segment with key characteristics]
|
|
41
|
+
|
|
42
|
+
### Key Differentiators
|
|
43
|
+
- [Differentiator 1]
|
|
44
|
+
- [Differentiator 2]
|
|
45
|
+
- [Differentiator 3]
|
|
46
|
+
|
|
47
|
+
### Business Model
|
|
48
|
+
[1-2 sentences on how the product generates revenue]
|
|
49
|
+
|
|
50
|
+
### Traction & Validation
|
|
51
|
+
[Key metrics, milestones, or validation points - use "Target:" prefix for projections]
|
|
52
|
+
|
|
53
|
+
### Competitive Position
|
|
54
|
+
[Brief competitive landscape and positioning statement]
|
|
55
|
+
|
|
56
|
+
### Strategic Fit
|
|
57
|
+
[How this aligns with broader company/market strategy]
|
|
58
|
+
|
|
59
|
+
### Ask / Next Steps
|
|
60
|
+
[Clear call-to-action or decision needed]
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
**Status:** [Current stage]
|
|
64
|
+
**Owner:** [Product lead/team]
|
|
65
|
+
**Last Updated:** [Date]
|
|
66
|
+
|
|
67
|
+
# Writing Standards
|
|
68
|
+
- **Tone:** Confident, data-informed, strategic
|
|
69
|
+
- **Length:** 1 page maximum (300-500 words)
|
|
70
|
+
- **Language:** Executive-friendly, minimal jargon
|
|
71
|
+
- **Numbers:** Include quantified metrics wherever possible
|
|
72
|
+
- **Clarity:** Each section should be understandable in isolation
|
|
73
|
+
|
|
74
|
+
# Quality Criteria
|
|
75
|
+
1. A busy executive can understand the product in under 2 minutes
|
|
76
|
+
2. The value proposition is immediately clear
|
|
77
|
+
3. Key decisions or asks are explicit
|
|
78
|
+
4. Claims are specific and quantified where possible
|
|
79
|
+
5. Strategic rationale is evident
|
|
80
|
+
|
|
81
|
+
# Special Instructions
|
|
82
|
+
- If information is incomplete, make reasonable assumptions and mark with [ASSUMPTION]
|
|
83
|
+
- Prioritize clarity over comprehensiveness
|
|
84
|
+
- Lead with impact, not features
|
|
85
|
+
- Use active voice and strong verbs
|
|
86
|
+
- Avoid superlatives without supporting data
|
|
87
|
+
- If competitive information is sparse, focus on unique value rather than comparisons
|
|
88
|
+
|
|
89
|
+
## WORKFLOW STEPS
|
|
90
|
+
1. Read the user's input about the product
|
|
91
|
+
2. Generate a unique, URL-friendly slug from the product name (lowercase, hyphen-separated)
|
|
92
|
+
3. Create the directory `prompter/<slug>/` if it doesn't exist
|
|
93
|
+
4. Generate the complete Product Brief following all requirements above
|
|
94
|
+
5. Save the Product Brief to `prompter/<slug>/product-brief.md`
|
|
95
|
+
6. Report the saved file path
|
|
96
|
+
|
|
97
|
+
## REFERENCE
|
|
98
|
+
- Read `prompter/project.md` for project context if needed
|
|
99
|
+
<!-- prompter-managed-end -->
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Create a modular skill package that extends AI agent capabilities
|
|
3
3
|
---
|
|
4
|
+
$ARGUMENTS
|
|
4
5
|
<!-- prompter-managed-start -->
|
|
5
6
|
# Role & Expertise
|
|
6
7
|
You are an expert Skill Creator specializing in designing modular, self-contained packages that extend AI agent capabilities. You have deep expertise in procedural knowledge extraction, workflow design, and context-efficient documentation.
|
package/dist/cli/index.js
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface ProductBriefOptions {
|
|
2
|
+
tools?: string[];
|
|
3
|
+
noInteractive?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare class ProductBriefCommand {
|
|
6
|
+
execute(options?: ProductBriefOptions): Promise<void>;
|
|
7
|
+
private fileExists;
|
|
8
|
+
private detectConfiguredTools;
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=product-brief.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-brief.d.ts","sourceRoot":"","sources":["../../src/commands/product-brief.ts"],"names":[],"mappings":"AAMA,UAAU,mBAAmB;IACzB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,mBAAmB;IACtB,OAAO,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;YAyEjD,UAAU;YASV,qBAAqB;CAuBtC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
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 ProductBriefCommand {
|
|
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 product-brief 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 product-brief 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 product-brief workflow file
|
|
33
|
+
const body = configurator['getBody']('product-brief');
|
|
34
|
+
const relativePath = configurator['getRelativePath']('product-brief');
|
|
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']('product-brief');
|
|
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✅ Product brief workflow files created successfully!\n`));
|
|
64
|
+
console.log(chalk.blue('Next steps:'));
|
|
65
|
+
console.log(chalk.gray(' 1. Use /product-brief in your AI tool to create executive summaries'));
|
|
66
|
+
console.log(chalk.gray(' 2. Briefs will be saved to prompter/<slug>/product-brief.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
|
+
let hasFiles = false;
|
|
83
|
+
for (const target of targets) {
|
|
84
|
+
const filePath = path.join(projectPath, target.path);
|
|
85
|
+
if (await this.fileExists(filePath)) {
|
|
86
|
+
hasFiles = true;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (hasFiles) {
|
|
91
|
+
configuredTools.push(configurator.toolId);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return configuredTools;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=product-brief.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-brief.js","sourceRoot":"","sources":["../../src/commands/product-brief.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AAsB1D,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
|
+
'product-brief': '.agent/workflows/product-brief.md',
|
|
5
6
|
'epic-single': '.agent/workflows/epic-single.md',
|
|
6
7
|
'story-single': '.agent/workflows/story-single.md',
|
|
7
8
|
'qa-test-scenario': '.agent/workflows/qa-test-scenario.md',
|
|
@@ -10,6 +11,7 @@ const FILE_PATHS = {
|
|
|
10
11
|
const DESCRIPTIONS = {
|
|
11
12
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
12
13
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
14
|
+
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
13
15
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
14
16
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
15
17
|
'qa-test-scenario': 'Generate focused QA test scenarios from PRD',
|
|
@@ -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,aAAa,EAAE,iCAAiC;IAChD,cAAc,EAAE,kCAAkC;IAClD,kBAAkB,EAAE,sCAAsC;IAC1D,eAAe,EAAE,mCAAmC;CACvD,CAAC;AAEF,MAAM,YAAY,GAAmC;IACjD,OAAO,EAAE,0DAA0D;IACnE,eAAe,EAAE,8DAA8D;IAC/E,aAAa,EAAE,0CAA0C;IACzD,cAAc,EAAE,qDAAqD;IACrE,kBAAkB,EAAE,6CAA6C;IACjE,eAAe,EAAE,mEAAmE;CACvF,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,eAAe,EAAE,mCAAmC;IACpD,aAAa,EAAE,iCAAiC;IAChD,cAAc,EAAE,kCAAkC;IAClD,kBAAkB,EAAE,sCAAsC;IAC1D,eAAe,EAAE,mCAAmC;CACvD,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;CACvF,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', 'epic-single', 'story-single', 'qa-test-scenario', 'skill-creator'];
|
|
5
|
+
const ALL_COMMANDS = ['enhance', 'prd-generator', 'product-brief', 'epic-single', 'story-single', 'qa-test-scenario', 'skill-creator'];
|
|
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,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,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;AAsB1D,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
|
+
'product-brief': '.claude/commands/prompter/product-brief.md',
|
|
5
6
|
'epic-single': '.claude/commands/prompter/epic-single.md',
|
|
6
7
|
'story-single': '.claude/commands/prompter/story-single.md',
|
|
7
8
|
'qa-test-scenario': '.claude/commands/prompter/qa-test-scenario.md',
|
|
@@ -10,6 +11,7 @@ const FILE_PATHS = {
|
|
|
10
11
|
const DESCRIPTIONS = {
|
|
11
12
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
12
13
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
14
|
+
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
13
15
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
14
16
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
15
17
|
'qa-test-scenario': 'Generate focused QA test scenarios from PRD',
|
|
@@ -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,aAAa,EAAE,0CAA0C;IACzD,cAAc,EAAE,2CAA2C;IAC3D,kBAAkB,EAAE,+CAA+C;IACnE,eAAe,EAAE,4CAA4C;CAChE,CAAC;AAEF,MAAM,YAAY,GAAmC;IACjD,OAAO,EAAE,0DAA0D;IACnE,eAAe,EAAE,8DAA8D;IAC/E,aAAa,EAAE,0CAA0C;IACzD,cAAc,EAAE,qDAAqD;IACrE,kBAAkB,EAAE,6CAA6C;IACjE,eAAe,EAAE,mEAAmE;CACvF,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,eAAe,EAAE,4CAA4C;IAC7D,aAAa,EAAE,0CAA0C;IACzD,cAAc,EAAE,2CAA2C;IAC3D,kBAAkB,EAAE,+CAA+C;IACnE,eAAe,EAAE,4CAA4C;CAChE,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;CACvF,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;AAsB1D,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
|
+
'product-brief': '.codex/prompts/product-brief.md',
|
|
5
6
|
'epic-single': '.codex/prompts/epic-single.md',
|
|
6
7
|
'story-single': '.codex/prompts/story-single.md',
|
|
7
8
|
'qa-test-scenario': '.codex/prompts/qa-test-scenario.md',
|
|
@@ -10,6 +11,7 @@ const FILE_PATHS = {
|
|
|
10
11
|
const DESCRIPTIONS = {
|
|
11
12
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
12
13
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
14
|
+
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
13
15
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
14
16
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
15
17
|
'qa-test-scenario': 'Generate focused QA test scenarios from PRD',
|
|
@@ -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,aAAa,EAAE,+BAA+B;IAC9C,cAAc,EAAE,gCAAgC;IAChD,kBAAkB,EAAE,oCAAoC;IACxD,eAAe,EAAE,iCAAiC;CACrD,CAAC;AAEF,MAAM,YAAY,GAAmC;IACjD,OAAO,EAAE,0DAA0D;IACnE,eAAe,EAAE,8DAA8D;IAC/E,aAAa,EAAE,0CAA0C;IACzD,cAAc,EAAE,qDAAqD;IACrE,kBAAkB,EAAE,6CAA6C;IACjE,eAAe,EAAE,mEAAmE;CACvF,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,eAAe,EAAE,iCAAiC;IAClD,aAAa,EAAE,+BAA+B;IAC9C,cAAc,EAAE,gCAAgC;IAChD,kBAAkB,EAAE,oCAAoC;IACxD,eAAe,EAAE,iCAAiC;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;CACvF,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;AAyB1D,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
|
+
'product-brief': '.github/prompts/product-brief.prompt.md',
|
|
8
9
|
'epic-single': '.github/prompts/epic-single.prompt.md',
|
|
9
10
|
'story-single': '.github/prompts/story-single.prompt.md',
|
|
10
11
|
'qa-test-scenario': '.github/prompts/qa-test-scenario.prompt.md',
|
|
@@ -13,6 +14,7 @@ const FILE_PATHS = {
|
|
|
13
14
|
const DESCRIPTIONS = {
|
|
14
15
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
15
16
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
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',
|
|
18
20
|
'qa-test-scenario': 'Generate focused QA test scenarios from PRD',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-copilot.js","sourceRoot":"","sources":["../../../../src/core/configurators/slash/github-copilot.ts"],"names":[],"mappings":"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"}
|
|
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;AAsB1D,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
|
+
'product-brief': '.kilocode/workflows/product-brief.md',
|
|
5
6
|
'epic-single': '.kilocode/workflows/epic-single.md',
|
|
6
7
|
'story-single': '.kilocode/workflows/story-single.md',
|
|
7
8
|
'qa-test-scenario': '.kilocode/workflows/qa-test-scenario.md',
|
|
@@ -10,6 +11,7 @@ const FILE_PATHS = {
|
|
|
10
11
|
const DESCRIPTIONS = {
|
|
11
12
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
12
13
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
14
|
+
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
13
15
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
14
16
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
15
17
|
'qa-test-scenario': 'Generate focused QA test scenarios from PRD',
|
|
@@ -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,aAAa,EAAE,oCAAoC;IACnD,cAAc,EAAE,qCAAqC;IACrD,kBAAkB,EAAE,yCAAyC;IAC7D,eAAe,EAAE,sCAAsC;CAC1D,CAAC;AAEF,MAAM,YAAY,GAAmC;IACjD,OAAO,EAAE,0DAA0D;IACnE,eAAe,EAAE,8DAA8D;IAC/E,aAAa,EAAE,0CAA0C;IACzD,cAAc,EAAE,qDAAqD;IACrE,kBAAkB,EAAE,6CAA6C;IACjE,eAAe,EAAE,mEAAmE;CACvF,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,eAAe,EAAE,sCAAsC;IACvD,aAAa,EAAE,oCAAoC;IACnD,cAAc,EAAE,qCAAqC;IACrD,kBAAkB,EAAE,yCAAyC;IAC7D,eAAe,EAAE,sCAAsC;CAC1D,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;CACvF,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;AAsB1D,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
|
+
'product-brief': '.opencode/prompts/product-brief.md',
|
|
5
6
|
'epic-single': '.opencode/prompts/epic-single.md',
|
|
6
7
|
'story-single': '.opencode/prompts/story-single.md',
|
|
7
8
|
'qa-test-scenario': '.opencode/prompts/qa-test-scenario.md',
|
|
@@ -10,6 +11,7 @@ const FILE_PATHS = {
|
|
|
10
11
|
const DESCRIPTIONS = {
|
|
11
12
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
12
13
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
14
|
+
'product-brief': 'Generate an executive-level product brief (1-page summary)',
|
|
13
15
|
'epic-single': 'Generate a single well-defined Jira Epic',
|
|
14
16
|
'story-single': 'Generate a single Jira User Story from requirements',
|
|
15
17
|
'qa-test-scenario': 'Generate focused QA test scenarios from PRD',
|
|
@@ -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,aAAa,EAAE,kCAAkC;IACjD,cAAc,EAAE,mCAAmC;IACnD,kBAAkB,EAAE,uCAAuC;IAC3D,eAAe,EAAE,oCAAoC;CACxD,CAAC;AAEF,MAAM,YAAY,GAAmC;IACjD,OAAO,EAAE,0DAA0D;IACnE,eAAe,EAAE,8DAA8D;IAC/E,aAAa,EAAE,0CAA0C;IACzD,cAAc,EAAE,qDAAqD;IACrE,kBAAkB,EAAE,6CAA6C;IACjE,eAAe,EAAE,mEAAmE;CACvF,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,eAAe,EAAE,oCAAoC;IACrD,aAAa,EAAE,kCAAkC;IACjD,cAAc,EAAE,mCAAmC;IACnD,kBAAkB,EAAE,uCAAuC;IAC3D,eAAe,EAAE,oCAAoC;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;CACvF,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' | 'epic-single' | 'story-single' | 'qa-test-scenario' | 'skill-creator';
|
|
1
|
+
export type SlashCommandId = 'enhance' | 'prd-generator' | 'product-brief' | 'epic-single' | 'story-single' | 'qa-test-scenario' | 'skill-creator';
|
|
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,aAAa,GAAG,cAAc,GAAG,kBAAkB,GAAG,eAAe,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,eAAe,GAAG,aAAa,GAAG,cAAc,GAAG,kBAAkB,GAAG,eAAe,CAAC;AAiyBnJ,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAQ7D,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"}
|
|
@@ -697,9 +697,103 @@ Show basic content, link to advanced content only when needed.
|
|
|
697
697
|
## REFERENCE
|
|
698
698
|
- Skills are saved to \`prompter/skills/<skill-name>/\`
|
|
699
699
|
- Read \`prompter/project.md\` for project context if needed`;
|
|
700
|
+
const productBriefWorkflow = `# Role & Expertise
|
|
701
|
+
You 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.
|
|
702
|
+
|
|
703
|
+
# Context
|
|
704
|
+
You are creating a Product Brief (Executive Summary) - a concise, high-impact document that communicates the essential elements of a product to executives, investors, and cross-functional stakeholders who need to quickly understand the product's value proposition, market opportunity, and strategic fit.
|
|
705
|
+
|
|
706
|
+
# Primary Objective
|
|
707
|
+
Generate a polished, professional Product Brief that captures the essence of the product in a format suitable for executive review, board presentations, or investor communications.
|
|
708
|
+
|
|
709
|
+
# Input Required
|
|
710
|
+
Provide any combination of the following:
|
|
711
|
+
- Product name and description
|
|
712
|
+
- Target market/customer segment
|
|
713
|
+
- Problem being solved
|
|
714
|
+
- Key features or capabilities
|
|
715
|
+
- Business model/pricing approach
|
|
716
|
+
- Competitive landscape
|
|
717
|
+
- Current status/stage
|
|
718
|
+
- Key metrics or traction (if available)
|
|
719
|
+
- Strategic goals
|
|
720
|
+
|
|
721
|
+
*Note: Work with whatever information is provided; make reasonable inferences for gaps while flagging assumptions.*
|
|
722
|
+
|
|
723
|
+
# Output Format
|
|
724
|
+
|
|
725
|
+
## [PRODUCT NAME] - Executive Summary
|
|
726
|
+
|
|
727
|
+
### The Opportunity
|
|
728
|
+
[2-3 sentences describing the market problem and opportunity size]
|
|
729
|
+
|
|
730
|
+
### Our Solution
|
|
731
|
+
[2-3 sentences on what the product does and its core value proposition]
|
|
732
|
+
|
|
733
|
+
### Target Customer
|
|
734
|
+
[Specific customer segment with key characteristics]
|
|
735
|
+
|
|
736
|
+
### Key Differentiators
|
|
737
|
+
- [Differentiator 1]
|
|
738
|
+
- [Differentiator 2]
|
|
739
|
+
- [Differentiator 3]
|
|
740
|
+
|
|
741
|
+
### Business Model
|
|
742
|
+
[1-2 sentences on how the product generates revenue]
|
|
743
|
+
|
|
744
|
+
### Traction & Validation
|
|
745
|
+
[Key metrics, milestones, or validation points - use "Target:" prefix for projections]
|
|
746
|
+
|
|
747
|
+
### Competitive Position
|
|
748
|
+
[Brief competitive landscape and positioning statement]
|
|
749
|
+
|
|
750
|
+
### Strategic Fit
|
|
751
|
+
[How this aligns with broader company/market strategy]
|
|
752
|
+
|
|
753
|
+
### Ask / Next Steps
|
|
754
|
+
[Clear call-to-action or decision needed]
|
|
755
|
+
|
|
756
|
+
---
|
|
757
|
+
**Status:** [Current stage]
|
|
758
|
+
**Owner:** [Product lead/team]
|
|
759
|
+
**Last Updated:** [Date]
|
|
760
|
+
|
|
761
|
+
# Writing Standards
|
|
762
|
+
- **Tone:** Confident, data-informed, strategic
|
|
763
|
+
- **Length:** 1 page maximum (300-500 words)
|
|
764
|
+
- **Language:** Executive-friendly, minimal jargon
|
|
765
|
+
- **Numbers:** Include quantified metrics wherever possible
|
|
766
|
+
- **Clarity:** Each section should be understandable in isolation
|
|
767
|
+
|
|
768
|
+
# Quality Criteria
|
|
769
|
+
1. A busy executive can understand the product in under 2 minutes
|
|
770
|
+
2. The value proposition is immediately clear
|
|
771
|
+
3. Key decisions or asks are explicit
|
|
772
|
+
4. Claims are specific and quantified where possible
|
|
773
|
+
5. Strategic rationale is evident
|
|
774
|
+
|
|
775
|
+
# Special Instructions
|
|
776
|
+
- If information is incomplete, make reasonable assumptions and mark with [ASSUMPTION]
|
|
777
|
+
- Prioritize clarity over comprehensiveness
|
|
778
|
+
- Lead with impact, not features
|
|
779
|
+
- Use active voice and strong verbs
|
|
780
|
+
- Avoid superlatives without supporting data
|
|
781
|
+
- If competitive information is sparse, focus on unique value rather than comparisons
|
|
782
|
+
|
|
783
|
+
## WORKFLOW STEPS
|
|
784
|
+
1. Read the user's input about the product
|
|
785
|
+
2. Generate a unique, URL-friendly slug from the product name (lowercase, hyphen-separated)
|
|
786
|
+
3. Create the directory \`prompter/<slug>/\` if it doesn't exist
|
|
787
|
+
4. Generate the complete Product Brief following all requirements above
|
|
788
|
+
5. Save the Product Brief to \`prompter/<slug>/product-brief.md\`
|
|
789
|
+
6. Report the saved file path
|
|
790
|
+
|
|
791
|
+
## REFERENCE
|
|
792
|
+
- Read \`prompter/project.md\` for project context if needed`;
|
|
700
793
|
export const slashCommandBodies = {
|
|
701
794
|
enhance: enhanceWorkflow,
|
|
702
795
|
'prd-generator': prdGeneratorWorkflow,
|
|
796
|
+
'product-brief': productBriefWorkflow,
|
|
703
797
|
'epic-single': epicSingleWorkflow,
|
|
704
798
|
'story-single': storySingleWorkflow,
|
|
705
799
|
'qa-test-scenario': qaTestScenarioWorkflow,
|
|
@@ -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,CAAC,MAAM,kBAAkB,GAAmC;IAC9D,OAAO,EAAE,eAAe;IACxB,eAAe,EAAE,oBAAoB;IACrC,aAAa,EAAE,kBAAkB;IACjC,cAAc,EAAE,mBAAmB;IACnC,kBAAkB,EAAE,sBAAsB;IAC1C,eAAe,EAAE,oBAAoB;CACxC,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,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DA4FgC,CAAC;AAE9D,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;CACxC,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,84 @@
|
|
|
1
|
+
# Product Brief (Executive Summary) Generator
|
|
2
|
+
|
|
3
|
+
# Role & Expertise
|
|
4
|
+
You 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.
|
|
5
|
+
|
|
6
|
+
# Context
|
|
7
|
+
You are creating a Product Brief (Executive Summary) - a concise, high-impact document that communicates the essential elements of a product to executives, investors, and cross-functional stakeholders who need to quickly understand the product's value proposition, market opportunity, and strategic fit.
|
|
8
|
+
|
|
9
|
+
# Primary Objective
|
|
10
|
+
Generate a polished, professional Product Brief that captures the essence of the product in a format suitable for executive review, board presentations, or investor communications.
|
|
11
|
+
|
|
12
|
+
# Input Required
|
|
13
|
+
Provide any combination of the following:
|
|
14
|
+
- Product name and description
|
|
15
|
+
- Target market/customer segment
|
|
16
|
+
- Problem being solved
|
|
17
|
+
- Key features or capabilities
|
|
18
|
+
- Business model/pricing approach
|
|
19
|
+
- Competitive landscape
|
|
20
|
+
- Current status/stage
|
|
21
|
+
- Key metrics or traction (if available)
|
|
22
|
+
- Strategic goals
|
|
23
|
+
|
|
24
|
+
*Note: Work with whatever information is provided; make reasonable inferences for gaps while flagging assumptions.*
|
|
25
|
+
|
|
26
|
+
# Output Format
|
|
27
|
+
|
|
28
|
+
## [PRODUCT NAME] - Executive Summary
|
|
29
|
+
|
|
30
|
+
### The Opportunity
|
|
31
|
+
[2-3 sentences describing the market problem and opportunity size]
|
|
32
|
+
|
|
33
|
+
### Our Solution
|
|
34
|
+
[2-3 sentences on what the product does and its core value proposition]
|
|
35
|
+
|
|
36
|
+
### Target Customer
|
|
37
|
+
[Specific customer segment with key characteristics]
|
|
38
|
+
|
|
39
|
+
### Key Differentiators
|
|
40
|
+
- [Differentiator 1]
|
|
41
|
+
- [Differentiator 2]
|
|
42
|
+
- [Differentiator 3]
|
|
43
|
+
|
|
44
|
+
### Business Model
|
|
45
|
+
[1-2 sentences on how the product generates revenue]
|
|
46
|
+
|
|
47
|
+
### Traction & Validation
|
|
48
|
+
[Key metrics, milestones, or validation points - use "Target:" prefix for projections]
|
|
49
|
+
|
|
50
|
+
### Competitive Position
|
|
51
|
+
[Brief competitive landscape and positioning statement]
|
|
52
|
+
|
|
53
|
+
### Strategic Fit
|
|
54
|
+
[How this aligns with broader company/market strategy]
|
|
55
|
+
|
|
56
|
+
### Ask / Next Steps
|
|
57
|
+
[Clear call-to-action or decision needed]
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
**Status:** [Current stage]
|
|
61
|
+
**Owner:** [Product lead/team]
|
|
62
|
+
**Last Updated:** [Date]
|
|
63
|
+
|
|
64
|
+
# Writing Standards
|
|
65
|
+
- **Tone:** Confident, data-informed, strategic
|
|
66
|
+
- **Length:** 1 page maximum (300-500 words)
|
|
67
|
+
- **Language:** Executive-friendly, minimal jargon
|
|
68
|
+
- **Numbers:** Include quantified metrics wherever possible
|
|
69
|
+
- **Clarity:** Each section should be understandable in isolation
|
|
70
|
+
|
|
71
|
+
# Quality Criteria
|
|
72
|
+
1. A busy executive can understand the product in under 2 minutes
|
|
73
|
+
2. The value proposition is immediately clear
|
|
74
|
+
3. Key decisions or asks are explicit
|
|
75
|
+
4. Claims are specific and quantified where possible
|
|
76
|
+
5. Strategic rationale is evident
|
|
77
|
+
|
|
78
|
+
# Special Instructions
|
|
79
|
+
- If information is incomplete, make reasonable assumptions and mark with [ASSUMPTION]
|
|
80
|
+
- Prioritize clarity over comprehensiveness
|
|
81
|
+
- Lead with impact, not features
|
|
82
|
+
- Use active voice and strong verbs
|
|
83
|
+
- Avoid superlatives without supporting data
|
|
84
|
+
- If competitive information is sparse, focus on unique value rather than comparisons
|
package/src/cli/index.ts
CHANGED
|
@@ -0,0 +1,118 @@
|
|
|
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 ProductBriefOptions {
|
|
8
|
+
tools?: string[];
|
|
9
|
+
noInteractive?: boolean;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export class ProductBriefCommand {
|
|
13
|
+
async execute(options: ProductBriefOptions = {}): 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 product-brief 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 product-brief 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 product-brief workflow file
|
|
45
|
+
const body = configurator['getBody']('product-brief');
|
|
46
|
+
const relativePath = configurator['getRelativePath']('product-brief');
|
|
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']('product-brief');
|
|
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✅ Product brief workflow files created successfully!\n`));
|
|
81
|
+
console.log(chalk.blue('Next steps:'));
|
|
82
|
+
console.log(chalk.gray(' 1. Use /product-brief in your AI tool to create executive summaries'));
|
|
83
|
+
console.log(chalk.gray(' 2. Briefs will be saved to prompter/<slug>/product-brief.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
|
+
let hasFiles = false;
|
|
102
|
+
|
|
103
|
+
for (const target of targets) {
|
|
104
|
+
const filePath = path.join(projectPath, target.path);
|
|
105
|
+
if (await this.fileExists(filePath)) {
|
|
106
|
+
hasFiles = true;
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (hasFiles) {
|
|
112
|
+
configuredTools.push(configurator.toolId);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return configuredTools;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -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
|
+
'product-brief': '.agent/workflows/product-brief.md',
|
|
7
8
|
'epic-single': '.agent/workflows/epic-single.md',
|
|
8
9
|
'story-single': '.agent/workflows/story-single.md',
|
|
9
10
|
'qa-test-scenario': '.agent/workflows/qa-test-scenario.md',
|
|
@@ -13,6 +14,7 @@ const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
|
13
14
|
const DESCRIPTIONS: Record<SlashCommandId, string> = {
|
|
14
15
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
15
16
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
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',
|
|
18
20
|
'qa-test-scenario': 'Generate focused QA test scenarios from PRD',
|
|
@@ -9,7 +9,7 @@ export interface SlashCommandTarget {
|
|
|
9
9
|
kind: 'slash';
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
const ALL_COMMANDS: SlashCommandId[] = ['enhance', 'prd-generator', 'epic-single', 'story-single', 'qa-test-scenario', 'skill-creator'];
|
|
12
|
+
const ALL_COMMANDS: SlashCommandId[] = ['enhance', 'prd-generator', 'product-brief', 'epic-single', 'story-single', 'qa-test-scenario', 'skill-creator'];
|
|
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
|
+
'product-brief': '.claude/commands/prompter/product-brief.md',
|
|
7
8
|
'epic-single': '.claude/commands/prompter/epic-single.md',
|
|
8
9
|
'story-single': '.claude/commands/prompter/story-single.md',
|
|
9
10
|
'qa-test-scenario': '.claude/commands/prompter/qa-test-scenario.md',
|
|
@@ -13,6 +14,7 @@ const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
|
13
14
|
const DESCRIPTIONS: Record<SlashCommandId, string> = {
|
|
14
15
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
15
16
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
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',
|
|
18
20
|
'qa-test-scenario': 'Generate focused QA test scenarios from PRD',
|
|
@@ -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
|
+
'product-brief': '.codex/prompts/product-brief.md',
|
|
7
8
|
'epic-single': '.codex/prompts/epic-single.md',
|
|
8
9
|
'story-single': '.codex/prompts/story-single.md',
|
|
9
10
|
'qa-test-scenario': '.codex/prompts/qa-test-scenario.md',
|
|
@@ -13,6 +14,7 @@ const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
|
13
14
|
const DESCRIPTIONS: Record<SlashCommandId, string> = {
|
|
14
15
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
15
16
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
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',
|
|
18
20
|
'qa-test-scenario': 'Generate focused QA test scenarios from PRD',
|
|
@@ -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
|
+
'product-brief': '.github/prompts/product-brief.prompt.md',
|
|
10
11
|
'epic-single': '.github/prompts/epic-single.prompt.md',
|
|
11
12
|
'story-single': '.github/prompts/story-single.prompt.md',
|
|
12
13
|
'qa-test-scenario': '.github/prompts/qa-test-scenario.prompt.md',
|
|
@@ -16,6 +17,7 @@ const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
|
16
17
|
const DESCRIPTIONS: Record<SlashCommandId, string> = {
|
|
17
18
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
18
19
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
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',
|
|
21
23
|
'qa-test-scenario': 'Generate focused QA test scenarios from PRD',
|
|
@@ -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
|
+
'product-brief': '.kilocode/workflows/product-brief.md',
|
|
7
8
|
'epic-single': '.kilocode/workflows/epic-single.md',
|
|
8
9
|
'story-single': '.kilocode/workflows/story-single.md',
|
|
9
10
|
'qa-test-scenario': '.kilocode/workflows/qa-test-scenario.md',
|
|
@@ -13,6 +14,7 @@ const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
|
13
14
|
const DESCRIPTIONS: Record<SlashCommandId, string> = {
|
|
14
15
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
15
16
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
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',
|
|
18
20
|
'qa-test-scenario': 'Generate focused QA test scenarios from PRD',
|
|
@@ -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
|
+
'product-brief': '.opencode/prompts/product-brief.md',
|
|
7
8
|
'epic-single': '.opencode/prompts/epic-single.md',
|
|
8
9
|
'story-single': '.opencode/prompts/story-single.md',
|
|
9
10
|
'qa-test-scenario': '.opencode/prompts/qa-test-scenario.md',
|
|
@@ -13,6 +14,7 @@ const FILE_PATHS: Record<SlashCommandId, string> = {
|
|
|
13
14
|
const DESCRIPTIONS: Record<SlashCommandId, string> = {
|
|
14
15
|
enhance: 'Enhance a rough prompt into a professional specification',
|
|
15
16
|
'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
|
|
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',
|
|
18
20
|
'qa-test-scenario': 'Generate focused QA test scenarios from PRD',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type SlashCommandId = 'enhance' | 'prd-generator' | 'epic-single' | 'story-single' | 'qa-test-scenario' | 'skill-creator';
|
|
1
|
+
export type SlashCommandId = 'enhance' | 'prd-generator' | 'product-brief' | 'epic-single' | 'story-single' | 'qa-test-scenario' | 'skill-creator';
|
|
2
2
|
|
|
3
3
|
const enhanceWorkflow = `## MUST FOLLOW
|
|
4
4
|
- Response Language: {User Request Language}
|
|
@@ -705,9 +705,104 @@ Show basic content, link to advanced content only when needed.
|
|
|
705
705
|
- Skills are saved to \`prompter/skills/<skill-name>/\`
|
|
706
706
|
- Read \`prompter/project.md\` for project context if needed`;
|
|
707
707
|
|
|
708
|
+
const productBriefWorkflow = `# Role & Expertise
|
|
709
|
+
You 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.
|
|
710
|
+
|
|
711
|
+
# Context
|
|
712
|
+
You are creating a Product Brief (Executive Summary) - a concise, high-impact document that communicates the essential elements of a product to executives, investors, and cross-functional stakeholders who need to quickly understand the product's value proposition, market opportunity, and strategic fit.
|
|
713
|
+
|
|
714
|
+
# Primary Objective
|
|
715
|
+
Generate a polished, professional Product Brief that captures the essence of the product in a format suitable for executive review, board presentations, or investor communications.
|
|
716
|
+
|
|
717
|
+
# Input Required
|
|
718
|
+
Provide any combination of the following:
|
|
719
|
+
- Product name and description
|
|
720
|
+
- Target market/customer segment
|
|
721
|
+
- Problem being solved
|
|
722
|
+
- Key features or capabilities
|
|
723
|
+
- Business model/pricing approach
|
|
724
|
+
- Competitive landscape
|
|
725
|
+
- Current status/stage
|
|
726
|
+
- Key metrics or traction (if available)
|
|
727
|
+
- Strategic goals
|
|
728
|
+
|
|
729
|
+
*Note: Work with whatever information is provided; make reasonable inferences for gaps while flagging assumptions.*
|
|
730
|
+
|
|
731
|
+
# Output Format
|
|
732
|
+
|
|
733
|
+
## [PRODUCT NAME] - Executive Summary
|
|
734
|
+
|
|
735
|
+
### The Opportunity
|
|
736
|
+
[2-3 sentences describing the market problem and opportunity size]
|
|
737
|
+
|
|
738
|
+
### Our Solution
|
|
739
|
+
[2-3 sentences on what the product does and its core value proposition]
|
|
740
|
+
|
|
741
|
+
### Target Customer
|
|
742
|
+
[Specific customer segment with key characteristics]
|
|
743
|
+
|
|
744
|
+
### Key Differentiators
|
|
745
|
+
- [Differentiator 1]
|
|
746
|
+
- [Differentiator 2]
|
|
747
|
+
- [Differentiator 3]
|
|
748
|
+
|
|
749
|
+
### Business Model
|
|
750
|
+
[1-2 sentences on how the product generates revenue]
|
|
751
|
+
|
|
752
|
+
### Traction & Validation
|
|
753
|
+
[Key metrics, milestones, or validation points - use "Target:" prefix for projections]
|
|
754
|
+
|
|
755
|
+
### Competitive Position
|
|
756
|
+
[Brief competitive landscape and positioning statement]
|
|
757
|
+
|
|
758
|
+
### Strategic Fit
|
|
759
|
+
[How this aligns with broader company/market strategy]
|
|
760
|
+
|
|
761
|
+
### Ask / Next Steps
|
|
762
|
+
[Clear call-to-action or decision needed]
|
|
763
|
+
|
|
764
|
+
---
|
|
765
|
+
**Status:** [Current stage]
|
|
766
|
+
**Owner:** [Product lead/team]
|
|
767
|
+
**Last Updated:** [Date]
|
|
768
|
+
|
|
769
|
+
# Writing Standards
|
|
770
|
+
- **Tone:** Confident, data-informed, strategic
|
|
771
|
+
- **Length:** 1 page maximum (300-500 words)
|
|
772
|
+
- **Language:** Executive-friendly, minimal jargon
|
|
773
|
+
- **Numbers:** Include quantified metrics wherever possible
|
|
774
|
+
- **Clarity:** Each section should be understandable in isolation
|
|
775
|
+
|
|
776
|
+
# Quality Criteria
|
|
777
|
+
1. A busy executive can understand the product in under 2 minutes
|
|
778
|
+
2. The value proposition is immediately clear
|
|
779
|
+
3. Key decisions or asks are explicit
|
|
780
|
+
4. Claims are specific and quantified where possible
|
|
781
|
+
5. Strategic rationale is evident
|
|
782
|
+
|
|
783
|
+
# Special Instructions
|
|
784
|
+
- If information is incomplete, make reasonable assumptions and mark with [ASSUMPTION]
|
|
785
|
+
- Prioritize clarity over comprehensiveness
|
|
786
|
+
- Lead with impact, not features
|
|
787
|
+
- Use active voice and strong verbs
|
|
788
|
+
- Avoid superlatives without supporting data
|
|
789
|
+
- If competitive information is sparse, focus on unique value rather than comparisons
|
|
790
|
+
|
|
791
|
+
## WORKFLOW STEPS
|
|
792
|
+
1. Read the user's input about the product
|
|
793
|
+
2. Generate a unique, URL-friendly slug from the product name (lowercase, hyphen-separated)
|
|
794
|
+
3. Create the directory \`prompter/<slug>/\` if it doesn't exist
|
|
795
|
+
4. Generate the complete Product Brief following all requirements above
|
|
796
|
+
5. Save the Product Brief to \`prompter/<slug>/product-brief.md\`
|
|
797
|
+
6. Report the saved file path
|
|
798
|
+
|
|
799
|
+
## REFERENCE
|
|
800
|
+
- Read \`prompter/project.md\` for project context if needed`;
|
|
801
|
+
|
|
708
802
|
export const slashCommandBodies: Record<SlashCommandId, string> = {
|
|
709
803
|
enhance: enhanceWorkflow,
|
|
710
804
|
'prd-generator': prdGeneratorWorkflow,
|
|
805
|
+
'product-brief': productBriefWorkflow,
|
|
711
806
|
'epic-single': epicSingleWorkflow,
|
|
712
807
|
'story-single': storySingleWorkflow,
|
|
713
808
|
'qa-test-scenario': qaTestScenarioWorkflow,
|