@llm-dev-ops/agentics-cli 1.5.46 → 1.5.48

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.
@@ -1 +1 @@
1
- {"version":3,"file":"adr-generator.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phase2/phases/adr-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAIf,eAAe,EAChB,MAAM,aAAa,CAAC;AAmXrB,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE,CAErH;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBnF;AA+JD,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgFrF"}
1
+ {"version":3,"file":"adr-generator.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/phase2/phases/adr-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAIf,eAAe,EAChB,MAAM,aAAa,CAAC;AAyqBrB,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE,CAkBrH;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBnF;AAwTD,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkFrF"}
@@ -11,7 +11,6 @@
11
11
  import * as fs from 'node:fs';
12
12
  import * as path from 'node:path';
13
13
  import { createSpan, endSpan, emitSpan } from '../telemetry.js';
14
- import { createClaudeCodeRunner, isClaudeCodeRunnerAvailable } from '../../../runtime/claude-code-runner.js';
15
14
  import { detectTechnologyStack, writeTechStack, formatERPContextForPrompt } from './tech-stack-detector.js';
16
15
  const DIR_MODE = 0o700;
17
16
  const FILE_MODE = 0o600;
@@ -166,190 +165,504 @@ function buildADRsFromSPARC(sparc, dossier, scenarioQuery) {
166
165
  const adrs = [];
167
166
  let idx = 1;
168
167
  const today = new Date().toISOString().slice(0, 10);
169
- const { services, securityItems, perfItems } = normalizeSPARCForADR(sparc);
170
- // 1. Service implementation ADRs — describe WHAT each service builds, not just "use adapter pattern"
171
- const svcForADRs = services.slice(0, 6);
172
- for (const svc of svcForADRs) {
173
- const depsText = svc.dependencies.length > 0
174
- ? ` It integrates with: ${svc.dependencies.join(', ')}.`
175
- : '';
168
+ const q = scenarioQuery ?? '';
169
+ const { services, securityItems, perfItems, integrationPlan } = normalizeSPARCForADR(sparc);
170
+ // ── Extract domain context from the query ──────────────────────────────
171
+ const domain = extractDomainContext(q);
172
+ const techStack = extractTechFromQuery(q);
173
+ // ======================================================================
174
+ // SPARC §S — Specification: Domain Model ADR
175
+ // What entities exist, how they relate, what invariants constrain them
176
+ // ======================================================================
177
+ if (services.length > 0) {
178
+ const entityNames = services.slice(0, 6).map(s => s.name);
179
+ const depsAll = services.flatMap(s => s.dependencies).filter(Boolean);
180
+ const uniqueDeps = [...new Set(depsAll)];
181
+ adrs.push({
182
+ id: `ADR-P2-${pad3(idx++)}`,
183
+ title: `Domain Model: ${domain.primary} entity graph with ${entityNames.length} bounded contexts`,
184
+ status: 'proposed',
185
+ date: today,
186
+ context: `The ${domain.primary} domain decomposes into ${entityNames.length} bounded contexts: ${entityNames.join(', ')}. ` +
187
+ `${uniqueDeps.length > 0 ? 'Cross-context dependencies: ' + uniqueDeps.slice(0, 5).join(', ') + '. ' : ''}` +
188
+ `${domain.stakeholders ? 'Stakeholders: ' + domain.stakeholders + '. ' : ''}` +
189
+ `Each context must own its data and enforce its own invariants.`,
190
+ decision: `Model ${domain.primary} as ${entityNames.length} bounded contexts with explicit aggregate roots. ` +
191
+ `${entityNames.slice(0, 3).map(n => `"${n}" owns its entities and exposes a domain API`).join('; ')}. ` +
192
+ `Cross-context communication via domain events (not shared database). ` +
193
+ `${domain.erp ? 'Anti-corruption layer translates between ' + domain.erp + ' wire format and domain types.' : ''}`,
194
+ alternatives: [
195
+ makeAlt(`${entityNames.length} bounded contexts with domain events`, 'Each context evolves independently; matches ' + domain.primary + ' organizational structure', false),
196
+ makeAlt('Shared domain model', 'Faster initial development but all contexts coupled — any schema change ripples everywhere', true),
197
+ makeAlt('CRUD-only without domain model', 'Simpler but business rules scattered across layers, untestable', true),
198
+ ],
199
+ consequences: [
200
+ makeCons(`Each ${domain.primary} context can be developed, tested, and deployed independently`, 'positive'),
201
+ makeCons('Domain events provide audit trail of all cross-context interactions', 'positive'),
202
+ makeCons('Requires upfront domain modeling investment before implementation', 'negative'),
203
+ makeCons(`Cross-context queries (e.g. ${entityNames.length > 1 ? entityNames[0] + ' → ' + entityNames[1] : 'aggregation'}) require API composition, not JOINs`, 'negative'),
204
+ ],
205
+ sparcSectionRefs: ['specification.requirements', 'architecture.services'],
206
+ researchDossierItemRefs: findDossierRefs(dossier, entityNames),
207
+ });
208
+ }
209
+ // ======================================================================
210
+ // SPARC §P — Pseudocode: Simulation / Optimization / Core Algorithm ADR
211
+ // HOW the core computation works — not generic, specific to the domain
212
+ // ======================================================================
213
+ const hasSimulation = /simulat|scenario|what.?if|forecast|predict|model(?:ing|ed|s)/i.test(q);
214
+ const hasOptimization = /optimiz|minimize|maximize|tradeoff|trade.?off|pareto|quantif/i.test(q);
215
+ const hasGraphModeling = /graph|network|dependenc|flow|topolog|adjacen/i.test(q);
216
+ if (hasSimulation || hasOptimization || hasGraphModeling) {
217
+ const algoType = hasOptimization ? 'multi-objective optimization'
218
+ : hasGraphModeling ? 'graph-based dependency modeling'
219
+ : 'scenario simulation';
220
+ const rustNote = techStack.includes('Rust')
221
+ ? `Implement the compute-intensive ${algoType} engine in Rust for performance (graph traversal, constraint solving, Monte Carlo). TypeScript orchestrates scenario configuration, result aggregation, and API exposure.`
222
+ : `Implement ${algoType} engine with clear separation between scenario configuration (inputs), computation (engine), and result presentation (outputs).`;
223
+ const simOutputs = hasOptimization
224
+ ? 'Pareto frontier across competing objectives (cost, risk, emissions, complexity). Each point on the frontier is a decision-grade scenario with full traceoff breakdown.'
225
+ : 'Ranked scenario comparison with metrics per dimension. Each scenario includes confidence intervals, sensitivity analysis, and assumption documentation.';
176
226
  adrs.push({
177
227
  id: `ADR-P2-${pad3(idx++)}`,
178
- title: `Implement ${svc.name}${svc.responsibility ? ': ' + svc.responsibility.slice(0, 60) : ''}`,
228
+ title: `${domain.primary} ${hasOptimization ? 'Optimization' : 'Simulation'} Engine: ${algoType} with immutable inputs/outputs`,
179
229
  status: 'proposed',
180
230
  date: today,
181
- context: `The platform requires a ${svc.name} component that handles ${svc.responsibility || 'core domain logic'}.${depsText} This is a key part of the solution described in the project requirements.`,
182
- decision: `Build ${svc.name} as a modular service with clear interfaces. ${svc.responsibility ? 'Implement: ' + svc.responsibility + '.' : ''} ${svc.dependencies.length > 0 ? 'Use adapter interfaces for each dependency (' + svc.dependencies.join(', ') + ') to enable testing and future replacement.' : 'Expose a clean API surface for other services to consume.'}`,
231
+ context: `The system must ${hasOptimization ? 'optimize across competing objectives' : 'simulate multiple strategies'} for ${domain.primary}. ` +
232
+ `Decision-makers need structured, comparative outputs not automated execution. ` +
233
+ `${hasGraphModeling ? 'The domain involves network/graph structures with dependencies that affect propagation of changes. ' : ''}` +
234
+ `All simulation inputs must be immutable; results must be reproducible and auditable.`,
235
+ decision: `${rustNote} ` +
236
+ `Simulation accepts immutable scenario parameters, runs computation, and produces: ${simOutputs} ` +
237
+ `Results carry a cryptographic hash of inputs for reproducibility verification. ` +
238
+ `No execution occurs from simulation — results are decision-grade outputs for human review.`,
183
239
  alternatives: [
184
- makeAlt(`Dedicated ${svc.name} module`, `Clear ownership, testable in isolation`, false),
185
- makeAlt('Inline in monolith', 'Simpler initially but harder to test and scale', true),
186
- makeAlt('Third-party service', 'Faster to deploy but less control over domain logic', true),
240
+ makeAlt(`Dedicated ${algoType} engine with immutable I/O`, 'Auditable, reproducible, supports regulatory review', false),
241
+ makeAlt('Spreadsheet-based modeling', 'Insufficient for multi-dimensional analysis at enterprise scale', true),
242
+ makeAlt('Auto-executing optimizer', 'Violates human-in-the-loop governance requirement', true),
187
243
  ],
188
244
  consequences: [
189
- makeCons(`${svc.name} logic is encapsulated with clear boundaries`, 'positive'),
190
- makeCons(`Enables independent testing of ${svc.name} business rules`, 'positive'),
191
- makeCons('Requires well-defined interfaces between services', 'negative'),
245
+ makeCons('Every simulation result is reproducible same inputs always produce same outputs', 'positive'),
246
+ makeCons('Stakeholders compare scenarios side-by-side before committing resources', 'positive'),
247
+ makeCons(techStack.includes('Rust') ? 'Requires Rust/TypeScript FFI boundary and dual-language build pipeline' : 'Compute-intensive scenarios may require dedicated infrastructure', 'negative'),
248
+ makeCons('Scenario parameter space must be bounded to prevent combinatorial explosion', 'negative'),
249
+ ],
250
+ sparcSectionRefs: ['pseudocode.modules', 'architecture.dataFlow'],
251
+ researchDossierItemRefs: findDossierRefs(dossier, ['simulation', 'optimization', 'scenario', 'model', 'graph']),
252
+ });
253
+ }
254
+ // ======================================================================
255
+ // SPARC §A — Architecture: Per-service implementation decisions
256
+ // Each service gets a SPECIFIC decision, not "build as modular service"
257
+ // ======================================================================
258
+ for (const svc of services.slice(0, 4)) {
259
+ // Skip if the service name would duplicate the domain model or simulation ADR
260
+ if (idx > 2 && /domain|model|simul|optim|engine/i.test(svc.name))
261
+ continue;
262
+ const depsText = svc.dependencies.length > 0
263
+ ? svc.dependencies.join(', ')
264
+ : '';
265
+ const responsibility = svc.responsibility || svc.name;
266
+ // Determine what KIND of service this is and generate a specific decision
267
+ const isDataIngestion = /ingest|import|extract|collect|read|fetch|sync/i.test(responsibility);
268
+ const isAnalysis = /analy|score|classif|evaluat|assess|rank|compar/i.test(responsibility);
269
+ const isOrchestration = /orchestrat|workflow|pipeline|coordinat|schedul/i.test(responsibility);
270
+ const isPresentation = /report|dashboard|visual|output|present|display|generat.*output/i.test(responsibility);
271
+ const isGovernance = /approv|govern|audit|compliance|lineage|review/i.test(responsibility);
272
+ let specificDecision;
273
+ let specificTitle;
274
+ let specificAlts;
275
+ if (isGovernance) {
276
+ specificTitle = `${svc.name}: Human-in-the-loop approval with immutable audit trail`;
277
+ specificDecision = `Implement ${svc.name} as a state machine (draft → submitted → approved/rejected → executed). ` +
278
+ `Every state transition is logged immutably with actor identity, timestamp, and decision rationale. ` +
279
+ `Approval requires authenticated user with appropriate role — no self-approval, no programmatic bypass. ` +
280
+ `${domain.erp ? 'Only APPROVED decisions can trigger ' + domain.erp + ' writeback.' : ''}`;
281
+ specificAlts = [
282
+ makeAlt('State machine with RBAC and immutable log', 'Meets audit and compliance requirements', false),
283
+ makeAlt('Simple boolean approved flag', 'No state history, no role enforcement, no audit trail', true),
284
+ makeAlt('Manual email-based approval', 'No programmatic enforcement, approval can be forged', true),
285
+ ];
286
+ }
287
+ else if (isDataIngestion) {
288
+ specificTitle = `${svc.name}: ${domain.erp ? domain.erp + ' data ingestion' : 'External data ingestion'} with validation`;
289
+ specificDecision = `${svc.name} ingests data from ${depsText || (domain.erp ?? 'external sources')} through an anti-corruption layer. ` +
290
+ `All incoming records are validated against domain schemas before entering the system. ` +
291
+ `Invalid records are quarantined with error details, not silently dropped. ` +
292
+ `Ingestion is idempotent — re-running the same import produces identical state.`;
293
+ specificAlts = [
294
+ makeAlt('ACL with schema validation and quarantine', 'Protects domain model from external data quality issues', false),
295
+ makeAlt('Direct database import', 'Couples domain model to external schemas — any upstream change breaks the system', true),
296
+ ];
297
+ }
298
+ else if (isAnalysis) {
299
+ specificTitle = `${svc.name}: Domain-specific ${/score|rank/i.test(responsibility) ? 'scoring' : 'analysis'} with configurable weights`;
300
+ specificDecision = `${svc.name} implements ${responsibility.slice(0, 100)}. ` +
301
+ `Scoring weights and thresholds are externalized as configuration (not hardcoded constants) so domain experts can tune them without code changes. ` +
302
+ `All analysis outputs include the weights used, enabling reproducibility and audit. ` +
303
+ `${depsText ? 'Consumes data from: ' + depsText + '.' : ''}`;
304
+ specificAlts = [
305
+ makeAlt('Configurable analysis with weight transparency', 'Domain experts can tune; results are auditable', false),
306
+ makeAlt('Hardcoded scoring rules', 'Faster initially but requires developer for every threshold change', true),
307
+ ];
308
+ }
309
+ else if (isOrchestration) {
310
+ specificTitle = `${svc.name}: Workflow orchestration with checkpoint and resume`;
311
+ specificDecision = `${svc.name} coordinates: ${responsibility.slice(0, 120)}. ` +
312
+ `Each workflow step is checkpointed so failures resume from last successful step, not from scratch. ` +
313
+ `Workflow state is persisted (not in-memory) to survive process restarts. ` +
314
+ `${depsText ? 'Orchestrates: ' + depsText + '.' : ''}`;
315
+ specificAlts = [
316
+ makeAlt('Persistent workflow with checkpoints', 'Resilient to failures, supports long-running processes', false),
317
+ makeAlt('In-memory orchestration', 'Process restart loses all workflow state', true),
318
+ ];
319
+ }
320
+ else if (isPresentation) {
321
+ specificTitle = `${svc.name}: Decision-grade output generation with lineage`;
322
+ specificDecision = `${svc.name} generates structured outputs for ${domain.stakeholders || 'leadership review'}. ` +
323
+ `Every output traces back to the simulation/analysis that produced it (lineage hash). ` +
324
+ `Outputs include: comparative metrics, tradeoff visualization data, confidence indicators, and assumption documentation. ` +
325
+ `${domain.erp ? 'Optionally formats approved outputs for ' + domain.erp + ' writeback.' : ''}`;
326
+ specificAlts = [
327
+ makeAlt('Structured outputs with lineage tracing', 'Decision-makers can verify what analysis produced each recommendation', false),
328
+ makeAlt('Free-form text reports', 'No traceability, no structured comparison', true),
329
+ ];
330
+ }
331
+ else {
332
+ // Generic but still domain-specific — use the actual responsibility text
333
+ specificTitle = `${svc.name}: ${responsibility.slice(0, 70)}`;
334
+ specificDecision = `Implement ${svc.name} to handle: ${responsibility}. ` +
335
+ `${depsText ? 'Integrates with ' + depsText + ' via typed interfaces (not direct coupling). ' : ''}` +
336
+ `Expose domain operations as a service API. All state mutations produce domain events for downstream consumers. ` +
337
+ `${techStack.includes('Rust') && /comput|optim|graph|simul/i.test(responsibility) ? 'Implement compute-intensive logic in Rust.' : ''}`;
338
+ specificAlts = [
339
+ makeAlt(`Dedicated ${svc.name} service with domain API`, `Encapsulates ${domain.primary} business rules for ${svc.name}`, false),
340
+ makeAlt('Inline in monolith', 'Couples ' + svc.name + ' logic to unrelated concerns', true),
341
+ ];
342
+ }
343
+ adrs.push({
344
+ id: `ADR-P2-${pad3(idx++)}`,
345
+ title: specificTitle,
346
+ status: 'proposed',
347
+ date: today,
348
+ context: `${domain.primary} requires: ${responsibility.slice(0, 200)}. ` +
349
+ `${depsText ? 'Dependencies: ' + depsText + '. ' : ''}` +
350
+ `This service is part of the ${domain.primary} solution.`,
351
+ decision: specificDecision,
352
+ alternatives: specificAlts,
353
+ consequences: [
354
+ makeCons(`${svc.name} business rules are testable in isolation`, 'positive'),
355
+ makeCons(`Clear API contract for ${svc.name} enables parallel team development`, 'positive'),
356
+ makeCons(`Requires explicit interface definition between ${svc.name} and its consumers`, 'negative'),
192
357
  ],
193
358
  sparcSectionRefs: [`architecture.services.${svc.name}`],
194
359
  researchDossierItemRefs: findDossierRefs(dossier, [svc.name, ...svc.dependencies]),
195
360
  });
196
361
  }
197
- // 2. Security ADR — domain-specific, not "defense-in-depth" boilerplate
198
- if (securityItems.length > 0) {
199
- const securityContext = securityItems.slice(0, 3).map(s => typeof s === 'string' ? s : (s && typeof s === 'object' ? (s['text'] ?? s['description'] ?? JSON.stringify(s)) : String(s))).join('; ');
362
+ // ======================================================================
363
+ // SPARC §A — Architecture: ERP Integration ADR (if ERP detected)
364
+ // ======================================================================
365
+ if (domain.erp) {
200
366
  adrs.push({
201
367
  id: `ADR-P2-${pad3(idx++)}`,
202
- title: `Security: ${securityContext.slice(0, 80) || 'Access Control and Data Protection'}`,
368
+ title: `${domain.erp} Integration: Anti-corruption layer with governance-gated writeback`,
203
369
  status: 'proposed',
204
370
  date: today,
205
- context: `The project has specific security requirements: ${securityContext}. ${scenarioQuery ? 'The system handles sensitive ' + (scenarioQuery.match(/financial|compliance|regulatory|audit|trading|clinical|patient|confidential/i)?.[0] ?? 'business') + ' data.' : ''}`,
206
- decision: `Implement role-based access control with domain-specific permissions. ${securityItems.length > 1 ? 'Apply ' + securityItems.slice(0, 2).map(s => typeof s === 'string' ? s : s?.['text'] ?? JSON.stringify(s)).join(' and ') + ' at the service layer.' : ''} All sensitive operations must produce audit trail entries.`,
371
+ context: `${domain.primary} data originates in ${domain.erp}. The AI system reads operational data for analysis/simulation ` +
372
+ `and optionally writes approved decisions back. Direct coupling to ${domain.erp} internals would make the domain model fragile.`,
373
+ decision: `Build an anti-corruption layer (ACL) between ${domain.erp} and the ${domain.primary} domain. ` +
374
+ `The ACL translates ${domain.erp} wire formats into domain types and vice versa. ` +
375
+ `Read mode is the default; writeback is gated behind APPROVED governance status. ` +
376
+ `Circuit breaker + sync queue handle ${domain.erp} outages. ` +
377
+ `All ${domain.erp} operations carry idempotency keys to prevent duplicate writes on retry.`,
207
378
  alternatives: [
208
- makeAlt('Role-based with audit trail', 'Meets domain compliance needs', false),
209
- makeAlt('Simple API key', 'Insufficient for multi-user sensitive data', true),
379
+ makeAlt(`ACL with governance-gated writeback`, `Protects ${domain.erp} integrity; enables AI-assisted decisions without risk`, false),
380
+ makeAlt(`Direct ${domain.erp} API calls from services`, `Tight coupling; ${domain.erp} schema changes break domain model`, true),
381
+ makeAlt('Full data replication to local DB', `Stale data risk; doubles storage cost; compliance concerns with data residency`, true),
210
382
  ],
211
383
  consequences: [
212
- makeCons('Meets domain-specific compliance and audit requirements', 'positive'),
213
- makeCons('Requires role definition and permission matrix per service', 'negative'),
384
+ makeCons(`${domain.erp} schema changes don't cascade to domain services`, 'positive'),
385
+ makeCons(`Writeback requires human approval no accidental ${domain.erp} mutations`, 'positive'),
386
+ makeCons(`ACL translation layer must track ${domain.erp} API version changes`, 'negative'),
214
387
  ],
215
- sparcSectionRefs: ['refinement.securityConsiderations'],
216
- researchDossierItemRefs: findDossierRefs(dossier, ['security', 'auth', 'access', 'encryption']),
388
+ sparcSectionRefs: ['architecture.services'],
389
+ researchDossierItemRefs: findDossierRefs(dossier, [domain.erp.toLowerCase(), 'erp', 'integration']),
217
390
  });
218
391
  }
219
- // 3. Performance ADR — tied to specific domain operations
220
- if (perfItems.length > 0) {
221
- const perfContext = perfItems.slice(0, 3).map(s => typeof s === 'string' ? s : (s && typeof s === 'object' ? (s['text'] ?? s['description'] ?? JSON.stringify(s)) : String(s))).join('; ');
392
+ // ======================================================================
393
+ // SPARC §A — Architecture: Data Persistence ADR (technology-specific)
394
+ // ======================================================================
395
+ const databases = techStack.filter(t => /postgres|mysql|bigquery|mongodb|redis|dynamodb|cloud sql/i.test(t));
396
+ const cloudProvider = techStack.find(t => /google cloud|aws|azure|gcp/i.test(t));
397
+ if (databases.length > 0 || cloudProvider) {
222
398
  adrs.push({
223
399
  id: `ADR-P2-${pad3(idx++)}`,
224
- title: `Performance: ${perfContext.slice(0, 80) || 'Optimize Critical Path Operations'}`,
400
+ title: `Data Persistence: ${[...databases, cloudProvider].filter(Boolean).join(' + ')} for ${domain.primary}`,
225
401
  status: 'proposed',
226
402
  date: today,
227
- context: `Performance targets: ${perfContext}. ${scenarioQuery?.includes('simulation') || scenarioQuery?.includes('real-time') ? 'The system includes computationally intensive operations that need optimization.' : ''}`,
228
- decision: `Optimize the critical data paths identified in the SPARC specification. Use caching for read-heavy queries, async processing for non-blocking operations, and connection pooling for database access. ${scenarioQuery?.includes('Rust') ? 'Use Rust for compute-intensive modules as specified in requirements.' : ''}`,
403
+ context: `${domain.primary} data includes: domain entities, ${hasSimulation ? 'simulation results, ' : ''}audit trail, and operational records. ` +
404
+ `User specified: ${techStack.join(', ')}. ` +
405
+ `Audit data must be immutable. Simulation results must be reproducible.`,
406
+ decision: databases.map(db => {
407
+ if (/bigquery/i.test(db))
408
+ return `**BigQuery** for analytical queries, historical trend analysis, and reporting aggregations.`;
409
+ if (/postgres/i.test(db))
410
+ return `**Cloud SQL (PostgreSQL)** for transactional domain data, audit logs, and governance state. Use row-level security for multi-tenant isolation.`;
411
+ if (/redis/i.test(db))
412
+ return `**Redis** for caching frequently-read reference data and session state.`;
413
+ if (/mongodb/i.test(db))
414
+ return `**MongoDB** for flexible document storage of simulation configurations and results.`;
415
+ return `**${db}** for persistent domain data.`;
416
+ }).join(' ') +
417
+ (cloudProvider ? ` Deploy on ${cloudProvider} managed services to reduce operational burden.` : ''),
229
418
  alternatives: [
230
- makeAlt('Targeted optimization', 'Focuses effort on actual bottlenecks', false),
231
- makeAlt('Premature optimization everywhere', 'Wastes effort on non-critical paths', true),
419
+ makeAlt(`${databases.join(' + ')} on ${cloudProvider ?? 'managed cloud'}`, 'Matches specified tech stack; managed services reduce ops burden', false),
420
+ makeAlt('Single-database architecture', 'Simpler but cannot optimize for both transactional and analytical workloads', true),
421
+ makeAlt('In-memory only', 'Process restart destroys all data — compliance disqualifier', true),
232
422
  ],
233
423
  consequences: [
234
- makeCons('Critical operations meet performance targets', 'positive'),
235
- makeCons('Requires profiling to validate improvements', 'negative'),
424
+ makeCons('Polyglot persistence optimizes each data access pattern', 'positive'),
425
+ makeCons(`${cloudProvider ?? 'Cloud'} managed services handle backups, scaling, and failover`, 'positive'),
426
+ makeCons('Multiple data stores increase operational complexity and migration effort', 'negative'),
236
427
  ],
237
- sparcSectionRefs: ['refinement.performanceTargets'],
238
- researchDossierItemRefs: findDossierRefs(dossier, ['performance', 'latency', 'throughput']),
428
+ sparcSectionRefs: ['architecture.services'],
429
+ researchDossierItemRefs: findDossierRefs(dossier, ['data', 'database', 'storage', 'persistence', ...databases.map(d => d.toLowerCase())]),
239
430
  });
240
431
  }
241
- // 4. High-severity risk ADRs — use actual risk content, not generic "mitigate through redundancy"
242
- const highRisks = dossier.items.filter(i => i.category === 'risk' && i.severity && /high|critical/i.test(i.severity));
243
- for (const risk of highRisks.slice(0, 3)) {
432
+ // ======================================================================
433
+ // SPARC §R Refinement: Security & Compliance ADR
434
+ // ======================================================================
435
+ const secText = itemsToText(securityItems);
436
+ const hasCompliance = /audit|compliance|regulatory|governance|lineage|human.?in.?the.?loop|esg|esg/i.test(q);
437
+ if (secText || hasCompliance) {
438
+ const complianceTerms = (q.match(/audit(?:ability)?|compliance|regulatory|governance|ESG|lineage|human.?in.?the.?loop|GDPR|HIPAA|SOX/gi) ?? []);
439
+ const uniqueTerms = [...new Set(complianceTerms.map(t => t.toLowerCase()))];
244
440
  adrs.push({
245
441
  id: `ADR-P2-${pad3(idx++)}`,
246
- title: `Address Risk: ${risk.title.slice(0, 70)}`,
442
+ title: `Security & Compliance: ${uniqueTerms.slice(0, 3).join(', ') || 'RBAC and audit trail'} for ${domain.primary}`,
247
443
  status: 'proposed',
248
444
  date: today,
249
- context: risk.content,
250
- decision: `Address this risk by: implementing validation at the boundary where this risk originates, adding monitoring/alerting for early detection, and designing a fallback path for degraded operation. Specific controls should be documented in the implementation.`,
445
+ context: `${domain.primary} decisions affect ${domain.stakeholders || 'operational teams and leadership'}. ` +
446
+ `${secText ? 'Security requirements: ' + secText + '. ' : ''}` +
447
+ `${uniqueTerms.length > 0 ? 'Compliance domains: ' + uniqueTerms.join(', ') + '. ' : ''}` +
448
+ `The system must maintain strict auditability: who decided what, when, and based on which analysis.`,
449
+ decision: `Implement RBAC with domain-specific roles (not just admin/user). ` +
450
+ `Define roles mapped to ${domain.primary} operations: who can run simulations, who can approve decisions, who can trigger ${domain.erp ?? 'ERP'} writeback. ` +
451
+ `All state-changing operations produce immutable audit entries with actor identity, timestamp, and operation details. ` +
452
+ `${hasSimulation ? 'Simulation results are write-once with content hash for tamper detection. ' : ''}` +
453
+ `Human-in-the-loop is mandatory before any changes propagate to operational systems.`,
251
454
  alternatives: [
252
- makeAlt('Active controls at boundary', 'Prevents impact before it occurs', false),
253
- makeAlt('Accept and monitor', 'Lower effort but reactive', true),
455
+ makeAlt(`RBAC + immutable audit + ${hasSimulation ? 'simulation lineage' : 'operation lineage'}`, 'Meets regulatory requirements; provides full traceability', false),
456
+ makeAlt('Simple API key authentication', 'No role differentiation; anyone with the key can approve decisions', true),
457
+ makeAlt('Audit logging without RBAC', 'Records who did what but cannot prevent unauthorized actions', true),
254
458
  ],
255
459
  consequences: [
256
- makeCons(`Risk "${risk.title.slice(0, 40)}" mitigated with domain-specific controls`, 'positive'),
257
- makeCons('Requires validation logic in the affected service', 'negative'),
460
+ makeCons(`Full decision traceability for ${uniqueTerms[0] ?? 'regulatory'} compliance`, 'positive'),
461
+ makeCons('No automated execution without human approval', 'positive'),
462
+ makeCons('Role definition and permission matrix must be maintained as organization evolves', 'negative'),
463
+ makeCons('Immutable audit log storage grows continuously — requires archival strategy', 'negative'),
258
464
  ],
259
- sparcSectionRefs: [],
260
- researchDossierItemRefs: [risk.id],
465
+ sparcSectionRefs: ['refinement.securityConsiderations'],
466
+ researchDossierItemRefs: findDossierRefs(dossier, ['security', 'auth', 'access', 'compliance', 'audit', 'governance']),
261
467
  });
262
468
  }
263
- // 5. Compliance ADR — reference the specific compliance requirements
264
- const complianceRefs = findDossierRefs(dossier, ['compliance', 'regulatory', 'gdpr', 'hipaa', 'pci', 'privacy', 'audit', 'governance']);
265
- if (complianceRefs.length > 0) {
266
- const complianceContext = scenarioQuery
267
- ? (scenarioQuery.match(/audit|compliance|regulatory|governance|disclosure|reporting/gi) ?? []).join(', ')
268
- : '';
469
+ // ======================================================================
470
+ // SPARC §R Refinement: Performance ADR (if Rust or compute-intensive)
471
+ // ======================================================================
472
+ const perfText = itemsToText(perfItems);
473
+ if (perfText || techStack.includes('Rust')) {
269
474
  adrs.push({
270
475
  id: `ADR-P2-${pad3(idx++)}`,
271
- title: `Compliance: ${complianceContext.slice(0, 60) || 'Audit Trail and Regulatory Requirements'}`,
476
+ title: `Performance: ${techStack.includes('Rust') ? 'Rust compute engine + TypeScript orchestration' : 'Optimization strategy for ' + domain.primary}`,
272
477
  status: 'proposed',
273
478
  date: today,
274
- context: `${complianceRefs.length} compliance-related items identified. ${complianceContext ? 'The project specifically requires: ' + complianceContext + '.' : ''}`,
275
- decision: `Implement immutable audit logging for all state-changing operations. Each service must record who, what, when, and why for every domain action. ${complianceContext.includes('governance') ? 'Include human-in-the-loop approval workflows for high-impact decisions.' : ''}`,
479
+ context: `${perfText ? 'Performance requirements: ' + perfText + '. ' : ''}` +
480
+ `${techStack.includes('Rust') ? 'The user specified Rust for compute-intensive components and TypeScript for orchestration. ' : ''}` +
481
+ `${hasSimulation ? 'Simulation/optimization workloads require bounded execution time for interactive use.' : ''}`,
482
+ decision: `${techStack.includes('Rust') ? 'Split computation: Rust handles graph traversal, constraint solving, and numerical optimization. TypeScript handles API routing, workflow orchestration, and result formatting. Communication via typed JSON over stdin/stdout (subprocess) or FFI (napi-rs). ' : ''}` +
483
+ `All compute operations have configurable timeouts. Results include execution time metadata. ` +
484
+ `${hasSimulation ? 'Simulation parameter space is bounded (max iterations, max graph depth) to prevent runaway computation.' : ''}`,
276
485
  alternatives: [
277
- makeAlt('Immutable audit log per service', 'Complete traceability', false),
278
- makeAlt('Centralized logging only', 'Gaps in coverage', true),
486
+ makeAlt(techStack.includes('Rust') ? 'Rust engine + TypeScript orchestration' : 'Targeted optimization of critical paths', 'Best performance where it matters; orchestration stays in TypeScript for productivity', false),
487
+ makeAlt('Pure TypeScript', techStack.includes('Rust') ? 'Simpler build but 10-100x slower for graph/numeric workloads' : 'Simpler but may not meet latency targets', true),
279
488
  ],
280
489
  consequences: [
281
- makeCons('Full audit trail for compliance and regulatory review', 'positive'),
282
- makeCons('Storage and query overhead for audit data', 'negative'),
490
+ makeCons(techStack.includes('Rust') ? 'Compute-intensive operations run at native speed' : 'Critical paths are optimized based on profiling data', 'positive'),
491
+ makeCons(techStack.includes('Rust') ? 'Dual-language build pipeline increases CI/CD complexity' : 'Optimization effort must be validated with benchmarks', 'negative'),
283
492
  ],
284
- sparcSectionRefs: [],
285
- researchDossierItemRefs: complianceRefs,
493
+ sparcSectionRefs: ['refinement.performanceTargets'],
494
+ researchDossierItemRefs: findDossierRefs(dossier, ['performance', 'latency', 'throughput', 'rust', 'compute']),
286
495
  });
287
496
  }
288
- // 6. Data persistence ADR
289
- const dataRefs = findDossierRefs(dossier, ['data', 'database', 'storage', 'persistence']);
290
- if (dataRefs.length > 0) {
497
+ // ======================================================================
498
+ // SPARC §R Refinement: High-severity risk ADRs from dossier
499
+ // ======================================================================
500
+ const highRisks = dossier.items.filter(i => i.category === 'risk' && i.severity && /high|critical/i.test(i.severity));
501
+ for (const risk of highRisks.slice(0, 2)) {
291
502
  adrs.push({
292
503
  id: `ADR-P2-${pad3(idx++)}`,
293
- title: 'Data Persistence Strategy',
504
+ title: `Risk Mitigation: ${risk.title.slice(0, 70)}`,
294
505
  status: 'proposed',
295
506
  date: today,
296
- context: `${dataRefs.length} data-related items. Services need isolated data stores.`,
297
- decision: 'Each bounded context owns its data store. Event sourcing for audit-critical domains.',
507
+ context: risk.content,
508
+ decision: `Mitigate "${risk.title}" with: (1) input validation at the service boundary where this risk originates, ` +
509
+ `(2) monitoring and alerting for early detection of the failure mode, ` +
510
+ `(3) graceful degradation path that preserves data integrity when the risk materializes. ` +
511
+ `Document specific controls in the affected service's test suite.`,
298
512
  alternatives: [
299
- makeAlt('Context-owned stores', 'Strong isolation', false),
300
- makeAlt('Shared database', 'Simpler but coupling risk', true),
513
+ makeAlt('Active boundary controls + monitoring + degradation', 'Prevents impact; detects early; degrades gracefully', false),
514
+ makeAlt('Accept risk and monitor', 'Lower effort but reactive — damage occurs before detection', true),
301
515
  ],
302
516
  consequences: [
303
- makeCons('Data isolation per bounded context', 'positive'),
304
- makeCons('Cross-context queries need API/events', 'negative'),
517
+ makeCons(`"${risk.title.slice(0, 40)}" mitigated with layered controls`, 'positive'),
518
+ makeCons('Mitigation logic adds complexity to the affected service boundary', 'negative'),
305
519
  ],
306
- sparcSectionRefs: ['architecture.services'],
307
- researchDossierItemRefs: dataRefs,
520
+ sparcSectionRefs: [],
521
+ researchDossierItemRefs: [risk.id],
308
522
  });
309
523
  }
310
- // 7. Inter-service communication
311
- if (services.length > 1) {
524
+ // ======================================================================
525
+ // SPARC §C Completion: Deployment & Integration ADR
526
+ // ======================================================================
527
+ const deployTech = techStack.filter(t => /cloud run|cloud function|lambda|fargate|ecs|kubernetes|k8s|docker/i.test(t));
528
+ if (deployTech.length > 0 || cloudProvider) {
312
529
  adrs.push({
313
530
  id: `ADR-P2-${pad3(idx++)}`,
314
- title: 'Inter-Service Communication Pattern',
531
+ title: `Deployment: ${deployTech.join(' + ') || cloudProvider || 'Cloud'} with environment-based configuration`,
315
532
  status: 'proposed',
316
533
  date: today,
317
- context: `${services.length} services need communication pattern.`,
318
- decision: 'Sync REST/gRPC for queries, async events for commands and domain events.',
534
+ context: `${domain.primary} services deploy to ${cloudProvider ?? 'cloud infrastructure'}. ` +
535
+ `${deployTech.length > 0 ? 'Specified: ' + deployTech.join(', ') + '. ' : ''}` +
536
+ `Services must be stateless (state in databases), independently deployable, and environment-configurable.`,
537
+ decision: `Deploy each service as a stateless container on ${deployTech[0] || cloudProvider || 'managed cloud compute'}. ` +
538
+ `All configuration via environment variables (database URLs, API keys, feature flags) — zero hardcoded secrets. ` +
539
+ `Health checks on every service endpoint. Structured JSON logging to cloud logging service. ` +
540
+ `${integrationPlan ? 'Integration plan: ' + integrationPlan.slice(0, 150) + '.' : ''}`,
319
541
  alternatives: [
320
- makeAlt('Hybrid sync+async', 'Balanced approach', false),
321
- makeAlt('All synchronous', 'Simple but cascading failures', true),
322
- makeAlt('All async', 'Loose coupling but complex debugging', true),
542
+ makeAlt(`${deployTech[0] || 'Serverless'} with env-based config`, 'Matches specified infrastructure; scales automatically', false),
543
+ makeAlt('VM-based deployment', 'More control but higher operational overhead', true),
323
544
  ],
324
545
  consequences: [
325
- makeCons('Sync for reads, async for writes — balanced', 'positive'),
326
- makeCons('Need both REST and messaging infrastructure', 'negative'),
546
+ makeCons('Zero-downtime deployments with rolling updates', 'positive'),
547
+ makeCons('Environment parity (dev/staging/prod) via configuration only', 'positive'),
548
+ makeCons('Cold start latency for serverless (mitigated with min instances)', 'negative'),
327
549
  ],
328
- sparcSectionRefs: ['architecture.dataFlow'],
329
- researchDossierItemRefs: [],
550
+ sparcSectionRefs: ['completion.integrationPlan'],
551
+ researchDossierItemRefs: findDossierRefs(dossier, ['deploy', 'cloud', 'infrastructure', 'container']),
330
552
  });
331
553
  }
332
- // Fallback: at least one ADR
554
+ // Fallback: at least one ADR (should never fire with a real query)
333
555
  if (adrs.length === 0) {
334
556
  adrs.push({
335
557
  id: 'ADR-P2-001',
336
- title: 'System Architecture Approach',
558
+ title: `${domain.primary} System Architecture`,
337
559
  status: 'proposed',
338
560
  date: today,
339
- context: 'Initial architecture decision based on SPARC specification.',
340
- decision: 'Build modular system with clear service boundaries, TDD, and iterative refinement.',
561
+ context: q.slice(0, 500) || 'Initial architecture decision based on SPARC specification.',
562
+ decision: `Build modular ${domain.primary} system with bounded contexts, domain events, and iterative delivery. Start with working prototype.`,
341
563
  alternatives: [
342
- makeAlt('Modular architecture', 'Follows SPARC methodology', false),
343
- makeAlt('Monolithic', 'Simpler but harder to scale', true),
564
+ makeAlt('Modular bounded contexts', 'Follows SPARC methodology; enables incremental delivery', false),
565
+ makeAlt('Monolithic', 'Simpler initially but limits independent evolution', true),
344
566
  ],
345
- consequences: [makeCons('Clean architecture', 'positive')],
567
+ consequences: [makeCons('Clean architecture enables iterative refinement', 'positive')],
346
568
  sparcSectionRefs: [],
347
569
  researchDossierItemRefs: [],
348
570
  });
349
571
  }
350
572
  return adrs;
351
573
  }
574
+ function extractDomainContext(query) {
575
+ // Extract primary domain — look for noun phrases that describe the system's purpose
576
+ let primary = 'System';
577
+ const domainPatterns = [
578
+ /(?:global|enterprise)\s+([\w\s-]{5,60}?)(?:\s+(?:strategy|program|platform|system|initiative))/i,
579
+ /(?:help\s+(?:model|optimize|manage|simulate|build))\s+(.{10,60}?)(?:\.|,|$)/i,
580
+ /(?:challenge.*?is|goal.*?is)\s+(.{10,60}?)(?:\.|,|$)/i,
581
+ /\b((?:supplier|waste|emission|carbon|inventory|financial|clinical|manufacturing|procurement|supply chain)\s+[\w\s-]{3,40}?(?:optimization|management|simulation|tracking|analysis|modeling|reduction|transition))/i,
582
+ ];
583
+ for (const pat of domainPatterns) {
584
+ const m = query.match(pat);
585
+ if (m) {
586
+ primary = (m[1] ?? m[0]).trim().replace(/^(a|an|the)\s+/i, '');
587
+ primary = primary.charAt(0).toUpperCase() + primary.slice(1);
588
+ if (primary.length > 60)
589
+ primary = primary.slice(0, 57) + '...';
590
+ break;
591
+ }
592
+ }
593
+ if (primary === 'System') {
594
+ const fallback = query.match(/\b((?:global|enterprise|manufacturing|waste|carbon|emission|clinical|financial|supply|supplier|inventory)\s+\w+(?:\s+\w+){0,2})/i);
595
+ if (fallback?.[1])
596
+ primary = fallback[1].charAt(0).toUpperCase() + fallback[1].slice(1);
597
+ }
598
+ // ERP detection
599
+ let erp = null;
600
+ const erpPatterns = [
601
+ [/\bworkday\b/i, 'Workday'],
602
+ [/\boracle\s+fusion\s+cloud\b/i, 'Oracle Fusion Cloud'],
603
+ [/\boracle\s+(?:erp|cloud)\b/i, 'Oracle ERP Cloud'],
604
+ [/\bsap\s+s\/4\s*hana\b/i, 'SAP S/4HANA'],
605
+ [/\bsap\b/i, 'SAP'],
606
+ [/\bdynamics\s*365\b/i, 'Dynamics 365'],
607
+ [/\bnetsuite\b/i, 'NetSuite'],
608
+ ];
609
+ for (const [pat, name] of erpPatterns) {
610
+ if (pat.test(query)) {
611
+ erp = name;
612
+ break;
613
+ }
614
+ }
615
+ // Stakeholders
616
+ const stakeholderMatch = query.match(/(?:affect|impact|involve)\s+(.{10,120}?)(?:\.|$)/i);
617
+ const matchedStakeholders = (query.match(/(?:procurement|sustainability|operations|executive|leadership|compliance|regulatory)\s+(?:team|leadership|management)/gi) ?? []).join(', ');
618
+ const stakeholders = stakeholderMatch?.[1]?.trim()
619
+ ?? (matchedStakeholders || 'operational teams and leadership');
620
+ return { primary, erp, stakeholders };
621
+ }
622
+ function extractTechFromQuery(query) {
623
+ const techs = [];
624
+ const patterns = [
625
+ [/\btypescript\b/i, 'TypeScript'], [/\brust\b/i, 'Rust'], [/\bpython\b/i, 'Python'],
626
+ [/\bgoogle cloud\b/i, 'Google Cloud'], [/\bcloud run\b/i, 'Cloud Run'], [/\bcloud functions?\b/i, 'Cloud Functions'],
627
+ [/\baws\b/i, 'AWS'], [/\bazure\b/i, 'Azure'],
628
+ [/\bpostgres(?:ql)?\b/i, 'PostgreSQL'], [/\bcloud sql\b/i, 'Cloud SQL (PostgreSQL)'],
629
+ [/\bbigquery\b/i, 'BigQuery'], [/\bmongodb\b/i, 'MongoDB'], [/\bredis\b/i, 'Redis'],
630
+ [/\bkafka\b/i, 'Kafka'], [/\brabbitmq\b/i, 'RabbitMQ'],
631
+ [/\bkubernetes\b|\bk8s\b/i, 'Kubernetes'], [/\bdocker\b/i, 'Docker'],
632
+ ];
633
+ for (const [pat, name] of patterns) {
634
+ if (pat.test(query) && !techs.includes(name))
635
+ techs.push(name);
636
+ }
637
+ return techs;
638
+ }
639
+ function itemsToText(items) {
640
+ return items.slice(0, 3).map(s => {
641
+ if (typeof s === 'string')
642
+ return s;
643
+ if (s && typeof s === 'object') {
644
+ const obj = s;
645
+ return String(obj['text'] ?? obj['description'] ?? JSON.stringify(s));
646
+ }
647
+ return String(s);
648
+ }).join('; ');
649
+ }
352
650
  export function buildPhase2ADRs(sparc, dossier, query) {
651
+ if (!query) {
652
+ process.stderr.write('[adr-generator] No query provided — cannot generate domain-specific ADRs\n');
653
+ return buildADRsFromSPARC(sparc, dossier, query);
654
+ }
655
+ // 1. Try Claude Code runner (works when NOT in MCP mode)
656
+ const runnerResult = tryGenerateLLMADRs(sparc, dossier, query);
657
+ if (runnerResult)
658
+ return runnerResult;
659
+ // 2. Try direct Anthropic API (works in MCP mode, needs API key)
660
+ const apiResult = tryGenerateADRsViaAPI(sparc, dossier, query);
661
+ if (apiResult)
662
+ return apiResult;
663
+ // 3. Last resort: SPARC-derived ADRs (still domain-specific, but not LLM-generated)
664
+ process.stderr.write('[adr-generator] WARNING: Both LLM paths failed. Using SPARC-derived ADRs.\n');
665
+ process.stderr.write('[adr-generator] Set ANTHROPIC_API_KEY to enable LLM-generated ADRs.\n');
353
666
  return buildADRsFromSPARC(sparc, dossier, query);
354
667
  }
355
668
  /**
@@ -377,129 +690,67 @@ export function renderADRsAsDocument(adrs, query) {
377
690
  // ADR-027: LLM-Generated Architecture Decision Records
378
691
  // ============================================================================
379
692
  /**
380
- * Generate domain-specific ADRs using Claude instead of generic boilerplate.
381
- * Returns enriched ADR array, or null if LLM is unavailable.
693
+ * Generate domain-specific ADRs using Claude (--print mode).
694
+ * Bypasses the MCP availability guard since `claude --print` is a stateless
695
+ * one-shot subprocess that does NOT use MCP — safe to call from any context.
696
+ * Uses the user's Claude Max subscription (no separate API key needed).
382
697
  */
383
698
  function tryGenerateLLMADRs(sparc, dossier, query, phase2Dir = '') {
384
- if (!isClaudeCodeRunnerAvailable())
385
- return null;
386
699
  try {
387
- const runner = createClaudeCodeRunner();
388
- const services = sparc.architecture?.services ?? [];
389
- const serviceList = services.map(s => `- ${s.name}: ${s.responsibility.slice(0, 100)} (deps: ${s.dependencies.join(', ') || 'none'})`).join('\n');
390
- const dossierContext = dossier.items
391
- .filter(i => ['requirement', 'constraint', 'risk', 'decision-rationale'].includes(i.category))
392
- .slice(0, 20)
393
- .map(i => `- [${i.category}] ${i.title}: ${i.content.slice(0, 120)}`)
394
- .join('\n');
395
- // ADR-027: Include agentics fleet analysis from 110 agents
396
- const agentContext = phase2Dir ? loadAgenticsFleetContextForADR(phase2Dir) : '';
397
- // ADR-029: Use shared tech stack detector instead of inline patterns
398
- const dossierText = dossier.items.map(i => i.content).join(' ');
399
- const techStack = detectTechnologyStack(query, dossierText);
400
- const techMentions = [];
401
- if (techStack.erp)
402
- techMentions.push(techStack.erp.name);
403
- if (techStack.cloud)
404
- techMentions.push(techStack.cloud.toUpperCase());
405
- if (techStack.database)
406
- techMentions.push(techStack.database);
407
- if (techStack.messageQueue)
408
- techMentions.push(techStack.messageQueue);
409
- if (techStack.searchEngine)
410
- techMentions.push(techStack.searchEngine);
411
- if (techStack.cacheLayer)
412
- techMentions.push(techStack.cacheLayer);
413
- // Build ERP-specific API context for the prompt
414
- const erpPromptContext = techStack.erp
415
- ? `\nERP API DETAILS (use these EXACT paths):\n${formatERPContextForPrompt(techStack.erp)}\n`
416
- : '';
417
- const prompt = `You are a senior solution architect writing Architecture Decision Records. Read the FULL project requirements below and write ADRs that guide a developer on HOW to build this specific system.\n\n` +
418
- `## Project Requirements\n\n${query}\n\n` +
419
- `## Services Identified\n${serviceList}\n` +
420
- `\nRESEARCH FINDINGS:\n${dossierContext}\n` +
421
- (agentContext ? agentContext + '\n' : '') +
422
- `\nDETECTED TECHNOLOGIES: ${techMentions.join(', ') || 'not specified'}\n` +
423
- erpPromptContext +
424
- `\nWrite 8-12 ADRs as a JSON array. Each ADR must be an IMPLEMENTATION DECISION that tells a developer what to build and how.\n` +
425
- `\nIMPORTANT: ADRs must cover TWO categories:\n` +
426
- `\nA) DOMAIN-SPECIFIC DECISIONS (at least 5) — these guide implementation of the actual business logic:\n` +
427
- ` - How to model the core domain concepts (e.g., "Model emissions as facility-level time series with BU rollup")\n` +
428
- ` - How to implement the key algorithms/calculations the user described\n` +
429
- ` - How to structure the decision/simulation/optimization logic\n` +
430
- ` - How domain entities relate and what business rules constrain them\n` +
431
- ` - How to handle the specific workflows the user described\n` +
432
- `\nB) INFRASTRUCTURE DECISIONS (3-5) — technology choices that support the domain:\n` +
433
- ` - Data persistence: which database(s) and why\n` +
434
- ` - ERP integration approach for ${techMentions[0] || 'the ERP system'}\n` +
435
- ` - Deployment and cloud platform specifics\n` +
436
- ` - Security and compliance requirements\n` +
437
- `\nEach ADR title should describe a SPECIFIC decision, not a category. Example:\n` +
438
- ` GOOD: "Use Monte Carlo simulation for carbon price forecasting with configurable volatility"\n` +
439
- ` BAD: "Performance Architecture"\n` +
440
- ` GOOD: "Model emissions baseline as facility-level time series with business unit rollup"\n` +
441
- ` BAD: "Data persistence strategy"\n` +
442
- `\nReturn JSON array:\n` +
443
- `[\n` +
444
- ` {\n` +
445
- ` "title": "Specific decision title that tells a developer what to build",\n` +
446
- ` "context": "Why this decision matters — reference the specific business problem from the requirements",\n` +
447
- ` "decision": "The specific approach — include enough detail that a developer can implement it",\n` +
448
- ` "alternatives": [{"option": "Name", "rationale": "Why considered", "rejected": true/false}],\n` +
449
- ` "consequences": [{"description": "Impact on the system", "type": "positive|negative|neutral"}]\n` +
450
- ` }\n` +
451
- `]\n` +
452
- `\nCRITICAL RULES:\n` +
453
- `- NO generic titles like "Security Architecture", "Performance Architecture", "Service Boundary"\n` +
454
- `- Every ADR must contain enough implementation detail that a developer can build from it\n` +
455
- `- The "decision" field should be 2-4 sentences describing the specific approach, not one vague sentence\n` +
456
- `- Reference actual domain concepts from the requirements (not generic "entities" or "services")\n` +
457
- `- If the user specified technologies (${techMentions.join(', ')}), reference them in relevant ADRs`;
458
- const result = runner.invoke(prompt, {
459
- runId: `adr-llm-${Date.now()}`,
460
- timeoutMs: 60_000, // 60s — LLM ADRs are much better than fallback templates, worth waiting for
461
- });
462
- const data = result.data;
463
- let rawAdrs;
464
- if (Array.isArray(data)) {
465
- rawAdrs = data;
700
+ // Resolve claude binary directly — do NOT use isClaudeCodeRunnerAvailable()
701
+ // which blocks in MCP mode. `claude --print` is safe from any context.
702
+ const { execFileSync } = require('node:child_process');
703
+ let claudeBin = null;
704
+ // Check env override first
705
+ const envBin = process.env['AGENTICS_CLAUDE_BIN'];
706
+ if (envBin) {
707
+ claudeBin = envBin;
466
708
  }
467
- else if (typeof data.content === 'string') {
468
- try {
469
- const parsed = JSON.parse(data.content);
470
- if (Array.isArray(parsed))
471
- rawAdrs = parsed;
709
+ else {
710
+ // Find claude on PATH
711
+ const lookupCmd = process.platform === 'win32' ? 'where' : 'which';
712
+ for (const candidate of ['claude', 'claude-code']) {
713
+ try {
714
+ const found = execFileSync(lookupCmd, [candidate], {
715
+ stdio: ['pipe', 'pipe', 'pipe'],
716
+ timeout: 5_000,
717
+ encoding: 'utf-8',
718
+ }).trim().split(/\r?\n/)[0]?.trim();
719
+ if (found) {
720
+ claudeBin = found;
721
+ break;
722
+ }
723
+ }
724
+ catch { /* not found, try next */ }
472
725
  }
473
- catch { /* not JSON */ }
474
726
  }
475
- if (!rawAdrs || rawAdrs.length === 0) {
476
- process.stderr.write('[adr-generator] LLM ADRs: no decisions in response\n');
727
+ if (!claudeBin) {
728
+ process.stderr.write('[adr-generator] claude binary not found cannot generate LLM ADRs\n');
477
729
  return null;
478
730
  }
479
- const today = new Date().toISOString().slice(0, 10);
480
- const adrs = rawAdrs.map((raw, idx) => {
481
- const alts = Array.isArray(raw.alternatives)
482
- ? raw.alternatives.map(a => makeAlt(String(a.option || ''), String(a.rationale || ''), !!a.rejected))
483
- : [makeAlt('Selected approach', String(raw.decision || ''), false)];
484
- const cons = Array.isArray(raw.consequences)
485
- ? raw.consequences.map(c => makeCons(String(c.description || ''), (c.type || 'neutral')))
486
- : [makeCons('Decision applied', 'neutral')];
487
- return {
488
- id: `ADR-P2-${pad3(idx + 1)}`,
489
- title: String(raw.title || `Decision ${idx + 1}`),
490
- status: 'proposed',
491
- date: today,
492
- context: String(raw.context || ''),
493
- decision: String(raw.decision || ''),
494
- alternatives: alts,
495
- consequences: cons,
496
- sparcSectionRefs: [],
497
- researchDossierItemRefs: findDossierRefs(dossier, [
498
- String(raw.title || '').toLowerCase(),
499
- ]),
500
- };
731
+ const prompt = buildADRPrompt(sparc, dossier, query, phase2Dir);
732
+ const startMs = Date.now();
733
+ // Use --print for one-shot generation (no MCP, no interactive session)
734
+ const model = process.env['AGENTICS_CLAUDE_MODEL'] || 'claude-sonnet-4-20250514';
735
+ const rawOutput = execFileSync(claudeBin, [
736
+ '--print',
737
+ '--output-format', 'text',
738
+ '--model', model,
739
+ prompt,
740
+ ], {
741
+ encoding: 'utf-8',
742
+ timeout: 120_000, // 2 minutes — ADR generation is complex
743
+ maxBuffer: 10 * 1024 * 1024,
744
+ stdio: ['pipe', 'pipe', 'pipe'],
745
+ env: { ...process.env, MCP_SERVER_MODE: undefined }, // Clear MCP flag for subprocess
501
746
  });
502
- process.stderr.write(`[adr-generator] LLM-generated ${adrs.length} domain-specific ADRs in ${result.durationMs}ms\n`);
747
+ const adrs = parseRawADRs(rawOutput, dossier);
748
+ if (!adrs || adrs.length === 0) {
749
+ process.stderr.write('[adr-generator] Claude --print returned no valid ADR JSON\n');
750
+ return null;
751
+ }
752
+ const durationMs = Date.now() - startMs;
753
+ process.stderr.write(`[adr-generator] LLM-generated ${adrs.length} domain-specific ADRs via claude --print in ${durationMs}ms\n`);
503
754
  return adrs;
504
755
  }
505
756
  catch (err) {
@@ -508,6 +759,197 @@ function tryGenerateLLMADRs(sparc, dossier, query, phase2Dir = '') {
508
759
  }
509
760
  }
510
761
  // ============================================================================
762
+ // ADR Generation via Direct Anthropic API (for MCP mode where runner is blocked)
763
+ // ============================================================================
764
+ /**
765
+ * Build the ADR generation prompt from SPARC + dossier + query.
766
+ * Shared between tryGenerateLLMADRs (Claude Code runner) and tryGenerateADRsViaAPI (direct API).
767
+ */
768
+ function buildADRPrompt(sparc, dossier, query, phase2Dir = '') {
769
+ const services = sparc.architecture?.services ?? [];
770
+ const serviceList = services.map(s => `- ${s.name}: ${s.responsibility.slice(0, 100)} (deps: ${s.dependencies.join(', ') || 'none'})`).join('\n');
771
+ const dossierContext = dossier.items
772
+ .filter(i => ['requirement', 'constraint', 'risk', 'decision-rationale'].includes(i.category))
773
+ .slice(0, 20)
774
+ .map(i => `- [${i.category}] ${i.title}: ${i.content.slice(0, 120)}`)
775
+ .join('\n');
776
+ const agentContext = phase2Dir ? loadAgenticsFleetContextForADR(phase2Dir) : '';
777
+ const dossierText = dossier.items.map(i => i.content).join(' ');
778
+ const techStack = detectTechnologyStack(query, dossierText);
779
+ const techMentions = [];
780
+ if (techStack.erp)
781
+ techMentions.push(techStack.erp.name);
782
+ if (techStack.cloud)
783
+ techMentions.push(techStack.cloud.toUpperCase());
784
+ if (techStack.database)
785
+ techMentions.push(techStack.database);
786
+ if (techStack.messageQueue)
787
+ techMentions.push(techStack.messageQueue);
788
+ if (techStack.searchEngine)
789
+ techMentions.push(techStack.searchEngine);
790
+ if (techStack.cacheLayer)
791
+ techMentions.push(techStack.cacheLayer);
792
+ const erpPromptContext = techStack.erp
793
+ ? `\nERP API DETAILS (use these EXACT paths):\n${formatERPContextForPrompt(techStack.erp)}\n`
794
+ : '';
795
+ return (`You are a senior solution architect writing Architecture Decision Records. Read the FULL project requirements below and write ADRs that guide a developer on HOW to build this specific system.\n\n` +
796
+ `## Project Requirements\n\n${query}\n\n` +
797
+ `## Services Identified\n${serviceList}\n` +
798
+ `\nRESEARCH FINDINGS:\n${dossierContext}\n` +
799
+ (agentContext ? agentContext + '\n' : '') +
800
+ `\nDETECTED TECHNOLOGIES: ${techMentions.join(', ') || 'not specified'}\n` +
801
+ erpPromptContext +
802
+ `\nWrite 8-12 ADRs as a JSON array. Each ADR must be an IMPLEMENTATION DECISION that tells a developer what to build and how.\n` +
803
+ `\nIMPORTANT: ADRs must cover TWO categories:\n` +
804
+ `\nA) DOMAIN-SPECIFIC DECISIONS (at least 5) — these guide implementation of the actual business logic:\n` +
805
+ ` - How to model the core domain concepts (e.g., "Model emissions as facility-level time series with BU rollup")\n` +
806
+ ` - How to implement the key algorithms/calculations the user described\n` +
807
+ ` - How to structure the decision/simulation/optimization logic\n` +
808
+ ` - How domain entities relate and what business rules constrain them\n` +
809
+ ` - How to handle the specific workflows the user described\n` +
810
+ `\nB) INFRASTRUCTURE DECISIONS (3-5) — technology choices that support the domain:\n` +
811
+ ` - Data persistence: which database(s) and why\n` +
812
+ ` - ERP integration approach for ${techMentions[0] || 'the ERP system'}\n` +
813
+ ` - Deployment and cloud platform specifics\n` +
814
+ ` - Security and compliance requirements\n` +
815
+ `\nEach ADR title should describe a SPECIFIC decision, not a category. Example:\n` +
816
+ ` GOOD: "Use Monte Carlo simulation for carbon price forecasting with configurable volatility"\n` +
817
+ ` BAD: "Performance Architecture"\n` +
818
+ ` GOOD: "Model emissions baseline as facility-level time series with business unit rollup"\n` +
819
+ ` BAD: "Data persistence strategy"\n` +
820
+ `\nReturn ONLY a JSON array (no markdown fences, no explanation before or after):\n` +
821
+ `[\n` +
822
+ ` {\n` +
823
+ ` "title": "Specific decision title that tells a developer what to build",\n` +
824
+ ` "context": "Why this decision matters — reference the specific business problem from the requirements",\n` +
825
+ ` "decision": "The specific approach — include enough detail that a developer can implement it",\n` +
826
+ ` "alternatives": [{"option": "Name", "rationale": "Why considered", "rejected": true/false}],\n` +
827
+ ` "consequences": [{"description": "Impact on the system", "type": "positive|negative|neutral"}]\n` +
828
+ ` }\n` +
829
+ `]\n` +
830
+ `\nCRITICAL RULES:\n` +
831
+ `- NO generic titles like "Security Architecture", "Performance Architecture", "Service Boundary"\n` +
832
+ `- Every ADR must contain enough implementation detail that a developer can build from it\n` +
833
+ `- The "decision" field should be 2-4 sentences describing the specific approach, not one vague sentence\n` +
834
+ `- Reference actual domain concepts from the requirements (not generic "entities" or "services")\n` +
835
+ `- If the user specified technologies (${techMentions.join(', ')}), reference them in relevant ADRs`);
836
+ }
837
+ /**
838
+ * Parse raw LLM JSON response into Phase2ADRRecord[].
839
+ */
840
+ function parseRawADRs(rawText, dossier) {
841
+ // Strip markdown code fences if present
842
+ let cleaned = rawText.trim();
843
+ if (cleaned.startsWith('```')) {
844
+ cleaned = cleaned.replace(/^```(?:json)?\s*\n?/, '').replace(/\n?```\s*$/, '');
845
+ }
846
+ let rawAdrs;
847
+ try {
848
+ const parsed = JSON.parse(cleaned);
849
+ if (!Array.isArray(parsed) || parsed.length === 0)
850
+ return null;
851
+ rawAdrs = parsed;
852
+ }
853
+ catch {
854
+ // Try to extract JSON array from the response
855
+ const arrayMatch = cleaned.match(/\[[\s\S]*\]/);
856
+ if (!arrayMatch)
857
+ return null;
858
+ try {
859
+ const parsed = JSON.parse(arrayMatch[0]);
860
+ if (!Array.isArray(parsed) || parsed.length === 0)
861
+ return null;
862
+ rawAdrs = parsed;
863
+ }
864
+ catch {
865
+ return null;
866
+ }
867
+ }
868
+ const today = new Date().toISOString().slice(0, 10);
869
+ return rawAdrs.map((raw, idx) => {
870
+ const alts = Array.isArray(raw.alternatives)
871
+ ? raw.alternatives.map(a => makeAlt(String(a.option || ''), String(a.rationale || ''), !!a.rejected))
872
+ : [makeAlt('Selected approach', String(raw.decision || ''), false)];
873
+ const cons = Array.isArray(raw.consequences)
874
+ ? raw.consequences.map(c => makeCons(String(c.description || ''), (c.type || 'neutral')))
875
+ : [makeCons('Decision applied', 'neutral')];
876
+ return {
877
+ id: `ADR-P2-${pad3(idx + 1)}`,
878
+ title: String(raw.title || `Decision ${idx + 1}`),
879
+ status: 'proposed',
880
+ date: today,
881
+ context: String(raw.context || ''),
882
+ decision: String(raw.decision || ''),
883
+ alternatives: alts,
884
+ consequences: cons,
885
+ sparcSectionRefs: [],
886
+ researchDossierItemRefs: findDossierRefs(dossier, [
887
+ String(raw.title || '').toLowerCase(),
888
+ ]),
889
+ };
890
+ });
891
+ }
892
+ /**
893
+ * Generate ADRs via direct Anthropic API call.
894
+ * Used when Claude Code runner is unavailable (MCP mode).
895
+ * Requires ANTHROPIC_API_KEY in env or ~/.agentics/credentials.json.
896
+ */
897
+ function tryGenerateADRsViaAPI(sparc, dossier, query) {
898
+ // Synchronous API key check — getAnthropicApiKey is async but we need sync here.
899
+ // Check env var directly (most common path).
900
+ const apiKey = process.env['ANTHROPIC_API_KEY'] ?? null;
901
+ if (!apiKey) {
902
+ process.stderr.write('[adr-generator] No ANTHROPIC_API_KEY — cannot call API directly\n');
903
+ return null;
904
+ }
905
+ try {
906
+ const prompt = buildADRPrompt(sparc, dossier, query);
907
+ const startMs = Date.now();
908
+ // Synchronous HTTP via child_process (Node fetch is async-only)
909
+ const { execFileSync } = require('node:child_process');
910
+ const curlArgs = [
911
+ '-s', '--max-time', '90',
912
+ '-X', 'POST',
913
+ 'https://api.anthropic.com/v1/messages',
914
+ '-H', 'Content-Type: application/json',
915
+ '-H', `x-api-key: ${apiKey}`,
916
+ '-H', 'anthropic-version: 2023-06-01',
917
+ '-d', JSON.stringify({
918
+ model: process.env['AGENTICS_ADR_MODEL'] || 'claude-sonnet-4-20250514',
919
+ max_tokens: 8192,
920
+ messages: [{ role: 'user', content: prompt }],
921
+ }),
922
+ ];
923
+ const rawResponse = execFileSync('curl', curlArgs, {
924
+ encoding: 'utf-8',
925
+ timeout: 120_000,
926
+ maxBuffer: 10 * 1024 * 1024,
927
+ });
928
+ const response = JSON.parse(rawResponse);
929
+ if (response.error) {
930
+ process.stderr.write(`[adr-generator] API error: ${response.error.message}\n`);
931
+ return null;
932
+ }
933
+ const textBlock = response.content?.find(b => b.type === 'text');
934
+ if (!textBlock?.text) {
935
+ process.stderr.write('[adr-generator] API returned no text content\n');
936
+ return null;
937
+ }
938
+ const adrs = parseRawADRs(textBlock.text, dossier);
939
+ if (!adrs || adrs.length === 0) {
940
+ process.stderr.write('[adr-generator] API response did not contain valid ADR JSON\n');
941
+ return null;
942
+ }
943
+ const durationMs = Date.now() - startMs;
944
+ process.stderr.write(`[adr-generator] API-generated ${adrs.length} domain-specific ADRs in ${durationMs}ms\n`);
945
+ return adrs;
946
+ }
947
+ catch (err) {
948
+ process.stderr.write(`[adr-generator] API ADR generation failed: ${err instanceof Error ? err.message : String(err)}\n`);
949
+ return null;
950
+ }
951
+ }
952
+ // ============================================================================
511
953
  // Public: Main Stage Function
512
954
  // ============================================================================
513
955
  export async function generateADRs(context) {
@@ -534,7 +976,9 @@ export async function generateADRs(context) {
534
976
  if (techStack.erp) {
535
977
  process.stderr.write(`[adr-generator] Detected ERP: ${techStack.erp.name} (${techStack.erp.slug})\n`);
536
978
  }
979
+ // 3-tier ADR generation: claude --print → Anthropic API → SPARC-derived
537
980
  const adrs = (query ? tryGenerateLLMADRs(sparc, dossier, query, context.phase2Dir) : null)
981
+ ?? (query ? tryGenerateADRsViaAPI(sparc, dossier, query) : null)
538
982
  ?? buildADRsFromSPARC(sparc, dossier, query);
539
983
  const adrDir = path.join(context.phase2Dir, ADR_SUBDIR);
540
984
  fs.mkdirSync(adrDir, { recursive: true, mode: DIR_MODE });
@@ -1 +1 @@
1
- {"version":3,"file":"adr-generator.js","sourceRoot":"","sources":["../../../../src/pipeline/phase2/phases/adr-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adr-generator.js","sourceRoot":"","sources":["../../../../src/pipeline/phase2/phases/adr-generator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llm-dev-ops/agentics-cli",
3
- "version": "1.5.46",
3
+ "version": "1.5.48",
4
4
  "description": "Agentics CLI - Pure orchestration layer for agentics platform services",
5
5
  "type": "module",
6
6
  "main": "./dist/cli/index.js",