forge-dev-framework 1.0.1 → 1.2.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 (109) hide show
  1. package/.claude/commands/forge/README.md +281 -0
  2. package/.claude/commands/forge/add-phase.md +90 -0
  3. package/.claude/commands/forge/complete-milestone.md +130 -0
  4. package/.claude/commands/forge/config.md +115 -0
  5. package/.claude/commands/forge/convert.md +31 -0
  6. package/.claude/commands/forge/debug.md +31 -0
  7. package/.claude/commands/forge/discuss.md +78 -0
  8. package/.claude/commands/forge/execute.md +85 -0
  9. package/.claude/commands/forge/generate.md +21 -0
  10. package/.claude/commands/forge/help.md +18 -0
  11. package/.claude/commands/forge/init.md +21 -0
  12. package/.claude/commands/forge/insert-phase.md +99 -0
  13. package/.claude/commands/forge/new-milestone.md +114 -0
  14. package/.claude/commands/forge/new-project.md +24 -0
  15. package/.claude/commands/forge/pause-work.md +111 -0
  16. package/.claude/commands/forge/plan.md +129 -0
  17. package/.claude/commands/forge/quick.md +41 -0
  18. package/.claude/commands/forge/remove-phase.md +92 -0
  19. package/.claude/commands/forge/resume.md +22 -0
  20. package/.claude/commands/forge/status.md +87 -0
  21. package/.claude/commands/forge/team-add.md +24 -0
  22. package/.claude/commands/forge/team-create.md +22 -0
  23. package/.claude/commands/forge/team-remove.md +24 -0
  24. package/.claude/commands/forge/team-start.md +22 -0
  25. package/.claude/commands/forge/team-view.md +18 -0
  26. package/.claude/commands/forge/verify.md +95 -0
  27. package/.claude/hooks/forge-context-cleanup.cjs +79 -0
  28. package/.claude/hooks/forge-event-guard.cjs +36 -0
  29. package/.claude/hooks/forge-size-guard.cjs +55 -0
  30. package/.claude/rules/api-patterns.md +13 -98
  31. package/.claude/rules/context-efficiency.md +10 -0
  32. package/.claude/rules/security-baseline.md +18 -204
  33. package/.claude/rules/testing-standards.md +16 -177
  34. package/.claude/rules/ui-conventions.md +17 -142
  35. package/README.md +1 -0
  36. package/bin/forge.js +5 -3
  37. package/dist/bin/forge.js +5 -3
  38. package/dist/cli/index.d.ts.map +1 -1
  39. package/dist/cli/index.js +15 -1
  40. package/dist/cli/index.js.map +1 -1
  41. package/dist/commands/convert.d.ts +6 -0
  42. package/dist/commands/convert.d.ts.map +1 -0
  43. package/dist/commands/convert.js +132 -0
  44. package/dist/commands/convert.js.map +1 -0
  45. package/dist/commands/generate.d.ts.map +1 -1
  46. package/dist/commands/generate.js +3 -2
  47. package/dist/commands/generate.js.map +1 -1
  48. package/dist/commands/index.d.ts +4 -4
  49. package/dist/commands/index.d.ts.map +1 -1
  50. package/dist/commands/index.js +4 -4
  51. package/dist/commands/index.js.map +1 -1
  52. package/dist/generators/gsd-converter.d.ts +100 -0
  53. package/dist/generators/gsd-converter.d.ts.map +1 -0
  54. package/dist/generators/gsd-converter.js +335 -0
  55. package/dist/generators/gsd-converter.js.map +1 -0
  56. package/dist/templates/.claude/rules/api-patterns.md.template +212 -0
  57. package/dist/templates/.claude/rules/security-baseline.md.template +322 -0
  58. package/dist/templates/.claude/rules/testing-standards.md.template +280 -0
  59. package/dist/templates/.claude/rules/ui-conventions.md.template +264 -0
  60. package/dist/templates/.planning/forge.config.json.template +75 -0
  61. package/dist/templates/CLAUDE.md.template +161 -0
  62. package/dist/templates/PLAN.md.template +177 -0
  63. package/dist/templates/PROJECT.md.template +156 -0
  64. package/dist/templates/REQUIREMENTS.md.template +221 -0
  65. package/dist/templates/ROADMAP.md.template +130 -0
  66. package/dist/types/index.d.ts +2 -2
  67. package/dist/types/index.d.ts.map +1 -1
  68. package/dist/types/index.js +2 -2
  69. package/dist/types/index.js.map +1 -1
  70. package/dist/utils/index.d.ts +5 -5
  71. package/dist/utils/index.d.ts.map +1 -1
  72. package/dist/utils/index.js +5 -5
  73. package/dist/utils/index.js.map +1 -1
  74. package/dist/utils/template-client.d.ts.map +1 -1
  75. package/dist/utils/template-client.js +3 -2
  76. package/dist/utils/template-client.js.map +1 -1
  77. package/package.json +6 -4
  78. package/dist/git/__tests__/worktree.test.d.ts +0 -5
  79. package/dist/git/__tests__/worktree.test.d.ts.map +0 -1
  80. package/dist/git/__tests__/worktree.test.js +0 -121
  81. package/dist/git/__tests__/worktree.test.js.map +0 -1
  82. package/dist/git/codeowners.d.ts +0 -101
  83. package/dist/git/codeowners.d.ts.map +0 -1
  84. package/dist/git/codeowners.js +0 -216
  85. package/dist/git/codeowners.js.map +0 -1
  86. package/dist/git/commit.d.ts +0 -135
  87. package/dist/git/commit.d.ts.map +0 -1
  88. package/dist/git/commit.js +0 -223
  89. package/dist/git/commit.js.map +0 -1
  90. package/dist/git/hooks/commit-msg.d.ts +0 -8
  91. package/dist/git/hooks/commit-msg.d.ts.map +0 -1
  92. package/dist/git/hooks/commit-msg.js +0 -34
  93. package/dist/git/hooks/commit-msg.js.map +0 -1
  94. package/dist/git/hooks/pre-commit.d.ts +0 -8
  95. package/dist/git/hooks/pre-commit.d.ts.map +0 -1
  96. package/dist/git/hooks/pre-commit.js +0 -34
  97. package/dist/git/hooks/pre-commit.js.map +0 -1
  98. package/dist/git/pre-commit-hooks.d.ts +0 -117
  99. package/dist/git/pre-commit-hooks.d.ts.map +0 -1
  100. package/dist/git/pre-commit-hooks.js +0 -270
  101. package/dist/git/pre-commit-hooks.js.map +0 -1
  102. package/dist/git/wipe-protocol.d.ts +0 -281
  103. package/dist/git/wipe-protocol.d.ts.map +0 -1
  104. package/dist/git/wipe-protocol.js +0 -237
  105. package/dist/git/wipe-protocol.js.map +0 -1
  106. package/dist/git/worktree.d.ts +0 -69
  107. package/dist/git/worktree.d.ts.map +0 -1
  108. package/dist/git/worktree.js +0 -202
  109. package/dist/git/worktree.js.map +0 -1
