create-agdf 0.6.9 → 0.7.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.
- package/README.md +40 -2
- package/bin/create-agdf.js +318 -65
- package/generated/.agdf/control/README.md +2 -1
- package/generated/.agdf/control/templates/AGDF_RUN.md +4 -3
- package/generated/.agdf/control/templates/RUN_STATE.md +22 -0
- package/generated/.agdf/control/templates/artefacts/BROWNFIELD_REVIEW.md +1 -1
- package/generated/.agdf/control/templates/artefacts/VERIFIED_CHANGE.md +48 -0
- package/generated/.github/skills/agdf-runtime-contract.md +29 -5
- package/generated/.opencode/AGDF.md +3 -3
- package/generated/.opencode/agdf-runtime-contract.md +29 -5
- package/generated/AGENTS.md +3 -3
- package/generated/plugins/agdf/.codex-plugin/plugin.json +2 -2
- package/generated/plugins/agdf/control/README.md +2 -1
- package/generated/plugins/agdf/control/templates/AGDF_RUN.md +4 -3
- package/generated/plugins/agdf/control/templates/RUN_STATE.md +22 -0
- package/generated/plugins/agdf/control/templates/artefacts/BROWNFIELD_REVIEW.md +1 -1
- package/generated/plugins/agdf/control/templates/artefacts/VERIFIED_CHANGE.md +48 -0
- package/generated/plugins/agdf/meta/agdf-agent-router.md +3 -3
- package/generated/plugins/agdf/meta/agdf-constitution.md +3 -3
- package/generated/plugins/agdf/meta/agdf-plugin.definition.json +2 -2
- package/generated/plugins/agdf/meta/agdf-runtime-contract.md +29 -5
- package/generated/plugins/agdf/meta/agdf-tenets.md +5 -0
- package/lib/control-state/run-state-parser.js +7 -3
- package/package.json +4 -2
|
@@ -27,6 +27,20 @@ Use this compact output shape when no formal gate artefact is required:
|
|
|
27
27
|
|
|
28
28
|
Do not add a separate `Quality outlook` line for pure Quick Tasks unless the task became a relevant run.
|
|
29
29
|
|
|
30
|
+
### Verified Change
|
|
31
|
+
|
|
32
|
+
`verified_change` is a compact, fail-closed path for a bounded user-visible change with one canonical owner and deterministic proof. It is neither a prose exception nor a new user approval gate.
|
|
33
|
+
|
|
34
|
+
After `Approval: UR`, Brownfield Review may select `verified_change` only when a durable `VERIFIED_CHANGE.md` record can prove all of the following before implementation:
|
|
35
|
+
|
|
36
|
+
1. exactly one repository-relative canonical owner and bounded source/derived paths;
|
|
37
|
+
2. no gate, permission, security, persistence, architecture, external API, CLI or release behavior impact;
|
|
38
|
+
3. deterministic propagation when derived paths exist, plus at least one deterministic validation command;
|
|
39
|
+
4. tracked and untracked worktree baseline paths captured before eligibility, with no candidate path already dirty; and
|
|
40
|
+
5. an explicit `structured_slice` or `structured_delivery` escalation target.
|
|
41
|
+
|
|
42
|
+
The record is the compact eligibility, execution and mini-closeout artefact. A missing, failed, unknown or ambiguous field/check must fail closed: mark the record `escalated` and continue at its declared structured target. Unrelated paths already dirty at baseline remain isolated; newly introduced unlisted paths invalidate the compact path. An executed record requires passing validation evidence and, where applicable, passing propagation evidence.
|
|
43
|
+
|
|
30
44
|
### Non-Normative Trivial Change Boundary
|
|
31
45
|
|
|
32
46
|
A `quick_task` whose entire diff stays fully outside all of the following paths may close using only
|
|
@@ -68,10 +82,10 @@ the full existing ceremony unchanged:
|
|
|
68
82
|
When a run needs an operational status view, use the Run Status Card as a compact projection of existing control state.
|
|
69
83
|
It must not introduce a second gate model or override `gate-check`, `delivery-map`, QA, OR, or user approvals.
|
|
70
84
|
|
|
71
|
-
- `mode`: `quick_task | structured_delivery | unknown`
|
|
85
|
+
- `mode`: `quick_task | verified_change | structured_delivery | unknown`
|
|
72
86
|
- `status`: `open | blocked | pass | warn | revise | block | in_progress`
|
|
73
87
|
- `current_gate`: current user gate or internal step
|
|
74
|
-
- `mode_slice_decision`: `undecided | quick_task | structured_slice | structured_delivery | block`
|
|
88
|
+
- `mode_slice_decision`: `undecided | quick_task | verified_change | structured_slice | structured_delivery | block`
|
|
75
89
|
- `allowed_now`: outputs or actions currently permitted
|
|
76
90
|
- `forbidden_now`: outputs or actions currently forbidden
|
|
77
91
|
- `blocking_condition`: current blocker or `none`
|
|
@@ -232,7 +246,8 @@ section or any other existing line.
|
|
|
232
246
|
## Gate Rules
|
|
233
247
|
|
|
234
248
|
- User gates: `UR -> PRD -> SD -> TP -> QA -> UAT`
|
|
235
|
-
- Internal mandatory steps: `Brownfield Review -> Mode/Slice Decision -> Brownfield Analysis -> CD+Tests -> CR -> OR`
|
|
249
|
+
- Internal mandatory steps: `Brownfield Review -> Mode/Slice Decision -> Verified Change Execution | Brownfield Analysis -> CD+Tests -> CR -> OR`
|
|
250
|
+
- On the approved-TP path, `CD+Tests` and `CR` are satisfied only by `done`; `not_applicable` may satisfy Brownfield Review or Brownfield Analysis, but it must not bypass implementation/test evidence or mandatory Code Review.
|
|
236
251
|
- Exact approval formula: `Approval: <GateName>`
|
|
237
252
|
- Legacy alias: `Freigabe: <GateName>` may be accepted when reviewing older German runs, but all new outputs must use `Approval: <GateName>`.
|
|
238
253
|
- Implicit consent is not approval. Phrases such as "ok", "go ahead", "do it", "approved", "continue", "leg los" or "looks good" are work intent, not gate approval.
|
|
@@ -263,7 +278,7 @@ It is the sizing and routing step that decides how much later gate discipline is
|
|
|
263
278
|
Its output is limited to:
|
|
264
279
|
|
|
265
280
|
- workstream or follow-up-slice classification
|
|
266
|
-
- `Mode/Slice Decision`: `quick_task | structured_slice | structured_delivery | block`
|
|
281
|
+
- `Mode/Slice Decision`: `quick_task | verified_change | structured_slice | structured_delivery | block`
|
|
267
282
|
- affected existing owners, source-of-truth artefacts, contracts, policies, runtime paths or tests
|
|
268
283
|
- reuse-before-create risks and parallel-structure risks
|
|
269
284
|
- open questions that PRD or SD must resolve
|
|
@@ -272,6 +287,7 @@ Its output is limited to:
|
|
|
272
287
|
Mode/Slice Decision rules:
|
|
273
288
|
|
|
274
289
|
- `quick_task`: use only when Brownfield Review shows a narrow local change, no new product semantics beyond the approved UR, no architecture/policy/persistence/contract expansion, and evidence is sufficient to proceed with a small implementation plus relevant checks.
|
|
290
|
+
- `verified_change`: use only when the compact record can prove one canonical owner, bounded clean-at-baseline paths, no prohibited impact, deterministic propagation/validation and a structured escalation target. It skips later approvals only after every condition is evidenced and machine-validated.
|
|
275
291
|
- `structured_slice`: use when some formal artefacts are needed, but they can stay intentionally small and scoped to the approved slice.
|
|
276
292
|
- `structured_delivery`: use when the change has broad product, architecture, runtime, policy, persistence, release or cross-owner impact.
|
|
277
293
|
- `block`: use when ownership, SoT, impact, evidence or product direction is not clear enough to choose a safe path.
|
|
@@ -286,14 +302,22 @@ This table is the canonical transition model. Skills may reference it, but must
|
|
|
286
302
|
|---|---|---|---|---|
|
|
287
303
|
| No approved UR | `UR` | clarify user need, formulate and persist UR, request `Approval: UR` | PRD, SD, TP, Brownfield Analysis, implementation, QA, release | `Approval: UR` |
|
|
288
304
|
| `UR` approved and UR artefact persisted or linked, Brownfield Review missing | `Brownfield Review` | classify workstream, existing owners, SoT, reuse risks, change size and PRD/SD open questions; mark review done or not_applicable | PRD, SD, TP, implementation, QA, release | none |
|
|
289
|
-
| Brownfield Review done or not_applicable, Mode/Slice Decision missing or incomplete | `Mode/Slice Decision` | decide `quick_task`, `structured_slice`, `structured_delivery` or `block`; record scope reason, evidence and required next gate depth | PRD, SD, TP, implementation, QA, release | none |
|
|
305
|
+
| Brownfield Review done or not_applicable, Mode/Slice Decision missing or incomplete | `Mode/Slice Decision` | decide `quick_task`, `verified_change`, `structured_slice`, `structured_delivery` or `block`; record scope reason, evidence and required next gate depth | PRD, SD, TP, implementation, QA, release | none |
|
|
290
306
|
| Mode/Slice Decision is `quick_task` | `Quick Task Execution` | implement only the narrow approved UR scope, run relevant checks, record evidence and OR-lite when the run is relevant | broad PRD/SD/TP by ritual, scope expansion, QA or release claims without evidence | none |
|
|
307
|
+
| Mode/Slice Decision is `verified_change`, record missing/draft/invalid | `Verified Change Execution` | create or repair compact record, capture baseline and prove eligibility with doctor/gate-check | implementation, QA, UAT, release | none |
|
|
308
|
+
| Verified Change record is `eligible` | `Verified Change Execution` | implement only declared paths, run declared propagation/validation, record mini-closeout | unlisted paths, prohibited impacts, QA/UAT/release claims | none |
|
|
309
|
+
| Verified Change record is `executed` | `OR` | use mini-closeout and offer delivery closeout when requested | PRD/SD/TP/QA/UAT by ritual; automatic VCS actions | none |
|
|
310
|
+
| Verified Change record is `escalated` | `PRD` | draft the PRD for declared `structured_slice` or `structured_delivery` escalation target | implementation through Verified Change | `Approval: PRD` |
|
|
291
311
|
| Mode/Slice Decision is `structured_slice` or `structured_delivery`, PRD missing or draft | `PRD` | draft/refine PRD at the smallest justified depth, define scope, acceptance criteria and non-goals, persist/link PRD, request `Approval: PRD` | SD, TP, implementation-preparation Brownfield Analysis, implementation, QA, release | `Approval: PRD` |
|
|
292
312
|
| `PRD` approved and PRD artefact persisted or linked, SD missing or draft | `SD` | draft/refine Solution Design, ownership and architecture, persist/link SD, request `Approval: SD` | TP, implementation, QA, release | `Approval: SD` |
|
|
293
313
|
| `SD` approved and SD artefact persisted or linked, TP missing or draft | `TP` | draft/refine Task/Test Plan, task IDs, evidence plan, persist/link TP, request `Approval: TP` | implementation, QA, release | `Approval: TP` |
|
|
294
314
|
| `TP` approved and TP artefact persisted or linked, Brownfield Analysis missing | `Brownfield Analysis` | run Brownfield Analysis for approved TP scope | implementation, QA, release | none |
|
|
295
315
|
| Brownfield Analysis passed for approved TP | `CD+Tests` | implement approved TP tasks and run tests | QA pass, UAT, release | none |
|
|
316
|
+
| `CD+Tests` done for approved TP, CR missing | `CR` | run mandatory Code Review and resolve blocking findings | QA pass, UAT, release | none |
|
|
317
|
+
| `CR` done, QA not approved | `QA` | run QA gate, persist/refine QA report, request `Approval: QA` | UAT, release | `Approval: QA` |
|
|
296
318
|
| `QA` approved but QA report missing or not pass | `QA` | persist/link QA report with `pass` decision or revise/block evidence | UAT, release | none |
|
|
319
|
+
| QA approved and QA report is `pass` or `passed`, UAT not approved | `UAT` | request `Approval: UAT`, prepare non-operative delivery summary | release and automatic VCS actions | `Approval: UAT` |
|
|
320
|
+
| UAT approved | `OR` | produce OR or delivery closeout; prepare VCS handoff only when requested | automatic commit, push, PR or release | none |
|
|
297
321
|
|
|
298
322
|
## Brownfield Modes
|
|
299
323
|
|
|
@@ -23,6 +23,11 @@ you *MUST* honor the following **GENERIC TENETS**:
|
|
|
23
23
|
and tooling maintenance when no new product meaning, user capability,
|
|
24
24
|
architecture, policy or persistence decision is introduced.
|
|
25
25
|
|
|
26
|
+
Verified Change may handle a bounded user-visible canonical metadata or
|
|
27
|
+
copy change only after approved UR and Brownfield Review when the Runtime
|
|
28
|
+
Contract record proves one owner, clean-at-baseline paths, no prohibited
|
|
29
|
+
impact and deterministic validation; every uncertainty escalates.
|
|
30
|
+
|
|
26
31
|
- **Fail Closed**:
|
|
27
32
|
When a necessary approval, input, or quality statement is missing,
|
|
28
33
|
the process must stop or demand revision.
|
|
@@ -101,11 +101,13 @@ export function parseControlState(
|
|
|
101
101
|
const approvals = new Map();
|
|
102
102
|
for (const h of ["Approvals", "Gate Checklist"])
|
|
103
103
|
for (const [g, s, e] of rows(section(content, h))) {
|
|
104
|
-
if (userGates.includes(g))
|
|
104
|
+
if (userGates.includes(g)) {
|
|
105
|
+
const status = clean(s);
|
|
105
106
|
approvals.set(g, {
|
|
106
|
-
status:
|
|
107
|
+
status: g === "QA" && (status === "pass" || status === "passed") ? "approved" : status,
|
|
107
108
|
evidence: e ?? "",
|
|
108
109
|
});
|
|
110
|
+
}
|
|
109
111
|
}
|
|
110
112
|
const artefacts = new Map();
|
|
111
113
|
for (const [t, p, s, n] of rows(section(content, "Artefacts"))) {
|
|
@@ -113,7 +115,9 @@ export function parseControlState(
|
|
|
113
115
|
artefacts.set(t, { path: p ?? "", status: clean(s), notes: n ?? "" });
|
|
114
116
|
}
|
|
115
117
|
const mapRows = (h, header, fn) => dataRows(content, h, header).map(fn);
|
|
116
|
-
const mode = "Mode
|
|
118
|
+
const mode = section(content, "Mode/Slice Decision").trim()
|
|
119
|
+
? "Mode/Slice Decision"
|
|
120
|
+
: "Mode / Slice Decision",
|
|
117
121
|
source = "Source And Scope State",
|
|
118
122
|
memory = "Knowledge Persistence Decision";
|
|
119
123
|
return {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-agdf",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "Bootstrap AGDF repository-local plugin files, Copilot/OpenCode instructions, skills, control files and machine-readable checks.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -25,9 +25,11 @@
|
|
|
25
25
|
"test:delivery-path-search-unit": "node ./scripts/delivery-path-search-unit-test.js",
|
|
26
26
|
"test:delivery-path-search-generator": "node ./scripts/delivery-path-search-generator-test.js",
|
|
27
27
|
"test:control-state": "node ./scripts/control-state-test.js",
|
|
28
|
+
"test:verified-change": "node ./scripts/verified-change-test.js",
|
|
29
|
+
"test:runtime-integrity-negative": "node ./scripts/runtime-integrity-negative-test.js",
|
|
28
30
|
"test:release-bootstrap": "node ./scripts/release-bootstrap-smoke-test.js",
|
|
29
31
|
"test:routing": "npm run sync-package-assets && node ./scripts/test-routing.js",
|
|
30
|
-
"smoke-test": "npm run sync-package-assets && npm run test:control-state && npm run test:delivery-path-search && npm run test:delivery-path-search-unit && npm run test:delivery-path-search-generator && node ./scripts/smoke-test.js && node ./scripts/test-routing.js",
|
|
32
|
+
"smoke-test": "npm run sync-package-assets && npm run test:control-state && npm run test:verified-change && npm run test:runtime-integrity-negative && npm run test:delivery-path-search && npm run test:delivery-path-search-unit && npm run test:delivery-path-search-generator && node ./scripts/smoke-test.js && node ./scripts/test-routing.js",
|
|
31
33
|
"prepack": "npm run sync-package-assets"
|
|
32
34
|
},
|
|
33
35
|
"keywords": [
|