@acrasie/dev-flow 0.0.0-stage → 1.0.1

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.
Files changed (58) hide show
  1. package/.codex-plugin/plugin.json +20 -0
  2. package/LICENSE +21 -0
  3. package/README.md +181 -2
  4. package/dist/codex-dev-flow.mjs +3 -0
  5. package/dist/dev-flow.mjs +241 -0
  6. package/docs/adr/0001-hybrid-portable-workflow.md +23 -0
  7. package/docs/adr/0002-share-an-invalidable-context-capsule.md +55 -0
  8. package/docs/adr/0004-scale-assurance-lanes-by-applicable-risk.md +36 -0
  9. package/docs/adr/0006-make-intake-adaptive-user-authoritative-and-token-efficient.md +76 -0
  10. package/docs/adr/0007-collect-opt-in-local-benchmark-feedback.md +82 -0
  11. package/docs/adr/0008-automate-maintainer-releases-with-an-interactive-bun-workflow.md +121 -0
  12. package/docs/adr/0009-separate-intake-decisions-from-shape-discovery.md +200 -0
  13. package/docs/adr/0010-choose-quick-or-plan-after-discovery.md +161 -0
  14. package/docs/adr/0011-separate-fast-local-and-authoritative-ci-quality-gates.md +49 -0
  15. package/docs/adr/0012-use-bun-test-and-require-node-24.md +41 -0
  16. package/docs/adr/0013-layer-source-distribution-and-runtime-tests.md +42 -0
  17. package/docs/adr/0014-ratchet-source-coverage-with-bun.md +51 -0
  18. package/docs/adr/0015-split-fast-and-type-aware-linting.md +41 -0
  19. package/docs/adr/0016-use-husky-with-a-tested-bun-staged-file-adapter.md +45 -0
  20. package/docs/adr/0017-format-conservatively-with-oxfmt.md +45 -0
  21. package/docs/adr/0018-use-a-high-signal-oxlint-policy.md +53 -0
  22. package/docs/adr/0019-gate-deterministic-size-and-observe-timing.md +44 -0
  23. package/docs/adr/0020-support-linux-and-macos-with-targeted-ci.md +41 -0
  24. package/docs/adr/0021-randomize-tests-without-retries.md +35 -0
  25. package/docs/adr/0022-use-one-root-bun-workspace.md +41 -0
  26. package/docs/adr/0024-make-gate-a-minimal-plan-approval.md +74 -0
  27. package/docs/adr/0025-end-the-lifecycle-after-assure.md +55 -0
  28. package/docs/adr/0026-keep-intake-product-stable-and-interview-shape-by-dependency.md +151 -0
  29. package/docs/adr/0027-add-agentic-project-init-and-versioned-engineering-profiles.md +147 -0
  30. package/docs/adr/0028-make-public-documentation-user-first-and-current.md +65 -0
  31. package/docs/adr/0029-make-build-a-native-execution-boundary.md +51 -0
  32. package/docs/adr/0030-unify-product-domain-and-technical-design-interviews.md +240 -0
  33. package/docs/adr/0031-make-assure-the-success-boundary.md +205 -0
  34. package/docs/artifacts.md +47 -0
  35. package/docs/baselines/2026-07-18-p0-lifecycle.json +142 -0
  36. package/docs/design.md +101 -0
  37. package/docs/getting-started.md +204 -0
  38. package/docs/glossary/dev-flow.md +527 -0
  39. package/docs/lifecycle-contract.md +189 -0
  40. package/docs/lifecycle-contract.projection.json +931 -0
  41. package/docs/metrics-protocol.md +113 -0
  42. package/docs/project-profile-contract.md +157 -0
  43. package/docs/runbooks/maintainer-release.md +291 -0
  44. package/docs/target-intake-shape-contract.md +416 -0
  45. package/package.json +68 -4
  46. package/schemas/config.schema.json +104 -0
  47. package/schemas/policy.schema.json +17 -0
  48. package/schemas/project-init-state.schema.json +159 -0
  49. package/schemas/project-profile-local.schema.json +53 -0
  50. package/schemas/project-profile.schema.json +285 -0
  51. package/schemas/state.schema.json +826 -0
  52. package/skills/debug-root-cause/SKILL.md +16 -0
  53. package/skills/design-decisions/SKILL.md +24 -0
  54. package/skills/dev-flow/SKILL.md +306 -0
  55. package/skills/dev-flow/agents/openai.yaml +6 -0
  56. package/skills/discover-change/SKILL.md +31 -0
  57. package/skills/plan-change/SKILL.md +29 -0
  58. package/skills/review-change/SKILL.md +21 -0
