@dedesfr/prompter 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +66 -8
  3. package/dist/cli/index.js +9 -1
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/commands/init.d.ts +3 -0
  6. package/dist/commands/init.d.ts.map +1 -1
  7. package/dist/commands/init.js +157 -22
  8. package/dist/commands/init.js.map +1 -1
  9. package/dist/commands/prd-generator.d.ts +11 -0
  10. package/dist/commands/prd-generator.d.ts.map +1 -0
  11. package/dist/commands/prd-generator.js +97 -0
  12. package/dist/commands/prd-generator.js.map +1 -0
  13. package/dist/core/configurators/slash/antigravity.d.ts.map +1 -1
  14. package/dist/core/configurators/slash/antigravity.js +10 -2
  15. package/dist/core/configurators/slash/antigravity.js.map +1 -1
  16. package/dist/core/configurators/slash/base.js +1 -1
  17. package/dist/core/configurators/slash/base.js.map +1 -1
  18. package/dist/core/configurators/slash/claude.d.ts.map +1 -1
  19. package/dist/core/configurators/slash/claude.js +10 -2
  20. package/dist/core/configurators/slash/claude.js.map +1 -1
  21. package/dist/core/configurators/slash/codex.d.ts.map +1 -1
  22. package/dist/core/configurators/slash/codex.js +10 -2
  23. package/dist/core/configurators/slash/codex.js.map +1 -1
  24. package/dist/core/configurators/slash/github-copilot.d.ts.map +1 -1
  25. package/dist/core/configurators/slash/github-copilot.js +10 -2
  26. package/dist/core/configurators/slash/github-copilot.js.map +1 -1
  27. package/dist/core/configurators/slash/kilocode.d.ts.map +1 -1
  28. package/dist/core/configurators/slash/kilocode.js +10 -2
  29. package/dist/core/configurators/slash/kilocode.js.map +1 -1
  30. package/dist/core/configurators/slash/opencode.d.ts.map +1 -1
  31. package/dist/core/configurators/slash/opencode.js +10 -2
  32. package/dist/core/configurators/slash/opencode.js.map +1 -1
  33. package/dist/core/templates/slash-command-templates.d.ts +1 -1
  34. package/dist/core/templates/slash-command-templates.d.ts.map +1 -1
  35. package/dist/core/templates/slash-command-templates.js +494 -1
  36. package/dist/core/templates/slash-command-templates.js.map +1 -1
  37. package/package.json +1 -1
  38. package/prompt/epic-single.md +47 -0
  39. package/prompt/prd-generator.md +195 -0
  40. package/prompt/qa-test-scenario.md +133 -0
  41. package/prompt/story-single.md +70 -0
  42. package/src/cli/index.ts +10 -1
  43. package/src/commands/init.ts +165 -22
  44. package/src/commands/prd-generator.ts +118 -0
  45. package/src/core/configurators/slash/antigravity.ts +10 -2
  46. package/src/core/configurators/slash/base.ts +1 -1
  47. package/src/core/configurators/slash/claude.ts +10 -2
  48. package/src/core/configurators/slash/codex.ts +10 -2
  49. package/src/core/configurators/slash/github-copilot.ts +10 -2
  50. package/src/core/configurators/slash/kilocode.ts +10 -2
  51. package/src/core/configurators/slash/opencode.ts +10 -2
  52. package/src/core/templates/slash-command-templates.ts +499 -2
