@cristiancorreau/forge 2.2.0 → 2.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.
@@ -0,0 +1,144 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * forge — PreToolUse hook: pre-bash-check.js
4
+ * Blocks destructive commands in production context. Zero Python dependency.
5
+ *
6
+ * Context: on 2026-04-28, --force-reset was accidentally executed against
7
+ * production DB, deleting 225 users and 35 forms. This hook prevents recurrence.
8
+ */
9
+ 'use strict';
10
+
11
+ const fs = require('fs');
12
+ const path = require('path');
13
+
14
+ const DEBUG = !['', '0', 'false', 'False'].includes(process.env.DEBUG || '');
15
+ const dbg = msg => DEBUG && process.stdout.write(`[forge-hook-debug] ${msg}\n`);
16
+
17
+ // ---------------------------------------------------------------------------
18
+ // Load project.yaml (minimal YAML parser for flat key: value)
19
+ // ---------------------------------------------------------------------------
20
+ function loadProjectYaml() {
21
+ try {
22
+ let dir = process.cwd();
23
+ for (let i = 0; i < 6; i++) {
24
+ const candidate = path.join(dir, 'project.yaml');
25
+ if (fs.existsSync(candidate)) {
26
+ const text = fs.readFileSync(candidate, 'utf8');
27
+ return parseYamlMinimal(text);
28
+ }
29
+ const parent = path.dirname(dir);
30
+ if (parent === dir) break;
31
+ dir = parent;
32
+ }
33
+ } catch (e) { dbg(`project.yaml load error: ${e}`); }
34
+ return {};
35
+ }
36
+
37
+ function parseYamlMinimal(text) {
38
+ // Minimal parser: handles nested sections and key: value pairs
39
+ const result = {};
40
+ let currentSection = null;
41
+ let currentSubSection = null;
42
+ for (const rawLine of text.split('\n')) {
43
+ const line = rawLine.trimEnd();
44
+ if (!line || line.trim().startsWith('#')) continue;
45
+ const indent = line.length - line.trimStart().length;
46
+ const trimmed = line.trimStart();
47
+ const colonIdx = trimmed.indexOf(':');
48
+ if (colonIdx === -1) continue;
49
+ const key = trimmed.slice(0, colonIdx).trim();
50
+ const val = trimmed.slice(colonIdx + 1).trim();
51
+ if (indent === 0) { currentSection = key; currentSubSection = null; if (val) result[key] = val; else result[key] = {}; }
52
+ else if (indent === 2 && currentSection) { currentSubSection = key; if (!result[currentSection] || typeof result[currentSection] !== 'object') result[currentSection] = {}; if (val) result[currentSection][key] = val; else result[currentSection][key] = {}; }
53
+ else if (indent === 4 && currentSection && currentSubSection) { if (!result[currentSection][currentSubSection] || typeof result[currentSection][currentSubSection] !== 'object') result[currentSection][currentSubSection] = {}; if (val) result[currentSection][currentSubSection][key] = val; }
54
+ }
55
+ return result;
56
+ }
57
+
58
+ // ---------------------------------------------------------------------------
59
+ // Dangerous patterns
60
+ // ---------------------------------------------------------------------------
61
+ const DANGEROUS = [
62
+ [/--force-reset/, '--force-reset'],
63
+ [/prisma\s+migrate\s+reset/i, 'prisma migrate reset'],
64
+ [/DROP\s+TABLE/i, 'DROP TABLE'],
65
+ [/TRUNCATE\s+/i, 'TRUNCATE'],
66
+ [/DELETE\s+FROM\s+\w+\s*;/i, 'DELETE FROM sin WHERE'],
67
+ [/DROP\s+DATABASE/i, 'DROP DATABASE'],
68
+ [/dropdb\s+/, 'dropdb'],
69
+ [/rm\s+-rf\s+\//, 'rm -rf /'],
70
+ [/git\s+push\s+--force(?!\s+--with-lease)/, 'git push --force sin --with-lease'],
71
+ ];
72
+
73
+ function matchDangerous(command) {
74
+ for (const [re, label] of DANGEROUS) {
75
+ if (re.test(command)) return label;
76
+ }
77
+ return null;
78
+ }
79
+
80
+ function matchForbidden(command, project) {
81
+ try {
82
+ const forbidden = (project.rules || {}).forbidden_in_production;
83
+ if (!Array.isArray(forbidden)) return null;
84
+ for (const pattern of forbidden) {
85
+ if (new RegExp(pattern).test(command)) return pattern;
86
+ }
87
+ } catch (e) { dbg(`forbidden_in_production error: ${e}`); }
88
+ return null;
89
+ }
90
+
91
+ function isProductionContext(command, project) {
92
+ const deploy = project.deploy || {};
93
+ const prodUrl = deploy.production_url || '';
94
+ const projectId = deploy.project_id || '';
95
+ if (prodUrl && command.includes(prodUrl)) { dbg(`prod context: URL match`); return true; }
96
+ if (projectId && command.includes(projectId)) { dbg(`prod context: project_id match`); return true; }
97
+ for (const key of Object.keys(process.env)) {
98
+ if (/^(PROD_|PRODUCTION_|PROD$|PRODUCTION$)/i.test(key) && process.env[key]) { dbg(`prod context: env ${key}`); return true; }
99
+ }
100
+ return false;
101
+ }
102
+
103
+ // ---------------------------------------------------------------------------
104
+ // Main
105
+ // ---------------------------------------------------------------------------
106
+ let raw = '';
107
+ process.stdin.setEncoding('utf8');
108
+ process.stdin.on('data', chunk => { raw += chunk; });
109
+ process.stdin.on('end', () => {
110
+ if (!raw.trim()) { dbg('empty stdin'); process.exit(0); }
111
+ let data;
112
+ try { data = JSON.parse(raw); } catch (e) { dbg(`parse error: ${e}`); process.exit(0); }
113
+
114
+ const toolName = data.tool_name || '';
115
+ if (toolName !== 'Bash') process.exit(0);
116
+
117
+ const command = (data.tool_input || {}).command || '';
118
+ if (!command) process.exit(0);
119
+ dbg(`command: ${command.slice(0, 200)}`);
120
+
121
+ const project = loadProjectYaml();
122
+ const label = matchDangerous(command) || matchForbidden(command, project);
123
+ if (!label) process.exit(0);
124
+
125
+ const snippet = command.slice(0, 120) + (command.length > 120 ? '...' : '');
126
+ const inProd = isProductionContext(command, project);
127
+
128
+ if (inProd) {
129
+ process.stdout.write(
130
+ `forge: BLOQUEADO — comando destructivo detectado en contexto de producción.\n\n` +
131
+ ` Comando: ${snippet}\n Patrón: ${label}\n\n` +
132
+ ` Ejecutá esto MANUALMENTE con plena consciencia de que afecta producción.\n\n` +
133
+ ` Lección del 2026-04-28: --force-reset borró 225 usuarios en producción.\n`
134
+ );
135
+ process.exit(2);
136
+ } else {
137
+ process.stdout.write(
138
+ `forge: ADVERTENCIA — comando potencialmente destructivo.\n\n` +
139
+ ` Comando: ${snippet}\n Patrón: ${label}\n\n` +
140
+ ` Si apunta a producción, cancelá y ejecutá manualmente.\n`
141
+ );
142
+ process.exit(0);
143
+ }
144
+ });
@@ -0,0 +1,166 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * forge — PreToolUse hook: pre-edit-check.js
4
+ * Branch guard, debug detection, hardcoded secret detection. Zero Python dependency.
5
+ */
6
+ 'use strict';
7
+
8
+ const { execSync } = require('child_process');
9
+ const path = require('path');
10
+
11
+ const DEBUG = !['', '0', 'false', 'False'].includes(process.env.DEBUG || '');
12
+ const dbg = msg => DEBUG && process.stdout.write(`[forge-hook-debug] ${msg}\n`);
13
+
14
+ // ---------------------------------------------------------------------------
15
+ // File classification
16
+ // ---------------------------------------------------------------------------
17
+ const CODE_EXTS = new Set(['.py','.ts','.js','.tsx','.jsx','.php','.rb','.go','.rs','.java','.cs','.cpp','.c','.sh']);
18
+ const NON_CODE_EXTS = new Set(['.md','.yaml','.yml','.json','.toml','.txt','.lock']);
19
+ const ROOT_PROTECTED = new Set(['README.md','CLAUDE.md','CHANGELOG.md','AGENTS.md']);
20
+ const PROTECTED_DIRS = ['docs/', '.claude/'];
21
+
22
+ function isCodeFile(filePath) {
23
+ const ext = path.extname(filePath).toLowerCase();
24
+ if (CODE_EXTS.has(ext)) return true;
25
+ if (NON_CODE_EXTS.has(ext)) return false;
26
+ return false;
27
+ }
28
+
29
+ function isExemptFromBranchGuard(filePath) {
30
+ const norm = filePath.replace(/\\/g, '/');
31
+ for (const d of PROTECTED_DIRS) {
32
+ if (norm.startsWith(d) || norm.includes(`/${d.replace(/\/$/, '')}`)) return true;
33
+ }
34
+ const base = path.basename(norm);
35
+ if (ROOT_PROTECTED.has(base)) return true;
36
+ return false;
37
+ }
38
+
39
+ // ---------------------------------------------------------------------------
40
+ // Branch guard
41
+ // ---------------------------------------------------------------------------
42
+ function getCurrentBranch() {
43
+ try {
44
+ return execSync('git branch --show-current', { encoding: 'utf8', timeout: 3000 }).trim();
45
+ } catch { return ''; }
46
+ }
47
+
48
+ // ---------------------------------------------------------------------------
49
+ // Debug detection patterns per language
50
+ // ---------------------------------------------------------------------------
51
+ const DEBUG_PATTERNS = [
52
+ { re: /\bconsole\.(log|debug|warn|error|trace)\s*\(/, lang: 'TypeScript/JavaScript' },
53
+ { re: /\bprint\s*\(/, lang: 'Python' },
54
+ { re: /\bdd\s*\(/, lang: 'PHP (dd)' },
55
+ { re: /\bvar_dump\s*\(/, lang: 'PHP (var_dump)' },
56
+ { re: /\bdump\s*\(/, lang: 'PHP (dump)' },
57
+ { re: /\bdebugger\b/, lang: 'JavaScript debugger' },
58
+ { re: /\bbinding\.pry\b/, lang: 'Ruby (binding.pry)' },
59
+ { re: /\bbyebug\b/, lang: 'Ruby (byebug)' },
60
+ { re: /\bp\s+\w+/, lang: 'Ruby (p)' },
61
+ ];
62
+
63
+ function detectDebugStatements(content) {
64
+ const found = [];
65
+ const lines = content.split('\n');
66
+ lines.forEach((line, idx) => {
67
+ for (const { re, lang } of DEBUG_PATTERNS) {
68
+ if (re.test(line)) {
69
+ found.push({ line: idx + 1, snippet: line.trim().slice(0, 80), lang });
70
+ break;
71
+ }
72
+ }
73
+ });
74
+ return found;
75
+ }
76
+
77
+ // ---------------------------------------------------------------------------
78
+ // Secret detection
79
+ // ---------------------------------------------------------------------------
80
+ const SECRET_PATTERNS = [
81
+ { re: /(?:password|passwd|pwd)\s*=\s*['"][^'"]{4,}['"]/i, label: 'password hardcodeado' },
82
+ { re: /(?:api_?key|apikey)\s*=\s*['"][^'"]{8,}['"]/i, label: 'API key hardcodeada' },
83
+ { re: /(?:secret|token)\s*=\s*['"][^'"]{8,}['"]/i, label: 'secret/token hardcodeado' },
84
+ { re: /sk-[a-zA-Z0-9]{20,}/, label: 'OpenAI API key' },
85
+ { re: /ghp_[a-zA-Z0-9]{30,}/, label: 'GitHub Personal Access Token' },
86
+ { re: /eyJ[a-zA-Z0-9_-]{20,}\.[a-zA-Z0-9_-]{20,}/, label: 'JWT token' },
87
+ ];
88
+
89
+ function detectSecrets(content) {
90
+ const found = [];
91
+ const lines = content.split('\n');
92
+ lines.forEach((line, idx) => {
93
+ for (const { re, label } of SECRET_PATTERNS) {
94
+ if (re.test(line)) {
95
+ found.push({ line: idx + 1, label, snippet: line.trim().slice(0, 60) + '...' });
96
+ break;
97
+ }
98
+ }
99
+ });
100
+ return found;
101
+ }
102
+
103
+ // ---------------------------------------------------------------------------
104
+ // Main
105
+ // ---------------------------------------------------------------------------
106
+ let raw = '';
107
+ process.stdin.setEncoding('utf8');
108
+ process.stdin.on('data', chunk => { raw += chunk; });
109
+ process.stdin.on('end', () => {
110
+ if (!raw.trim()) { process.exit(0); }
111
+ let data;
112
+ try { data = JSON.parse(raw); } catch { process.exit(0); }
113
+
114
+ const toolName = data.tool_name || '';
115
+ if (!['Write', 'Edit', 'MultiEdit'].includes(toolName)) process.exit(0);
116
+
117
+ const toolInput = data.tool_input || {};
118
+ const filePath = toolInput.file_path || toolInput.path || '';
119
+ if (!filePath) process.exit(0);
120
+
121
+ dbg(`file: ${filePath}`);
122
+
123
+ const warnings = [];
124
+
125
+ // 1. Branch guard
126
+ if (!isExemptFromBranchGuard(filePath) && isCodeFile(filePath)) {
127
+ const branch = getCurrentBranch();
128
+ dbg(`branch: ${branch}`);
129
+ if (branch === 'main' || branch === 'master') {
130
+ process.stdout.write(
131
+ `forge: BLOQUEADO — editando código directamente en ${branch}.\n\n` +
132
+ ` Archivo: ${filePath}\n\n` +
133
+ ` Creá una rama antes de editar código:\n` +
134
+ ` git checkout -b feat/descripcion\n\n` +
135
+ ` Ramas de documentación (.md, .yaml, .json) están permitidas en ${branch}.\n`
136
+ );
137
+ process.exit(2);
138
+ }
139
+ }
140
+
141
+ // 2. Debug and secret detection on new content
142
+ const newContent = toolInput.new_string || toolInput.content || '';
143
+ if (newContent && isCodeFile(filePath)) {
144
+ const debugHits = detectDebugStatements(newContent);
145
+ const secretHits = detectSecrets(newContent);
146
+
147
+ if (debugHits.length > 0) {
148
+ const items = debugHits.map(h => ` línea ${h.line}: ${h.snippet} (${h.lang})`).join('\n');
149
+ warnings.push(`Debug statements detectados:\n${items}`);
150
+ }
151
+ if (secretHits.length > 0) {
152
+ const items = secretHits.map(h => ` línea ${h.line}: ${h.label} — ${h.snippet}`).join('\n');
153
+ warnings.push(`Posibles secrets hardcodeados:\n${items}\n Usar variables de entorno en su lugar.`);
154
+ }
155
+ }
156
+
157
+ if (warnings.length > 0) {
158
+ process.stdout.write(
159
+ `forge: ADVERTENCIA — revisá antes de continuar:\n\n` +
160
+ warnings.map(w => ` • ${w}`).join('\n\n') + '\n'
161
+ );
162
+ // Don't block — just warn
163
+ }
164
+
165
+ process.exit(0);
166
+ });
package/dist/cli.js CHANGED
@@ -4,7 +4,7 @@ import { audit } from './commands/audit.js';
4
4
  import { generate } from './commands/generate.js';
5
5
  import { validate } from './commands/validate.js';
6
6
  import { doctor } from './commands/doctor.js';
7
- const VERSION = '2.2.0';
7
+ const VERSION = '2.3.0';
8
8
  const HELP = `forge v${VERSION} — Agentic development framework
9
9
 
10
10
  Usage: forge <command> [options]
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA+MA,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAiG1D"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAgNA,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA0G1D"}
@@ -1,4 +1,4 @@
1
- import { existsSync, mkdirSync, writeFileSync, copyFileSync, readdirSync, statSync } from 'fs';
1
+ import { existsSync, mkdirSync, writeFileSync, readFileSync, copyFileSync, readdirSync, statSync } from 'fs';
2
2
  import { join, basename } from 'path';
3
3
  import { loadProjectYaml } from '../lib/yaml.js';
4
4
  import { runWizard } from '../lib/wizard.js';
@@ -129,8 +129,9 @@ function installHooks(forgeRoot, destDir, mode, force) {
129
129
  const hooksDir = join(forgeRoot, 'core', 'hooks');
130
130
  if (!existsSync(hooksDir))
131
131
  return;
132
- const universal = ['pre-edit-check.py', 'post-turn-check.sh', 'session-start.sh'];
133
- const standard = ['pre-bash-check.py'];
132
+ // JS hooks (zero Python dependency)
133
+ const universal = ['pre-edit-check.js', 'post-turn-check.sh', 'session-start.sh'];
134
+ const standard = ['pre-bash-check.js'];
134
135
  for (const hook of universal) {
135
136
  const src = join(hooksDir, hook);
136
137
  if (existsSync(src))
@@ -163,13 +164,13 @@ function generateSettingsJson(language, mode) {
163
164
  }
164
165
  allowList.push('Bash(git *)');
165
166
  const hooks = {
166
- PreToolUse: [{ matcher: 'Bash', hooks: [{ type: 'command', command: 'python3 .claude/hooks/pre-edit-check.py' }] }],
167
+ PreToolUse: [{ matcher: '.*', hooks: [{ type: 'command', command: 'node .claude/hooks/pre-edit-check.js' }] }],
167
168
  Stop: [{ hooks: [{ type: 'command', command: 'bash .claude/hooks/post-turn-check.sh' }] }],
168
169
  };
169
170
  if (mode === 'standard' || mode === 'enterprise') {
170
171
  hooks.PreToolUse.push({
171
172
  matcher: 'Bash',
172
- hooks: [{ type: 'command', command: 'python3 .claude/hooks/pre-bash-check.py' }],
173
+ hooks: [{ type: 'command', command: 'node .claude/hooks/pre-bash-check.js' }],
173
174
  });
174
175
  }
175
176
  return JSON.stringify({ permissions: { allow: allowList }, hooks }, null, 2);
@@ -256,6 +257,14 @@ export async function init(args) {
256
257
  if (existsSync(specTemplateSrc)) {
257
258
  copyFile(specTemplateSrc, join(projectRoot, 'docs', 'specs', '_template.md'), false);
258
259
  }
260
+ // architecture.rules — never overwrite if exists
261
+ const archRulesTemplate = join(forgeRoot, 'core', 'templates', 'claude-md', 'architecture.rules');
262
+ const archRulesDest = join(claudeDir, 'architecture.rules');
263
+ if (existsSync(archRulesTemplate) && !existsSync(archRulesDest)) {
264
+ const content = readFileSync(archRulesTemplate, 'utf-8').replace('<NOMBRE_PROYECTO>', config.project.name ?? 'Mi Proyecto');
265
+ writeFileSync(archRulesDest, content, 'utf-8');
266
+ console.log(' write architecture.rules');
267
+ }
259
268
  }
260
269
  else if (runtime === 'opencode') {
261
270
  mkdirSync(join(projectRoot, '.opencode'), { recursive: true });
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/lib/generators/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAsE9C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CA2E5D"}
1
+ {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/lib/generators/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAsE9C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAiF5D"}
@@ -73,7 +73,7 @@ export function generateClaudeMd(config) {
73
73
  const progressPath = paths?.progress ?? 'docs/progress.html';
74
74
  const agentScopeSection = buildAgentScopeTable(agents, paths);
75
75
  const complianceSection = compliance.frameworks && compliance.frameworks.length > 0
76
- ? `\n## Compliance activo\n\nEste proyecto opera bajo:\n${compliance.frameworks.map(f => `- **${f.toUpperCase()}**`).join('\n')}\n\nReglas no-negociables:\n- Sin datos personales en logs de stdout\n- Consentimiento explícito antes de cualquier tracker no esencial\n- Logs de auditoría append-only (sin UPDATE/DELETE)\n`
76
+ ? `\n## Compliance activo\n\nEste proyecto opera bajo: ${compliance.frameworks.map(f => `**${f.toUpperCase()}**`).join(', ')}\n\nReglas no-negociables:\n- Sin datos personales en logs de stdout\n- Consentimiento explícito antes de cualquier tracker no esencial\n- Logs de auditoría append-only (sin UPDATE/DELETE)\n- Derechos del titular implementados (acceso, rectificación, supresión, portabilidad)\n`
77
77
  : '';
78
78
  return `# CLAUDE.md — ${name}
79
79
 
@@ -96,7 +96,13 @@ ${agentScopeSection}## Estructura
96
96
  \`\`\`
97
97
  ${proj.slug ?? 'proyecto'}/
98
98
  ├── CLAUDE.md ← Estás acá
99
+ ├── AGENTS.md ← Convenciones del agent team
99
100
  ├── project.yaml ← Config de forge (fuente de verdad)
101
+ ├── .claude/
102
+ │ ├── agents/ ← Agentes instalados
103
+ │ ├── hooks/ ← Hooks de guardrail (JS, sin Python)
104
+ │ ├── commands/ ← Slash commands del flujo SDD
105
+ │ └── architecture.rules ← Convenciones de arquitectura del proyecto
100
106
  ├── ${specsPath}/ ← Specs de features (requeridas antes de implementar)
101
107
  └── ${progressPath} ← Dashboard de progreso
102
108
  \`\`\`
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/lib/generators/claude-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/lib/generators/claude-code.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cristiancorreau/forge",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Agentic development framework — multi-runtime support for Claude Code, OpenCode, Codex and Kiro",
5
5
  "author": "Cristian Correa <cristian@socialweb.cl>",
6
6
  "license": "Apache-2.0",