@llm-dev-ops/agentics-cli 2.1.0 → 2.1.2

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.
@@ -897,7 +897,9 @@ async function handleMessage(msg) {
897
897
  ' .agentics/plans/ddd/ — Domain model with bounded contexts',
898
898
  '',
899
899
  'STEP 4: Set up scaffold (adapt to detected language):',
900
- ' If TypeScript: copy .agentics/plans/scaffold/src/logger.ts, config.ts, errors.ts',
900
+ ' If TypeScript: copy .agentics/plans/scaffold/src/logger.ts, config.ts, errors.ts, middleware.ts',
901
+ ' middleware.ts provides: correlationId middleware, requestLogger, metricsHandler, CircuitBreaker class',
902
+ ' Wire into Express/Hono: app.use(correlationId); app.use(requestLogger); app.get("/metrics", metricsHandler);',
901
903
  ' If Python: create logger.py (structured JSON logging), config.py (env-based), errors.py (exception hierarchy)',
902
904
  ' If Rust: create src/logger.rs, src/config.rs, src/errors.rs with equivalent patterns',
903
905
  ' If Go: create internal/logger/logger.go, internal/config/config.go, internal/errors/errors.go',
@@ -930,6 +932,11 @@ async function handleMessage(msg) {
930
932
  ' - Domain types (Decision, Recommendation, ERPTransaction) include simulationId/traceId fields',
931
933
  ' - Load simulationId from .agentics/plans/manifest.json at startup',
932
934
  ' - Demo output includes "Analysis Confidence" section explaining consensus level',
935
+ ' ADR-052 EXECUTIVE OUTPUT:',
936
+ ' - Demo MUST print "Business Case" section with: addressable value, annual savings,',
937
+ ' implementation cost, ROI, payback — ALL derived from prototype seed data analysis',
938
+ ' - Demo MUST print "Analysis Confidence" section (high/medium/low + explanation)',
939
+ ' - Do NOT use generic per-employee heuristics — cite actual analysis results',
933
940
  ' - Every module uses structured logger and input validation',
934
941
  '',
935
942
  'STEP 7: Write tests first (TDD), then implementations. ALL tests must pass.',
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/mcp/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/mcp/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auto-chain.d.ts","sourceRoot":"","sources":["../../src/pipeline/auto-chain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AA+BhC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;CACxC;AAED,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC1E;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAueD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAmhD1B;AA0QD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAoFzE"}
1
+ {"version":3,"file":"auto-chain.d.ts","sourceRoot":"","sources":["../../src/pipeline/auto-chain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AA+BhC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;CACxC;AAED,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC1E;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAglBD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAmjD1B;AA0QD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAoFzE"}
@@ -234,6 +234,110 @@ export class ERPError extends AppError {
234
234
  fs.writeFileSync(path.join(scaffoldDir, 'logger.ts'), loggerCode, 'utf-8');
235
235
  fs.writeFileSync(path.join(scaffoldDir, 'config.ts'), configCode, 'utf-8');
236
236
  fs.writeFileSync(path.join(scaffoldDir, 'errors.ts'), errorsCode, 'utf-8');
237
+ // ADR-051: Correlation ID middleware + metrics scaffold
238
+ const middlewareCode = `// Auto-generated by Agentics pipeline (ADR-051)
239
+ import { randomUUID } from 'node:crypto';
240
+ import { createLogger } from './logger.js';
241
+
242
+ const logger = createLogger('middleware');
243
+
244
+ /** Correlation ID middleware — attaches to every request, threads through logs */
245
+ export function correlationId(req: any, res: any, next: () => void): void {
246
+ const id = (req.headers['x-correlation-id'] as string) || randomUUID();
247
+ req.correlationId = id;
248
+ res.setHeader('X-Correlation-Id', id);
249
+ next();
250
+ }
251
+
252
+ /** Request logging middleware — logs every request with timing */
253
+ export function requestLogger(req: any, res: any, next: () => void): void {
254
+ const start = Date.now();
255
+ res.on('finish', () => {
256
+ logger.info('http.request', {
257
+ method: req.method, path: req.path, status: res.statusCode,
258
+ durationMs: Date.now() - start, correlationId: req.correlationId,
259
+ });
260
+ });
261
+ next();
262
+ }
263
+
264
+ /** Simple in-memory metrics — GET /metrics returns Prometheus-compatible text */
265
+ const counters: Record<string, number> = {};
266
+ const histograms: Record<string, number[]> = {};
267
+
268
+ export function incrementCounter(name: string, labels: Record<string, string> = {}): void {
269
+ const key = name + JSON.stringify(labels);
270
+ counters[key] = (counters[key] ?? 0) + 1;
271
+ }
272
+
273
+ export function recordHistogram(name: string, value: number, labels: Record<string, string> = {}): void {
274
+ const key = name + JSON.stringify(labels);
275
+ if (!histograms[key]) histograms[key] = [];
276
+ histograms[key]!.push(value);
277
+ }
278
+
279
+ export function metricsHandler(_req: any, res: any): void {
280
+ const lines: string[] = [];
281
+ for (const [key, val] of Object.entries(counters)) {
282
+ lines.push(\`# TYPE \${key.split('{')[0]} counter\`);
283
+ lines.push(\`\${key} \${val}\`);
284
+ }
285
+ for (const [key, vals] of Object.entries(histograms)) {
286
+ const sum = vals.reduce((a, b) => a + b, 0);
287
+ const count = vals.length;
288
+ lines.push(\`# TYPE \${key.split('{')[0]} histogram\`);
289
+ lines.push(\`\${key}_sum \${sum}\`);
290
+ lines.push(\`\${key}_count \${count}\`);
291
+ }
292
+ res.setHeader('Content-Type', 'text/plain');
293
+ res.end(lines.join('\\n'));
294
+ }
295
+
296
+ /** Simple circuit breaker for external service calls */
297
+ export class CircuitBreaker {
298
+ private failures = 0;
299
+ private state: 'closed' | 'open' | 'half-open' = 'closed';
300
+ private nextAttempt = 0;
301
+
302
+ constructor(
303
+ private readonly name: string,
304
+ private readonly threshold = 5,
305
+ private readonly cooldownMs = 30000,
306
+ private readonly logger = createLogger('circuit-breaker'),
307
+ ) {}
308
+
309
+ async call<T>(fn: () => Promise<T>): Promise<T> {
310
+ if (this.state === 'open') {
311
+ if (Date.now() < this.nextAttempt) {
312
+ throw new Error(\`Circuit breaker '\${this.name}' is OPEN — retry after \${new Date(this.nextAttempt).toISOString()}\`);
313
+ }
314
+ this.state = 'half-open';
315
+ this.logger.info('circuit.half-open', { name: this.name });
316
+ }
317
+ try {
318
+ const result = await fn();
319
+ if (this.state === 'half-open') {
320
+ this.state = 'closed';
321
+ this.failures = 0;
322
+ this.logger.info('circuit.closed', { name: this.name });
323
+ }
324
+ return result;
325
+ } catch (err) {
326
+ this.failures++;
327
+ if (this.failures >= this.threshold) {
328
+ this.state = 'open';
329
+ this.nextAttempt = Date.now() + this.cooldownMs;
330
+ this.logger.warn('circuit.open', { name: this.name, failures: this.failures, retryAt: new Date(this.nextAttempt).toISOString() });
331
+ }
332
+ throw err;
333
+ }
334
+ }
335
+
336
+ getState(): string { return this.state; }
337
+ }
338
+ `;
339
+ fs.writeFileSync(path.join(scaffoldDir, 'middleware.ts'), middlewareCode, 'utf-8');
340
+ totalCopied += 1;
237
341
  // Python scaffold (if SPARC specifies Python or query mentions it)
238
342
  const pyDir = path.join(plansDir, 'scaffold', 'python');
239
343
  fs.mkdirSync(pyDir, { recursive: true });
@@ -1441,6 +1545,31 @@ Create a runnable demo (\`npx tsx src/demo.ts\`) that:
1441
1545
 
1442
1546
  The demo must run without any external dependencies (no database, no API keys, no network).
1443
1547
 
1548
+ ## 1b. Business Case Section in Demo Output (ADR-052) — REQUIRED
1549
+
1550
+ The demo MUST print a "Business Case" section after the analysis results:
1551
+ \`\`\`
1552
+ ═══ BUSINESS CASE (derived from prototype analysis) ═══
1553
+ Total Addressable Value: $X (from seed data analysis)
1554
+ Projected Annual Savings: $Y
1555
+ Implementation Cost: $Z (pilot scope)
1556
+ ROI: N% ($Y ÷ $Z)
1557
+ Payback Period: M months
1558
+ Confidence: Base $Y | Optimistic $Y×1.3 | Pessimistic $Y×0.6
1559
+ \`\`\`
1560
+
1561
+ These numbers MUST come from the actual scoring/analysis results on seed data,
1562
+ not from generic heuristics. The evaluator checks that the business case
1563
+ references specific prototype findings.
1564
+
1565
+ Also print an "Analysis Confidence" section:
1566
+ \`\`\`
1567
+ ═══ ANALYSIS CONFIDENCE ═══
1568
+ Confidence Level: [High/Medium/Low]
1569
+ [If Medium/Low: "The pilot resolves remaining uncertainty with real operational data"]
1570
+ [If High: "High confidence — proceed to pilot with standard monitoring"]
1571
+ \`\`\`
1572
+
1444
1573
  ## 2. CLI Interface (src/cli.ts) — OPTIONAL
1445
1574
 
1446
1575
  If time permits, create a minimal CLI:
@@ -1672,7 +1801,7 @@ services when the pilot validates the approach.
1672
1801
  // Implementation instructions — ADR-PIPELINE-033: include traceability requirements
1673
1802
  lines.push('## Implementation Requirements', '', '- All code must be CUSTOM to this project — implement the specific business logic described above', '- Follow the technology decisions from the ADRs referenced in the overview', '- Write production-quality code with proper error handling', '- Include unit tests (London School TDD — mock at module boundaries)', '- Export public interfaces so later build phases can import them', `- Place all files in the \`${phase.folder}/\` directory`, '', '## Traceability & Simulation Alignment (ADR-033 + ADR-049)', '', '### Domain Type Fields (REQUIRED on Decision, Recommendation, ERPTransaction):', '```', 'interface Recommendation {', ' // ... domain fields ...', ' simulationId?: string; // Pipeline simulation that produced the analysis', ' traceId?: string; // Correlation ID for end-to-end tracing', ' pipelineVersion?: string; // Version of the pipeline that generated this', '}', '```', '', `${simulationId ? `### Simulation ID: \`${simulationId}\`\nUse this as the default simulationId when creating records.` : '### Simulation ID: load from .agentics/plans/manifest.json at startup.'}`, '', '### Simulation Config Integration:', '- Load .agentics/plans/manifest.json at startup (if it exists)', '- Read simulationId and traceId from it', '- Pass to all service constructors so every record carries lineage', '- Log simulationId in every analysis run: `logger.info("analysis.start", { simulationId })`', '', '### Confidence Disclosure in Demo Output:', '- The demo script MUST print an "Analysis Confidence" section', '- State the confidence level and what it means', '- If confidence < 60%: "The pilot resolves remaining uncertainty with real data"', '- If confidence >= 80%: "High confidence — proceed to pilot with standard monitoring"', '');
1674
1803
  // ADR-PIPELINE-039: Mandatory cross-cutting requirements in EVERY prompt
1675
- lines.push('## Mandatory Cross-Cutting Requirements (EVERY module must implement these)', '', '### Logging', '- Create `src/logger.ts` (if it does not exist) with `createLogger(service: string)` that outputs JSON to stderr', '- Every log entry: `{ timestamp, level, service, event, correlationId?, ...data }`', '- Import and use the logger in THIS module. Log: function entry with key params, completion with duration, errors with context', '', '### Configuration', '- Create `src/config.ts` (if it does not exist) with typed `AppConfig` read from environment variables', '- NEVER hardcode: ports, URLs, thresholds, weights, API keys, timeouts', '- Import config in THIS module for any configurable value', '', '### Input Validation (ADR-046: Zod at EVERY boundary)', '- EVERY function receiving external data MUST Zod-parse it:', ' API request bodies: `const parsed = Schema.safeParse(req.body); if (!parsed.success) return res.status(400).json({ error: parsed.error.format() });`', ' Database rows: `const row = RowSchema.parse(rawDbRow);` — NEVER `as SomeType`', ' ERP/API responses: `const data = ResponseSchema.parse(response.data);`', ' Config values: validate ALL config with Zod at startup; refuse to start if invalid', '- NEVER use `as SomeType` to cast external data — always Zod-parse first', '', '### Error Handling', '- Define error classes extending `AppError` (create in `src/errors.ts` if needed)', '- Never `catch (e: any)` — always narrow error types', '- Log errors with logger.error() including stack trace and context', '- Event bus/emitter: wrap EACH handler in try/catch — one failure must NOT block others', '', '### Config-Driven (ADR-046: zero hardcoded magic numbers)', '- EVERY threshold, weight, factor, timeout MUST come from config (not hardcoded constants)', '- Config module validates ALL values with Zod at startup', '- If config invalid, service refuses to start with clear error', '', '### Deterministic Code (ADR-046)', '- No Math.random() in production code — use crypto.randomUUID() for IDs', '- Seed data generators may use seeded random; service code must be deterministic', '', '### Architecture (ADR-047: constructor injection, thin handlers)', '- Every service class receives dependencies via constructor — no module-level singletons', '- Route handlers: (1) Zod-validate request (2) call service (3) format response — NO business logic', '- Multi-step workflows → application service layer (src/services/workflow.ts or similar)', '- Periodic sync/ingestion: setInterval or cron, interval from config, log every run', '- Composition root (src/container.ts) wires everything — the ONLY place services are instantiated', '', '### ERP Integration (ADR-050: resilience, idempotency, schema as code)', '- Retry with exponential backoff: 1s → 2s → 4s, max 3 attempts, on 429/503/timeout', '- Idempotency key per write: hash(decisionId + timestamp) — prevents duplicate records on retry', '- Check-before-write: query for existing record before creating', '- Circuit breaker: open after 5 consecutive failures, half-open after 30s, log every state change', '- All operations logged with correlationId and responseTimeMs', '- ERP schema as code: define a TypeScript interface mapping domain fields → ERP fields, include as src/erp/schema.ts', '', '### Governance (ADR-048: RBAC, immutable audit, separation of duties)', '- Approval endpoints enforce roles via middleware: read X-User-Role header, reject if insufficient', '- Separation of duties: approver MUST NOT be the recommendation creator — check and reject with 403', '- Audit trail: SHA-256 hash chain — each entry hashes previous entry\'s hash, genesis entry uses \'genesis\'', '- Verification endpoint: GET /api/audit/verify — walks the chain, reports any broken links', '- Every state transition records: who (userId + role), what (from → to), when (server timestamp), why (rationale min 10 chars), correlationId', '', '## Anti-Patterns to AVOID (evaluation checks — violations REDUCE score)', '', '- Do NOT use console.log — use createLogger()', '- Do NOT use `as SomeType` to cast DB rows, API responses, or request bodies — Zod-parse instead', '- Do NOT put business logic in route handlers — extract to service layer', '- Do NOT hardcode thresholds, weights, or magic numbers — read from config', '- Do NOT use Math.random() in production code — use crypto.randomUUID()', '- Do NOT list unused deps in package.json — if listed, USE them', '- Do NOT let event handlers fail silently — wrap each in try/catch with logging', '- Do NOT initialize required fields to empty string \'\'', '', '## Logging Enforcement', '', 'This module MUST import `createLogger` from `../logger.js` (or `./logger.js` from src root).', 'Log at minimum:', '- Function entry: `logger.info(\'functionName.start\', { key params })`', '- Function exit: `logger.info(\'functionName.complete\', { durationMs, resultCount })`', '- Errors: `logger.error(\'functionName.failed\', error, { context })`', '- Do NOT use console.log anywhere in this module.', '');
1804
+ lines.push('## Mandatory Cross-Cutting Requirements (EVERY module must implement these)', '', '### Logging', '- Create `src/logger.ts` (if it does not exist) with `createLogger(service: string)` that outputs JSON to stderr', '- Every log entry: `{ timestamp, level, service, event, correlationId?, ...data }`', '- Import and use the logger in THIS module. Log: function entry with key params, completion with duration, errors with context', '', '### Configuration', '- Create `src/config.ts` (if it does not exist) with typed `AppConfig` read from environment variables', '- NEVER hardcode: ports, URLs, thresholds, weights, API keys, timeouts', '- Import config in THIS module for any configurable value', '', '### Input Validation (ADR-046: Zod at EVERY boundary)', '- EVERY function receiving external data MUST Zod-parse it:', ' API request bodies: `const parsed = Schema.safeParse(req.body); if (!parsed.success) return res.status(400).json({ error: parsed.error.format() });`', ' Database rows: `const row = RowSchema.parse(rawDbRow);` — NEVER `as SomeType`', ' ERP/API responses: `const data = ResponseSchema.parse(response.data);`', ' Config values: validate ALL config with Zod at startup; refuse to start if invalid', '- NEVER use `as SomeType` to cast external data — always Zod-parse first', '', '### Error Handling', '- Define error classes extending `AppError` (create in `src/errors.ts` if needed)', '- Never `catch (e: any)` — always narrow error types', '- Log errors with logger.error() including stack trace and context', '- Event bus/emitter: wrap EACH handler in try/catch — one failure must NOT block others', '', '### Config-Driven (ADR-046: zero hardcoded magic numbers)', '- EVERY threshold, weight, factor, timeout MUST come from config (not hardcoded constants)', '- Config module validates ALL values with Zod at startup', '- If config invalid, service refuses to start with clear error', '', '### Deterministic Code (ADR-046)', '- No Math.random() in production code — use crypto.randomUUID() for IDs', '- Seed data generators may use seeded random; service code must be deterministic', '', '### Architecture (ADR-047: constructor injection, thin handlers)', '- Every service class receives dependencies via constructor — no module-level singletons', '- Route handlers: (1) Zod-validate request (2) call service (3) format response — NO business logic', '- Multi-step workflows → application service layer (src/services/workflow.ts or similar)', '- Periodic sync/ingestion: setInterval or cron, interval from config, log every run', '- Composition root (src/container.ts) wires everything — the ONLY place services are instantiated', '', '### ERP Integration (ADR-050: resilience, idempotency, schema as code)', '- Retry with exponential backoff: 1s → 2s → 4s, max 3 attempts, on 429/503/timeout', '- Idempotency key per write: hash(decisionId + timestamp) — prevents duplicate records on retry', '- Check-before-write: query for existing record before creating', '- Circuit breaker: open after 5 consecutive failures, half-open after 30s, log every state change', '- All operations logged with correlationId and responseTimeMs', '- ERP schema as code: define a TypeScript interface mapping domain fields → ERP fields, include as src/erp/schema.ts', '', '### Governance (ADR-048: RBAC, immutable audit, separation of duties)', '- Approval endpoints enforce roles via middleware: read X-User-Role header, reject if insufficient', '- Separation of duties: approver MUST NOT be the recommendation creator — check and reject with 403', '- Audit trail: SHA-256 hash chain — each entry hashes previous entry\'s hash, genesis entry uses \'genesis\'', '- Verification endpoint: GET /api/audit/verify — walks the chain, reports any broken links', '- Every state transition records: who (userId + role), what (from → to), when (server timestamp), why (rationale min 10 chars), correlationId', '', '## Anti-Patterns to AVOID (evaluation checks — violations REDUCE score)', '', '- Do NOT use console.log — use createLogger()', '- Do NOT use `as SomeType` to cast DB rows, API responses, or request bodies — Zod-parse instead', '- Do NOT put business logic in route handlers — extract to service layer', '- Do NOT hardcode thresholds, weights, or magic numbers — read from config', '- Do NOT use Math.random() in production code — use crypto.randomUUID()', '- Do NOT list unused deps in package.json — if listed, USE them', '- Do NOT let event handlers fail silently — wrap each in try/catch with logging', '- Do NOT initialize required fields to empty string \'\'', '', '## Observability Enforcement (ADR-051)', '', '### Logger — EVERY module:', '- Import createLogger from ../logger.js. Include correlationId in every log entry.', '- Entry: `logger.info(\'fn.start\', { correlationId, params })`', '- Exit: `logger.info(\'fn.complete\', { correlationId, durationMs })`', '- Error: `logger.error(\'fn.failed\', err, { correlationId, context })` — NEVER `{ error: err }`', '', '### Correlation IDs — NON-NEGOTIABLE:', '- Copy src/middleware.ts from scaffold (correlationId + requestLogger + metricsHandler + CircuitBreaker)', '- Wire: `app.use(correlationId); app.use(requestLogger); app.get(\'/metrics\', metricsHandler);`', '- Pass correlationId through all service calls, audit entries, and ERP headers', '', '### Metrics: `GET /metrics` via metricsHandler from middleware.ts', '### Circuit breaker: `new CircuitBreaker(\'erp\')` wraps all external calls', '');
1676
1805
  fs.writeFileSync(path.join(promptsDir, filename), lines.join('\n'), { mode: 0o600, encoding: 'utf-8' });
1677
1806
  completedPhases.push(`${order}. ${phase.title}`);
1678
1807
  }