@@ -1,142 +1,17 @@
1
- # FORGE CLI UI Conventions
2
-
3
- > **Scope:** Command-line interface patterns, user interaction, output formatting.
4
-
5
- ## Output Style
6
-
7
- ### Success Messages
8
-
9
- - Green checkmark emoji
10
- - Concise, clear
11
- - Include what changed
12
-
13
- ```bash
14
- Created state/events/evt-001.json
15
- Merged 12 events to STATE.json
16
- ```
17
-
18
- ### Error Messages
19
-
20
- - Red ✗ or [ERROR] prefix
21
- - What went wrong + why + how to fix
22
- - Stack traces only in --debug mode
23
-
24
- ```bash
25
- ✗ Failed to merge events: Invalid event format in evt-003.json
26
- → Run 'forge validate' to check event schemas
27
- ```
28
-
29
- ### Warning Messages
30
-
31
- - Yellow ⚠ prefix
32
- - Not blocking, but noteworthy
33
-
34
- ```bash
35
- ⚠ Task api-003 is blocked by api-001 (in_progress)
36
- ```
37
-
38
- ### Info Messages
39
-
40
- - Blue → prefix for steps
41
- - Show progress for long operations
42
-
43
- ```bash
44
- → Loading events from state/events/...
45
- → Found 47 events, merging...
46
- ```
47
-
48
- ## Progress Indicators
49
-
50
- For operations >2 seconds, show progress:
51
-
52
- ```typescript
53
- import ora from 'ora';
54
-
55
- const spinner = ora('Initializing project...').start();
56
- // ... work ...
57
- spinner.succeed('Project initialized');
58
- ```
59
-
60
- ## Help Text Format
61
-
62
- ```bash
63
- forge init Initialize a new FORGE project
64
-
65
- USAGE:
66
- forge init [options]
67
-
68
- OPTIONS:
69
- --name <name> Project name (default: current directory)
70
- --quick Skip interactive prompts (use defaults)
71
-
72
- EXAMPLES:
73
- $ forge init
74
- $ forge init --name my-app --quick
75
- ```
76
-
77
- ## Interactive Prompts
78
-
79
- When prompting users:
80
- - Show current value in brackets: `[default: my-app]`
81
- - Allow (y/N) confirmations
82
- - Validate input before accepting
83
-
84
- ```typescript
85
- import inquirer from 'inquirer';
86
-
87
- const answers = await inquirer.prompt([
88
- {
89
- type: 'input',
90
- name: 'projectName',
91
- message: 'Project name:',
92
- default: path.basename(process.cwd()),
93
- },
94
- {
95
- type: 'confirm',
96
- name: 'confirm',
97
- message: 'Initialize project?',
98
- default: true,
99
- },
100
- ]);
101
- ```
102
-
103
- ## Tables and Lists
104
-
105
- For structured output (status, tasks, events):
106
-
107
- ```bash
108
- CURRENT TASKS:
109
-
110
- ID STATUS OWNER TITLE
111
- ──────────────────────────────────────────────────────
112
- api-001 completed backend User CRUD API
113
- api-002 in_progress backend Auth service
114
- ui-001 pending frontend Login form
115
- ```
116
-
117
- ## ASCII Art Banner
118
-
119
- Show on startup:
120
-
121
- ```bash
122
- █ ██ ██
123
- █ █ █ █ █ █
124
- ███ █ █
125
- ```
126
-
127
- ## Exit Codes
128
-
129
- - `0`: Success
130
- - `1`: General error
131
- - `2`: Invalid arguments
132
- - `3`: State corruption
133
- - `4`: Git error
134
-
135
- ## Verbose Flag
136
-
137
- Support `-v` / `--verbose` for debug output:
138
-
139
- ```bash
140
- forge merge -v
141
- # → Shows detailed event replay, validation errors, etc.
142
- ```
1
+ ---
2
+ globs:
3
+ - "src/cli/**/*.ts"
4
+ - "src/commands/**/*.ts"
5
+ ---
6
+
7
+ # CLI UI Conventions
8
+
9
+ - **Success:** Green + concise message + what changed
10
+ - **Error:** Red ✗ + what went wrong + how to fix (stack traces only with `--debug`)
11
+ - **Warning:** Yellow ⚠ + non-blocking info
12
+ - **Info:** Blue → + progress steps
13
+ - **Progress:** Use `ora` spinner for ops >2 seconds
14
+ - **Help:** `USAGE → OPTIONS → EXAMPLES` format
15
+ - **Tables:** Header row + separator line for structured output (status, tasks)
16
+ - **Exit codes:** 0=success, 1=error, 2=bad args, 3=state corruption, 4=git error
17
+ - **Verbose:** Support `-v`/`--verbose` for debug output
package/README.md CHANGED
@@ -6,6 +6,7 @@ A multi-agent development framework for Claude Code Agent Teams that forges prod
6
6
 