package/CHANGELOG.md ADDED
@@ -0,0 +1,50 @@
1
+ # CHANGELOG
2
+
3
+ ## [0.2.0] - 2026-01-19
4
+
5
+ ### ✨ Added
6
+ - **Re-configurable AI Tools**: `prompter init` now allows re-selection of AI tools at any time, even after initial setup
7
+ - Add new AI tools to existing configuration
8
+ - Remove unused AI tools
9
+ - Switch between different AI tools seamlessly
10
+ - Interactive checkbox interface with current tools pre-selected
11
+ - Non-interactive mode with `--tools` flag for automation
12
+
13
+ ### šŸ”„ Changed
14
+ - `prompter init` no longer blocks on already-initialized projects
15
+ - Tool selection now shows currently configured tools before prompting
16
+ - Success messages now context-aware (initialization vs re-configuration)
17
+ - Improved user feedback with change summaries (Added/Removed/Kept)
18
+
19
+ ### šŸ›”ļø Safety
20
+ - Enhanced prompts in `prompter/<slug>/` always preserved
21
+ - `prompter/project.md` preserved during re-configuration
22
+ - `AGENTS.md` preserved if already exists
23
+ - Automatic cleanup of empty directories when removing tools
24
+ - Cancel-safe operation (Ctrl+C) at any time
25
+
26
+ ### šŸ“š Documentation
27
+ - Added comprehensive re-configuration guide (`docs/reconfigure-tools.md`)
28
+ - Added before/after comparison (`docs/before-after-comparison.md`)
29
+ - Added usage scenarios guide (`docs/usage-scenarios.md`)
30
+ - Added implementation summary (`docs/implementation-summary.md`)
31
+ - Updated README with re-configuration examples
32
+
33
+ ### šŸ”§ Technical
34
+ - Added `detectConfiguredTools()` method to scan for existing workflow files
35
+ - Added `removeToolFiles()` method for clean tool removal
36
+ - Added `removeEmptyDirs()` method for automatic directory cleanup
37
+ - Improved file existence checking and preservation logic
38
+
39
+ ### šŸŽÆ Backward Compatibility
40
+ - 100% backward compatible with existing installations
41
+ - No breaking changes to command syntax or behavior
42
+ - Fresh projects work identically to previous versions
43
+ - No changes to workflow file format
44
+ - No changes to other commands (`update`, `list`)
45
+
46
+ ## [0.1.0] - Previous Release
47
+ - Initial release with `init`, `update`, and `list` commands
48
+ - Support for 6 AI tools: Antigravity, Claude Code, Codex, GitHub Copilot, OpenCode, Kilo Code
49
+ - Universal support via AGENTS.md
50
+ - Workflow file generation with managed markers
package/README.md CHANGED
@@ -28,23 +28,77 @@ prompter init
28
28
  3. **Review** - Find the enhanced spec in `prompter/<slug>/enhanced-prompt.md`
29
29
  4. **Build** - Use the enhanced specification to guide implementation
30
30
 
31
+ ### Available Workflows
32
+
33
+ Prompter includes multiple workflow templates for different documentation needs:
34
+
35
+ #### `/prompter-enhance` - Prompt Enhancement
36
+ Transform rough ideas into clear, actionable specifications.
37
+ ```bash
38
+ /prompter-enhance Build a user dashboard with analytics
39
+ ```
40
+ Output: `prompter/<slug>/enhanced-prompt.md`
41
+
42
+ #### `/prd-generator` - Product Requirements Document
43
+ Generate comprehensive PRDs with objectives, user stories, and success metrics.
44
+ ```bash
45
+ /prd-generator Feature: User authentication system
46
+ ```
47
+ Output: `prompter/<slug>/prd.md`
48
+
49
+ #### `/epic-single` - Jira Epic Generation
50
+ Create well-structured Jira Epics from high-level requirements.
51
+ ```bash
52
+ /epic-single Payment processing system for e-commerce
53
+ ```
54
+ Output: `prompter/<slug>/epic.md`
55
+
56
+ #### `/story-single` - User Story Generation
57
+ Convert requirements or QA findings into actionable user stories.
58
+ ```bash
59
+ /story-single Users need to reset their password via email
60
+ ```
61
+ Output: `prompter/<slug>/story.md`
62
+
63
+ #### `/qa-test-scenario` - QA Test Scenarios
64
+ Generate focused test scenarios from PRDs or requirements.
65
+ ```bash
66
+ /qa-test-scenario [paste your PRD content]
67
+ ```
68
+ Output: `prompter/<slug>/qa-test-scenarios.md`
69
+
31
70
  ## Supported AI Tools
