@stackbilt/cli 0.1.9 → 0.1.11

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/README.md CHANGED
@@ -4,16 +4,28 @@ CLI entry point for Charter Kit -- a local-first governance toolkit for software
4
4
 
5
5
  > **This is the only package most users need.** One install gives you the full Charter Kit toolkit.
6
6
 
7
- ## Install
8
-
9
- ```bash
10
- npm install -g @stackbilt/cli
11
- ```
12
-
13
- This pulls in all Charter Kit packages automatically. You get the `charter` command globally.
14
- Use `charter setup` inside each repo to scaffold governance baseline files.
15
-
16
- For CI pipelines, install as a dev dependency instead:
7
+ ## Install (Recommended)
8
+
9
+ ```bash
10
+ npm install --save-dev @stackbilt/cli
11
+ ```
12
+
13
+ Use with `npx` in each repository:
14
+
15
+ ```bash
16
+ npx charter
17
+ npx charter setup --ci github
18
+ ```
19
+
20
+ Global install is optional if you want `charter` available system-wide:
21
+
22
+ ```bash
23
+ npm install -g @stackbilt/cli
24
+ ```
25
+
26
+ This pulls in all Charter Kit packages automatically. Use `charter setup` inside each repo to scaffold governance baseline files.
27
+
28
+ For CI pipelines, install as a dev dependency:
17
29
 