7
7
  [![npm version](https://badge.fury.io/js/forge-dev-framework.svg)](https://www.npmjs.com/package/forge-dev-framework)
8
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
9
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
9
10
 
10
11
  ## Features
11
12
 
package/bin/forge.js CHANGED
@@ -3,12 +3,14 @@
3
3
  /**
4
4
  * FORGE CLI Executable
5
5
  * Entry point for the `forge` command
6
- * This is the compiled version for npm distribution
6
+ * This is the source version build copies it to dist/bin/
7
+ * and adjusts the import path via build:bin
7
8
  */
8
9
 
9
- import { run } from './dist/cli/index.js';
10
+ import { ForgeCLI } from '../cli/index.js';
10
11
 
11
- run().catch((error) => {
12
+ const cli = new ForgeCLI();
13
+ cli.run().catch((error) => {
12
14
  console.error('FORGE CLI crashed:', error);
13
15
  process.exit(1);
14
16
  });
package/dist/bin/forge.js CHANGED
@@ -3,12 +3,14 @@
3
3
  /**
4
4
  * FORGE CLI Executable
5
5
  * Entry point for the `forge` command
6
- * This is the compiled version for npm distribution
6
+ * This is the source version build copies it to dist/bin/
7
+ * and adjusts the import path via build:bin
7
8
  */
8
9
 
9
- import { run } from './dist/cli/index.js';
10
+ import { ForgeCLI } from '../cli/index.js';
10
11
 
11
- run().catch((error) => {
12
+ const cli = new ForgeCLI();
13
+ cli.run().catch((error) => {
12
14
  console.error('FORGE CLI crashed:', error);
13
15
  process.exit(1);
14
16
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAoBH,cAAM,QAAQ;IACZ,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAAS;;IAQvB,OAAO,CAAC,KAAK;IAqBb,OAAO,CAAC,gBAAgB;IA6BxB;;OAEG;IACH,UAAU,IAAI,IAAI;IAalB;;OAEG;IACG,GAAG,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBxD;AAQD,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAiCH,cAAM,QAAQ;IACZ,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAAS;;IAQvB,OAAO,CAAC,KAAK;IAqBb,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;IACH,UAAU,IAAI,IAAI;IAalB;;OAEG;IACG,GAAG,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAoBxD;AAQD,OAAO,EAAE,QAAQ,EAAE,CAAC"}
package/dist/cli/index.js CHANGED
@@ -14,10 +14,23 @@ import { StatusCommand } from '../commands/status.js';
14
14
  import { ConfigCommand } from '../commands/config.js';
15
15
  import { InitCommand } from '../commands/init.js';
16
16
  import { GenerateCommand } from '../commands/generate.js';
17
+ import { ConvertCommand } from '../commands/convert.js';
17
18
  import { createStubCommand } from '../commands/stubs.js';
18
19
  import { Logger } from '../utils/logger.js';
20
+ import { readFileSync } from 'fs';
19
21
  const __filename = fileURLToPath(import.meta.url);
20
22
  const __dirname = path.dirname(__filename);
23
+ // Read version from package.json
24
+ function getVersion() {
25
+ try {
26
+ const pkgPath = path.resolve(__dirname, '..', '..', 'package.json');
27
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
28
+ return pkg.version || '0.0.0';
29
+ }
30
+ catch {
31
+ return '0.0.0';
32
+ }
33
+ }
21
34
  class ForgeCLI {
22
35
  program;
23
36
  logger;
@@ -31,7 +44,7 @@ class ForgeCLI {
31
44
  this.program
32
45
  .name('forge')
33
46
  .description('Full Orchestration for Rapid Git Engineering')
34
- .version('1.0.0')
47
+ .version(getVersion())
35
48
  .option('-q, --quiet', 'Suppress non-error output')
36
49
  .option('-v, --verbose', 'Enable verbose output')
37
50
  .option('--debug', 'Enable debug mode');
@@ -50,6 +63,7 @@ class ForgeCLI {
50
63
  new StatusCommand(this.program).register();
51
64
  new ConfigCommand(this.program).register();
52
65
  new GenerateCommand(this.program).register();
66
+ new ConvertCommand(this.program).register();
53
67
  new HelpCommand(this.program).register();
54
68
  // Stub commands for future milestones
55
69
  createStubCommand('scan', 'Map existing codebase (brownfield projects)')(this.program);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { ForgeCommand } from './base.js';
2
+ export declare class ConvertCommand extends ForgeCommand {
3
+ register(): void;
4
+ execute(options: any): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=convert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/commands/convert.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAKzC,qBAAa,cAAe,SAAQ,YAAY;IAC9C,QAAQ,IAAI,IAAI;IAUV,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAkI3C"}
@@ -0,0 +1,132 @@
1
+ import { ForgeCommand } from './base.js';
2
+ import { convertGSDToForge, detectGSDProject } from '../generators/gsd-converter.js';
3
+ import path from 'path';
4
+ import chalk from 'chalk';
5
+ export class ConvertCommand extends ForgeCommand {
6
+ register() {
7
+ this.program
8
+ .command('convert')
9
+ .description('Convert GSD project to FORGE format')
10
+ .option('-d, --dry-run', 'Preview changes without modifying files')
11
+ .option('-v, --verbose', 'Show detailed conversion output')
12
+ .option('-f, --force', 'Force conversion even if FORGE files exist')
13
+ .action((options) => this.execute(options));
14
+ }
15
+ async execute(options) {
16
+ const projectPath = process.cwd();
17
+ this.logger.header('FORGE — GSD to FORGE Converter');
18
+ // Detect GSD project
19
+ this.logger.info('Detecting GSD project...');
20
+ const gsdInfo = await detectGSDProject(projectPath);
21
+ if (!gsdInfo.hasProjectMd && !gsdInfo.hasPlanningDir) {
22
+ this.logger.error('Not a GSD project');
23
+ this.logger.info('Expected: PROJECT.md or .planning/ directory');
24
+ this.logger.info('Use "forge init" to initialize a new FORGE project.');
25
+ return;
26
+ }
27
+ // Show detected project info
28
+ this.logger.success('Found GSD project');
29
+ console.log();
30
+ console.log(chalk.cyan(' Project Information:'));
31
+ console.log(` Name: ${gsdInfo.name || path.basename(projectPath)}`);
32
+ console.log(` PROJECT.md: ${gsdInfo.hasProjectMd ? chalk.green('✓') : chalk.red('✗')}`);
33
+ console.log(` ROADMAP.md: ${gsdInfo.hasRoadmapMd ? chalk.green('✓') : chalk.red('✗')}`);
34
+ console.log(` .planning/: ${gsdInfo.hasPlanningDir ? chalk.green('✓') : chalk.red('✗')}`);
35
+ if (gsdInfo.phases.length > 0) {
36
+ console.log(` Phases: ${gsdInfo.phases.length} found`);
37
+ }
38
+ console.log();
39
+ // Check for existing FORGE files
40
+ const hasClaudeMd = gsdInfo.hasProjectMd; // Will be overwritten
41
+ const hasStateDir = true; // Will create it
42
+ if (!options.force && hasClaudeMd) {
43
+ // Check if it's already a FORGE project
44
+ const { readFile } = await import('fs/promises');
45
+ try {
46
+ const claudeMdPath = path.join(projectPath, 'CLAUDE.md');
47
+ const content = await readFile(claudeMdPath, 'utf-8');
48
+ if (content.includes('FORGE')) {
49
+ this.logger.warning('This appears to already be a FORGE project');
50
+ this.logger.info('Use --force to overwrite existing FORGE files.');
51
+ return;
52
+ }
53
+ }
54
+ catch {
55
+ // CLAUDE.md doesn't exist yet
56
+ }
57
+ }
58
+ // Dry run mode
59
+ if (options.dryRun) {
60
+ this.logger.info('Dry run mode — no files will be modified');
61
+ console.log();
62
+ const result = await convertGSDToForge(projectPath, {
63
+ dryRun: true,
64
+ verbose: options.verbose,
65
+ });
66
+ if (result.success) {
67
+ this.logger.success(result.message);
68
+ if (result.warnings.length > 0) {
69
+ console.log();
70
+ this.logger.warning('Warnings:');
71
+ result.warnings.forEach((w) => console.log(chalk.yellow(` ⚠ ${w}`)));
72
+ }
73
+ }
74
+ else {
75
+ this.logger.error(result.message);
76
+ }
77
+ return;
78
+ }
79
+ // Confirm conversion
80
+ if (process.stdout.isTTY) {
81
+ const inquirer = await import('inquirer');
82
+ const { confirm } = await inquirer.default.prompt([
83
+ {
84
+ type: 'confirm',
85
+ name: 'confirm',
86
+ message: 'Convert this GSD project to FORGE?',
87
+ default: true,
88
+ },
89
+ ]);
90
+ if (!confirm) {
91
+ this.logger.info('Conversion cancelled.');
92
+ return;
93
+ }
94
+ }
95
+ // Perform conversion
96
+ this.logger.info('Converting GSD project to FORGE...');
97
+ console.log();
98
+ const result = await convertGSDToForge(projectPath, {
99
+ dryRun: false,
100
+ verbose: options.verbose,
101
+ });
102
+ if (result.success) {
103
+ this.logger.success(result.message);
104
+ console.log();
105
+ if (result.filesCreated.length > 0) {
106
+ console.log(chalk.cyan('Files created:'));
107
+ result.filesCreated.forEach((file) => {
108
+ const relPath = path.relative(projectPath, file);
109
+ console.log(chalk.green(` ✓ ${relPath}`));
110
+ });
111
+ console.log();
112
+ }
113
+ if (result.warnings.length > 0) {
114
+ this.logger.warning('Warnings:');
115
+ result.warnings.forEach((w) => console.log(chalk.yellow(` ⚠ ${w}`)));
116
+ console.log();
117
+ }
118
+ // Next steps
119
+ console.log(chalk.cyan('Next steps:'));
120
+ console.log(` ${chalk.dim('1.')} Review the generated CLAUDE.md`);
121
+ console.log(` ${chalk.dim('2.')} Run ${chalk.cyan('/forge:status')} to verify the conversion`);
122
+ console.log(` ${chalk.dim('3.')} Run ${chalk.cyan('/forge:plan <phase-number>')} to create detailed task plans`);
123
+ console.log(` ${chalk.dim('Tip:')} Use ${chalk.cyan('/clear')} to start from a fresh context`);
124
+ console.log();
125
+ }
126
+ else {
127
+ this.logger.error(result.message);
128
+ process.exit(1);
129
+ }
130
+ }
131
+ }
132
+ //# sourceMappingURL=convert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/commands/convert.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAMzC;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,QAAQ,IAAI,IAAI;IASV,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAyF5D;;OAEG;YACW,WAAW;IA4CzB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAajB"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAMzC;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,QAAQ,IAAI,IAAI;IASV,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA6F5D;;OAEG;YACW,WAAW;IA4CzB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAajB"}
@@ -61,8 +61,9 @@ export class GenerateCommand extends ForgeCommand {
61
61
  logger.info('Available artifacts: claude, project, requirements, roadmap, plan, config, rules');
62
62
  process.exit(1);
63
63
  }
64
- // Check if template exists
65
- const templatePath = path.join(projectRoot, 'src/templates', target.template);
64
+ // Check if template exists — look in package install dir first, then project
65
+ const packageTemplatesDir = path.resolve(path.dirname(new URL(import.meta.url).pathname), '..', 'templates');
66
+ const templatePath = path.join(packageTemplatesDir, target.template);
66
67
  const fs = await import('fs/promises');
67
68
  try {
68
69
  await fs.access(templatePath);
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC/C,QAAQ;QACN,IAAI,CAAC,OAAO;aACT,OAAO,CAAC,qBAAqB,CAAC;aAC9B,WAAW,CAAC,oCAAoC,CAAC;aACjD,QAAQ,CAAC,YAAY,EAAE,oFAAoF,CAAC;aAC5G,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;aAChE,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,OAAY;QAC1C,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAElC,uCAAuC;YACvC,MAAM,WAAW,GAAmF;gBAClG,MAAM,EAAE;oBACN,QAAQ,EAAE,oBAAoB;oBAC9B,MAAM,EAAE,WAAW;oBACnB,cAAc,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC;iBACvD;gBACD,OAAO,EAAE;oBACP,QAAQ,EAAE,qBAAqB;oBAC/B,MAAM,EAAE,YAAY;oBACpB,cAAc,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC;iBACvD;gBACD,YAAY,EAAE;oBACZ,QAAQ,EAAE,0BAA0B;oBACpC,MAAM,EAAE,iBAAiB;oBACzB,cAAc,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC;iBAC9D;gBACD,OAAO,EAAE;oBACP,QAAQ,EAAE,qBAAqB;oBAC/B,MAAM,EAAE,YAAY;oBACpB,cAAc,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC;iBACxD;gBACD,IAAI,EAAE;oBACJ,QAAQ,EAAE,kBAAkB;oBAC5B,MAAM,EAAE,SAAS;oBACjB,cAAc,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC;iBAC7C;gBACD,MAAM,EAAE;oBACN,QAAQ,EAAE,4BAA4B;oBACtC,MAAM,EAAE,6BAA6B;oBACrC,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC;iBAC/D;gBACD,KAAK,EAAE;oBACL,QAAQ,EAAE,6BAA6B;oBACvC,MAAM,EAAE,gBAAgB;oBACxB,cAAc,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;iBACtC;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;gBAC9C,MAAM,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;gBAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,6EAA6E;YAC7E,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CACtC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAC/C,IAAI,EAAE,WAAW,CAClB,CAAC;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,qCAAqC;YACrC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAE3D,2BAA2B;YAC3B,MAAM,MAAM,GAAG,oBAAoB,CAAC;gBAClC,WAAW;gBACX,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK;aAC5B,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;YACrF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,KAAK,CAAC,+BAA+B,QAAQ,GAAG,CAAC,CAAC;gBACzD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;gBAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,0EAA0E;YAC1E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;YAC7C,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAiC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAEjG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,QAAQ,yBAAyB,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,WAAmB;QAC3C,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAElC,yBAAyB;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC7D,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAEvC,OAAO;gBACL,WAAW,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE;gBACtC,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,aAAa;gBAC9C,aAAa,EAAE;oBACb,gBAAgB,EAAE,KAAK,CAAC,OAAO,EAAE,gBAAgB,IAAI,EAAE;oBACvD,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC3D,QAAQ,EAAE,CAAC;oBACX,mBAAmB,EAAE,KAAK;iBAC3B;gBACD,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;oBACnC,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,CAAC,CAAC,KAAK;oBACb,WAAW,EAAE,CAAC,CAAC,KAAK;oBACpB,KAAK,EAAE,CAAC,CAAC,SAAS;oBAClB,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;oBACxD,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;oBAC/B,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBACtC,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;oBAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;iBACnC,CAAC,CAAC,IAAI,EAAE;aACV,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;YACxC,OAAO;gBACL,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,OAAiC,EAAE,KAAa;QAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,OAAO,GAAQ,OAAO,CAAC;QAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * FORGE Command Exports
3
3
  */
4
- export * from './base';
5
- export * from './help';
6
- export * from './status';
7
- export * from './config';
4
+ export * from './base.js';
5
+ export * from './help.js';
6
+ export * from './status.js';
7
+ export * from './config.js';
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * FORGE Command Exports
3
3
  */
4
- export * from './base';
5
- export * from './help';
6
- export * from './status';
7
- export * from './config';
4
+ export * from './base.js';
5
+ export * from './help.js';
6
+ export * from './status.js';
7
+ export * from './config.js';
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * GSD to FORGE Project Converter
3
+ *
4
+ * Converts existing GSD projects to FORGE format by:
5
+ * 1. Reading GSD artifacts (PROJECT.md, ROADMAP.md, phase plans)
6
+ * 2. Creating FORGE equivalents (CLAUDE.md, STATE.json)
7
+ * 3. Preserving roadmap and phase structure
8
+ *
9
+ * @private - Not published to NPM
10
+ */
11
+ interface LocalTask {
12
+ id: string;
13
+ title: string;
14
+ ownerRole: string;
15
+ status: 'pending' | 'in_progress' | 'completed' | 'blocked';
16
+ deps: string[];
17
+ allowedPaths: string[];
18
+ acceptance: string[];
19
+ verify: string[];
20
+ commit: string | null;
21
+ requests: string[];
22
+ priority: number;
23
+ blockedBy: string[];
24
+ blocks: string[];
25
+ assignedTo: string | null;
26
+ createdAt: string;
27
+ startedAt: string | null;
28
+ completedAt: string | null;
29
+ }
30
+ interface LocalProjectState {
31
+ name: string;
32
+ status: string;
33
+ currentMilestone: string;
34
+ currentPhase: number;
35
+ updatedAt: string;
36
+ }
37
+ interface LocalForgeState {
38
+ project: LocalProjectState;
39
+ tasks: LocalTask[];
40
+ contracts: Array<{
41
+ id: string;
42
+ path: string;
43
+ version: string;
44
+ publishedBy: string;
45
+ consumers: string[];
46
+ publishedAt?: string;
47
+ status?: string;
48
+ }>;
49
+ eventsPointer: string;
50
+ }
51
+ export interface GSDProjectInfo {
52
+ name: string;
53
+ hasProjectMd: boolean;
54
+ hasRoadmapMd: boolean;
55
+ hasPlanningDir: boolean;
56
+ phases: string[];
57
+ }
58
+ export interface ConversionResult {
59
+ success: boolean;
60
+ message: string;
61
+ filesCreated: string[];
62
+ warnings: string[];
63
+ }
64
+ /**
65
+ * Detect if current directory is a GSD project
66
+ */
67
+ export declare function detectGSDProject(projectPath: string): Promise<GSDProjectInfo>;
68
+ /**
69
+ * Extract project metadata from PROJECT.md
70
+ */
71
+ export declare function extractProjectMetadata(projectPath: string): Promise<{
72
+ name: string;
73
+ description?: string;
74
+ techStack?: string[];
75
+ team?: string[];
76
+ }>;
77
+ /**
78
+ * Generate CLAUDE.md from PROJECT.md content
79
+ */
80
+ export declare function generateClaudeMd(projectPath: string): Promise<string>;
81
+ /**
82
+ * Extract tasks from GSD phase plans and convert to FORGE tasks
83
+ */
84
+ export declare function extractTasksFromPhases(projectPath: string): Promise<{
85
+ currentMilestone: string;
86
+ tasks: LocalTask[];
87
+ }>;
88
+ /**
89
+ * Create initial STATE.json for FORGE project
90
+ */
91
+ export declare function createForgeState(projectName: string, tasks: LocalTask[]): Promise<LocalForgeState>;
92
+ /**
93
+ * Main conversion function
94
+ */
95
+ export declare function convertGSDToForge(projectPath: string, options?: {
96
+ dryRun?: boolean;
97
+ verbose?: boolean;
98
+ }): Promise<ConversionResult>;
99
+ export {};
100
+ //# sourceMappingURL=gsd-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gsd-converter.d.ts","sourceRoot":"","sources":["../../src/generators/gsd-converter.ts"],"names":[],"mappings":"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"}