32
71
 
33
- - **Antigravity** - `.agent/workflows/prompter-enhance.md`
34
- - **Claude Code** - `.claude/commands/prompter/enhance.md`
35
- - **Codex** - `.codex/prompts/prompter-enhance.md`
36
- - **GitHub Copilot** - `.github/prompts/prompter-enhance.md`
37
- - **OpenCode** - `.opencode/prompts/prompter-enhance.md`
38
- - **Kilo Code** - `.kilocode/workflows/prompter-enhance.md`
72
+ Each tool gets workflow files for all commands (`/prompter-enhance`, `/prd-generator`, `/epic-single`, `/story-single`, `/qa-test-scenario`):
73
+
74
+ - **Antigravity** - `.agent/workflows/*.md`
75
+ - **Claude Code** - `.claude/commands/prompter/*.md`
76
+ - **Codex** - `.codex/prompts/*.md`
77
+ - **GitHub Copilot** - `.github/prompts/*.md`
78
+ - **OpenCode** - `.opencode/prompts/*.md`
79
+ - **Kilo Code** - `.kilocode/workflows/*.md`
39
80
  - **Universal** - `AGENTS.md` for any AGENTS.md-compatible tool
40
81
 
41
82
  ## Commands
42
83
 
43
84
  ```bash
44
- prompter init # Initialize Prompter in your project
85
+ prompter init # Initialize Prompter (or re-configure tools)
45
86
  prompter update # Update workflow files to latest version
46
87
  prompter list # List all enhanced prompts
47
88
  prompter list --json # Output as JSON
89
+ prompter prd-generator # Generate PRD workflow files for configured tools
90
+ ```
91
+
92
+ ### Re-configuring Tools
93
+
94
+ You can run `prompter init` again at any time to add, remove, or switch AI tools. See [docs/reconfigure-tools.md](docs/reconfigure-tools.md) for details.
95
+
96
+ ```bash
97
+ # Add or remove tools interactively
98
+ prompter init
99
+
100
+ # Or specify tools directly
101
+ prompter init --tools github-copilot,claude
48
102
  ```
49
103
 
50
104
  ## Output Structure
@@ -53,7 +107,11 @@ prompter list --json # Output as JSON
53
107
  prompter/
54
108
  ā”œā”€ā”€ project.md # Project context (edit this!)
55
109
  ā”œā”€ā”€ <slug>/
56
- │ └── enhanced-prompt.md # Enhanced specification
110
+ │ ā”œā”€ā”€ enhanced-prompt.md # Enhanced specification
111
+ │ ā”œā”€ā”€ prd.md # Product Requirements Document
112
+ │ ā”œā”€ā”€ epic.md # Jira Epic
113
+ │ ā”œā”€ā”€ story.md # Jira User Story
114
+ │ └── qa-test-scenarios.md # QA Test Scenarios
57
115
  └── ...