18
30
  ```bash
19
31
  npm install --save-dev @stackbilt/cli
@@ -89,14 +101,16 @@ Explains the adoption case in plain terms (problem, what Charter enforces, expec
89
101
 
90
102
  Bootstrap `.charter/` with config, patterns, and policies. Optionally generates a GitHub Actions workflow.
91
103
  This is the command that applies Charter governance into a repository.
104
+
105
+ ```bash
106
+ charter setup --ci github --yes
107
+ charter setup --detect-only
108
+ charter setup --preset frontend
109
+ ```
92
110
 
93
- ```bash
94
- charter setup --ci github --yes
95
- ```
96
-
97
- ### `charter init`
98
-
99
- Scaffold `.charter/` config templates only.
111
+ ### `charter init`
112
+
113
+ Scaffold `.charter/` config templates only. Supports `--preset worker|frontend|backend|fullstack`.
100
114
 
101
115
  ### `charter doctor`
102
116
 
@@ -118,9 +132,9 @@ Scan files against blessed-stack patterns in `.charter/patterns/*.json`.
118
132
  charter drift --path ./src --ci
119
133
  ```
120
134
 
121
- ### `charter audit`
122
-
123
- Generate a governance audit report covering trailers, risk, and drift.
135
+ ### `charter audit`
136
+
137
+ Generate a governance audit report covering trailers, risk, drift, and policy-section coverage quality.
124
138
 
125
139
  ### `charter classify`
126
140
 
@@ -137,7 +151,11 @@ charter classify "update button color"
137
151
  | `--config <path>` | Path to `.charter/` directory | `.charter/` |
138
152
  | `--format <mode>` | Output: `text` or `json` | `text` |
139
153
  | `--ci` | CI mode: exit non-zero on WARN or FAIL | off |
140
- | `--yes` | Auto-accept safe setup overwrites | off |
154
+ | `--yes` | Auto-accept safe setup overwrites | off |
155
+
156
+ Setup-only options:
157
+ - `--preset <worker|frontend|backend|fullstack>`: override auto-detected preset
158
+ - `--detect-only`: print stack detection result and selected preset without writing files
141
159
 
142
160
  ## Exit Codes
143
161
 
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAqC3C,wBAAsB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBvE"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAoD3C,wBAAsB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBvE"}
@@ -42,6 +42,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
42
42
  exports.auditCommand = auditCommand;
43
43
  const node_child_process_1 = require("node:child_process");
44
44
  const fs = __importStar(require("node:fs"));
45
+ const path = __importStar(require("node:path"));
45
46
  const index_1 = require("../index");
46
47
  const config_1 = require("../config");
47
48
  const git_1 = require("@stackbilt/git");
@@ -49,7 +50,7 @@ const git_2 = require("@stackbilt/git");
49
50
  async function auditCommand(options) {
50
51
  const config = (0, config_1.loadConfig)(options.configPath);
51
52
  const patterns = (0, config_1.loadPatterns)(options.configPath);
52
- const report = generateAuditReport(config.project, options.configPath, patterns);
53
+ const report = generateAuditReport(config, config.project, options.configPath, patterns);
53
54
  if (options.format === 'json') {
54
55
  console.log(JSON.stringify(report, null, 2));
55
56
  }
@@ -61,7 +62,7 @@ async function auditCommand(options) {
61
62
  }
62
63
  return index_1.EXIT_CODE.SUCCESS;
63
64
  }
64
- function generateAuditReport(projectName, configPath, patterns) {
65
+ function generateAuditReport(config, projectName, configPath, patterns) {
65
66
  const commits = getRecentCommits(50);
66
67
  const parsed = (0, git_1.parseAllTrailers)(commits);
67
68
  const linkedCommits = new Set();
@@ -87,10 +88,16 @@ function generateAuditReport(projectName, configPath, patterns) {
87
88
  const policyFiles = fs.existsSync(policiesDir)
88
89
  ? fs.readdirSync(policiesDir).filter((f) => f.endsWith('.md'))
89
90
  : [];
91
+ const policyCoverage = evaluatePolicyCoverage(config, policiesDir, policyFiles);
90
92
  const trailerScore = Math.min(100, coveragePercent * 1.5);
91
93
  const patternScore = Math.min(100, activePatterns.length * 20);
92
- const policyScore = Math.min(100, policyFiles.length * 33);
94
+ const policyScore = policyCoverage.coveragePercent;
93
95
  const overall = Math.round((trailerScore * 0.5) + (patternScore * 0.3) + (policyScore * 0.2));
96
+ const scoreInputs = {
97
+ coveragePercent,
98
+ activePatterns: activePatterns.length,
99
+ missingSections: policyCoverage.missingSections,
100
+ };
94
101
  return {
95
102
  project: projectName,
96
103
  generatedAt: new Date().toISOString(),
@@ -110,6 +117,9 @@ function generateAuditReport(projectName, configPath, patterns) {
110
117
  },
111
118
  policies: {
112
119
  files: policyFiles,
120
+ coveragePercent: policyCoverage.coveragePercent,
121
+ matchedSections: policyCoverage.matchedSections,
122
+ missingSections: policyCoverage.missingSections,
113
123
  },
114
124
  score: {
115
125
  overall,
@@ -118,6 +128,12 @@ function generateAuditReport(projectName, configPath, patterns) {
118
128
  patternDefinitions: Math.round(patternScore),
119
129
  policyDocumentation: Math.round(policyScore),
120
130
  },
131
+ criteria: {
132
+ trailerCoverage: 'coverage_percent * 1.5 (max 100). 67%+ coverage earns full points.',
133
+ patternDefinitions: 'active_pattern_count * 20 (max 100). 5+ active patterns earns full points.',
134
+ policyDocumentation: 'policy section coverage percent from config.audit.policyCoverage.requiredSections (max 100).',
135
+ },
136
+ recommendations: getRecommendations(scoreInputs),
121
137
  },
122
138
  };
123
139
  }
@@ -142,6 +158,8 @@ function printReport(report) {
142
158
  console.log('');
143
159
  console.log(' Policy Documentation');
144
160
  console.log(` Policy files: ${report.policies.files.length}`);
161
+ console.log(` Coverage: ${report.policies.coveragePercent}%`);
162
+ console.log(` Missing sections: ${report.policies.missingSections.length}`);
145
163
  for (const file of report.policies.files) {
146
164
  console.log(` - ${file}`);
147
165
  }
@@ -151,6 +169,16 @@ function printReport(report) {
151
169
  console.log(` Pattern definitions: ${report.score.breakdown.patternDefinitions}/100 (30% weight)`);
152
170
  console.log(` Policy documentation: ${report.score.breakdown.policyDocumentation}/100 (20% weight)`);
153
171
  console.log('');
172
+ console.log(' Scoring Criteria');
173
+ console.log(` - Trailer coverage: ${report.score.criteria.trailerCoverage}`);
174
+ console.log(` - Pattern definitions: ${report.score.criteria.patternDefinitions}`);
175
+ console.log(` - Policy documentation: ${report.score.criteria.policyDocumentation}`);
176
+ console.log('');
177
+ console.log(' Actionable Next Steps');
178
+ for (const rec of report.score.recommendations) {
179
+ console.log(` - ${rec}`);
180
+ }
181
+ console.log('');
154
182
  }
155
183
  function getRecentCommits(count) {
156
184
  try {
@@ -193,6 +221,62 @@ function runGit(args) {
193
221
  return (0, node_child_process_1.execFileSync)('git', args, {
194
222
  encoding: 'utf-8',
195
223
  maxBuffer: 10 * 1024 * 1024,
224
+ stdio: ['ignore', 'pipe', 'pipe'],
196
225
  });
197
226
  }
198
- //# sourceMappingURL=audit.js.map
227
+ function getRecommendations(inputs) {
228
+ const recommendations = [];
229
+ const missingCoverage = Math.max(0, 67 - inputs.coveragePercent);
230
+ if (missingCoverage > 0) {
231
+ recommendations.push(`Increase governance trailer coverage by ${missingCoverage}% to reach full trailer score (add Governed-By/Resolves-Request trailers).`);
232
+ }
233
+ else {
234
+ recommendations.push('Trailer coverage is at full-score threshold.');
235
+ }
236
+ const missingPatterns = Math.max(0, 5 - inputs.activePatterns);
237
+ if (missingPatterns > 0) {
238
+ recommendations.push(`Add ${missingPatterns} active pattern(s) in .charter/patterns/*.json to reach full pattern score (target: 5 active patterns).`);
239
+ }
240
+ else {
241
+ recommendations.push('Pattern definitions are at full-score threshold.');
242
+ }
243
+ if (inputs.missingSections.length > 0) {
244
+ recommendations.push(`Add missing policy coverage sections: ${inputs.missingSections.join(', ')}.`);
245
+ }
246
+ else {
247
+ recommendations.push('Policy documentation coverage is at full-score threshold.');
248
+ }
249
+ return recommendations;
250
+ }
251
+ function evaluatePolicyCoverage(config, policiesDir, policyFiles) {
252
+ const required = config.audit.policyCoverage.requiredSections || [];
253
+ if (!config.audit.policyCoverage.enabled || required.length === 0) {
254
+ return {
255
+ coveragePercent: 100,
256
+ matchedSections: [],
257
+ missingSections: [],
258
+ };
259
+ }
260
+ const normalizedContent = policyFiles
261
+ .map((f) => fs.readFileSync(path.join(policiesDir, f), 'utf-8'))
262
+ .join('\n')
263
+ .toLowerCase();
264
+ const matchedSections = [];
265
+ const missingSections = [];
266
+ for (const section of required) {
267
+ const matches = section.match?.some((token) => normalizedContent.includes(token.toLowerCase())) || false;
268
+ if (matches) {
269
+ matchedSections.push(section.title);
270
+ }
271
+ else {
272
+ missingSections.push(section.title);
273
+ }
274
+ }
275
+ const coveragePercent = Math.round((matchedSections.length / required.length) * 100);
276
+ return {
277
+ coveragePercent,
278
+ matchedSections,
279
+ missingSections,
280
+ };
281
+ }
282
+ //# sourceMappingURL=audit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,17 @@
4
4
  * Scaffolds the .charter/ directory with default config and example patterns.
5
5
  */
6
6
  import type { CLIOptions } from '../index';
7
+ export type StackPreset = 'worker' | 'frontend' | 'backend' | 'fullstack';
7
8
  interface InitResult {
8
9
  created: boolean;
9
10
  configPath: string;
10
11
  files: string[];
11
12
  }
13
+ interface InitializeOptions {
14
+ projectName?: string;
15
+ preset?: StackPreset;
16
+ }
12
17
  export declare function initCommand(options: CLIOptions, args?: string[]): Promise<number>;
