@lucern/pack-host 1.0.0 → 1.0.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.
- package/dist/domain-pack/authoring.core.d.ts +161 -0
- package/dist/domain-pack/authoring.core.js +411 -0
- package/dist/domain-pack/authoring.core.js.map +1 -0
- package/dist/domain-pack/authoring.d.ts +12 -170
- package/dist/domain-pack/authoring.js +1155 -1098
- package/dist/domain-pack/authoring.js.map +1 -1
- package/dist/domain-pack/authoring.validation.d.ts +28 -0
- package/dist/domain-pack/authoring.validation.js +1944 -0
- package/dist/domain-pack/authoring.validation.js.map +1 -0
- package/dist/domain-pack/index.d.ts +2 -1
- package/dist/domain-pack/index.js +1979 -1917
- package/dist/domain-pack/index.js.map +1 -1
- package/dist/domain-pack/packs/engineering-accelerator-tail.d.ts +256 -0
- package/dist/domain-pack/packs/engineering-accelerator-tail.js +716 -0
- package/dist/domain-pack/packs/engineering-accelerator-tail.js.map +1 -0
- package/dist/domain-pack/packs/engineering-accelerator.js +790 -785
- package/dist/domain-pack/packs/engineering-accelerator.js.map +1 -1
- package/dist/domain-pack/packs/index.js +790 -785
- package/dist/domain-pack/packs/index.js.map +1 -1
- package/dist/domain-pack.d.ts +2 -1
- package/dist/domain-pack.js +1979 -1917
- package/dist/domain-pack.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1843 -1661
- package/dist/index.js.map +1 -1
- package/dist/manifests/chat-v1.js +17 -6
- package/dist/manifests/chat-v1.js.map +1 -1
- package/dist/manifests/deals-v1.js +10 -7
- package/dist/manifests/deals-v1.js.map +1 -1
- package/dist/manifests/decisions-v1.js +11 -4
- package/dist/manifests/decisions-v1.js.map +1 -1
- package/dist/manifests/documents-v1.js +12 -12
- package/dist/manifests/documents-v1.js.map +1 -1
- package/dist/manifests/epistemic-algorithms-v1.js +11 -6
- package/dist/manifests/epistemic-algorithms-v1.js.map +1 -1
- package/dist/manifests/graph-visualization-v1.js +9 -5
- package/dist/manifests/graph-visualization-v1.js.map +1 -1
- package/dist/manifests/index.d.ts +1 -0
- package/dist/manifests/index.js +230 -110
- package/dist/manifests/index.js.map +1 -1
- package/dist/manifests/news-v1.js +12 -13
- package/dist/manifests/news-v1.js.map +1 -1
- package/dist/manifests/philosophy-mode-v1.js +10 -12
- package/dist/manifests/philosophy-mode-v1.js.map +1 -1
- package/dist/manifests/sprints-v1.d.ts +10 -0
- package/dist/manifests/sprints-v1.js +106 -0
- package/dist/manifests/sprints-v1.js.map +1 -0
- package/dist/manifests/task-management-v1.js +18 -6
- package/dist/manifests/task-management-v1.js.map +1 -1
- package/dist/manifests/team-analysis-v1.js +12 -9
- package/dist/manifests/team-analysis-v1.js.map +1 -1
- package/dist/manifests/themes-v1.js +12 -16
- package/dist/manifests/themes-v1.js.map +1 -1
- package/dist/manifests/user-profiles-v1.js +9 -13
- package/dist/manifests/user-profiles-v1.js.map +1 -1
- package/dist/manifests.d.ts +1 -0
- package/dist/manifests.js +230 -110
- package/dist/manifests.js.map +1 -1
- package/dist/proof-attestation.json +1 -1
- package/dist/registry.js +229 -109
- package/dist/registry.js.map +1 -1
- package/package.json +1 -1
|
@@ -60,578 +60,8 @@ function defineDomainPack(input) {
|
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
// src/domain-pack/packs/engineering-accelerator.ts
|
|
64
|
-
var
|
|
65
|
-
packId: "engineering-accelerator",
|
|
66
|
-
name: "Engineering Accelerator",
|
|
67
|
-
version: "1.0.0",
|
|
68
|
-
ontologyBindings: [
|
|
69
|
-
{
|
|
70
|
-
ontologyId: "software-entities",
|
|
71
|
-
versionConstraint: "^1.0.0",
|
|
72
|
-
required: true,
|
|
73
|
-
provisionMode: "seed",
|
|
74
|
-
seedRef: "packages/pack-host/src/domain-pack/ontology/software-entities-v1.ts",
|
|
75
|
-
requiredEntityTypes: [
|
|
76
|
-
"repository",
|
|
77
|
-
"service",
|
|
78
|
-
"module",
|
|
79
|
-
"workflow",
|
|
80
|
-
"incident",
|
|
81
|
-
"migration",
|
|
82
|
-
"decision_record",
|
|
83
|
-
"agent"
|
|
84
|
-
],
|
|
85
|
-
requiredEdgeTypes: [
|
|
86
|
-
"depends_on",
|
|
87
|
-
"owns",
|
|
88
|
-
"calls",
|
|
89
|
-
"blocks",
|
|
90
|
-
"reviews",
|
|
91
|
-
"mitigates",
|
|
92
|
-
"supersedes"
|
|
93
|
-
]
|
|
94
|
-
}
|
|
95
|
-
],
|
|
96
|
-
topicRoots: [
|
|
97
|
-
{
|
|
98
|
-
slug: "migrations",
|
|
99
|
-
name: "Migrations",
|
|
100
|
-
description: "Schema, API, and runtime migrations with blast-radius, rollback, and parity memory",
|
|
101
|
-
ontologyId: "software-entities"
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
slug: "reviews",
|
|
105
|
-
name: "Reviews",
|
|
106
|
-
description: "Pull-request and change-review workflows grounded in prior rationale and regressions",
|
|
107
|
-
ontologyId: "software-entities"
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
slug: "incidents",
|
|
111
|
-
name: "Incidents",
|
|
112
|
-
description: "Incident response driven by competing hypotheses, contradictions, and mitigations",
|
|
113
|
-
ontologyId: "software-entities"
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
slug: "architecture",
|
|
117
|
-
name: "Architecture",
|
|
118
|
-
description: "Architecture decisions, interface trade-offs, and precedent-aware rationale recall",
|
|
119
|
-
ontologyId: "software-entities"
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
slug: "decision-memory",
|
|
123
|
-
name: "Decision Memory",
|
|
124
|
-
description: "Cross-cutting rationale recall, failed attempts, and analog reuse across engineering work",
|
|
125
|
-
ontologyId: "software-entities"
|
|
126
|
-
}
|
|
127
|
-
],
|
|
128
|
-
workflows: [
|
|
129
|
-
{
|
|
130
|
-
workflowId: "migration-readiness",
|
|
131
|
-
name: "Migration Readiness",
|
|
132
|
-
description: "Recall similar migrations, map blast radius, and define rollback before rollout",
|
|
133
|
-
steps: [
|
|
134
|
-
{
|
|
135
|
-
stepId: "recall-history",
|
|
136
|
-
name: "Recall History",
|
|
137
|
-
description: "Compile analogous migrations, prior rationale, failed attempts, and compatibility constraints",
|
|
138
|
-
requiredRoles: ["context-compiler", "migration-owner"],
|
|
139
|
-
produces: ["memory-brief"],
|
|
140
|
-
gateId: "memory-grounded"
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
stepId: "plan-rollout",
|
|
144
|
-
name: "Plan Rollout",
|
|
145
|
-
description: "Define blast radius, sequencing, rollback, and verification checkpoints",
|
|
146
|
-
requiredRoles: ["migration-owner", "critic"],
|
|
147
|
-
produces: ["migration-plan"],
|
|
148
|
-
gateId: "rollback-ready"
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
stepId: "verify-rollout",
|
|
152
|
-
name: "Verify Rollout",
|
|
153
|
-
description: "Confirm canary, rollback, and parity checks are explicit before execution",
|
|
154
|
-
requiredRoles: ["reviewer"],
|
|
155
|
-
produces: ["verification-checklist"],
|
|
156
|
-
gateId: "verification-covered"
|
|
157
|
-
}
|
|
158
|
-
],
|
|
159
|
-
requiredArtifacts: [
|
|
160
|
-
"memory-brief",
|
|
161
|
-
"migration-plan",
|
|
162
|
-
"verification-checklist"
|
|
163
|
-
],
|
|
164
|
-
gateCheckpoints: [
|
|
165
|
-
"memory-grounded",
|
|
166
|
-
"rollback-ready",
|
|
167
|
-
"verification-covered"
|
|
168
|
-
]
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
workflowId: "pull-request-review",
|
|
172
|
-
name: "Pull Request Review",
|
|
173
|
-
description: "Use prior rationale, regressions, and verification history to review risky changes faster",
|
|
174
|
-
steps: [
|
|
175
|
-
{
|
|
176
|
-
stepId: "recall-review-context",
|
|
177
|
-
name: "Recall Review Context",
|
|
178
|
-
description: "Load earlier decisions, similar diffs, failed attempts, and relevant incidents",
|
|
179
|
-
requiredRoles: ["context-compiler", "reviewer"],
|
|
180
|
-
produces: ["review-context"],
|
|
181
|
-
gateId: "memory-grounded"
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
stepId: "inspect-diff",
|
|
185
|
-
name: "Inspect Diff",
|
|
186
|
-
description: "Surface risk areas, stale assumptions, and regressions that should block approval",
|
|
187
|
-
requiredRoles: ["reviewer", "critic"],
|
|
188
|
-
produces: ["review-findings"],
|
|
189
|
-
gateId: "review-risks-surfaced"
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
stepId: "verify-changes",
|
|
193
|
-
name: "Verify Changes",
|
|
194
|
-
description: "Tie approval to explicit typecheck, test, and integration evidence",
|
|
195
|
-
requiredRoles: ["reviewer"],
|
|
196
|
-
produces: ["verification-checklist"],
|
|
197
|
-
gateId: "verification-covered"
|
|
198
|
-
}
|
|
199
|
-
],
|
|
200
|
-
requiredArtifacts: [
|
|
201
|
-
"review-context",
|
|
202
|
-
"review-findings",
|
|
203
|
-
"verification-checklist"
|
|
204
|
-
],
|
|
205
|
-
gateCheckpoints: [
|
|
206
|
-
"memory-grounded",
|
|
207
|
-
"review-risks-surfaced",
|
|
208
|
-
"verification-covered"
|
|
209
|
-
]
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
workflowId: "incident-response",
|
|
213
|
-
name: "Incident Response",
|
|
214
|
-
description: "Treat incidents as contradiction-heavy reasoning tasks before committing to a root cause",
|
|
215
|
-
steps: [
|
|
216
|
-
{
|
|
217
|
-
stepId: "collect-signal",
|
|
218
|
-
name: "Collect Signal",
|
|
219
|
-
description: "Assemble symptoms, recent changes, precedent incidents, and active hypotheses",
|
|
220
|
-
requiredRoles: ["context-compiler", "incident-commander"],
|
|
221
|
-
produces: ["incident-brief"],
|
|
222
|
-
gateId: "memory-grounded"
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
stepId: "surface-contradictions",
|
|
226
|
-
name: "Surface Contradictions",
|
|
227
|
-
description: "Make competing explanations explicit before mitigation narrows the search space",
|
|
228
|
-
requiredRoles: ["incident-commander", "critic"],
|
|
229
|
-
produces: ["contradiction-report"],
|
|
230
|
-
gateId: "contradictions-surfaced"
|
|
231
|
-
},
|
|
232
|
-
{
|
|
233
|
-
stepId: "plan-mitigation",
|
|
234
|
-
name: "Plan Mitigation",
|
|
235
|
-
description: "Choose mitigations with owners, reversibility, and verification paths",
|
|
236
|
-
requiredRoles: ["incident-commander", "reviewer"],
|
|
237
|
-
produces: ["mitigation-plan"],
|
|
238
|
-
gateId: "verification-covered"
|
|
239
|
-
}
|
|
240
|
-
],
|
|
241
|
-
requiredArtifacts: [
|
|
242
|
-
"incident-brief",
|
|
243
|
-
"contradiction-report",
|
|
244
|
-
"mitigation-plan"
|
|
245
|
-
],
|
|
246
|
-
gateCheckpoints: [
|
|
247
|
-
"memory-grounded",
|
|
248
|
-
"contradictions-surfaced",
|
|
249
|
-
"verification-covered"
|
|
250
|
-
]
|
|
251
|
-
},
|
|
252
|
-
{
|
|
253
|
-
workflowId: "architecture-decision",
|
|
254
|
-
name: "Architecture Decision",
|
|
255
|
-
description: "Ground architecture choices in cited precedent, explicit alternatives, and follow-up risk",
|
|
256
|
-
steps: [
|
|
257
|
-
{
|
|
258
|
-
stepId: "recall-precedent",
|
|
259
|
-
name: "Recall Precedent",
|
|
260
|
-
description: "Gather analogous decisions, trade-offs, reversals, and evidence already in the graph",
|
|
261
|
-
requiredRoles: ["context-compiler", "architect"],
|
|
262
|
-
produces: ["decision-brief"],
|
|
263
|
-
gateId: "memory-grounded"
|
|
264
|
-
},
|
|
265
|
-
{
|
|
266
|
-
stepId: "compare-options",
|
|
267
|
-
name: "Compare Options",
|
|
268
|
-
description: "Contrast viable paths, show what changes, and surface objections early",
|
|
269
|
-
requiredRoles: ["architect", "critic"],
|
|
270
|
-
produces: ["decision-brief"],
|
|
271
|
-
gateId: "decision-rationale-citable"
|
|
272
|
-
},
|
|
273
|
-
{
|
|
274
|
-
stepId: "record-decision",
|
|
275
|
-
name: "Record Decision",
|
|
276
|
-
description: "Capture the chosen path, cited rationale, and follow-up risks for later recall",
|
|
277
|
-
requiredRoles: ["architect"],
|
|
278
|
-
produces: ["decision-record"]
|
|
279
|
-
}
|
|
280
|
-
],
|
|
281
|
-
requiredArtifacts: ["decision-brief", "decision-record"],
|
|
282
|
-
gateCheckpoints: ["memory-grounded", "decision-rationale-citable"]
|
|
283
|
-
}
|
|
284
|
-
],
|
|
285
|
-
gates: [
|
|
286
|
-
{
|
|
287
|
-
gateId: "memory-grounded",
|
|
288
|
-
name: "Memory Grounded",
|
|
289
|
-
description: "The workflow is anchored in prior rationale, analogs, and failure memory before action",
|
|
290
|
-
criteria: [
|
|
291
|
-
{
|
|
292
|
-
criterionId: "precedent-cited",
|
|
293
|
-
description: "At least one prior change, incident, or decision is cited",
|
|
294
|
-
metric: "precedent_citations",
|
|
295
|
-
threshold: 1,
|
|
296
|
-
operator: "gte"
|
|
297
|
-
},
|
|
298
|
-
{
|
|
299
|
-
criterionId: "failure-log-checked",
|
|
300
|
-
description: "Relevant failed attempts or incident history were checked",
|
|
301
|
-
metric: "failure_log_checked",
|
|
302
|
-
threshold: 1,
|
|
303
|
-
operator: "eq"
|
|
304
|
-
}
|
|
305
|
-
],
|
|
306
|
-
severity: "blocking"
|
|
307
|
-
},
|
|
308
|
-
{
|
|
309
|
-
gateId: "rollback-ready",
|
|
310
|
-
name: "Rollback Ready",
|
|
311
|
-
description: "Risky migrations cannot proceed without explicit rollback and blast-radius coverage",
|
|
312
|
-
criteria: [
|
|
313
|
-
{
|
|
314
|
-
criterionId: "blast-radius-scoped",
|
|
315
|
-
description: "Blast radius is enumerated for the proposed change",
|
|
316
|
-
metric: "blast_radius_scoped",
|
|
317
|
-
threshold: 1,
|
|
318
|
-
operator: "eq"
|
|
319
|
-
},
|
|
320
|
-
{
|
|
321
|
-
criterionId: "rollback-path-defined",
|
|
322
|
-
description: "Rollback path is explicit and reversible",
|
|
323
|
-
metric: "rollback_path_defined",
|
|
324
|
-
threshold: 1,
|
|
325
|
-
operator: "eq"
|
|
326
|
-
}
|
|
327
|
-
],
|
|
328
|
-
severity: "blocking"
|
|
329
|
-
},
|
|
330
|
-
{
|
|
331
|
-
gateId: "review-risks-surfaced",
|
|
332
|
-
name: "Review Risks Surfaced",
|
|
333
|
-
description: "Review must explain what could regress and why approval is still justified",
|
|
334
|
-
criteria: [
|
|
335
|
-
{
|
|
336
|
-
criterionId: "risk-areas-documented",
|
|
337
|
-
description: "Risk areas and likely regressions are called out explicitly",
|
|
338
|
-
metric: "risk_areas_documented",
|
|
339
|
-
threshold: 1,
|
|
340
|
-
operator: "gte"
|
|
341
|
-
},
|
|
342
|
-
{
|
|
343
|
-
criterionId: "prior-regressions-checked",
|
|
344
|
-
description: "Reviewer checked analogous regressions or incidents",
|
|
345
|
-
metric: "prior_regressions_checked",
|
|
346
|
-
threshold: 1,
|
|
347
|
-
operator: "eq"
|
|
348
|
-
}
|
|
349
|
-
],
|
|
350
|
-
severity: "blocking"
|
|
351
|
-
},
|
|
352
|
-
{
|
|
353
|
-
gateId: "contradictions-surfaced",
|
|
354
|
-
name: "Contradictions Surfaced",
|
|
355
|
-
description: "Incidents should preserve competing hypotheses long enough to avoid false certainty",
|
|
356
|
-
criteria: [
|
|
357
|
-
{
|
|
358
|
-
criterionId: "multiple-hypotheses",
|
|
359
|
-
description: "At least two plausible hypotheses remain visible",
|
|
360
|
-
metric: "competing_hypotheses_count",
|
|
361
|
-
threshold: 2,
|
|
362
|
-
operator: "gte"
|
|
363
|
-
},
|
|
364
|
-
{
|
|
365
|
-
criterionId: "contradictions-reviewed",
|
|
366
|
-
description: "Relevant contradictions or tensions were reviewed",
|
|
367
|
-
metric: "contradictions_reviewed",
|
|
368
|
-
threshold: 1,
|
|
369
|
-
operator: "gte"
|
|
370
|
-
}
|
|
371
|
-
],
|
|
372
|
-
severity: "blocking"
|
|
373
|
-
},
|
|
374
|
-
{
|
|
375
|
-
gateId: "decision-rationale-citable",
|
|
376
|
-
name: "Decision Rationale Citable",
|
|
377
|
-
description: "Architecture choices should cite prior rationale and compare viable alternatives",
|
|
378
|
-
criteria: [
|
|
379
|
-
{
|
|
380
|
-
criterionId: "options-compared",
|
|
381
|
-
description: "At least two options are compared before choosing one",
|
|
382
|
-
metric: "options_compared",
|
|
383
|
-
threshold: 2,
|
|
384
|
-
operator: "gte"
|
|
385
|
-
},
|
|
386
|
-
{
|
|
387
|
-
criterionId: "prior-decisions-cited",
|
|
388
|
-
description: "Decision cites prior beliefs, ADRs, or incidents",
|
|
389
|
-
metric: "prior_decisions_cited",
|
|
390
|
-
threshold: 1,
|
|
391
|
-
operator: "gte"
|
|
392
|
-
}
|
|
393
|
-
],
|
|
394
|
-
severity: "blocking"
|
|
395
|
-
},
|
|
396
|
-
{
|
|
397
|
-
gateId: "verification-covered",
|
|
398
|
-
name: "Verification Covered",
|
|
399
|
-
description: "Approval, rollout, and mitigation all require named verification paths",
|
|
400
|
-
criteria: [
|
|
401
|
-
{
|
|
402
|
-
criterionId: "checks-defined",
|
|
403
|
-
description: "At least one explicit verification path is named",
|
|
404
|
-
metric: "verification_paths_defined",
|
|
405
|
-
threshold: 1,
|
|
406
|
-
operator: "gte"
|
|
407
|
-
},
|
|
408
|
-
{
|
|
409
|
-
criterionId: "owners-named",
|
|
410
|
-
description: "Owners or on-call responsibility are explicit",
|
|
411
|
-
metric: "owner_count",
|
|
412
|
-
threshold: 1,
|
|
413
|
-
operator: "gte"
|
|
414
|
-
}
|
|
415
|
-
],
|
|
416
|
-
severity: "blocking"
|
|
417
|
-
}
|
|
418
|
-
],
|
|
419
|
-
artifacts: [
|
|
420
|
-
{
|
|
421
|
-
artifactId: "memory-brief",
|
|
422
|
-
name: "Memory Brief",
|
|
423
|
-
description: "A reusable brief of analogous changes, prior rationale, failed attempts, and contradictions",
|
|
424
|
-
stage: "recall-history",
|
|
425
|
-
contentSchema: {
|
|
426
|
-
type: "object",
|
|
427
|
-
properties: {
|
|
428
|
-
analogousChanges: { type: "array", items: { type: "string" } },
|
|
429
|
-
priorDecisions: { type: "array", items: { type: "string" } },
|
|
430
|
-
failedAttempts: { type: "array", items: { type: "string" } },
|
|
431
|
-
contradictions: { type: "array", items: { type: "string" } }
|
|
432
|
-
},
|
|
433
|
-
required: ["analogousChanges", "priorDecisions"]
|
|
434
|
-
},
|
|
435
|
-
requiredFields: ["analogousChanges", "priorDecisions"]
|
|
436
|
-
},
|
|
437
|
-
{
|
|
438
|
-
artifactId: "migration-plan",
|
|
439
|
-
name: "Migration Plan",
|
|
440
|
-
description: "Blast radius, rollback path, rollout checkpoints, and verification plan",
|
|
441
|
-
stage: "plan-rollout",
|
|
442
|
-
contentSchema: {
|
|
443
|
-
type: "object",
|
|
444
|
-
properties: {
|
|
445
|
-
blastRadius: { type: "array", items: { type: "string" } },
|
|
446
|
-
rollbackPlan: { type: "string" },
|
|
447
|
-
verificationPath: { type: "array", items: { type: "string" } },
|
|
448
|
-
canarySteps: { type: "array", items: { type: "string" } }
|
|
449
|
-
},
|
|
450
|
-
required: ["blastRadius", "rollbackPlan", "verificationPath"]
|
|
451
|
-
},
|
|
452
|
-
requiredFields: ["blastRadius", "rollbackPlan", "verificationPath"]
|
|
453
|
-
},
|
|
454
|
-
{
|
|
455
|
-
artifactId: "verification-checklist",
|
|
456
|
-
name: "Verification Checklist",
|
|
457
|
-
description: "Named checks, owners, and pass/fail criteria for rollout or approval",
|
|
458
|
-
stage: "verify-rollout",
|
|
459
|
-
contentSchema: {
|
|
460
|
-
type: "object",
|
|
461
|
-
properties: {
|
|
462
|
-
checks: { type: "array", items: { type: "string" } },
|
|
463
|
-
owners: { type: "array", items: { type: "string" } },
|
|
464
|
-
passCriteria: { type: "array", items: { type: "string" } }
|
|
465
|
-
},
|
|
466
|
-
required: ["checks", "owners"]
|
|
467
|
-
},
|
|
468
|
-
requiredFields: ["checks", "owners"]
|
|
469
|
-
},
|
|
470
|
-
{
|
|
471
|
-
artifactId: "review-context",
|
|
472
|
-
name: "Review Context",
|
|
473
|
-
description: "Prior rationale, related diffs, incidents, and failure history relevant to a review",
|
|
474
|
-
stage: "recall-review-context",
|
|
475
|
-
contentSchema: {
|
|
476
|
-
type: "object",
|
|
477
|
-
properties: {
|
|
478
|
-
rationaleLinks: { type: "array", items: { type: "string" } },
|
|
479
|
-
analogousDiffs: { type: "array", items: { type: "string" } },
|
|
480
|
-
relatedIncidents: { type: "array", items: { type: "string" } }
|
|
481
|
-
},
|
|
482
|
-
required: ["rationaleLinks"]
|
|
483
|
-
},
|
|
484
|
-
requiredFields: ["rationaleLinks"]
|
|
485
|
-
},
|
|
486
|
-
{
|
|
487
|
-
artifactId: "review-findings",
|
|
488
|
-
name: "Review Findings",
|
|
489
|
-
description: "What could regress, what evidence was checked, and whether the change should be blocked",
|
|
490
|
-
stage: "inspect-diff",
|
|
491
|
-
contentSchema: {
|
|
492
|
-
type: "object",
|
|
493
|
-
properties: {
|
|
494
|
-
findings: { type: "array", items: { type: "string" } },
|
|
495
|
-
regressionsChecked: { type: "array", items: { type: "string" } },
|
|
496
|
-
blockReason: { type: "string" }
|
|
497
|
-
},
|
|
498
|
-
required: ["findings", "regressionsChecked"]
|
|
499
|
-
},
|
|
500
|
-
requiredFields: ["findings", "regressionsChecked"]
|
|
501
|
-
},
|
|
502
|
-
{
|
|
503
|
-
artifactId: "incident-brief",
|
|
504
|
-
name: "Incident Brief",
|
|
505
|
-
description: "Signals, recent changes, competing hypotheses, and precedent incidents",
|
|
506
|
-
stage: "collect-signal",
|
|
507
|
-
contentSchema: {
|
|
508
|
-
type: "object",
|
|
509
|
-
properties: {
|
|
510
|
-
symptoms: { type: "array", items: { type: "string" } },
|
|
511
|
-
recentChanges: { type: "array", items: { type: "string" } },
|
|
512
|
-
competingHypotheses: { type: "array", items: { type: "string" } },
|
|
513
|
-
precedentIncidents: { type: "array", items: { type: "string" } }
|
|
514
|
-
},
|
|
515
|
-
required: ["symptoms", "competingHypotheses"]
|
|
516
|
-
},
|
|
517
|
-
requiredFields: ["symptoms", "competingHypotheses"]
|
|
518
|
-
},
|
|
519
|
-
{
|
|
520
|
-
artifactId: "contradiction-report",
|
|
521
|
-
name: "Contradiction Report",
|
|
522
|
-
description: "Active contradictions, why they matter, and what evidence could collapse them",
|
|
523
|
-
stage: "surface-contradictions",
|
|
524
|
-
contentSchema: {
|
|
525
|
-
type: "object",
|
|
526
|
-
properties: {
|
|
527
|
-
contradictions: { type: "array", items: { type: "string" } },
|
|
528
|
-
likelyRootCauses: { type: "array", items: { type: "string" } },
|
|
529
|
-
missingEvidence: { type: "array", items: { type: "string" } }
|
|
530
|
-
},
|
|
531
|
-
required: ["contradictions", "likelyRootCauses"]
|
|
532
|
-
},
|
|
533
|
-
requiredFields: ["contradictions", "likelyRootCauses"]
|
|
534
|
-
},
|
|
535
|
-
{
|
|
536
|
-
artifactId: "mitigation-plan",
|
|
537
|
-
name: "Mitigation Plan",
|
|
538
|
-
description: "Chosen mitigation, rollback path, and verification ownership for an incident",
|
|
539
|
-
stage: "plan-mitigation",
|
|
540
|
-
contentSchema: {
|
|
541
|
-
type: "object",
|
|
542
|
-
properties: {
|
|
543
|
-
mitigationSteps: { type: "array", items: { type: "string" } },
|
|
544
|
-
rollbackPlan: { type: "string" },
|
|
545
|
-
owners: { type: "array", items: { type: "string" } }
|
|
546
|
-
},
|
|
547
|
-
required: ["mitigationSteps", "owners"]
|
|
548
|
-
},
|
|
549
|
-
requiredFields: ["mitigationSteps", "owners"]
|
|
550
|
-
},
|
|
551
|
-
{
|
|
552
|
-
artifactId: "decision-brief",
|
|
553
|
-
name: "Decision Brief",
|
|
554
|
-
description: "Options, cited precedent, trade-offs, and objections for an architecture decision",
|
|
555
|
-
stage: "compare-options",
|
|
556
|
-
contentSchema: {
|
|
557
|
-
type: "object",
|
|
558
|
-
properties: {
|
|
559
|
-
options: { type: "array", items: { type: "string" } },
|
|
560
|
-
citedPrecedent: { type: "array", items: { type: "string" } },
|
|
561
|
-
objections: { type: "array", items: { type: "string" } }
|
|
562
|
-
},
|
|
563
|
-
required: ["options", "citedPrecedent"]
|
|
564
|
-
},
|
|
565
|
-
requiredFields: ["options", "citedPrecedent"]
|
|
566
|
-
},
|
|
567
|
-
{
|
|
568
|
-
artifactId: "decision-record",
|
|
569
|
-
name: "Decision Record",
|
|
570
|
-
description: "Chosen path, why it won, what it supersedes, and what follow-up remains open",
|
|
571
|
-
stage: "record-decision",
|
|
572
|
-
contentSchema: {
|
|
573
|
-
type: "object",
|
|
574
|
-
properties: {
|
|
575
|
-
decision: { type: "string" },
|
|
576
|
-
rationale: { type: "array", items: { type: "string" } },
|
|
577
|
-
supersedes: { type: "array", items: { type: "string" } },
|
|
578
|
-
followUps: { type: "array", items: { type: "string" } }
|
|
579
|
-
},
|
|
580
|
-
required: ["decision", "rationale"]
|
|
581
|
-
},
|
|
582
|
-
requiredFields: ["decision", "rationale"]
|
|
583
|
-
}
|
|
584
|
-
],
|
|
585
|
-
roles: [
|
|
586
|
-
{
|
|
587
|
-
roleId: "context-compiler",
|
|
588
|
-
name: "Context Compiler",
|
|
589
|
-
description: "Compiles prior rationale, analogs, and failure memory into reusable first-hour context",
|
|
590
|
-
perspective: "History-first, evidence-weighted context assembly",
|
|
591
|
-
optimizesFor: "recall quality and anti-repetition coverage",
|
|
592
|
-
mayBlock: false
|
|
593
|
-
},
|
|
594
|
-
{
|
|
595
|
-
roleId: "migration-owner",
|
|
596
|
-
name: "Migration Owner",
|
|
597
|
-
description: "Scopes rollout blast radius, rollback, sequencing, and compatibility risk",
|
|
598
|
-
perspective: "Operational caution with explicit rollback discipline",
|
|
599
|
-
optimizesFor: "safe rollout planning",
|
|
600
|
-
mayBlock: false
|
|
601
|
-
},
|
|
602
|
-
{
|
|
603
|
-
roleId: "reviewer",
|
|
604
|
-
name: "Reviewer",
|
|
605
|
-
description: "Evaluates risky changes against prior regressions, evidence, and missing checks",
|
|
606
|
-
perspective: "Evidence-backed change approval with regression awareness",
|
|
607
|
-
optimizesFor: "defect prevention and clear approval rationale",
|
|
608
|
-
mayBlock: true
|
|
609
|
-
},
|
|
610
|
-
{
|
|
611
|
-
roleId: "incident-commander",
|
|
612
|
-
name: "Incident Commander",
|
|
613
|
-
description: "Maintains multiple plausible explanations while driving mitigation decisions",
|
|
614
|
-
perspective: "Fast, reversible action without collapsing uncertainty too early",
|
|
615
|
-
optimizesFor: "time-to-mitigation with preserved reasoning integrity",
|
|
616
|
-
mayBlock: false
|
|
617
|
-
},
|
|
618
|
-
{
|
|
619
|
-
roleId: "architect",
|
|
620
|
-
name: "Architect",
|
|
621
|
-
description: "Turns competing options into explicit decisions with cited precedent and follow-up risk",
|
|
622
|
-
perspective: "Trade-off clarity and long-term maintainability",
|
|
623
|
-
optimizesFor: "decision quality and rationale reuse",
|
|
624
|
-
mayBlock: false
|
|
625
|
-
},
|
|
626
|
-
{
|
|
627
|
-
roleId: "critic",
|
|
628
|
-
name: "Critic",
|
|
629
|
-
description: "Finds weak assumptions, missing rollback paths, and untested contradictions",
|
|
630
|
-
perspective: "Skeptical, adversarial, and detail-oriented",
|
|
631
|
-
optimizesFor: "early detection of brittle plans",
|
|
632
|
-
mayBlock: true
|
|
633
|
-
}
|
|
634
|
-
],
|
|
63
|
+
// src/domain-pack/packs/engineering-accelerator-tail.ts
|
|
64
|
+
var ENGINEERING_ACCELERATOR_TAIL = {
|
|
635
65
|
inquiryShaping: {
|
|
636
66
|
questionTemplates: [
|
|
637
67
|
{
|
|
@@ -1118,229 +548,804 @@ var ENGINEERING_ACCELERATOR_PACK = defineDomainPack({
|
|
|
1118
548
|
parentSlug: "migrations",
|
|
1119
549
|
ontologyId: "software-entities"
|
|
1120
550
|
},
|
|
1121
|
-
{
|
|
1122
|
-
slug: "review-briefs",
|
|
1123
|
-
name: "Review Briefs",
|
|
1124
|
-
description: "Diff-scoped risk briefs grounded in prior regressions and rationale",
|
|
1125
|
-
parentSlug: "reviews",
|
|
1126
|
-
ontologyId: "software-entities"
|
|
551
|
+
{
|
|
552
|
+
slug: "review-briefs",
|
|
553
|
+
name: "Review Briefs",
|
|
554
|
+
description: "Diff-scoped risk briefs grounded in prior regressions and rationale",
|
|
555
|
+
parentSlug: "reviews",
|
|
556
|
+
ontologyId: "software-entities"
|
|
557
|
+
},
|
|
558
|
+
{
|
|
559
|
+
slug: "regression-history",
|
|
560
|
+
name: "Regression History",
|
|
561
|
+
description: "Past regressions and approval misses that should influence current reviews",
|
|
562
|
+
parentSlug: "reviews",
|
|
563
|
+
ontologyId: "software-entities"
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
slug: "active-incidents",
|
|
567
|
+
name: "Active Incidents",
|
|
568
|
+
description: "Current incidents with competing hypotheses, mitigations, and contradictions",
|
|
569
|
+
parentSlug: "incidents",
|
|
570
|
+
ontologyId: "software-entities"
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
slug: "incident-postmortems",
|
|
574
|
+
name: "Incident Postmortems",
|
|
575
|
+
description: "Resolved incidents with preserved rationale and follow-up learnings",
|
|
576
|
+
parentSlug: "incidents",
|
|
577
|
+
ontologyId: "software-entities"
|
|
578
|
+
},
|
|
579
|
+
{
|
|
580
|
+
slug: "adrs",
|
|
581
|
+
name: "Architecture Decision Records",
|
|
582
|
+
description: "Citable architecture records with precedent, objections, and supersessions",
|
|
583
|
+
parentSlug: "architecture",
|
|
584
|
+
ontologyId: "software-entities"
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
slug: "interface-contracts",
|
|
588
|
+
name: "Interface Contracts",
|
|
589
|
+
description: "APIs, boundaries, and contract deltas that architecture work depends on",
|
|
590
|
+
parentSlug: "architecture",
|
|
591
|
+
ontologyId: "software-entities"
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
slug: "failed-attempts",
|
|
595
|
+
name: "Failed Attempts",
|
|
596
|
+
description: "Anti-repetition log for engineering decisions and implementation dead ends",
|
|
597
|
+
parentSlug: "decision-memory",
|
|
598
|
+
ontologyId: "software-entities"
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
slug: "rationale-recall",
|
|
602
|
+
name: "Rationale Recall",
|
|
603
|
+
description: "Recalled rationale snippets and analogs worth citing before new work",
|
|
604
|
+
parentSlug: "decision-memory",
|
|
605
|
+
ontologyId: "software-entities"
|
|
606
|
+
}
|
|
607
|
+
],
|
|
608
|
+
installProfiles: [
|
|
609
|
+
{
|
|
610
|
+
profileId: "claude-code",
|
|
611
|
+
name: "Claude Code Engineering Kit",
|
|
612
|
+
description: "Installs Claude-native hooks, commands, agent catalog, and first-hour engineering prompts on top of Lucern.",
|
|
613
|
+
runtimeTarget: "claude-code",
|
|
614
|
+
promptIds: [
|
|
615
|
+
"claude-quick-reference",
|
|
616
|
+
"build-command",
|
|
617
|
+
"architect-command",
|
|
618
|
+
"pipeline-command",
|
|
619
|
+
"pr-command",
|
|
620
|
+
"lucern-generate-questions",
|
|
621
|
+
"lucern-contradiction-analysis"
|
|
622
|
+
],
|
|
623
|
+
toolIds: [
|
|
624
|
+
"start-investigation",
|
|
625
|
+
"record-scope-learning",
|
|
626
|
+
"record-attempt",
|
|
627
|
+
"pipeline-snapshot",
|
|
628
|
+
"session-init",
|
|
629
|
+
"tool-log",
|
|
630
|
+
"build-bash-gate",
|
|
631
|
+
"lucern-cli-init",
|
|
632
|
+
"kit-install"
|
|
633
|
+
],
|
|
634
|
+
assetIds: [
|
|
635
|
+
"claude-instructions",
|
|
636
|
+
"mcp-config",
|
|
637
|
+
"kit-manifest",
|
|
638
|
+
"lucern-launcher",
|
|
639
|
+
"lucern-shell-wrapper",
|
|
640
|
+
"lucern-cli-script",
|
|
641
|
+
"claude-settings",
|
|
642
|
+
"permission-gate-hook",
|
|
643
|
+
"inbox-check-hook",
|
|
644
|
+
"prompt-router-hook",
|
|
645
|
+
"writeback-gate-hook",
|
|
646
|
+
"build-command-doc",
|
|
647
|
+
"architect-command-doc",
|
|
648
|
+
"pipeline-command-doc",
|
|
649
|
+
"pr-command-doc",
|
|
650
|
+
"claude-agent-catalog",
|
|
651
|
+
"claude-skill-catalog",
|
|
652
|
+
"hooks-doc",
|
|
653
|
+
"setup-ui"
|
|
654
|
+
],
|
|
655
|
+
defaultTopicSlugs: [
|
|
656
|
+
"migrations",
|
|
657
|
+
"reviews",
|
|
658
|
+
"incidents",
|
|
659
|
+
"architecture",
|
|
660
|
+
"decision-memory"
|
|
661
|
+
]
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
profileId: "codex",
|
|
665
|
+
name: "Codex Engineering Kit",
|
|
666
|
+
description: "Installs the Codex bridge, Lucern MCP wiring, and the same pack-level workflows without Claude-specific hooks.",
|
|
667
|
+
runtimeTarget: "codex",
|
|
668
|
+
promptIds: [
|
|
669
|
+
"build-command",
|
|
670
|
+
"architect-command",
|
|
671
|
+
"pipeline-command",
|
|
672
|
+
"pr-command",
|
|
673
|
+
"lucern-generate-questions",
|
|
674
|
+
"lucern-contradiction-analysis"
|
|
675
|
+
],
|
|
676
|
+
toolIds: [
|
|
677
|
+
"start-investigation",
|
|
678
|
+
"record-scope-learning",
|
|
679
|
+
"record-attempt",
|
|
680
|
+
"pipeline-snapshot",
|
|
681
|
+
"lucern-cli-init",
|
|
682
|
+
"kit-install"
|
|
683
|
+
],
|
|
684
|
+
assetIds: [
|
|
685
|
+
"codex-bridge",
|
|
686
|
+
"mcp-config",
|
|
687
|
+
"kit-manifest",
|
|
688
|
+
"lucern-launcher",
|
|
689
|
+
"lucern-shell-wrapper",
|
|
690
|
+
"lucern-cli-script",
|
|
691
|
+
"build-command-doc",
|
|
692
|
+
"architect-command-doc",
|
|
693
|
+
"pipeline-command-doc",
|
|
694
|
+
"pr-command-doc",
|
|
695
|
+
"claude-skill-catalog",
|
|
696
|
+
"skills-sync-script",
|
|
697
|
+
"hooks-doc",
|
|
698
|
+
"setup-ui"
|
|
699
|
+
],
|
|
700
|
+
defaultTopicSlugs: [
|
|
701
|
+
"migrations",
|
|
702
|
+
"reviews",
|
|
703
|
+
"incidents",
|
|
704
|
+
"architecture",
|
|
705
|
+
"decision-memory"
|
|
706
|
+
]
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
profileId: "hybrid",
|
|
710
|
+
name: "Hybrid Engineering Kit",
|
|
711
|
+
description: "Installs both Claude and Codex entry surfaces against one Lucern-native engineering operating system.",
|
|
712
|
+
runtimeTarget: "hybrid",
|
|
713
|
+
promptIds: [
|
|
714
|
+
"claude-quick-reference",
|
|
715
|
+
"build-command",
|
|
716
|
+
"architect-command",
|
|
717
|
+
"pipeline-command",
|
|
718
|
+
"pr-command",
|
|
719
|
+
"lucern-generate-questions",
|
|
720
|
+
"lucern-contradiction-analysis"
|
|
721
|
+
],
|
|
722
|
+
toolIds: [
|
|
723
|
+
"start-investigation",
|
|
724
|
+
"record-scope-learning",
|
|
725
|
+
"record-attempt",
|
|
726
|
+
"pipeline-snapshot",
|
|
727
|
+
"session-init",
|
|
728
|
+
"tool-log",
|
|
729
|
+
"build-bash-gate",
|
|
730
|
+
"lucern-cli-init",
|
|
731
|
+
"kit-install"
|
|
732
|
+
],
|
|
733
|
+
assetIds: [
|
|
734
|
+
"claude-instructions",
|
|
735
|
+
"codex-bridge",
|
|
736
|
+
"mcp-config",
|
|
737
|
+
"kit-manifest",
|
|
738
|
+
"lucern-launcher",
|
|
739
|
+
"lucern-shell-wrapper",
|
|
740
|
+
"lucern-cli-script",
|
|
741
|
+
"claude-settings",
|
|
742
|
+
"permission-gate-hook",
|
|
743
|
+
"inbox-check-hook",
|
|
744
|
+
"prompt-router-hook",
|
|
745
|
+
"writeback-gate-hook",
|
|
746
|
+
"build-command-doc",
|
|
747
|
+
"architect-command-doc",
|
|
748
|
+
"pipeline-command-doc",
|
|
749
|
+
"pr-command-doc",
|
|
750
|
+
"claude-agent-catalog",
|
|
751
|
+
"claude-skill-catalog",
|
|
752
|
+
"skills-sync-script",
|
|
753
|
+
"hooks-doc",
|
|
754
|
+
"setup-ui"
|
|
755
|
+
],
|
|
756
|
+
defaultTopicSlugs: [
|
|
757
|
+
"migrations",
|
|
758
|
+
"reviews",
|
|
759
|
+
"incidents",
|
|
760
|
+
"architecture",
|
|
761
|
+
"decision-memory"
|
|
762
|
+
]
|
|
763
|
+
}
|
|
764
|
+
]
|
|
765
|
+
},
|
|
766
|
+
appPackKeys: [
|
|
767
|
+
"chat-v1",
|
|
768
|
+
"documents-v1",
|
|
769
|
+
"epistemic-algorithms-v1",
|
|
770
|
+
"graph-visualization-v1",
|
|
771
|
+
"task-management-v1"
|
|
772
|
+
],
|
|
773
|
+
methodologyPackId: "developer"
|
|
774
|
+
};
|
|
775
|
+
|
|
776
|
+
// src/domain-pack/packs/engineering-accelerator.ts
|
|
777
|
+
var ENGINEERING_ACCELERATOR_PACK = defineDomainPack({
|
|
778
|
+
packId: "engineering-accelerator",
|
|
779
|
+
name: "Engineering Accelerator",
|
|
780
|
+
version: "1.0.0",
|
|
781
|
+
ontologyBindings: [
|
|
782
|
+
{
|
|
783
|
+
ontologyId: "software-entities",
|
|
784
|
+
versionConstraint: "^1.0.0",
|
|
785
|
+
required: true,
|
|
786
|
+
provisionMode: "seed",
|
|
787
|
+
seedRef: "packages/pack-host/src/domain-pack/ontology/software-entities-v1.ts",
|
|
788
|
+
requiredEntityTypes: [
|
|
789
|
+
"repository",
|
|
790
|
+
"service",
|
|
791
|
+
"module",
|
|
792
|
+
"workflow",
|
|
793
|
+
"incident",
|
|
794
|
+
"migration",
|
|
795
|
+
"decision_record",
|
|
796
|
+
"agent"
|
|
797
|
+
],
|
|
798
|
+
requiredEdgeTypes: [
|
|
799
|
+
"depends_on",
|
|
800
|
+
"owns",
|
|
801
|
+
"calls",
|
|
802
|
+
"blocks",
|
|
803
|
+
"reviews",
|
|
804
|
+
"mitigates",
|
|
805
|
+
"supersedes"
|
|
806
|
+
]
|
|
807
|
+
}
|
|
808
|
+
],
|
|
809
|
+
topicRoots: [
|
|
810
|
+
{
|
|
811
|
+
slug: "migrations",
|
|
812
|
+
name: "Migrations",
|
|
813
|
+
description: "Schema, API, and runtime migrations with blast-radius, rollback, and parity memory",
|
|
814
|
+
ontologyId: "software-entities"
|
|
815
|
+
},
|
|
816
|
+
{
|
|
817
|
+
slug: "reviews",
|
|
818
|
+
name: "Reviews",
|
|
819
|
+
description: "Pull-request and change-review workflows grounded in prior rationale and regressions",
|
|
820
|
+
ontologyId: "software-entities"
|
|
821
|
+
},
|
|
822
|
+
{
|
|
823
|
+
slug: "incidents",
|
|
824
|
+
name: "Incidents",
|
|
825
|
+
description: "Incident response driven by competing hypotheses, contradictions, and mitigations",
|
|
826
|
+
ontologyId: "software-entities"
|
|
827
|
+
},
|
|
828
|
+
{
|
|
829
|
+
slug: "architecture",
|
|
830
|
+
name: "Architecture",
|
|
831
|
+
description: "Architecture decisions, interface trade-offs, and precedent-aware rationale recall",
|
|
832
|
+
ontologyId: "software-entities"
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
slug: "decision-memory",
|
|
836
|
+
name: "Decision Memory",
|
|
837
|
+
description: "Cross-cutting rationale recall, failed attempts, and analog reuse across engineering work",
|
|
838
|
+
ontologyId: "software-entities"
|
|
839
|
+
}
|
|
840
|
+
],
|
|
841
|
+
workflows: [
|
|
842
|
+
{
|
|
843
|
+
workflowId: "migration-readiness",
|
|
844
|
+
name: "Migration Readiness",
|
|
845
|
+
description: "Recall similar migrations, map blast radius, and define rollback before rollout",
|
|
846
|
+
steps: [
|
|
847
|
+
{
|
|
848
|
+
stepId: "recall-history",
|
|
849
|
+
name: "Recall History",
|
|
850
|
+
description: "Compile analogous migrations, prior rationale, failed attempts, and compatibility constraints",
|
|
851
|
+
requiredRoles: ["context-compiler", "migration-owner"],
|
|
852
|
+
produces: ["memory-brief"],
|
|
853
|
+
gateId: "memory-grounded"
|
|
854
|
+
},
|
|
855
|
+
{
|
|
856
|
+
stepId: "plan-rollout",
|
|
857
|
+
name: "Plan Rollout",
|
|
858
|
+
description: "Define blast radius, sequencing, rollback, and verification checkpoints",
|
|
859
|
+
requiredRoles: ["migration-owner", "critic"],
|
|
860
|
+
produces: ["migration-plan"],
|
|
861
|
+
gateId: "rollback-ready"
|
|
862
|
+
},
|
|
863
|
+
{
|
|
864
|
+
stepId: "verify-rollout",
|
|
865
|
+
name: "Verify Rollout",
|
|
866
|
+
description: "Confirm canary, rollback, and parity checks are explicit before execution",
|
|
867
|
+
requiredRoles: ["reviewer"],
|
|
868
|
+
produces: ["verification-checklist"],
|
|
869
|
+
gateId: "verification-covered"
|
|
870
|
+
}
|
|
871
|
+
],
|
|
872
|
+
requiredArtifacts: [
|
|
873
|
+
"memory-brief",
|
|
874
|
+
"migration-plan",
|
|
875
|
+
"verification-checklist"
|
|
876
|
+
],
|
|
877
|
+
gateCheckpoints: [
|
|
878
|
+
"memory-grounded",
|
|
879
|
+
"rollback-ready",
|
|
880
|
+
"verification-covered"
|
|
881
|
+
]
|
|
882
|
+
},
|
|
883
|
+
{
|
|
884
|
+
workflowId: "pull-request-review",
|
|
885
|
+
name: "Pull Request Review",
|
|
886
|
+
description: "Use prior rationale, regressions, and verification history to review risky changes faster",
|
|
887
|
+
steps: [
|
|
888
|
+
{
|
|
889
|
+
stepId: "recall-review-context",
|
|
890
|
+
name: "Recall Review Context",
|
|
891
|
+
description: "Load earlier decisions, similar diffs, failed attempts, and relevant incidents",
|
|
892
|
+
requiredRoles: ["context-compiler", "reviewer"],
|
|
893
|
+
produces: ["review-context"],
|
|
894
|
+
gateId: "memory-grounded"
|
|
895
|
+
},
|
|
896
|
+
{
|
|
897
|
+
stepId: "inspect-diff",
|
|
898
|
+
name: "Inspect Diff",
|
|
899
|
+
description: "Surface risk areas, stale assumptions, and regressions that should block approval",
|
|
900
|
+
requiredRoles: ["reviewer", "critic"],
|
|
901
|
+
produces: ["review-findings"],
|
|
902
|
+
gateId: "review-risks-surfaced"
|
|
903
|
+
},
|
|
904
|
+
{
|
|
905
|
+
stepId: "verify-changes",
|
|
906
|
+
name: "Verify Changes",
|
|
907
|
+
description: "Tie approval to explicit typecheck, test, and integration evidence",
|
|
908
|
+
requiredRoles: ["reviewer"],
|
|
909
|
+
produces: ["verification-checklist"],
|
|
910
|
+
gateId: "verification-covered"
|
|
911
|
+
}
|
|
912
|
+
],
|
|
913
|
+
requiredArtifacts: [
|
|
914
|
+
"review-context",
|
|
915
|
+
"review-findings",
|
|
916
|
+
"verification-checklist"
|
|
917
|
+
],
|
|
918
|
+
gateCheckpoints: [
|
|
919
|
+
"memory-grounded",
|
|
920
|
+
"review-risks-surfaced",
|
|
921
|
+
"verification-covered"
|
|
922
|
+
]
|
|
923
|
+
},
|
|
924
|
+
{
|
|
925
|
+
workflowId: "incident-response",
|
|
926
|
+
name: "Incident Response",
|
|
927
|
+
description: "Treat incidents as contradiction-heavy reasoning tasks before committing to a root cause",
|
|
928
|
+
steps: [
|
|
929
|
+
{
|
|
930
|
+
stepId: "collect-signal",
|
|
931
|
+
name: "Collect Signal",
|
|
932
|
+
description: "Assemble symptoms, recent changes, precedent incidents, and active hypotheses",
|
|
933
|
+
requiredRoles: ["context-compiler", "incident-commander"],
|
|
934
|
+
produces: ["incident-brief"],
|
|
935
|
+
gateId: "memory-grounded"
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
stepId: "surface-contradictions",
|
|
939
|
+
name: "Surface Contradictions",
|
|
940
|
+
description: "Make competing explanations explicit before mitigation narrows the search space",
|
|
941
|
+
requiredRoles: ["incident-commander", "critic"],
|
|
942
|
+
produces: ["contradiction-report"],
|
|
943
|
+
gateId: "contradictions-surfaced"
|
|
944
|
+
},
|
|
945
|
+
{
|
|
946
|
+
stepId: "plan-mitigation",
|
|
947
|
+
name: "Plan Mitigation",
|
|
948
|
+
description: "Choose mitigations with owners, reversibility, and verification paths",
|
|
949
|
+
requiredRoles: ["incident-commander", "reviewer"],
|
|
950
|
+
produces: ["mitigation-plan"],
|
|
951
|
+
gateId: "verification-covered"
|
|
952
|
+
}
|
|
953
|
+
],
|
|
954
|
+
requiredArtifacts: [
|
|
955
|
+
"incident-brief",
|
|
956
|
+
"contradiction-report",
|
|
957
|
+
"mitigation-plan"
|
|
958
|
+
],
|
|
959
|
+
gateCheckpoints: [
|
|
960
|
+
"memory-grounded",
|
|
961
|
+
"contradictions-surfaced",
|
|
962
|
+
"verification-covered"
|
|
963
|
+
]
|
|
964
|
+
},
|
|
965
|
+
{
|
|
966
|
+
workflowId: "architecture-decision",
|
|
967
|
+
name: "Architecture Decision",
|
|
968
|
+
description: "Ground architecture choices in cited precedent, explicit alternatives, and follow-up risk",
|
|
969
|
+
steps: [
|
|
970
|
+
{
|
|
971
|
+
stepId: "recall-precedent",
|
|
972
|
+
name: "Recall Precedent",
|
|
973
|
+
description: "Gather analogous decisions, trade-offs, reversals, and evidence already in the graph",
|
|
974
|
+
requiredRoles: ["context-compiler", "architect"],
|
|
975
|
+
produces: ["decision-brief"],
|
|
976
|
+
gateId: "memory-grounded"
|
|
977
|
+
},
|
|
978
|
+
{
|
|
979
|
+
stepId: "compare-options",
|
|
980
|
+
name: "Compare Options",
|
|
981
|
+
description: "Contrast viable paths, show what changes, and surface objections early",
|
|
982
|
+
requiredRoles: ["architect", "critic"],
|
|
983
|
+
produces: ["decision-brief"],
|
|
984
|
+
gateId: "decision-rationale-citable"
|
|
985
|
+
},
|
|
986
|
+
{
|
|
987
|
+
stepId: "record-decision",
|
|
988
|
+
name: "Record Decision",
|
|
989
|
+
description: "Capture the chosen path, cited rationale, and follow-up risks for later recall",
|
|
990
|
+
requiredRoles: ["architect"],
|
|
991
|
+
produces: ["decision-record"]
|
|
992
|
+
}
|
|
993
|
+
],
|
|
994
|
+
requiredArtifacts: ["decision-brief", "decision-record"],
|
|
995
|
+
gateCheckpoints: ["memory-grounded", "decision-rationale-citable"]
|
|
996
|
+
}
|
|
997
|
+
],
|
|
998
|
+
gates: [
|
|
999
|
+
{
|
|
1000
|
+
gateId: "memory-grounded",
|
|
1001
|
+
name: "Memory Grounded",
|
|
1002
|
+
description: "The workflow is anchored in prior rationale, analogs, and failure memory before action",
|
|
1003
|
+
criteria: [
|
|
1004
|
+
{
|
|
1005
|
+
criterionId: "precedent-cited",
|
|
1006
|
+
description: "At least one prior change, incident, or decision is cited",
|
|
1007
|
+
metric: "precedent_citations",
|
|
1008
|
+
threshold: 1,
|
|
1009
|
+
operator: "gte"
|
|
1010
|
+
},
|
|
1011
|
+
{
|
|
1012
|
+
criterionId: "failure-log-checked",
|
|
1013
|
+
description: "Relevant failed attempts or incident history were checked",
|
|
1014
|
+
metric: "failure_log_checked",
|
|
1015
|
+
threshold: 1,
|
|
1016
|
+
operator: "eq"
|
|
1017
|
+
}
|
|
1018
|
+
],
|
|
1019
|
+
severity: "blocking"
|
|
1020
|
+
},
|
|
1021
|
+
{
|
|
1022
|
+
gateId: "rollback-ready",
|
|
1023
|
+
name: "Rollback Ready",
|
|
1024
|
+
description: "Risky migrations cannot proceed without explicit rollback and blast-radius coverage",
|
|
1025
|
+
criteria: [
|
|
1026
|
+
{
|
|
1027
|
+
criterionId: "blast-radius-scoped",
|
|
1028
|
+
description: "Blast radius is enumerated for the proposed change",
|
|
1029
|
+
metric: "blast_radius_scoped",
|
|
1030
|
+
threshold: 1,
|
|
1031
|
+
operator: "eq"
|
|
1032
|
+
},
|
|
1033
|
+
{
|
|
1034
|
+
criterionId: "rollback-path-defined",
|
|
1035
|
+
description: "Rollback path is explicit and reversible",
|
|
1036
|
+
metric: "rollback_path_defined",
|
|
1037
|
+
threshold: 1,
|
|
1038
|
+
operator: "eq"
|
|
1039
|
+
}
|
|
1040
|
+
],
|
|
1041
|
+
severity: "blocking"
|
|
1042
|
+
},
|
|
1043
|
+
{
|
|
1044
|
+
gateId: "review-risks-surfaced",
|
|
1045
|
+
name: "Review Risks Surfaced",
|
|
1046
|
+
description: "Review must explain what could regress and why approval is still justified",
|
|
1047
|
+
criteria: [
|
|
1048
|
+
{
|
|
1049
|
+
criterionId: "risk-areas-documented",
|
|
1050
|
+
description: "Risk areas and likely regressions are called out explicitly",
|
|
1051
|
+
metric: "risk_areas_documented",
|
|
1052
|
+
threshold: 1,
|
|
1053
|
+
operator: "gte"
|
|
1054
|
+
},
|
|
1055
|
+
{
|
|
1056
|
+
criterionId: "prior-regressions-checked",
|
|
1057
|
+
description: "Reviewer checked analogous regressions or incidents",
|
|
1058
|
+
metric: "prior_regressions_checked",
|
|
1059
|
+
threshold: 1,
|
|
1060
|
+
operator: "eq"
|
|
1061
|
+
}
|
|
1062
|
+
],
|
|
1063
|
+
severity: "blocking"
|
|
1064
|
+
},
|
|
1065
|
+
{
|
|
1066
|
+
gateId: "contradictions-surfaced",
|
|
1067
|
+
name: "Contradictions Surfaced",
|
|
1068
|
+
description: "Incidents should preserve competing hypotheses long enough to avoid false certainty",
|
|
1069
|
+
criteria: [
|
|
1070
|
+
{
|
|
1071
|
+
criterionId: "multiple-hypotheses",
|
|
1072
|
+
description: "At least two plausible hypotheses remain visible",
|
|
1073
|
+
metric: "competing_hypotheses_count",
|
|
1074
|
+
threshold: 2,
|
|
1075
|
+
operator: "gte"
|
|
1076
|
+
},
|
|
1077
|
+
{
|
|
1078
|
+
criterionId: "contradictions-reviewed",
|
|
1079
|
+
description: "Relevant contradictions or tensions were reviewed",
|
|
1080
|
+
metric: "contradictions_reviewed",
|
|
1081
|
+
threshold: 1,
|
|
1082
|
+
operator: "gte"
|
|
1083
|
+
}
|
|
1084
|
+
],
|
|
1085
|
+
severity: "blocking"
|
|
1086
|
+
},
|
|
1087
|
+
{
|
|
1088
|
+
gateId: "decision-rationale-citable",
|
|
1089
|
+
name: "Decision Rationale Citable",
|
|
1090
|
+
description: "Architecture choices should cite prior rationale and compare viable alternatives",
|
|
1091
|
+
criteria: [
|
|
1092
|
+
{
|
|
1093
|
+
criterionId: "options-compared",
|
|
1094
|
+
description: "At least two options are compared before choosing one",
|
|
1095
|
+
metric: "options_compared",
|
|
1096
|
+
threshold: 2,
|
|
1097
|
+
operator: "gte"
|
|
1098
|
+
},
|
|
1099
|
+
{
|
|
1100
|
+
criterionId: "prior-decisions-cited",
|
|
1101
|
+
description: "Decision cites prior beliefs, ADRs, or incidents",
|
|
1102
|
+
metric: "prior_decisions_cited",
|
|
1103
|
+
threshold: 1,
|
|
1104
|
+
operator: "gte"
|
|
1105
|
+
}
|
|
1106
|
+
],
|
|
1107
|
+
severity: "blocking"
|
|
1108
|
+
},
|
|
1109
|
+
{
|
|
1110
|
+
gateId: "verification-covered",
|
|
1111
|
+
name: "Verification Covered",
|
|
1112
|
+
description: "Approval, rollout, and mitigation all require named verification paths",
|
|
1113
|
+
criteria: [
|
|
1114
|
+
{
|
|
1115
|
+
criterionId: "checks-defined",
|
|
1116
|
+
description: "At least one explicit verification path is named",
|
|
1117
|
+
metric: "verification_paths_defined",
|
|
1118
|
+
threshold: 1,
|
|
1119
|
+
operator: "gte"
|
|
1120
|
+
},
|
|
1121
|
+
{
|
|
1122
|
+
criterionId: "owners-named",
|
|
1123
|
+
description: "Owners or on-call responsibility are explicit",
|
|
1124
|
+
metric: "owner_count",
|
|
1125
|
+
threshold: 1,
|
|
1126
|
+
operator: "gte"
|
|
1127
|
+
}
|
|
1128
|
+
],
|
|
1129
|
+
severity: "blocking"
|
|
1130
|
+
}
|
|
1131
|
+
],
|
|
1132
|
+
artifacts: [
|
|
1133
|
+
{
|
|
1134
|
+
artifactId: "memory-brief",
|
|
1135
|
+
name: "Memory Brief",
|
|
1136
|
+
description: "A reusable brief of analogous changes, prior rationale, failed attempts, and contradictions",
|
|
1137
|
+
stage: "recall-history",
|
|
1138
|
+
contentSchema: {
|
|
1139
|
+
type: "object",
|
|
1140
|
+
properties: {
|
|
1141
|
+
analogousChanges: { type: "array", items: { type: "string" } },
|
|
1142
|
+
priorDecisions: { type: "array", items: { type: "string" } },
|
|
1143
|
+
failedAttempts: { type: "array", items: { type: "string" } },
|
|
1144
|
+
contradictions: { type: "array", items: { type: "string" } }
|
|
1145
|
+
},
|
|
1146
|
+
required: ["analogousChanges", "priorDecisions"]
|
|
1147
|
+
},
|
|
1148
|
+
requiredFields: ["analogousChanges", "priorDecisions"]
|
|
1149
|
+
},
|
|
1150
|
+
{
|
|
1151
|
+
artifactId: "migration-plan",
|
|
1152
|
+
name: "Migration Plan",
|
|
1153
|
+
description: "Blast radius, rollback path, rollout checkpoints, and verification plan",
|
|
1154
|
+
stage: "plan-rollout",
|
|
1155
|
+
contentSchema: {
|
|
1156
|
+
type: "object",
|
|
1157
|
+
properties: {
|
|
1158
|
+
blastRadius: { type: "array", items: { type: "string" } },
|
|
1159
|
+
rollbackPlan: { type: "string" },
|
|
1160
|
+
verificationPath: { type: "array", items: { type: "string" } },
|
|
1161
|
+
canarySteps: { type: "array", items: { type: "string" } }
|
|
1162
|
+
},
|
|
1163
|
+
required: ["blastRadius", "rollbackPlan", "verificationPath"]
|
|
1127
1164
|
},
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1165
|
+
requiredFields: ["blastRadius", "rollbackPlan", "verificationPath"]
|
|
1166
|
+
},
|
|
1167
|
+
{
|
|
1168
|
+
artifactId: "verification-checklist",
|
|
1169
|
+
name: "Verification Checklist",
|
|
1170
|
+
description: "Named checks, owners, and pass/fail criteria for rollout or approval",
|
|
1171
|
+
stage: "verify-rollout",
|
|
1172
|
+
contentSchema: {
|
|
1173
|
+
type: "object",
|
|
1174
|
+
properties: {
|
|
1175
|
+
checks: { type: "array", items: { type: "string" } },
|
|
1176
|
+
owners: { type: "array", items: { type: "string" } },
|
|
1177
|
+
passCriteria: { type: "array", items: { type: "string" } }
|
|
1178
|
+
},
|
|
1179
|
+
required: ["checks", "owners"]
|
|
1134
1180
|
},
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1181
|
+
requiredFields: ["checks", "owners"]
|
|
1182
|
+
},
|
|
1183
|
+
{
|
|
1184
|
+
artifactId: "review-context",
|
|
1185
|
+
name: "Review Context",
|
|
1186
|
+
description: "Prior rationale, related diffs, incidents, and failure history relevant to a review",
|
|
1187
|
+
stage: "recall-review-context",
|
|
1188
|
+
contentSchema: {
|
|
1189
|
+
type: "object",
|
|
1190
|
+
properties: {
|
|
1191
|
+
rationaleLinks: { type: "array", items: { type: "string" } },
|
|
1192
|
+
analogousDiffs: { type: "array", items: { type: "string" } },
|
|
1193
|
+
relatedIncidents: { type: "array", items: { type: "string" } }
|
|
1194
|
+
},
|
|
1195
|
+
required: ["rationaleLinks"]
|
|
1141
1196
|
},
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1197
|
+
requiredFields: ["rationaleLinks"]
|
|
1198
|
+
},
|
|
1199
|
+
{
|
|
1200
|
+
artifactId: "review-findings",
|
|
1201
|
+
name: "Review Findings",
|
|
1202
|
+
description: "What could regress, what evidence was checked, and whether the change should be blocked",
|
|
1203
|
+
stage: "inspect-diff",
|
|
1204
|
+
contentSchema: {
|
|
1205
|
+
type: "object",
|
|
1206
|
+
properties: {
|
|
1207
|
+
findings: { type: "array", items: { type: "string" } },
|
|
1208
|
+
regressionsChecked: { type: "array", items: { type: "string" } },
|
|
1209
|
+
blockReason: { type: "string" }
|
|
1210
|
+
},
|
|
1211
|
+
required: ["findings", "regressionsChecked"]
|
|
1148
1212
|
},
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1213
|
+
requiredFields: ["findings", "regressionsChecked"]
|
|
1214
|
+
},
|
|
1215
|
+
{
|
|
1216
|
+
artifactId: "incident-brief",
|
|
1217
|
+
name: "Incident Brief",
|
|
1218
|
+
description: "Signals, recent changes, competing hypotheses, and precedent incidents",
|
|
1219
|
+
stage: "collect-signal",
|
|
1220
|
+
contentSchema: {
|
|
1221
|
+
type: "object",
|
|
1222
|
+
properties: {
|
|
1223
|
+
symptoms: { type: "array", items: { type: "string" } },
|
|
1224
|
+
recentChanges: { type: "array", items: { type: "string" } },
|
|
1225
|
+
competingHypotheses: { type: "array", items: { type: "string" } },
|
|
1226
|
+
precedentIncidents: { type: "array", items: { type: "string" } }
|
|
1227
|
+
},
|
|
1228
|
+
required: ["symptoms", "competingHypotheses"]
|
|
1155
1229
|
},
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1230
|
+
requiredFields: ["symptoms", "competingHypotheses"]
|
|
1231
|
+
},
|
|
1232
|
+
{
|
|
1233
|
+
artifactId: "contradiction-report",
|
|
1234
|
+
name: "Contradiction Report",
|
|
1235
|
+
description: "Active contradictions, why they matter, and what evidence could collapse them",
|
|
1236
|
+
stage: "surface-contradictions",
|
|
1237
|
+
contentSchema: {
|
|
1238
|
+
type: "object",
|
|
1239
|
+
properties: {
|
|
1240
|
+
contradictions: { type: "array", items: { type: "string" } },
|
|
1241
|
+
likelyRootCauses: { type: "array", items: { type: "string" } },
|
|
1242
|
+
missingEvidence: { type: "array", items: { type: "string" } }
|
|
1243
|
+
},
|
|
1244
|
+
required: ["contradictions", "likelyRootCauses"]
|
|
1162
1245
|
},
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1246
|
+
requiredFields: ["contradictions", "likelyRootCauses"]
|
|
1247
|
+
},
|
|
1248
|
+
{
|
|
1249
|
+
artifactId: "mitigation-plan",
|
|
1250
|
+
name: "Mitigation Plan",
|
|
1251
|
+
description: "Chosen mitigation, rollback path, and verification ownership for an incident",
|
|
1252
|
+
stage: "plan-mitigation",
|
|
1253
|
+
contentSchema: {
|
|
1254
|
+
type: "object",
|
|
1255
|
+
properties: {
|
|
1256
|
+
mitigationSteps: { type: "array", items: { type: "string" } },
|
|
1257
|
+
rollbackPlan: { type: "string" },
|
|
1258
|
+
owners: { type: "array", items: { type: "string" } }
|
|
1259
|
+
},
|
|
1260
|
+
required: ["mitigationSteps", "owners"]
|
|
1169
1261
|
},
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
"claude-quick-reference",
|
|
1186
|
-
"build-command",
|
|
1187
|
-
"architect-command",
|
|
1188
|
-
"pipeline-command",
|
|
1189
|
-
"pr-command",
|
|
1190
|
-
"lucern-generate-questions",
|
|
1191
|
-
"lucern-contradiction-analysis"
|
|
1192
|
-
],
|
|
1193
|
-
toolIds: [
|
|
1194
|
-
"start-investigation",
|
|
1195
|
-
"record-scope-learning",
|
|
1196
|
-
"record-attempt",
|
|
1197
|
-
"pipeline-snapshot",
|
|
1198
|
-
"session-init",
|
|
1199
|
-
"tool-log",
|
|
1200
|
-
"build-bash-gate",
|
|
1201
|
-
"lucern-cli-init",
|
|
1202
|
-
"kit-install"
|
|
1203
|
-
],
|
|
1204
|
-
assetIds: [
|
|
1205
|
-
"claude-instructions",
|
|
1206
|
-
"mcp-config",
|
|
1207
|
-
"kit-manifest",
|
|
1208
|
-
"lucern-launcher",
|
|
1209
|
-
"lucern-shell-wrapper",
|
|
1210
|
-
"lucern-cli-script",
|
|
1211
|
-
"claude-settings",
|
|
1212
|
-
"permission-gate-hook",
|
|
1213
|
-
"inbox-check-hook",
|
|
1214
|
-
"prompt-router-hook",
|
|
1215
|
-
"writeback-gate-hook",
|
|
1216
|
-
"build-command-doc",
|
|
1217
|
-
"architect-command-doc",
|
|
1218
|
-
"pipeline-command-doc",
|
|
1219
|
-
"pr-command-doc",
|
|
1220
|
-
"claude-agent-catalog",
|
|
1221
|
-
"claude-skill-catalog",
|
|
1222
|
-
"hooks-doc",
|
|
1223
|
-
"setup-ui"
|
|
1224
|
-
],
|
|
1225
|
-
defaultTopicSlugs: [
|
|
1226
|
-
"migrations",
|
|
1227
|
-
"reviews",
|
|
1228
|
-
"incidents",
|
|
1229
|
-
"architecture",
|
|
1230
|
-
"decision-memory"
|
|
1231
|
-
]
|
|
1262
|
+
requiredFields: ["mitigationSteps", "owners"]
|
|
1263
|
+
},
|
|
1264
|
+
{
|
|
1265
|
+
artifactId: "decision-brief",
|
|
1266
|
+
name: "Decision Brief",
|
|
1267
|
+
description: "Options, cited precedent, trade-offs, and objections for an architecture decision",
|
|
1268
|
+
stage: "compare-options",
|
|
1269
|
+
contentSchema: {
|
|
1270
|
+
type: "object",
|
|
1271
|
+
properties: {
|
|
1272
|
+
options: { type: "array", items: { type: "string" } },
|
|
1273
|
+
citedPrecedent: { type: "array", items: { type: "string" } },
|
|
1274
|
+
objections: { type: "array", items: { type: "string" } }
|
|
1275
|
+
},
|
|
1276
|
+
required: ["options", "citedPrecedent"]
|
|
1232
1277
|
},
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
"
|
|
1244
|
-
"
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
"record-attempt",
|
|
1250
|
-
"pipeline-snapshot",
|
|
1251
|
-
"lucern-cli-init",
|
|
1252
|
-
"kit-install"
|
|
1253
|
-
],
|
|
1254
|
-
assetIds: [
|
|
1255
|
-
"codex-bridge",
|
|
1256
|
-
"mcp-config",
|
|
1257
|
-
"kit-manifest",
|
|
1258
|
-
"lucern-launcher",
|
|
1259
|
-
"lucern-shell-wrapper",
|
|
1260
|
-
"lucern-cli-script",
|
|
1261
|
-
"build-command-doc",
|
|
1262
|
-
"architect-command-doc",
|
|
1263
|
-
"pipeline-command-doc",
|
|
1264
|
-
"pr-command-doc",
|
|
1265
|
-
"claude-skill-catalog",
|
|
1266
|
-
"skills-sync-script",
|
|
1267
|
-
"hooks-doc",
|
|
1268
|
-
"setup-ui"
|
|
1269
|
-
],
|
|
1270
|
-
defaultTopicSlugs: [
|
|
1271
|
-
"migrations",
|
|
1272
|
-
"reviews",
|
|
1273
|
-
"incidents",
|
|
1274
|
-
"architecture",
|
|
1275
|
-
"decision-memory"
|
|
1276
|
-
]
|
|
1278
|
+
requiredFields: ["options", "citedPrecedent"]
|
|
1279
|
+
},
|
|
1280
|
+
{
|
|
1281
|
+
artifactId: "decision-record",
|
|
1282
|
+
name: "Decision Record",
|
|
1283
|
+
description: "Chosen path, why it won, what it supersedes, and what follow-up remains open",
|
|
1284
|
+
stage: "record-decision",
|
|
1285
|
+
contentSchema: {
|
|
1286
|
+
type: "object",
|
|
1287
|
+
properties: {
|
|
1288
|
+
decision: { type: "string" },
|
|
1289
|
+
rationale: { type: "array", items: { type: "string" } },
|
|
1290
|
+
supersedes: { type: "array", items: { type: "string" } },
|
|
1291
|
+
followUps: { type: "array", items: { type: "string" } }
|
|
1292
|
+
},
|
|
1293
|
+
required: ["decision", "rationale"]
|
|
1277
1294
|
},
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
name: "Hybrid Engineering Kit",
|
|
1281
|
-
description: "Installs both Claude and Codex entry surfaces against one Lucern-native engineering operating system.",
|
|
1282
|
-
runtimeTarget: "hybrid",
|
|
1283
|
-
promptIds: [
|
|
1284
|
-
"claude-quick-reference",
|
|
1285
|
-
"build-command",
|
|
1286
|
-
"architect-command",
|
|
1287
|
-
"pipeline-command",
|
|
1288
|
-
"pr-command",
|
|
1289
|
-
"lucern-generate-questions",
|
|
1290
|
-
"lucern-contradiction-analysis"
|
|
1291
|
-
],
|
|
1292
|
-
toolIds: [
|
|
1293
|
-
"start-investigation",
|
|
1294
|
-
"record-scope-learning",
|
|
1295
|
-
"record-attempt",
|
|
1296
|
-
"pipeline-snapshot",
|
|
1297
|
-
"session-init",
|
|
1298
|
-
"tool-log",
|
|
1299
|
-
"build-bash-gate",
|
|
1300
|
-
"lucern-cli-init",
|
|
1301
|
-
"kit-install"
|
|
1302
|
-
],
|
|
1303
|
-
assetIds: [
|
|
1304
|
-
"claude-instructions",
|
|
1305
|
-
"codex-bridge",
|
|
1306
|
-
"mcp-config",
|
|
1307
|
-
"kit-manifest",
|
|
1308
|
-
"lucern-launcher",
|
|
1309
|
-
"lucern-shell-wrapper",
|
|
1310
|
-
"lucern-cli-script",
|
|
1311
|
-
"claude-settings",
|
|
1312
|
-
"permission-gate-hook",
|
|
1313
|
-
"inbox-check-hook",
|
|
1314
|
-
"prompt-router-hook",
|
|
1315
|
-
"writeback-gate-hook",
|
|
1316
|
-
"build-command-doc",
|
|
1317
|
-
"architect-command-doc",
|
|
1318
|
-
"pipeline-command-doc",
|
|
1319
|
-
"pr-command-doc",
|
|
1320
|
-
"claude-agent-catalog",
|
|
1321
|
-
"claude-skill-catalog",
|
|
1322
|
-
"skills-sync-script",
|
|
1323
|
-
"hooks-doc",
|
|
1324
|
-
"setup-ui"
|
|
1325
|
-
],
|
|
1326
|
-
defaultTopicSlugs: [
|
|
1327
|
-
"migrations",
|
|
1328
|
-
"reviews",
|
|
1329
|
-
"incidents",
|
|
1330
|
-
"architecture",
|
|
1331
|
-
"decision-memory"
|
|
1332
|
-
]
|
|
1333
|
-
}
|
|
1334
|
-
]
|
|
1335
|
-
},
|
|
1336
|
-
appPackKeys: [
|
|
1337
|
-
"chat-v1",
|
|
1338
|
-
"documents-v1",
|
|
1339
|
-
"epistemic-algorithms-v1",
|
|
1340
|
-
"graph-visualization-v1",
|
|
1341
|
-
"task-management-v1"
|
|
1295
|
+
requiredFields: ["decision", "rationale"]
|
|
1296
|
+
}
|
|
1342
1297
|
],
|
|
1343
|
-
|
|
1298
|
+
roles: [
|
|
1299
|
+
{
|
|
1300
|
+
roleId: "context-compiler",
|
|
1301
|
+
name: "Context Compiler",
|
|
1302
|
+
description: "Compiles prior rationale, analogs, and failure memory into reusable first-hour context",
|
|
1303
|
+
perspective: "History-first, evidence-weighted context assembly",
|
|
1304
|
+
optimizesFor: "recall quality and anti-repetition coverage",
|
|
1305
|
+
mayBlock: false
|
|
1306
|
+
},
|
|
1307
|
+
{
|
|
1308
|
+
roleId: "migration-owner",
|
|
1309
|
+
name: "Migration Owner",
|
|
1310
|
+
description: "Scopes rollout blast radius, rollback, sequencing, and compatibility risk",
|
|
1311
|
+
perspective: "Operational caution with explicit rollback discipline",
|
|
1312
|
+
optimizesFor: "safe rollout planning",
|
|
1313
|
+
mayBlock: false
|
|
1314
|
+
},
|
|
1315
|
+
{
|
|
1316
|
+
roleId: "reviewer",
|
|
1317
|
+
name: "Reviewer",
|
|
1318
|
+
description: "Evaluates risky changes against prior regressions, evidence, and missing checks",
|
|
1319
|
+
perspective: "Evidence-backed change approval with regression awareness",
|
|
1320
|
+
optimizesFor: "defect prevention and clear approval rationale",
|
|
1321
|
+
mayBlock: true
|
|
1322
|
+
},
|
|
1323
|
+
{
|
|
1324
|
+
roleId: "incident-commander",
|
|
1325
|
+
name: "Incident Commander",
|
|
1326
|
+
description: "Maintains multiple plausible explanations while driving mitigation decisions",
|
|
1327
|
+
perspective: "Fast, reversible action without collapsing uncertainty too early",
|
|
1328
|
+
optimizesFor: "time-to-mitigation with preserved reasoning integrity",
|
|
1329
|
+
mayBlock: false
|
|
1330
|
+
},
|
|
1331
|
+
{
|
|
1332
|
+
roleId: "architect",
|
|
1333
|
+
name: "Architect",
|
|
1334
|
+
description: "Turns competing options into explicit decisions with cited precedent and follow-up risk",
|
|
1335
|
+
perspective: "Trade-off clarity and long-term maintainability",
|
|
1336
|
+
optimizesFor: "decision quality and rationale reuse",
|
|
1337
|
+
mayBlock: false
|
|
1338
|
+
},
|
|
1339
|
+
{
|
|
1340
|
+
roleId: "critic",
|
|
1341
|
+
name: "Critic",
|
|
1342
|
+
description: "Finds weak assumptions, missing rollback paths, and untested contradictions",
|
|
1343
|
+
perspective: "Skeptical, adversarial, and detail-oriented",
|
|
1344
|
+
optimizesFor: "early detection of brittle plans",
|
|
1345
|
+
mayBlock: true
|
|
1346
|
+
}
|
|
1347
|
+
],
|
|
1348
|
+
...ENGINEERING_ACCELERATOR_TAIL
|
|
1344
1349
|
});
|
|
1345
1350
|
|
|
1346
1351
|
export { ENGINEERING_ACCELERATOR_PACK };
|