58
116
  ```
59
117
 
package/dist/cli/index.js CHANGED
@@ -2,11 +2,12 @@ import { Command } from 'commander';
2
2
  import { InitCommand } from '../commands/init.js';
3
3
  import { UpdateCommand } from '../commands/update.js';
4
4
  import { ListCommand } from '../commands/list.js';
5
+ import { PrdGeneratorCommand } from '../commands/prd-generator.js';
5
6
  const program = new Command();
6
7
  program
7
8
  .name('prompter')
8
9
  .description('Enhance prompts directly in your AI coding workflow')
9
- .version('0.1.0');
10
+ .version('0.3.0');
10
11
  program
11
12
  .command('init')
12
13
  .description('Initialize Prompter in your project')
@@ -31,5 +32,12 @@ program
31
32
  const listCommand = new ListCommand();
32
33
  await listCommand.execute(options);
33
34
  });
35
+ program
36
+ .command('prd-generator')
37
+ .description('Generate PRD workflow files for configured AI tools')
38
+ .action(async (options) => {
39
+ const prdGeneratorCommand = new PrdGeneratorCommand();
40
+ await prdGeneratorCommand.execute(options);
41
+ });
34
42
  program.parse();
35
43
  //# sourceMappingURL=index.js.map
@@ -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;AAElD,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,CAAC,KAAK,EAAE,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,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,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,eAAe,CAAC;KACxB,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACtD,MAAM,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -5,6 +5,9 @@ interface InitOptions {
5
5
  export declare class InitCommand {
6
6
  execute(options?: InitOptions): Promise<void>;
7
7
  private fileExists;
8
+ private detectConfiguredTools;
9
+ private removeToolFiles;
10
+ private removeEmptyDirs;
8
11
  }
9
12
  export {};
10
13
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAQA,UAAU,WAAW;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,WAAW;IACd,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAgFzC,UAAU;CAQ3B"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAQA,UAAU,WAAW;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,WAAW;IACd,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAmKzC,UAAU;YASV,qBAAqB;YAwBrB,eAAe;YAkBf,eAAe;CAiBhC"}
@@ -8,12 +8,24 @@ import { registry } from '../core/configurators/slash/index.js';
8
8
  export class InitCommand {
9
9
  async execute(options = {}) {
10
10
  const projectPath = process.cwd();
11
- console.log(chalk.blue('\nšŸš€ Initializing Prompter...\n'));
12
- // Check if already initialized
13
- if (await PrompterConfig.prompterDirExists(projectPath)) {
14
- console.log(chalk.yellow('āš ļø Prompter is already initialized in this project.'));
15
- console.log(chalk.gray(' Use `prompter update` to refresh workflow files.\n'));
16
- return;
11
+ const isReInitialization = await PrompterConfig.prompterDirExists(projectPath);
12
+ if (isReInitialization) {
13
+ console.log(chalk.blue('\nšŸ”„ Re-configuring Prompter tools...\n'));
14
+ }
15
+ else {
16
+ console.log(chalk.blue('\nšŸš€ Initializing Prompter...\n'));
17
+ }
18
+ // Detect currently configured tools if re-initializing
19
+ let currentTools = [];
20
+ if (isReInitialization) {
21
+ currentTools = await this.detectConfiguredTools(projectPath);
22
+ if (currentTools.length > 0) {
23
+ console.log(chalk.gray('Currently configured tools: ') + chalk.cyan(currentTools.map(t => {
24
+ const tool = SUPPORTED_TOOLS.find(st => st.value === t);
25
+ return tool ? tool.name : t;
26
+ }).join(', ')));
27
+ console.log();
28
+ }
17
29
  }
18
30
  // Select tools
19
31
  let selectedTools = [];
@@ -22,28 +34,45 @@ export class InitCommand {
22
34
  }
23
35
  else if (!options.noInteractive) {
24
36
  try {
37
+ const message = isReInitialization
38
+ ? 'Select AI tools to configure (check/uncheck to add/remove):'
39
+ : 'Select AI tools to configure:';
25
40
  selectedTools = await checkbox({
26
- message: 'Select AI tools to configure:',
41
+ message,
27
42
  choices: SUPPORTED_TOOLS.map(tool => ({
28
43
  name: tool.name,
29
44
  value: tool.value,
30
- checked: tool.value === 'antigravity' // Default check Antigravity
45
+ checked: isReInitialization
46
+ ? currentTools.includes(tool.value)
47
+ : tool.value === 'antigravity' // Default check Antigravity for new init
31
48
  }))
32
49
  });
33
50
  }
34
51
  catch (error) {
35
52
  // User cancelled
36
- console.log(chalk.yellow('\nInitialization cancelled.'));
53
+ console.log(chalk.yellow(isReInitialization ? '\nRe-configuration cancelled.' : '\nInitialization cancelled.'));
37
54
  return;
38
55
  }
39
56
  }
40
- // Create prompter directory
57
+ else if (isReInitialization && selectedTools.length === 0) {
58
+ // In non-interactive re-init without tools specified, keep current tools
59
+ selectedTools = currentTools;
60
+ }
61
+ // Create or ensure prompter directory
41
62
  const prompterPath = await PrompterConfig.ensurePrompterDir(projectPath);
42
- console.log(chalk.green('āœ“') + ` Created ${chalk.cyan(PROMPTER_DIR + '/')}`);
43
- // Create project.md
63
+ if (!isReInitialization) {
64
+ console.log(chalk.green('āœ“') + ` Created ${chalk.cyan(PROMPTER_DIR + '/')}`);
65
+ }
66
+ // Create project.md if not exists
44
67
  const projectMdPath = path.join(prompterPath, 'project.md');
45
- await fs.writeFile(projectMdPath, projectTemplate, 'utf-8');
46
- console.log(chalk.green('āœ“') + ` Created ${chalk.cyan(PROMPTER_DIR + '/project.md')}`);
68
+ const projectMdExists = await this.fileExists(projectMdPath);
69
+ if (!projectMdExists) {
70
+ await fs.writeFile(projectMdPath, projectTemplate, 'utf-8');
71
+ console.log(chalk.green('āœ“') + ` Created ${chalk.cyan(PROMPTER_DIR + '/project.md')}`);
72
+ }
73
+ else if (isReInitialization) {
74
+ console.log(chalk.gray(' project.md already exists, keeping it'));
75
+ }
47
76
  // Create AGENTS.md for universal support
48
77
  const agentsMdPath = path.join(projectPath, 'AGENTS.md');
49
78
  const agentsExists = await this.fileExists(agentsMdPath);
@@ -54,10 +83,32 @@ export class InitCommand {
54
83
  else {
55
84
  console.log(chalk.gray(' AGENTS.md already exists, skipping'));
56
85
  }
57
- // Generate workflow files for selected tools
58
- if (selectedTools.length > 0) {
86
+ // Handle tool changes
87
+ const toolsToAdd = selectedTools.filter(t => !currentTools.includes(t));
88
+ const toolsToRemove = currentTools.filter(t => !selectedTools.includes(t));
89
+ const toolsToKeep = selectedTools.filter(t => currentTools.includes(t));
90
+ // Remove old tool files
91
+ if (toolsToRemove.length > 0) {
92
+ console.log(chalk.blue('\nšŸ—‘ļø Removing workflow files...\n'));
93
+ for (const toolId of toolsToRemove) {
94
+ const configurator = registry.get(toolId);
95
+ if (configurator) {
96
+ try {
97
+ const files = await this.removeToolFiles(projectPath, configurator);
98
+ for (const file of files) {
99
+ console.log(chalk.yellow('āœ“') + ` Removed ${chalk.cyan(file)}`);
100
+ }
101
+ }
102
+ catch (error) {
103
+ console.log(chalk.red('āœ—') + ` Failed to remove files for ${toolId}: ${error}`);
104
+ }
105
+ }
106
+ }
107
+ }
108
+ // Generate workflow files for new tools
109
+ if (toolsToAdd.length > 0) {
59
110
  console.log(chalk.blue('\nšŸ“ Creating workflow files...\n'));
60
- for (const toolId of selectedTools) {
111
+ for (const toolId of toolsToAdd) {
61
112
  const configurator = registry.get(toolId);
62
113
  if (configurator) {
63
114
  try {
@@ -72,12 +123,46 @@ export class InitCommand {
72
123
  }
73
124
  }
74
125
  }
126
+ // Show kept tools
127
+ if (isReInitialization && toolsToKeep.length > 0 && (toolsToAdd.length > 0 || toolsToRemove.length > 0)) {
128
+ console.log(chalk.blue('\n✨ Keeping existing tools:\n'));
129
+ for (const toolId of toolsToKeep) {
130
+ const tool = SUPPORTED_TOOLS.find(t => t.value === toolId);
131
+ if (tool) {
132
+ console.log(chalk.gray(' • ') + chalk.cyan(tool.name));
133
+ }
134
+ }
135
+ }
75
136
  // Success message
76
- console.log(chalk.green('\nāœ… Prompter initialized successfully!\n'));
77
- console.log(chalk.blue('Next steps:'));
78
- console.log(chalk.gray(' 1. Edit prompter/project.md to describe your project'));
79
- console.log(chalk.gray(' 2. Use /prompter-enhance to transform prompts'));
80
- console.log(chalk.gray(' 3. Run `prompter list` to see enhanced prompts\n'));
137
+ if (isReInitialization) {
138
+ console.log(chalk.green('\nāœ… Prompter tools updated successfully!\n'));
139
+ if (toolsToAdd.length > 0 || toolsToRemove.length > 0) {
140
+ console.log(chalk.blue('Summary:'));
141
+ if (toolsToAdd.length > 0) {
142
+ console.log(chalk.green(' Added: ') + toolsToAdd.map(t => {
143
+ const tool = SUPPORTED_TOOLS.find(st => st.value === t);
144
+ return tool ? tool.name : t;
145
+ }).join(', '));
146
+ }
147
+ if (toolsToRemove.length > 0) {
148
+ console.log(chalk.yellow(' Removed: ') + toolsToRemove.map(t => {
149
+ const tool = SUPPORTED_TOOLS.find(st => st.value === t);
150
+ return tool ? tool.name : t;
151
+ }).join(', '));
152
+ }
153
+ console.log();
154
+ }
155
+ else {
156
+ console.log(chalk.gray(' No changes made.\n'));
157
+ }
158
+ }
159
+ else {
160
+ console.log(chalk.green('\nāœ… Prompter initialized successfully!\n'));
161
+ console.log(chalk.blue('Next steps:'));
162
+ console.log(chalk.gray(' 1. Edit prompter/project.md to describe your project'));
163
+ console.log(chalk.gray(' 2. Use /prompter-enhance to transform prompts'));
164
+ console.log(chalk.gray(' 3. Run `prompter list` to see enhanced prompts\n'));
165
+ }
81
166
  }
82
167
  async fileExists(filePath) {
83
168
  try {
@@ -88,5 +173,55 @@ export class InitCommand {
88
173
  return false;
89
174
  }
90
175
  }
176
+ async detectConfiguredTools(projectPath) {
177
+ const configuredTools = [];
178
+ const allConfigurators = registry.getAll();
179
+ for (const configurator of allConfigurators) {
180
+ const targets = configurator.getTargets();
181
+ let hasFiles = false;
182
+ for (const target of targets) {
183
+ const filePath = path.join(projectPath, target.path);
184
+ if (await this.fileExists(filePath)) {
185
+ hasFiles = true;
186
+ break;
187
+ }
188
+ }
189
+ if (hasFiles) {
190
+ configuredTools.push(configurator.toolId);
191
+ }
192
+ }
193
+ return configuredTools;
194
+ }
195
+ async removeToolFiles(projectPath, configurator) {
196
+ const removedFiles = [];
197
+ const targets = configurator.getTargets();
198
+ for (const target of targets) {
199
+ const filePath = path.join(projectPath, target.path);
200
+ if (await this.fileExists(filePath)) {
201
+ await fs.unlink(filePath);
202
+ removedFiles.push(target.path);
203
+ // Remove empty parent directories
204
+ await this.removeEmptyDirs(path.dirname(filePath), projectPath);
205
+ }
206
+ }
207
+ return removedFiles;
208
+ }
209
+ async removeEmptyDirs(dirPath, projectPath) {
210
+ // Don't remove the project directory itself
211
+ if (dirPath === projectPath || dirPath === path.dirname(projectPath)) {
212
+ return;
213
+ }
214
+ try {
215
+ const files = await fs.readdir(dirPath);
216
+ if (files.length === 0) {
217
+ await fs.rmdir(dirPath);
218
+ // Recursively check parent
219
+ await this.removeEmptyDirs(path.dirname(dirPath), projectPath);
220
+ }
221
+ }
222
+ catch {
223
+ // Directory doesn't exist or can't be removed, ignore
224
+ }
225
+ }
91
226
  }
92
227
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ interface PrdGeneratorOptions {
2
+ tools?: string[];
3
+ noInteractive?: boolean;
4
+ }
5
+ export declare class PrdGeneratorCommand {
6
+ execute(options?: PrdGeneratorOptions): Promise<void>;
7
+ private fileExists;
8
+ private detectConfiguredTools;
9
+ }
10
+ export {};
11
+ //# sourceMappingURL=prd-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prd-generator.d.ts","sourceRoot":"","sources":["../../src/commands/prd-generator.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 PrdGeneratorCommand {
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 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-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-generator workflow file
33
+ const body = configurator['getBody']('prd-generator');
34
+ const relativePath = configurator['getRelativePath']('prd-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-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 generator workflow files created successfully!\n`));
64
+ console.log(chalk.blue('Next steps:'));
65
+ console.log(chalk.gray(' 1. Use /prd-generator in your AI tool to create PRDs'));
66
+ console.log(chalk.gray(' 2. PRDs will be saved to prompter/<slug>/prd.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=prd-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prd-generator.js","sourceRoot":"","sources":["../../src/commands/prd-generator.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;AAU1D,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"}
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;AAkB1D,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"}
@@ -1,9 +1,17 @@
1
1
  import { SlashCommandConfigurator } from './base.js';
2
2
  const FILE_PATHS = {
3
- enhance: '.agent/workflows/prompter-enhance.md'
3
+ enhance: '.agent/workflows/prompter-enhance.md',
4
+ 'prd-generator': '.agent/workflows/prd-generator.md',
5
+ 'epic-single': '.agent/workflows/epic-single.md',
6
+ 'story-single': '.agent/workflows/story-single.md',
7
+ 'qa-test-scenario': '.agent/workflows/qa-test-scenario.md'
4
8
  };
5
9
  const DESCRIPTIONS = {
6
- enhance: 'Enhance a rough prompt into a professional specification'
10
+ enhance: 'Enhance a rough prompt into a professional specification',
11
+ 'prd-generator': 'Generate a comprehensive Product Requirements Document (PRD)',
12
+ 'epic-single': 'Generate a single well-defined Jira Epic',
13
+ 'story-single': 'Generate a single Jira User Story from requirements',
14
+ 'qa-test-scenario': 'Generate focused QA test scenarios from PRD'
7
15
  };
8
16
  export class AntigravityConfigurator extends SlashCommandConfigurator {
9
17
  toolId = 'antigravity';
@@ -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;CAClD,CAAC;AAEF,MAAM,YAAY,GAAmC;IACjD,OAAO,EAAE,0DAA0D;CACtE,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,aAAa,EAAE,iCAAiC;IAChD,cAAc,EAAE,kCAAkC;IAClD,kBAAkB,EAAE,sCAAsC;CAC7D,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;CACpE,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'];
5
+ const ALL_COMMANDS = ['enhance', 'prd-generator', 'epic-single', 'story-single', 'qa-test-scenario'];
6
6
  export class SlashCommandConfigurator {
7
7
  getTargets() {
8
8
  return ALL_COMMANDS.map((id) => ({