13
- export declare function initializeCharter(configDir: string, force: boolean): InitResult;
18
+ export declare function initializeCharter(configDir: string, force: boolean, initOptions?: InitializeOptions): InitResult;
14
19
  export {};
15
20
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA2B3C,UAAU,UAAU;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B3F;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CA4D/E"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI3C,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAsL1E,UAAU,UAAU;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,UAAU,iBAAiB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA8B3F;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAE,iBAAsB,GAAG,UAAU,CAsCpH"}
@@ -44,30 +44,188 @@ const fs = __importStar(require("node:fs"));
44
44
  const path = __importStar(require("node:path"));
45
45
  const index_1 = require("../index");
46
46
  const config_1 = require("../config");
47
- const EXAMPLE_PATTERNS = [
48
- {
49
- name: 'Cloudflare Workers',
50
- category: 'COMPUTE',
51
- blessed_solution: 'Cloudflare Workers for serverless compute',
52
- rationale: 'Edge-first architecture for global low-latency',
53
- anti_patterns: 'Avoid express/fastify for new services - use Workers native fetch handler',
54
- status: 'ACTIVE',
55
- },
56
- {
57
- name: 'D1 Database',
58
- category: 'DATA',
59
- blessed_solution: 'Cloudflare D1 (SQLite at the edge)',
60
- rationale: 'Co-located with Workers, zero network hop for reads',
61
- anti_patterns: 'Avoid pg/mysql2/mongoose - use D1 bindings',
62
- status: 'ACTIVE',
63
- },
64
- ];
47
+ const PATTERN_TEMPLATES = {
48
+ worker: [
49
+ {
50
+ name: 'Edge Compute',
51
+ category: 'COMPUTE',
52
+ blessed_solution: 'Cloudflare Workers for edge compute',
53
+ rationale: 'Low-latency runtime close to users',
54
+ anti_patterns: 'Avoid express/fastify for new edge services',
55
+ status: 'ACTIVE',
56
+ },
57
+ {
58
+ name: 'Edge Data',
59
+ category: 'DATA',
60
+ blessed_solution: 'Cloudflare D1 for transactional edge data',
61
+ rationale: 'Co-located data with worker runtime',
62
+ anti_patterns: 'Avoid direct pg/mysql clients in edge handlers',
63
+ status: 'ACTIVE',
64
+ },
65
+ {
66
+ name: 'Queue Processing',
67
+ category: 'ASYNC',
68
+ blessed_solution: 'Cloudflare Queues for asynchronous workloads',
69
+ rationale: 'Durable retries for non-request work',
70
+ anti_patterns: 'Avoid long-running synchronous request chains',
71
+ status: 'ACTIVE',
72
+ },
73
+ {
74
+ name: 'Edge Security',
75
+ category: 'SECURITY',
76
+ blessed_solution: 'Token-based auth with scoped service bindings',
77
+ rationale: 'Limits blast radius across edge services',
78
+ anti_patterns: 'Avoid shared hardcoded secrets across handlers',
79
+ status: 'ACTIVE',
80
+ },
81
+ ],
82
+ frontend: [
83
+ {
84
+ name: 'Frontend Runtime',
85
+ category: 'COMPUTE',
86
+ blessed_solution: 'React/Vite or Next.js for UI runtime',
87
+ rationale: 'Stable frontend delivery and ecosystem support',
88
+ anti_patterns: 'Avoid ad-hoc SPA bootstraps without build pipeline',
89
+ status: 'ACTIVE',
90
+ },
91
+ {
92
+ name: 'State Management',
93
+ category: 'INTEGRATION',
94
+ blessed_solution: 'Centralized client state (Zustand/Redux)',
95
+ rationale: 'Predictable UI state transitions',
96
+ anti_patterns: 'Avoid deeply nested ad-hoc local state trees',
97
+ status: 'ACTIVE',
98
+ },
99
+ {
100
+ name: 'API Contract Layer',
101
+ category: 'INTEGRATION',
102
+ blessed_solution: 'Typed API client boundary module',
103
+ rationale: 'Prevents request shape drift across pages',
104
+ anti_patterns: 'Avoid raw fetch calls scattered across components',
105
+ status: 'ACTIVE',
106
+ },
107
+ {
108
+ name: 'Frontend Security',
109
+ category: 'SECURITY',
110
+ blessed_solution: 'HTTP-only session + CSRF-aware mutation flows',
111
+ rationale: 'Mitigates token leakage and unsafe writes',
112
+ anti_patterns: 'Avoid storing auth tokens in localStorage',
113
+ status: 'ACTIVE',
114
+ },
115
+ ],
116
+ backend: [
117
+ {
118
+ name: 'Service Runtime',
119
+ category: 'COMPUTE',
120
+ blessed_solution: 'Node service runtime with typed request boundaries',
121
+ rationale: 'Operationally stable API execution model',
122
+ anti_patterns: 'Avoid implicit any/unknown request payload parsing',
123
+ status: 'ACTIVE',
124
+ },
125
+ {
126
+ name: 'Data Access Layer',
127
+ category: 'DATA',
128
+ blessed_solution: 'Repository/service abstraction around DB operations',
129
+ rationale: 'Centralizes schema and migration safety',
130
+ anti_patterns: 'Avoid direct SQL calls spread across handlers',
131
+ status: 'ACTIVE',
132
+ },
133
+ {
134
+ name: 'Async Jobs',
135
+ category: 'ASYNC',
136
+ blessed_solution: 'Queue-backed workers for retries and background work',
137
+ rationale: 'Improves resilience of non-critical tasks',
138
+ anti_patterns: 'Avoid blocking API requests on batch/background tasks',
139
+ status: 'ACTIVE',
140
+ },
141
+ {
142
+ name: 'API Security',
143
+ category: 'SECURITY',
144
+ blessed_solution: 'Scoped auth middleware and service-level authorization',
145
+ rationale: 'Consistent access control across endpoints',
146
+ anti_patterns: 'Avoid route-specific ad-hoc authorization logic',
147
+ status: 'ACTIVE',
148
+ },
149
+ ],
150
+ fullstack: [
151
+ {
152
+ name: 'App Runtime Split',
153
+ category: 'COMPUTE',
154
+ blessed_solution: 'Frontend app plus API service/edge runtime split',
155
+ rationale: 'Clear ownership between UI and backend concerns',
156
+ anti_patterns: 'Avoid coupling frontend state logic directly to DB models',
157
+ status: 'ACTIVE',
158
+ },
159
+ {
160
+ name: 'Primary Data Store',
161
+ category: 'DATA',
162
+ blessed_solution: 'Single primary transactional data layer with migrations',
163
+ rationale: 'Consistent source of truth for read/write paths',
164
+ anti_patterns: 'Avoid duplicating write sources across multiple stores',
165
+ status: 'ACTIVE',
166
+ },
167
+ {
168
+ name: 'API Integration Boundary',
169
+ category: 'INTEGRATION',
170
+ blessed_solution: 'Typed API client/server contracts',
171
+ rationale: 'Reduces interface drift between frontend and backend',
172
+ anti_patterns: 'Avoid undocumented cross-layer payload assumptions',
173
+ status: 'ACTIVE',
174
+ },
175
+ {
176
+ name: 'Background Processing',
177
+ category: 'ASYNC',
178
+ blessed_solution: 'Queue/job model for notifications and batch workflows',
179
+ rationale: 'Protects user-facing latency from long-running tasks',
180
+ anti_patterns: 'Avoid synchronous execution of retry-prone integrations',
181
+ status: 'ACTIVE',
182
+ },
183
+ {
184
+ name: 'Security Baseline',
185
+ category: 'SECURITY',
186
+ blessed_solution: 'Centralized authn/authz and secret management policy',
187
+ rationale: 'Consistent controls across frontend/backend surfaces',
188
+ anti_patterns: 'Avoid mixed auth patterns across services and clients',
189
+ status: 'ACTIVE',
190
+ },
191
+ ],
192
+ };
193
+ const DEFAULT_POLICY_CONTENT = `# Governance Policy
194
+
195
+ ## Commit Trailers
196
+
197
+ High-risk commits (migrations, handlers, services) should include:
198
+
199
+ \`\`\`
200
+ Governed-By: <ADR-ID or ledger entry reference>
201
+ Resolves-Request: <governance request ID>
202
+ \`\`\`
203
+
204
+ ## Change Classification
205
+
206
+ Changes are classified as:
207
+ - **SURFACE**: Docs, comments, naming - no code logic
208
+ - **LOCAL**: Single service, contained impact
209
+ - **CROSS_CUTTING**: Multiple services, data model, API contracts
210
+
211
+ ## Exception Path
212
+
213
+ Use documented exception requests when policy cannot be applied directly.
214
+ Capture waiver reason, approver, and expiration.
215
+
216
+ ## Escalation & Approval
217
+
218
+ Cross-cutting changes require architectural review before merge.
219
+ Escalate ambiguous or high-risk decisions for explicit approval.
220
+ `;
65
221
  const GITIGNORE_CONTENT = `# Charter local state
66
222
  .cache/
67
223
  `;