@@ -0,0 +1,527 @@
1
+ # Dev Flow Glossary
2
+
3
+ ## Artifact
4
+
5
+ A versioned owner or repository-native record for detailed task contract and evidence
6
+ references. One logical artifact may project to one file, several files, or another
7
+ policy-selected representation.
8
+
9
+ ## Approval
10
+
11
+ An immutable human authorization bound to complete local canonical contract digest. In
12
+ TaskState V6 this is one Plan Approval Receipt.
13
+
14
+ ## ASSURE completion
15
+
16
+ Success boundary where every required acceptance criterion and applicable risk
17
+ has current evidence. It is derived from a valid Assurance Receipt, not represented
18
+ by a separate `finished` status. Completion appends `assure.completed`; a valid receipt
19
+ makes `assuring` terminal and immutable.
20
+
21
+ ## Change artifact
22
+
23
+ The sole versioned logical owner of stable intent, scope, acceptance criteria,
24
+ implementation plan, risks, and detailed evidence references. Its identity and canonical
25
+ digest—not its pathname—bind Approval. Plan profile does not prescribe one physical
26
+ layout.
27
+
28
+ ## Plan profile
29
+
30
+ The durable-preparation choice made after SHAPE Discovery and before Planning. It
31
+ projects the canonical Change Contract to one versioned document containing
32
+ specification, plan, and evidence-required implementation guidance. Risk and policy,
33
+ not the profile, determine safety controls.
34
+
35
+ ## Change record
36
+
37
+ Legacy name for a file-based projection of a Change artifact. It is a supported
38
+ repository choice, not a canonical Docs-profile convention.
39
+
40
+ ## Benchmark record
41
+
42
+ An opt-in, local, gitignored post-task record containing a completed satisfaction
43
+ survey, allowlisted execution metrics, and deterministic deviation facts. It is outside
44
+ the lifecycle, never changes task outcome, and is never uploaded automatically.
45
+
46
+ ## BUILD
47
+
48
+ The thin lifecycle boundary in which native Codex implements the complete approved plan.
49
+ Dev Flow verifies current Approval and exact digest before writes or resume, but adds no
50
+ execution skill, checkpoint, progress tracker, validation loop, or persisted BUILD
51
+ output. Material contract change returns to SHAPE then GATE; completion enters ASSURE
52
+ automatically.
53
+
54
+ ## Bun test suite
55
+
56
+ The repository's sole automated test suite, discovered and executed by `bun:test`.
57
+ Its success proves behavior under Bun but is not, by itself, Node.js runtime
58
+ compatibility evidence.
59
+
60
+ ## Cachebuster
61
+
62
+ The timestamp-derived suffix in the Codex plugin manifest version that gives one plugin
63
+ snapshot a new installation identity without treating the suffix as a separate semantic
64
+ product version.
65
+
66
+ ## Configuration provenance
67
+
68
+ The source that supplied an effective configuration value.
69
+
70
+ ## Coverage ratchet
71
+
72
+ The Full Gate rule that initializes Bun source-coverage thresholds from a measured
73
+ post-migration baseline, blocks regressions below them, and allows increases without
74
+ allowing silent decreases.
75
+
76
+ ## Context Capsule
77
+
78
+ A compact, structured, and invalidable projection of task context shared across
79
+ lifecycle phases. It contains provenance and freshness fingerprints, but does not own
80
+ detailed evidence or approved scope.
81
+
82
+ ## Active Design Question
83
+
84
+ One task-wide resumable product, terminology, domain-rule, or technical question. It
85
+ persists owner, prerequisites, prior role, consequences, selection reason, and optional
86
+ bounded choices. Resume reuses exact question until dependency invalidation.
87
+
88
+ ## Technical Decision
89
+
90
+ A material SHAPE-owned choice backed by fresh repository evidence. It records viable
91
+ and excluded options, recommendation, confidence, consequences, explicit selection,
92
+ affected dependencies, and exact prior SHAPE role. Product infeasibility creates a
93
+ linked INTAKE-owned question instead.
94
+
95
+ ## Dependency closure
96
+
97
+ The transitive set of discovery evidence and contract sections that depend on a changed
98
+ decision, source, or section. SHAPE invalidates this set selectively while retaining
99
+ fresh independent work; it never uses invalidation as a reason to reset all shaping.
100
+
101
+ ## Dependency graph
102
+
103
+ The persisted acyclic graph connecting stable decision, source-fingerprint, discovery,
104
+ and contract-section identities through explicit `dependsOn` references. The model
105
+ proposes semantic links; deterministic runtime validates structure and computes
106
+ selective invalidation.
107
+
108
+ ## Determining constraint
109
+
110
+ A constraint whose violation or change can alter the expected outcome, success signal,
111
+ risk, scope, solution, validation, or lifecycle transition. Preferences without
112
+ such impact are not INTAKE questions.
113
+
114
+ ## Deterministic size budget
115
+
116
+ The blocking Full Gate cap for bundle, packed-package, or unpacked-package bytes,
117
+ derived from a committed baseline with explicit headroom and changed only through a
118
+ reviewed explanation.
119
+
120
+ ## Discovery target
121
+
122
+ One stable, resumable SHAPE investigation unit containing a precise technical question,
123
+ its possible material contract impact, candidate sources, its evidence-backed result,
124
+ provenance, and explicit dependencies. A target widens discovery only when its result
125
+ creates another material uncertainty.
126
+
127
+ ## Discovery role
128
+
129
+ The read-only SHAPE role allowed to inspect repository sources and resolve Discovery
130
+ Targets into provenance-bound evidence. It does not author the canonical plan.
131
+
132
+ ## Diff Capsule
133
+
134
+ The ASSURE projection of approved criteria, applicable risks, changed surfaces,
135
+ dependency impact, and fresh validation evidence.
136
+
137
+ ## Evidence requirement
138
+
139
+ The SHAPE-owned proof contract for one acceptance criterion: expected outcome, verifier
140
+ kind (`command`, `model-inspection`, or `user-observation`), and evidence needed for
141
+ ASSURE completion. It lets ASSURE resolve missing coverage instead of redesigning the
142
+ verification strategy after implementation.
143
+
144
+ ## Evidence index
145
+
146
+ Compact TaskState registry of evidence identity, covered subjects, verifier
147
+ identity and kind, result, observed fingerprint, detail reference, and digest. Detailed
148
+ command output and prose remain in the logical artifact or logs.
149
+
150
+ ## Assurance Receipt
151
+
152
+ Minimal, digest-bound proof of successful ASSURE completion. It binds task,
153
+ approved contract, complete verified snapshot, canonical completion index, and completion
154
+ time without duplicating criteria, checks, or evidence prose.
155
+
156
+ ## Failure
157
+
158
+ A failed validation, review, or verification check tracked by a stable `issue_id`.
159
+
160
+ ## Fast Gate
161
+
162
+ The low-latency, non-authoritative pre-commit quality gate. It checks formatting and
163
+ linting only for staged supported files, never mutates them, and delegates all quality
164
+ policy to repository scripts.
165
+
166
+ ## Finding
167
+
168
+ An actionable review issue tracked by a stable `issue_id`.
169
+
170
+ ## Fresh evidence
171
+
172
+ SHAPE evidence whose exact source fingerprints still match. Freshness is evaluated per
173
+ referenced source; unrelated repository changes do not make an evidence item stale.
174
+
175
+ ## Formatting policy
176
+
177
+ The repository-wide conservative Oxfmt contract that normalizes presentation while
178
+ preserving prose wrapping, import order, and package-manifest field order.
179
+
180
+ ## Full Gate
181
+
182
+ The authoritative repository-wide CI quality gate. It checks formatting, linting, type
183
+ correctness, build output, the complete automated test suite, and distribution behavior
184
+ regardless of whether a local hook ran.
185
+
186
+ ## Gate
187
+
188
+ A control that authorizes a transition after checking required evidence. In V6, GATE is exactly one deterministic pre-BUILD validation and explicit user
189
+ approval of the canonical implementation contract.
190
+
191
+ ## Gate preflight
192
+
193
+ The V6 pure deterministic check that validates current SHAPE completion,
194
+ contract digest, criterion coverage, evidence freshness, and escalation closure before
195
+ asking the user to approve the plan. It performs no model, network, discovery, or
196
+ subprocess operation.
197
+
198
+ ## External delivery
199
+
200
+ Git, GitHub, registry, or release work performed after successful ASSURE. It is
201
+ outside TaskState V6 and requires native Codex authorization.
202
+
203
+ ## Product Baseline
204
+
205
+ Canonical five-dimension INTAKE record: objective, affected users/value, scope,
206
+ observable success, and risks/constraints. Every dimension is resolved or carries
207
+ justified `not_applicable`, provenance, and dependency identity. It stores no transcript.
208
+
209
+ ## Implementation Guide
210
+
211
+ The optional Change Contract section containing only evidence-backed architectural
212
+ constraints, required patterns, migration rules, or sequencing details needed to
213
+ prevent implementation drift. It is not a second plan and does not contain decorative
214
+ prose or redundant pseudo-code.
215
+
216
+ ## Integration Test Layer
217
+
218
+ The `bun:test` layer that exercises the built bundle or a complete composed workflow
219
+ when module composition, generated artifacts, or cross-module behavior is material to
220
+ the contract.
221
+
222
+ ## Late Intake decision
223
+
224
+ An explicit product decision requested after SHAPE discovery reveals a
225
+ product-impacting technical choice. It is presented in `awaiting_intake_decision`,
226
+ selectively invalidates its dependency closure, and resumes the prior SHAPE work without
227
+ rerunning initial INTAKE.
228
+
229
+ ## Lint policy
230
+
231
+ The version-pinned Oxlint contract that blocks correctness, suspicious, and performance
232
+ diagnostics plus unused disable directives, while leaving style, pedantic, restriction,
233
+ and nursery categories disabled initially.
234
+
235
+ ## Macro-phase
236
+
237
+ One public lifecycle stage derived from internal task status and never persisted
238
+ independently. V6 has INTAKE, SHAPE, GATE, BUILD, and ASSURE.
239
+
240
+ ## Issue ID
241
+
242
+ A stable hash identity for a failure or finding across workflow runs.
243
+
244
+ ## Occurrence ID
245
+
246
+ An identifier for one observation of an issue in one workflow run.
247
+
248
+ ## Policy
249
+
250
+ A schema-approved requirement, prohibition, bound, or lock applied after configuration resolution.
251
+
252
+ ## Platform contract
253
+
254
+ The operating-system compatibility claim backed by targeted CI evidence. The current
255
+ contract supports Linux and macOS; Windows remains explicitly unsupported.
256
+
257
+ ## Preparation profile choice
258
+
259
+ The explicit Quick-or-Plan choice made after `discovery_sufficient` and before Planning.
260
+ It is persisted with its evidence-backed recommendation in
261
+ `awaiting_profile_choice`. An explicit plan request or policy lock may resolve it
262
+ without presenting a redundant or false choice.
263
+
264
+ ## Quality scope
265
+
266
+ The repository-wide set of maintained source, configuration, schema, workflow, and
267
+ documentation files governed by the Fast and Full Gates. Generated, vendored, cached,
268
+ lock, and distribution files are excluded explicitly when not safely excluded by the
269
+ quality tool itself.
270
+
271
+ ## Planning role
272
+
273
+ The read-only SHAPE role that projects the canonical contract only from fresh structured
274
+ evidence. It cannot inspect the repository directly; missing evidence becomes a new
275
+ Discovery Target.
276
+
277
+ ## Partial release
278
+
279
+ A release whose Git, npm-registry, or GitHub Release actions have not all reached their
280
+ intended state. It is resumed by reconciling external state and performing only the
281
+ missing idempotent action, never by rolling back published artifacts. Optional local
282
+ Codex installation is not publication state; retry it directly when needed.
283
+
284
+ ## Phase contract
285
+
286
+ The uniform declaration of a macro-phase's intent, preconditions, consumed and produced
287
+ capsule fields, ownership, events, proof, failures, resume rules, invalidation, and
288
+ metrics.
289
+
290
+ ## Plan Approval Receipt
291
+
292
+ V6 immutable user authorization for the complete local canonical change
293
+ contract. It is bound to task/artifact identity, full contract digest, state revision,
294
+ state fingerprint, actor, and timestamp. Any digest change invalidates it. It never
295
+ authorizes an external Git, GitHub, registry, or release action.
296
+
297
+ ## Quick profile
298
+
299
+ The compact-preparation choice made after SHAPE Discovery and before Planning. It uses a
300
+ minimal SHAPE contract persisted in workflow state rather than requiring a
301
+ repository-versioned planning document. Risk and policy may still require strong gates
302
+ and assurance.
303
+
304
+ ## Schema break
305
+
306
+ An intentional state-contract replacement with no compatibility migration. Legacy task
307
+ state is rejected clearly and never treated as current proof, Approval, or resumable
308
+ workflow evidence.
309
+
310
+ ## Release preparation
311
+
312
+ The reversible portion of an interactive release: discovery, version recommendation,
313
+ preflight, temporary metadata generation, validation, package inspection, notes preview,
314
+ and final maintainer confirmation.
315
+
316
+ ## Release publication
317
+
318
+ The irreversible portion of an interactive release beginning with the first successful
319
+ remote push and continuing through applicable npm publication, GitHub Release creation,
320
+ and optional local Codex plugin refresh.
321
+
322
+ ## Release target
323
+
324
+ The maintainer-selected artifact set for one release: Codex plugin, npm package, or both.
325
+ It determines version mutation, tag namespace, validation, publication, and recovery
326
+ steps.
327
+
328
+ ## Root cause ID
329
+
330
+ An identifier associating related issues after explicit investigation.
331
+
332
+ ## Randomized test seed
333
+
334
+ The Bun-generated value that determines one CI test order, is retained in logs, and
335
+ allows an order-dependent failure to be reproduced exactly without retries.
336
+
337
+ ## Runtime Smoke Suite
338
+
339
+ The narrow Full Gate suite that exercises the built and packaged CLI with the supported
340
+ Node.js runtime. It covers bundle import, CLI execution, configuration validation, and
341
+ package binary resolution without duplicating the Bun test suite.
342
+
343
+ ## Assurance lane
344
+
345
+ An independent review concern activated by applicable risk. Critical lanes may be
346
+ omitted only through an evidence-backed non-applicability decision.
347
+
348
+ ## Success guardrail
349
+
350
+ An observable outcome that must not regress while the primary success signal is
351
+ achieved.
352
+
353
+ ## Success signal
354
+
355
+ The primary observable result that lets a named person or deterministic system judge
356
+ whether the requested outcome exists. SHAPE refines it into testable acceptance
357
+ criteria.
358
+
359
+ ## Success validator
360
+
361
+ The person, role, test, metric, or system authorized to judge a success signal when
362
+ multiple validation authorities could require different proof.
363
+
364
+ ## Type-aware linting
365
+
366
+ The Full Gate Oxlint profile that builds TypeScript type information through
367
+ `oxlint-tsgolint` to run semantic rules. It supplements rather than replaces
368
+ `tsc --noEmit`.
369
+
370
+ ## Unit Test Layer
371
+
372
+ The `bun:test` layer that imports TypeScript source modules directly and proves isolated
373
+ deterministic behavior, boundaries, and failure contracts without requiring a bundle.
374
+
375
+ ## Workspace root
376
+
377
+ The private Bun package that owns the repository-wide lockfile, quality dependencies,
378
+ hook installation, and orchestration scripts while leaving publishable plugin
379
+ dependencies declared by the plugin workspace.
380
+
381
+ ## Shape State
382
+
383
+ The aggregate owning SHAPE discovery targets, evidence, source fingerprints, technical decisions, preparation profile, canonical contract, dependency graph, and semantic
384
+ evaluator receipts. It is the resumable boundary shared by Discovery and Planning.
385
+
386
+ ## State snapshot
387
+
388
+ The effective configuration and policy retained when a task starts, used to detect behavior changes on resume.
389
+
390
+ ## Stable state
391
+
392
+ A non-progressing state that waits for a user action or external-state change. A stable
393
+ state may be resumable, such as `blocked`, or terminal.
394
+
395
+ ## Staged-file adapter
396
+
397
+ The tested Bun script that converts Git's NUL-delimited staged path set into safe,
398
+ batched Oxfmt and Oxlint arguments for the Fast Gate. It never mutates working-tree or
399
+ index content.
400
+
401
+ ## Terminal source
402
+
403
+ The operational status recorded in a `cancelled` or `failed` terminal event and used to
404
+ derive its last active macro-phase without persisting that phase.
405
+
406
+ ## Project INIT and profile terms
407
+
408
+ Following terms apply to agentic `$dev-flow init`, deterministic Project Engineering
409
+ Profile backend, and ordinary SHAPE profile consumption.
410
+
411
+ ### Configuration Wizard
412
+
413
+ The optional deterministic terminal workflow invoked through
414
+ `npx @acrasie/dev-flow init`. It writes validated plugin operating configuration such as
415
+ worktree, subscription/quota, and integration preferences. It performs no model-assisted
416
+ repository Discovery and is distinct from Project INIT.
417
+
418
+ ### Local Profile Overlay
419
+
420
+ The gitignored `.codex/dev-flow.project.local.yaml` file containing non-contractual
421
+ personal preferences and mappings from logical service identities to absolute local
422
+ paths. It cannot weaken repository policy or shared project conventions.
423
+
424
+ ### Profile Approval Receipt
425
+
426
+ Immutable approval for shared Project Engineering Profile update. It binds actor,
427
+ timestamp, profile identity, revision, and exact content digest. Receipt remains outside
428
+ content digest to avoid a digest cycle and does not approve task implementation.
429
+
430
+ ### Profile Reconciliation
431
+
432
+ Process comparing durable profile fingerprints with fresh project evidence,
433
+ rediscovering stale facts, re-interviewing user-owned conventions, and proposing only
434
+ affected updates. Rejection leaves shared profile byte-for-byte unchanged.
435
+
436
+ ### Project Engineering Profile
437
+
438
+ Versioned `.codex/dev-flow.project.yaml` record containing durable shared architecture,
439
+ project boundaries, stack, development conventions, logical topology, source
440
+ fingerprints, revision, digest, and Profile Approval Receipt. Volatile task evidence
441
+ and absolute local paths are forbidden.
442
+
443
+ ### Project INIT
444
+
445
+ The agentic `$dev-flow init` workflow that discovers repository facts, interviews one
446
+ material engineering decision at a time, validates a candidate Project Engineering
447
+ Profile, and publishes it only after explicit digest-bound Profile Approval. It creates
448
+ no product scaffold or TaskState.
449
+
450
+ ### Project Topology
451
+
452
+ Shared logical model of services, responsibilities, dependencies, contracts, and owned
453
+ profile references. Filesystem paths resolving logical services belong only to Local
454
+ Profile Overlay.
455
+
456
+ ### User Assertion
457
+
458
+ Provenance type for information supplied by user but unavailable for independent
459
+ verification. It may inform scoped profile decisions but never silently counts as
460
+ verified technical evidence.
461
+
462
+ ### Visual Projection
463
+
464
+ Generated Mermaid document derived from canonical Project Engineering Profile. It is
465
+ published with profile transaction, uses immutable relative reference, and never becomes
466
+ second architecture authority. Broader task-decision visuals remain target behavior.
467
+
468
+ ## Remaining accepted target design terms
469
+
470
+ Following INTAKE and ordinary SHAPE terms remain conceptual until runtime, schema,
471
+ skills, and normative lifecycle contract implement ADR 0030 atomically.
472
+
473
+ ### Decision Graph
474
+
475
+ Target task-level typed acyclic graph connecting Product Baseline dimensions, domain
476
+ records, Technical Decisions, evidence, profile conventions, and contract sections. It
477
+ orders unblocked questions and computes selective transitive invalidation without owning
478
+ record payloads.
479
+
480
+ ### Product Baseline
481
+
482
+ Target stable INTAKE record covering objective, affected users and product value, scope
483
+ and boundaries, observable success and validator, and product risks and determining
484
+ constraints. These are five mandatory completeness dimensions, not five mandatory
485
+ prompts.
486
+
487
+ ### Active Design Question
488
+
489
+ Target single active, resumable task question for one product, terminology, domain-rule,
490
+ or technical decision. It carries phase owner, prior role, prerequisites, parent context,
491
+ direct consequences, priority reason, and either targeted elicitation or two or three
492
+ viable options with recommendation and confidence.
493
+
494
+ ### Domain Glossary Delta
495
+
496
+ Target task-local candidate change to contextual business vocabulary. It records
497
+ canonical term, definition, accepted aliases, rejected or deprecated terms, related
498
+ terms, provenance, dependencies, lifecycle status, and durable disposition. It contains
499
+ no implementation detail.
500
+
501
+ ### Domain Rule
502
+
503
+ Target structured business rule containing context, actors, conditions, invariant or
504
+ outcome, exceptions and limits, evidence, dependencies, and linked Domain Scenarios.
505
+ Material rules trace to acceptance criteria or an explicit durable disposition.
506
+
507
+ ### Domain Scenario
508
+
509
+ Target child record that stress-tests a Domain Rule through initial situation,
510
+ event/action, expected or forbidden result, and nominal, boundary, exception, or
511
+ contradiction angle. It is reusable validation input but not automatically an executable
512
+ test.
513
+
514
+ ### Decision Candidate
515
+
516
+ Target durable-decision candidate containing context, forces, alternatives, evidence,
517
+ selection, consequences, dependencies, and ADR qualification. ADR projection requires
518
+ durability, material reversal cost, a real trade-off, and rationale that would otherwise
519
+ be surprising.
520
+
521
+ ### Technical Decision
522
+
523
+ Target user-owned SHAPE choice whose alternatives materially affect architecture,
524
+ runtime or major dependencies, data or migration, cross-service contracts, security,
525
+ compatibility, concurrency, performance, cost, operations, rollback, or approved
526
+ profile conventions. Reversible repository-conforming implementation details remain
527
+ agent-owned.