68
224
  async function initCommand(options, args = []) {
69
225
  const force = options.yes || args.includes('--force');
70
- const result = initializeCharter(options.configPath, force);
226
+ const presetFlag = getFlag(args, '--preset');
227
+ const preset = isValidPreset(presetFlag) ? presetFlag : undefined;
228
+ const result = initializeCharter(options.configPath, force, { preset });
71
229
  if (options.format === 'json') {
72
230
  console.log(JSON.stringify(result, null, 2));
73
231
  return index_1.EXIT_CODE.SUCCESS;
@@ -90,7 +248,7 @@ async function initCommand(options, args = []) {
90
248
  console.log(' 3. Run: charter validate');
91
249
  return index_1.EXIT_CODE.SUCCESS;
92
250
  }
93
- function initializeCharter(configDir, force) {
251
+ function initializeCharter(configDir, force, initOptions = {}) {
94
252
  const configFile = path.join(configDir, 'config.json');
95
253
  const exists = fs.existsSync(configFile);
96
254
  if (exists && !force) {
@@ -104,28 +262,10 @@ function initializeCharter(configDir, force) {
104
262
  for (const dir of dirs) {
105
263
  fs.mkdirSync(dir, { recursive: true });
106
264
  }
107
- fs.writeFileSync(configFile, (0, config_1.getDefaultConfigJSON)() + '\n');
108
- fs.writeFileSync(path.join(configDir, 'patterns', 'blessed-stack.json'), JSON.stringify(EXAMPLE_PATTERNS, null, 2) + '\n');
109
- fs.writeFileSync(path.join(configDir, 'policies', 'governance.md'), `# Governance Policy
110
-
111
- ## Commit Trailers
112
-
113
- High-risk commits (migrations, handlers, services) should include:
114
-
115
- \`\`\`
116
- Governed-By: <ADR-ID or ledger entry reference>
117
- Resolves-Request: <governance request ID>
118
- \`\`\`
119
-
120
- ## Change Classification
121
-
122
- Changes are classified as:
123
- - **SURFACE**: Docs, comments, naming - no code logic
124
- - **LOCAL**: Single service, contained impact
125
- - **CROSS_CUTTING**: Multiple services, data model, API contracts
126
-
127
- Cross-cutting changes require architectural review before merge.
128
- `);
265
+ const selectedPreset = initOptions.preset || 'fullstack';
266
+ fs.writeFileSync(configFile, (0, config_1.getDefaultConfigJSON)(initOptions.projectName) + '\n');
267
+ fs.writeFileSync(path.join(configDir, 'patterns', 'blessed-stack.json'), JSON.stringify(PATTERN_TEMPLATES[selectedPreset], null, 2) + '\n');
268
+ fs.writeFileSync(path.join(configDir, 'policies', 'governance.md'), DEFAULT_POLICY_CONTENT);
129
269
  fs.writeFileSync(path.join(configDir, '.gitignore'), GITIGNORE_CONTENT);
130
270
  return {
131
271
  created: true,
@@ -138,4 +278,14 @@ Cross-cutting changes require architectural review before merge.
138
278
  ],
139
279
  };
140
280
  }
281
+ function isValidPreset(value) {
282
+ return value === 'worker' || value === 'frontend' || value === 'backend' || value === 'fullstack';
283
+ }
284
+ function getFlag(args, flag) {
285
+ const idx = args.indexOf(flag);
286
+ if (idx !== -1 && idx + 1 < args.length) {
287
+ return args[idx + 1];
288
+ }
289
+ return undefined;
290
+ }
141
291
  //# 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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAqD3C,wBAAsB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA+CvF"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAgE3C,wBAAsB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA+FvF"}
@@ -83,13 +83,51 @@ jobs:
83
83
  `;
84
84
  async function setupCommand(options, args) {
85
85
  const ciMode = getFlag(args, '--ci');
86
+ const presetFlag = getFlag(args, '--preset');
87
+ const detectOnly = args.includes('--detect-only');
86
88
  if (ciMode && ciMode !== 'github') {
87
89
  throw new index_1.CLIError(`Unsupported CI target: ${ciMode}. Supported: github`);
88
90
  }
89
- const initResult = (0, init_1.initializeCharter)(options.configPath, options.yes || args.includes('--force'));
91
+ if (presetFlag && !isValidPreset(presetFlag)) {
92
+ throw new index_1.CLIError(`Invalid --preset value: ${presetFlag}. Use worker|frontend|backend|fullstack.`);
93
+ }
94
+ const detection = detectStack();
95
+ const selectedPreset = isValidPreset(presetFlag) ? presetFlag : detection.suggestedPreset;
96
+ const inferenceMode = presetFlag
97
+ ? 'preset-override'
98
+ : detection.confidence === 'LOW'
99
+ ? 'fallback-conservative'
100
+ : 'auto';
101
+ if (detectOnly) {
102
+ if (options.format === 'json') {
103
+ console.log(JSON.stringify({
104
+ detected: detection,
105
+ selectedPreset,
106
+ inferenceMode,
107
+ }, null, 2));
108
+ }
109
+ else {
110
+ console.log('');
111
+ console.log(' Stack detection result');
112
+ console.log(` Runtime: ${detection.runtime.join(', ') || 'none detected'}`);
113
+ console.log(` Frameworks: ${detection.frameworks.join(', ') || 'none detected'}`);
114
+ console.log(` State: ${detection.state.join(', ') || 'none detected'}`);
115
+ console.log(` Confidence: ${detection.confidence}`);
116
+ console.log(` Selected preset: ${selectedPreset} (${inferenceMode})`);
117
+ console.log('');
118
+ }
119
+ return index_2.EXIT_CODE.SUCCESS;
120
+ }
121
+ const initResult = (0, init_1.initializeCharter)(options.configPath, options.yes || args.includes('--force'), {
122
+ preset: selectedPreset,
123
+ projectName: inferProjectName(),
124
+ });
90
125
  const result = {
91
126
  configPath: options.configPath,
92
127
  initialized: initResult.created,
128
+ detected: detection,
129
+ selectedPreset,
130
+ inferenceMode,
93
131
  workflow: {
94
132
  mode: ciMode === 'github' ? 'github' : 'none',
95
133
  },
@@ -110,6 +148,8 @@ async function setupCommand(options, args) {
110
148
  console.log(' Governance guardrails are now active for this repo.');
111
149
  console.log(` Baseline path: ${result.configPath}`);
112
150
  console.log(` Baseline created: ${result.initialized ? 'yes' : 'already present'}`);
151
+ console.log(` Stack preset: ${result.selectedPreset} (${result.inferenceMode})`);
152
+ console.log(` Detection confidence: ${result.detected.confidence}`);
113
153
  if (result.workflow.mode === 'github') {
114
154
  console.log(` CI policy gate: ${result.workflow.created ? 'enabled' : 'already present'} (${result.workflow.path})`);
115
155
  }
@@ -125,6 +165,83 @@ async function setupCommand(options, args) {
125
165
  console.log(' 3. charter audit --format text');
126
166
  return index_2.EXIT_CODE.SUCCESS;
127
167
  }
168
+ function detectStack() {
169
+ const pkg = loadPackageJson();
170
+ if (!pkg) {
171
+ return {
172
+ runtime: [],
173
+ frameworks: [],
174
+ state: [],
175
+ confidence: 'LOW',
176
+ suggestedPreset: 'fullstack',
177
+ };
178
+ }
179
+ const depNames = new Set([
180
+ ...Object.keys(pkg.dependencies || {}),
181
+ ...Object.keys(pkg.devDependencies || {}),
182
+ ]);
183
+ const frameworks = [];
184
+ const runtime = [];
185
+ const state = [];
186
+ if (hasAny(depNames, ['next', 'react', 'vite', 'vue', '@angular/core', 'svelte'])) {
187
+ frameworks.push(...pick(depNames, ['next', 'react', 'vite', 'vue', '@angular/core', 'svelte']));
188
+ }
189
+ if (hasAny(depNames, ['express', 'fastify', 'nestjs', '@nestjs/core', 'koa', 'hono'])) {
190
+ frameworks.push(...pick(depNames, ['express', 'fastify', 'nestjs', '@nestjs/core', 'koa', 'hono']));
191
+ }
192
+ if (hasAny(depNames, ['wrangler', '@cloudflare/workers-types'])) {
193
+ runtime.push('edge-worker');
194
+ }
195
+ if (pkg.engines?.node || hasAny(depNames, ['typescript', 'ts-node', 'express', 'fastify', 'next'])) {
196
+ runtime.push('node');
197
+ }
198
+ if (hasAny(depNames, ['zustand', 'redux', '@reduxjs/toolkit', 'mobx', 'xstate'])) {
199
+ state.push(...pick(depNames, ['zustand', 'redux', '@reduxjs/toolkit', 'mobx', 'xstate']));
200
+ }
201
+ const hasFrontend = hasAny(depNames, ['next', 'react', 'vite', 'vue', '@angular/core', 'svelte']);
202
+ const hasBackend = hasAny(depNames, ['express', 'fastify', 'nestjs', '@nestjs/core', 'koa', 'hono']);
203
+ const hasWorker = hasAny(depNames, ['wrangler', '@cloudflare/workers-types']);
204
+ if (hasWorker && !hasFrontend && !hasBackend) {
205
+ return { runtime, frameworks, state, confidence: 'HIGH', suggestedPreset: 'worker' };
206
+ }
207
+ if (hasFrontend && hasBackend) {
208
+ return { runtime, frameworks, state, confidence: 'HIGH', suggestedPreset: 'fullstack' };
209
+ }
210
+ if (hasFrontend) {
211
+ return { runtime, frameworks, state, confidence: 'HIGH', suggestedPreset: 'frontend' };
212
+ }
213
+ if (hasBackend) {
214
+ return { runtime, frameworks, state, confidence: 'HIGH', suggestedPreset: 'backend' };
215
+ }
216
+ if (runtime.length > 0 || state.length > 0) {
217
+ return { runtime, frameworks, state, confidence: 'MEDIUM', suggestedPreset: 'fullstack' };
218
+ }
219
+ return { runtime, frameworks, state, confidence: 'LOW', suggestedPreset: 'fullstack' };
220
+ }
221
+ function loadPackageJson() {
222
+ const packageJsonPath = path.resolve('package.json');
223
+ if (!fs.existsSync(packageJsonPath))
224
+ return null;
225
+ try {
226
+ return JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
227
+ }
228
+ catch {
229
+ return null;
230
+ }
231
+ }
232
+ function inferProjectName() {
233
+ const pkg = loadPackageJson();
234
+ if (pkg?.name && pkg.name.trim().length > 0) {
235
+ return pkg.name.trim();
236
+ }
237
+ return path.basename(process.cwd());
238
+ }
239
+ function hasAny(set, candidates) {
240
+ return candidates.some((c) => set.has(c));
241
+ }
242
+ function pick(set, candidates) {
243
+ return candidates.filter((c) => set.has(c));
244
+ }
128
245
  function writeFileIfMissing(targetPath, content, force) {
129
246
  const absolute = path.resolve(targetPath);
130
247
  const exists = fs.existsSync(absolute);
@@ -142,4 +259,7 @@ function getFlag(args, flag) {
142
259
  }
143
260
  return undefined;
144
261
  }
145
- //# sourceMappingURL=setup.js.map
262
+ function isValidPreset(value) {
263
+ return value === 'worker' || value === 'frontend' || value === 'backend' || value === 'fullstack';
264
+ }
265
+ //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAgB3C,wBAAsB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B1F"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAqB3C,wBAAsB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAqD1F"}
@@ -14,8 +14,32 @@ const git_1 = require("@stackbilt/git");
14
14
  const git_2 = require("@stackbilt/git");
15
15
  async function validateCommand(options, args) {
16
16
  const config = (0, config_1.loadConfig)(options.configPath);
17
+ if (!hasCommits()) {
18
+ if (options.format === 'json') {
19
+ console.log(JSON.stringify({ status: 'PASS', summary: 'No commits to validate.' }, null, 2));
20
+ }
21
+ else {
22
+ console.log(' No commits to validate.');
23
+ }
24
+ return index_1.EXIT_CODE.SUCCESS;
25
+ }
17
26
  const range = getCommitRange(args);
18
- const commits = getGitCommits(range);
27
+ const commitLoad = getGitCommits(range);
28
+ if (commitLoad.error) {
29
+ if (options.format === 'json') {
30
+ console.log(JSON.stringify({
31
+ status: 'ERROR',
32
+ summary: 'Failed to read git commits for validation.',
33
+ details: commitLoad.error,
34
+ }, null, 2));
35
+ }
36
+ else {
37
+ console.log(' [fail] Failed to read git commits for validation.');
38
+ console.log(` ${commitLoad.error}`);
39
+ }
40
+ return index_1.EXIT_CODE.RUNTIME_ERROR;
41
+ }
42
+ const commits = commitLoad.commits;
19
43
  if (commits.length === 0) {
20
44
  if (options.format === 'json') {
21
45
  console.log(JSON.stringify({ status: 'PASS', summary: 'No commits to validate.' }, null, 2));
@@ -123,6 +147,7 @@ function getCommitRange(args) {
123
147
  if (rangeIdx !== -1 && rangeIdx + 1 < args.length) {
124
148
  return args[rangeIdx + 1];
125
149
  }
150
+ const recentRange = getRecentCommitRange();
126
151
  try {
127
152
  const currentBranch = runGit(['rev-parse', 'HEAD']).trim();
128
153
  let baseBranch = '';
@@ -133,12 +158,12 @@ function getCommitRange(args) {
133
158
  baseBranch = runGit(['rev-parse', '--verify', 'master']).trim();
134
159
  }
135
160
  if (!baseBranch || baseBranch === currentBranch) {
136
- return 'HEAD~5..HEAD';
161
+ return recentRange;
137
162
  }
138
163
  return `${baseBranch}..HEAD`;
139
164
  }
140
165
  catch {
141
- return 'HEAD~5..HEAD';
166
+ return recentRange;
142
167
  }
143
168
  }
144
169
  function getGitCommits(range) {
@@ -165,16 +190,58 @@ function getGitCommits(range) {
165
190
  }
166
191
  if (current)
167
192
  commits.push(current);
168
- return commits;
193
+ return { commits };
194
+ }
195
+ catch (error) {
196
+ return {
197
+ commits: [],
198
+ error: getGitErrorMessage(error),
199
+ };
200
+ }
201
+ }
202
+ function hasCommits() {
203
+ try {
204
+ runGit(['rev-parse', '--verify', 'HEAD']);
205
+ return true;
169
206
  }
170
207
  catch {
171
- return [];
208
+ return false;
209
+ }
210
+ }
211
+ function getRecentCommitRange() {
212
+ try {
213
+ const count = Number.parseInt(runGit(['rev-list', '--count', 'HEAD']).trim(), 10);
214
+ if (!Number.isFinite(count) || count <= 1) {
215
+ return 'HEAD';
216
+ }
217
+ const span = Math.min(5, count - 1);
218
+ return `HEAD~${span}..HEAD`;
219
+ }
220
+ catch {
221
+ return 'HEAD';
222
+ }
223
+ }
224
+ function getGitErrorMessage(error) {
225
+ const fallback = 'Unknown git error.';
226
+ if (!(error instanceof Error))
227
+ return fallback;
228
+ const execError = error;
229
+ if (execError.stderr) {
230
+ const stderr = execError.stderr.toString().trim();
231
+ if (stderr.length > 0) {
232
+ return stderr;
233
+ }
234
+ }
235
+ if (execError.message) {
236
+ return execError.message.trim();
172
237
  }
238
+ return fallback;
173
239
  }
174
240
  function runGit(args) {
175
241
  return (0, node_child_process_1.execFileSync)('git', args, {
176
242
  encoding: 'utf-8',
177
243
  maxBuffer: 10 * 1024 * 1024,
244
+ stdio: ['ignore', 'pipe', 'pipe'],
178
245
  });
179
246
  }
180
- //# sourceMappingURL=validate.js.map
247
+ //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import type { CLIOptions } from '../index';
2
2
  export declare function quickstartCommand(options: CLIOptions): Promise<number>;
3
3
  export declare function whyCommand(options: CLIOptions): Promise<number>;
4
+ //# sourceMappingURL=why.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"why.d.ts","sourceRoot":"","sources":["../../src/commands/why.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAc3C,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B5E;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAuCrE"}
@@ -1,10 +1,43 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.quickstartCommand = quickstartCommand;
4
37
  exports.whyCommand = whyCommand;
5
38
  const node_child_process_1 = require("node:child_process");
6
- const fs = require("node:fs");
7
- const path = require("node:path");
39
+ const fs = __importStar(require("node:fs"));
40
+ const path = __importStar(require("node:path"));
8
41
  const index_1 = require("../index");
9
42
  const git_1 = require("@stackbilt/git");
10
43
  async function quickstartCommand(options) {
@@ -144,7 +177,9 @@ function getRecentCommits(count) {
144
177
  };
145
178
  }
146
179
  else if (line.trim() && current) {
147
- current.files_changed.push(line.trim());
180
+ if (current.files_changed) {
181
+ current.files_changed.push(line.trim());
182
+ }
148
183
  }
149
184
  }
150
185
  if (current)
@@ -166,3 +201,4 @@ function hasCommits() {
166
201
  return false;
167
202
  }
168
203
  }
204
+ //# sourceMappingURL=why.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"why.js","sourceRoot":"","sources":["../../src/commands/why.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -41,6 +41,17 @@ export interface CharterConfig {
41
41
  /** Post PR comments (requires GitHub token) */
42
42
  postComments: boolean;
43
43
  };
44
+ /** Audit scoring behavior */
45
+ audit: {
46
+ policyCoverage: {
47
+ enabled: boolean;
48
+ requiredSections: Array<{
49
+ id: string;
50
+ title: string;
51
+ match: string[];
52
+ }>;
53
+ };
54
+ };
44
55
  }
45
56
  declare const DEFAULT_CONFIG: CharterConfig;
46
57
  /**
@@ -55,6 +66,6 @@ export declare function loadPatterns(configPath: string): Pattern[];
55
66
  /**
56
67
  * Get the default config as JSON string (for init command).
57
68
  */
58
- export declare function getDefaultConfigJSON(): string;
69
+ export declare function getDefaultConfigJSON(projectName?: string): string;
59
70
  export { DEFAULT_CONFIG };
60
71
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAMhD,MAAM,WAAW,aAAa;IAC5B,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAEhB,8BAA8B;IAC9B,GAAG,EAAE;QACH,wDAAwD;QACxD,eAAe,EAAE,OAAO,CAAC;QACzB,qEAAqE;QACrE,gBAAgB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;KAC7C,CAAC;IAEF,8BAA8B;IAC9B,KAAK,EAAE;QACL,4BAA4B;QAC5B,OAAO,EAAE,OAAO,CAAC;QACjB,4CAA4C;QAC5C,QAAQ,EAAE,MAAM,CAAC;QACjB,oCAAoC;QACpC,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,oCAAoC;QACpC,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAEF,0BAA0B;IAC1B,UAAU,EAAE;QACV,oDAAoD;QACpD,kBAAkB,EAAE,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAC;KACtD,CAAC;IAEF,kBAAkB;IAClB,EAAE,EAAE;QACF,mDAAmD;QACnD,UAAU,EAAE,OAAO,CAAC;QACpB,+CAA+C;QAC/C,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AAED,QAAA,MAAM,cAAc,EAAE,aAoBrB,CAAC;AAMF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAuB5D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,EAAE,CAsC1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAMhD,MAAM,WAAW,aAAa;IAC5B,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAEhB,8BAA8B;IAC9B,GAAG,EAAE;QACH,wDAAwD;QACxD,eAAe,EAAE,OAAO,CAAC;QACzB,qEAAqE;QACrE,gBAAgB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;KAC7C,CAAC;IAEF,8BAA8B;IAC9B,KAAK,EAAE;QACL,4BAA4B;QAC5B,OAAO,EAAE,OAAO,CAAC;QACjB,4CAA4C;QAC5C,QAAQ,EAAE,MAAM,CAAC;QACjB,oCAAoC;QACpC,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,oCAAoC;QACpC,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAEF,0BAA0B;IAC1B,UAAU,EAAE;QACV,oDAAoD;QACpD,kBAAkB,EAAE,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAC;KACtD,CAAC;IAEF,kBAAkB;IAClB,EAAE,EAAE;QACF,mDAAmD;QACnD,UAAU,EAAE,OAAO,CAAC;QACpB,+CAA+C;QAC/C,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;IAEF,6BAA6B;IAC7B,KAAK,EAAE;QACL,cAAc,EAAE;YACd,OAAO,EAAE,OAAO,CAAC;YACjB,gBAAgB,EAAE,KAAK,CAAC;gBACtB,EAAE,EAAE,MAAM,CAAC;gBACX,KAAK,EAAE,MAAM,CAAC;gBACd,KAAK,EAAE,MAAM,EAAE,CAAC;aACjB,CAAC,CAAC;SACJ,CAAC;KACH,CAAC;CACH;AAED,QAAA,MAAM,cAAc,EAAE,aA+CrB,CAAC;AAMF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CA8B5D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,EAAE,CAsC1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
package/dist/config.js CHANGED
@@ -66,6 +66,33 @@ const DEFAULT_CONFIG = {
66
66
  failOnWarn: false,
67
67
  postComments: false,
68
68
  },
69
+ audit: {
70
+ policyCoverage: {
71
+ enabled: true,
72
+ requiredSections: [
73
+ {
74
+ id: 'commit_trailers',
75
+ title: 'Commit Trailers',
76
+ match: ['commit trailers', 'governed-by', 'resolves-request'],
77
+ },
78
+ {
79
+ id: 'change_classification',
80
+ title: 'Change Classification',
81
+ match: ['change classification', 'surface', 'local', 'cross_cutting'],
82
+ },
83
+ {
84
+ id: 'exception_path',
85
+ title: 'Exception Path',
86
+ match: ['exception', 'waiver', 'override'],
87
+ },
88
+ {
89
+ id: 'escalation_approval',
90
+ title: 'Escalation & Approval',
91
+ match: ['escalation', 'approval', 'architectural review'],
92
+ },
93
+ ],
94
+ },
95
+ },
69
96
  };
70
97
  exports.DEFAULT_CONFIG = DEFAULT_CONFIG;
71
98
  // ============================================================================
@@ -91,6 +118,13 @@ function loadConfig(configPath) {
91
118
  drift: { ...DEFAULT_CONFIG.drift, ...parsed.drift },
92
119
  validation: { ...DEFAULT_CONFIG.validation, ...parsed.validation },
93
120
  ci: { ...DEFAULT_CONFIG.ci, ...parsed.ci },
121
+ audit: {
122
+ policyCoverage: {
123
+ ...DEFAULT_CONFIG.audit.policyCoverage,
124
+ ...(parsed.audit?.policyCoverage || {}),
125
+ requiredSections: parsed.audit?.policyCoverage?.requiredSections || DEFAULT_CONFIG.audit.policyCoverage.requiredSections,
126
+ },
127
+ },
94
128
  };
95
129
  }
96
130
  catch (err) {
@@ -139,7 +173,11 @@ function loadPatterns(configPath) {
139
173
  /**
140
174
  * Get the default config as JSON string (for init command).
141
175
  */
142
- function getDefaultConfigJSON() {
143
- return JSON.stringify(DEFAULT_CONFIG, null, 2);
176
+ function getDefaultConfigJSON(projectName) {
177
+ const config = {
178
+ ...DEFAULT_CONFIG,
179
+ project: projectName || DEFAULT_CONFIG.project,
180
+ };
181
+ return JSON.stringify(config, null, 2);
144
182
  }
145
183
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AAEX,qBAAa,QAAS,SAAQ,KAAK;aAGf,QAAQ,EAAE,MAAM;gBADhC,OAAO,EAAE,MAAM,EACC,QAAQ,GAAE,MAAgC;CAK7D;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA2CzD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyCH,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AAEX,qBAAa,QAAS,SAAQ,KAAK;aAGf,QAAQ,EAAE,MAAM;gBADhC,OAAO,EAAE,MAAM,EACC,QAAQ,GAAE,MAAgC;CAK7D;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAkDzD"}
package/dist/index.js CHANGED
@@ -5,6 +5,9 @@
5
5
  * Config-driven governance checks that run locally and in CI.
6
6
  * Zero cloud dependency - works fully offline.
7
7
  */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
12
  exports.CLIError = exports.EXIT_CODE = void 0;
10
13
  exports.run = run;
@@ -16,15 +19,17 @@ const audit_1 = require("./commands/audit");
16
19
  const drift_1 = require("./commands/drift");
17
20
  const classify_1 = require("./commands/classify");
18
21
  const why_1 = require("./commands/why");
19
- const package_json_1 = require("../package.json");
20
- const CLI_VERSION = package_json_1.version;
22
+ const package_json_1 = __importDefault(require("../package.json"));
23
+ const CLI_VERSION = package_json_1.default.version;
21
24
  const HELP = `
22
25
  charter - repo-level governance toolkit
23
26
 
24
27
  Usage:
25
28
  charter Show immediate governance value + risk snapshot
26
- charter setup [--ci github] Bootstrap .charter/ and optional CI workflow
27
- charter init Scaffold .charter/ config directory
29
+ charter setup [--ci github] [--preset <worker|frontend|backend|fullstack>] [--detect-only]
30
+ Bootstrap .charter/ and optional CI workflow
31
+ charter init [--preset <worker|frontend|backend|fullstack>]
32
+ Scaffold .charter/ config directory
28
33
  charter validate Validate git commits for governance trailers
29
34
  charter audit Generate governance audit report
30
35
  charter drift [--path <dir>] Scan files for pattern drift
@@ -39,6 +44,8 @@ Options:
39
44
  --format <type> Output format: text, json (default: text)
40
45
  --ci CI mode: exit non-zero on WARN or FAIL
41
46
  --yes Auto-accept safe setup overwrites
47
+ --preset <name> Stack preset: worker, frontend, backend, fullstack
48
+ --detect-only Setup only: print detected stack/preset and exit
42
49
  `;
43
50
  exports.EXIT_CODE = {
44
51
  SUCCESS: 0,
@@ -106,4 +113,4 @@ function getFlag(args, flag) {
106
113
  }
107
114
  return undefined;
108
115
  }
109
- //# sourceMappingURL=index.js.map
116
+ //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackbilt/cli",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "Charter CLI — repo-level governance checks",
5
5
  "bin": {
6
6
  "charter": "./dist/bin.js"