create-agdf 0.10.1 → 0.10.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/README.md +21 -13
- package/bin/agdf-validator.js +11 -0
- package/generated/.agdf/control/README.md +3 -3
- package/generated/.github/skills/agdf-brownfield-analysis/SKILL.md +1 -1
- package/generated/.github/skills/agdf-delivery-path-search/SKILL.md +7 -6
- package/generated/.github/skills/agdf-gate-check/SKILL.md +28 -91
- package/generated/.github/skills/agdf-interaction-locales.json +2 -0
- package/generated/.github/skills/contracts/gate-transition.md +4 -2
- package/generated/.github/skills/contracts/modes.md +12 -1
- package/generated/.opencode/agdf-interaction-locales.json +2 -0
- package/generated/.opencode/contracts/gate-transition.md +4 -2
- package/generated/.opencode/contracts/modes.md +12 -1
- package/generated/.opencode/skills/agdf-brownfield-analysis/SKILL.md +1 -1
- package/generated/.opencode/skills/agdf-delivery-path-search/SKILL.md +7 -6
- package/generated/.opencode/skills/agdf-gate-check/SKILL.md +28 -91
- package/generated/plugins/agdf/.claude-plugin/plugin.json +19 -0
- package/generated/plugins/agdf/.codex-plugin/plugin.json +1 -1
- package/generated/plugins/agdf/control/README.md +3 -3
- package/generated/plugins/agdf/hooks/session-start.sh +1 -1
- package/generated/plugins/agdf/meta/agdf-interaction-locales.json +2 -0
- package/generated/plugins/agdf/meta/agdf-plugin.definition.json +1 -1
- package/generated/plugins/agdf/meta/contracts/gate-transition.md +4 -2
- package/generated/plugins/agdf/meta/contracts/modes.md +12 -1
- package/generated/plugins/agdf/runtime/agdf-local.js +11 -0
- package/generated/plugins/agdf/runtime/create-agdf/NOTICE +10 -0
- package/generated/plugins/agdf/runtime/create-agdf/bin/agdf-validator.js +11 -0
- package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-interaction-locales.json +418 -0
- package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +220 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/cli/command-registry.js +136 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/cli/delivery-path-search-command.js +75 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/cli/parse-args.js +156 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/cli/runtime-context.js +83 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/cli/validation-handlers.js +45 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/delivery-map.js +291 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/doctor.js +265 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/gate-check.js +459 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/gate-policy.js +283 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/required-files.js +9 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/run-state.js +217 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/shared.js +344 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/verified-change.js +156 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/aggregate.js +18 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/gate-approval-validator.js +49 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/index.js +7 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/legacy-migration.js +95 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-state-parser.js +227 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-state-repository.js +68 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-state-resolver.js +45 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-state-writer.js +97 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/candidate-policy.js +99 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/contracts.js +237 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/claude.js +44 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/codex.js +53 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/evaluators/protocol.js +13 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/generators/claude.js +40 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/generators/codex.js +38 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/generators/protocol.js +12 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/persistence.js +39 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/scoring.js +21 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/search-engine.js +154 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/state-adapter.js +161 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/surfaces/capabilities.js +14 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/transports/read-only-guard.js +43 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/interaction-presentation.js +590 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/local-validator.js +142 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/validator-application.js +40 -0
- package/generated/plugins/agdf/runtime/create-agdf/package.json +66 -0
- package/generated/plugins/agdf/runtime/runtime-manifest.json +8 -0
- package/generated/plugins/agdf/scripts/check-runtime-integrity.mjs +1040 -0
- package/generated/plugins/agdf/skills/brownfield-analysis/SKILL.md +1 -1
- package/generated/plugins/agdf/skills/delivery-path-search/SKILL.md +7 -6
- package/generated/plugins/agdf/skills/gate-check/SKILL.md +28 -91
- package/lib/cli/application.js +16 -54
- package/lib/cli/command-registry.js +9 -11
- package/lib/cli/validation-handlers.js +45 -0
- package/lib/control-evaluation/doctor.js +1 -1
- package/lib/control-evaluation/gate-check.js +7 -7
- package/lib/control-evaluation/required-files.js +9 -0
- package/lib/installers/local-marketplace.js +322 -0
- package/lib/installers/opencode.js +32 -2
- package/lib/installers/plugin-installers.js +102 -26
- package/lib/runtime/local-validator.js +142 -0
- package/lib/runtime/validator-application.js +40 -0
- package/lib/scaffold/plan.js +1 -7
- package/lib/scaffold/presentation.js +2 -2
- package/opencode-plugin.js +1 -1
- package/package.json +6 -2
|
@@ -44,17 +44,23 @@ If required control files are missing, do not automatically create a full `.agdf
|
|
|
44
44
|
The default first action is to draft the minimal UR in the response and request `Approval: UR`.
|
|
45
45
|
Use `init` only when the user explicitly asks for durable AGDF control state, the repository already uses `.agdf/control/` as its live working state, or a deterministic CLI/CI setup path is being executed.
|
|
46
46
|
|
|
47
|
-
Use the executable control path when a machine-readable check is requested, when the gate state is ambiguous, when CI or PR evidence is needed, when deterministic ready-gate rendering is required, or when a repository-local automation needs JSON output.
|
|
47
|
+
Use the executable control path when a machine-readable check is requested, when the gate state is ambiguous, when CI or PR evidence is needed, when deterministic ready-gate rendering is required, or when a repository-local automation needs JSON output. Resolve the version-matched validator owned by the active surface first: `<plugin-root>/runtime/agdf-local.js` for Codex or Claude, or `<opencode-config>/agdf/bin/agdf-local.js` for OpenCode. Run its `--resolve-only --json` probe before treating its output as machine evidence. An explicitly configured absolute `AGDF_VALIDATOR_PATH` is the only secondary local candidate and must match the active AGDF version.
|
|
48
|
+
|
|
49
|
+
Routine validation uses that resolved local entrypoint:
|
|
48
50
|
|
|
49
51
|
```bash
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
npx --yes @agdf/cli@latest delivery-map --json
|
|
52
|
+
node <surface-local-agdf> doctor --json
|
|
53
|
+
node <surface-local-agdf> gate-check --json
|
|
54
|
+
node <surface-local-agdf> delivery-map --json
|
|
54
55
|
```
|
|
55
56
|
|
|
56
|
-
|
|
57
|
-
`
|
|
57
|
+
If no exact-version local validator exists, continue through agent-native inspection where permitted
|
|
58
|
+
and state `machine_validation: unavailable` or `external_required`; do not automatically invoke
|
|
59
|
+
`npx`, install a package or contact the registry. Registry-resolved commands are reserved for an
|
|
60
|
+
explicit bootstrap, installation, repair or refresh requested as a lifecycle action.
|
|
61
|
+
|
|
62
|
+
For repeated local checks, use the resolved entrypoint with `doctor --json`, `gate-check --json` or
|
|
63
|
+
`gate-check --approval-envelope`. The last command prints the validated
|
|
58
64
|
two-card exact-text interaction; JSON exposes the same `approval_presentation`
|
|
59
65
|
for a native-capable adapter.
|
|
60
66
|
|
|
@@ -65,93 +71,24 @@ The CLI reports are validators and JSON evidence, not the primary user experienc
|
|
|
65
71
|
|
|
66
72
|
## Native Interaction Path
|
|
67
73
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
For a fresh request classified as read-only with no required run decision, emit the locale pack's
|
|
73
|
-
`primary.readOnlyOrientationDescription` sentence once before the findings. This path creates no run, persists
|
|
74
|
-
nothing, requests no approval and reuses the existing status projection. Do not repeat the sentence
|
|
75
|
-
during the same request.
|
|
76
|
-
|
|
77
|
-
For a ready `gate_approval`:
|
|
78
|
-
|
|
79
|
-
1. Resolve exactly one selected run and evaluate the current gate.
|
|
80
|
-
2. Confirm the required durable artefact is present and ready before presenting a question.
|
|
81
|
-
3. Consume the validated canonical `approval_presentation` for the same selected run, gate and revision. Do not compose or rewrite headings, fields, card order, locale copy or Markdown in the model.
|
|
82
|
-
4. Emit its complete `run_status_card` block first and `gate_transition_card` block second in one immediately preceding assistant message. The first heading is neutral; the five status fields are selected run, readiness, current gate, human-readable required decision and a neutral approve/revise/decline instruction. The exact approval value appears only in the transition card across these two blocks.
|
|
83
|
-
5. Never put either card only into the question, button description or hidden tool context. Do not invoke a native question until both rendered blocks are visible.
|
|
84
|
-
6. If the projection is absent or invalid, render no partial card and invoke no native control. Re-evaluate the gate. Use only the exact-text request when the same gate is still ready and its canonical value is independently valid; otherwise report the non-ready reason and request no decision.
|
|
85
|
-
7. Distinguish internal process steps from user decisions in natural language. For example, after `Approval: TP`, say that pre-implementation Brownfield Analysis runs next and that no further user action is required now; do not expose `next_user_gate: none` or `user_action_required: no`, and do not ask for a second approval for Brownfield Analysis.
|
|
86
|
-
8. Ask exactly one question that names the selected `run_id` and `current_gate`.
|
|
87
|
-
9. Offer options in stable order: exact `Approval: <GateName>`, localized revise and localized decline. Add explicit cancel only where supported after decline; otherwise host dismissal maps to cancel. Never preselect, skip, auto-submit or reorder an option.
|
|
88
|
-
10. Use the surface adapter declared in the canonical plugin definition only when it can wait for deliberate input without auto-resolution and can transport `exact_option_value` or `separate_label_and_value`; never invoke a `decorated_label_only` adapter. Otherwise request the same exact approval in concise text.
|
|
89
|
-
11. Render both supplied cards once in that single complete assistant message. Never merge, reverse, omit, duplicate or reconstruct them; the decision heading does not replace either card. If the native attempt is unavailable or not applied, continue to exact text without repeating either card.
|
|
90
|
-
12. Re-run gate evaluation for the same run and expected gate after the response and immediately before persistence.
|
|
91
|
-
13. Reject a missing artefact, ambiguous or wrong run, wrong gate, stale expected gate, timeout/default, hook-supplied answer, agent message, technical permission outcome or plan approval.
|
|
92
|
-
14. Persist accepted input only through the existing control-state workflow.
|
|
93
|
-
|
|
94
|
-
Before projecting a ready gate, evaluate adapter callability, deliberate wait safety and canonical
|
|
95
|
-
approval-value transport. Expose `native_attempt_required: true` only when that preflight proves
|
|
96
|
-
`exact_option_value` or `separate_label_and_value` transport with safe deliberate waiting. Decorated-only,
|
|
97
|
-
missing, conflicting or unknown capability exposes false and `unavailable_before_invocation`; unsafe
|
|
98
|
-
waiting exposes false and `unsafe_to_wait`. In both cases use exact text without invoking the adapter.
|
|
99
|
-
A hook, permission result or session context message cannot replace an eligible attempt or supply its answer.
|
|
100
|
-
|
|
101
|
-
Before composing the question, resolve the configured chat locale from `.agdf/control/config.json` through `../../agdf-interaction-locales.json`: exact complete pack, language subtag, then English fallback. German and English are initial packs, not a closed language list. Keep `Approval: <GateName>` exactly unchanged in every language, and do not mix presentation languages within one interaction. Labels and descriptions use the same resolved locale; host-owned UI chrome remains host-owned and may use a different language.
|
|
102
|
-
|
|
103
|
-
The canonical renderer resolves the complete locale pack. The initial German pack includes `Bereit für deine Entscheidung`, `Jetzt freigeben` and `Danach`; the initial English pack includes `Ready for your decision`, `Approve now` and `Next`. Verify that the supplied blocks use one locale and a neutral decision heading while leaving the exact gate identifier and approval value unchanged. Do not model-edit the supplied Markdown.
|
|
104
|
-
|
|
105
|
-
The primary option is derived exactly as `Approval: <GateName>` from the evaluated current gate; only explanatory copy and non-authoritative outcome labels are localized. Concrete localized copy belongs to the user-facing interaction layer or the approved delivery artefact, not to English runtime rules.
|
|
106
|
-
|
|
107
|
-
Make exactly one native-attempt for the eligible ready gate. If the host does not render,
|
|
108
|
-
apply or safely return the native question on that attempt, switch immediately
|
|
109
|
-
to the exact textual approval. Do not ask the user to request the buttons again
|
|
110
|
-
and do not create a retry loop or simulated control.
|
|
111
|
-
|
|
112
|
-
State the outcome visibly: `presented`, `unavailable_before_invocation`,
|
|
113
|
-
`attempted_not_applied` or `unsafe_to_wait`. For every fallback, say in the
|
|
114
|
-
configured locale why a native control was not usable, show the exact approval
|
|
115
|
-
value and confirm that authority is unchanged. This transient outcome is not
|
|
116
|
-
approval evidence. A new explicit user request may reopen the unchanged decision
|
|
117
|
-
only after fresh run/gate/artefact revalidation; never retry automatically.
|
|
118
|
-
|
|
119
|
-
Surface behavior:
|
|
120
|
-
|
|
121
|
-
- Codex: invoke the native short-question/request-user-input control only when preflight proves `exact_option_value` or `separate_label_and_value`, and omit auto-resolution. The canonical `decorated_label_only` capability must use exact text without invoking the adapter. `Approval: <GateName> (Recommended)` is never a valid option or approval.
|
|
122
|
-
- Claude Code: invoke `AskUserQuestion` on the first eligible attempt only when no timeout can auto-continue and no hook supplies `answers` or `updatedInput`; if it is not rendered or applied, use exact text immediately. Claude permissions and `ExitPlanMode` remain separate.
|
|
123
|
-
- OpenCode: use built-in `question` when permitted. Preserve explicit `permission.question` denial and use exact text in that case. `once`, `always`, `reject` and auto mode never become gate input.
|
|
124
|
-
- GitHub Copilot: the current repository-instruction surface has no conforming native approval adapter. Transmit the canonical rendered cards followed by the exact-text request; never claim or simulate a native control. Copilot tool confirmations, plan interactions and repository permissions remain separate.
|
|
125
|
-
- Other, unavailable or non-interactive surfaces: use exact textual approval and wait for a new explicit user response.
|
|
126
|
-
|
|
127
|
-
Localized labels such as `Überarbeiten`/`Revise`, `Ablehnen`/`Decline` and `Abbrechen`/`Cancel` are presentation mappings to stable non-approval outcomes only. A label, description, option position or recommendation never authorizes a gate. Host-provided free-text or `Überspringen`/`Skip` actions never advance an AGDF gate.
|
|
128
|
-
|
|
129
|
-
A free-form response must still exactly match the current gate's approval formula after revalidation. Keep `decline`, `cancel`, `no_response`, `timeout`, `empty`, `invalid` and `stale` distinct; none advances the gate. Native presentation, host permission and plan approval are inputs or separate authority domains, never durable AGDF authority.
|
|
130
|
-
|
|
131
|
-
Every primary chat card shows the selected run's `UR`, `PRD`, `SD` and `TP` in that order. Render an existing canonical path as a readable link and a missing artefact as localized non-link text; never guess paths. Resolve the human run title from current artefact heading, approved UR heading, Objective, then normalized `run_id`. Status, blocked, clarification and internal-step interactions use the same locale and artefact projection but do not show approval buttons. Keep raw process keys and machine status values in JSON or audit detail.
|
|
132
|
-
|
|
133
|
-
### Breadcrumb Rendering
|
|
134
|
-
|
|
135
|
-
The compact human Run Status Card includes a single-line path-derived breadcrumb showing the user's position in the delivery journey. Derive it from the Mode/Slice Decision and the Approvals table — not a fixed template. Use `✓` for fulfilled, `●` for current, `○` for open, separated by ` · `. Non-applicable gates are absent. See the Runtime Contract §Breadcrumb for the path templates and the derived `breadcrumb` array.
|
|
136
|
-
|
|
137
|
-
### Post-Acceptance Transition Narration
|
|
138
|
-
|
|
139
|
-
After each accepted gate approval is persisted, emit exactly one narration line using the template `<what was satisfied> → <what the agent does next internally> → <user action: yes/no>`. This generalizes the existing TP pattern (step 7 above) to every gate advancement. The narration is post-acceptance only: it never appears in the same message as the Gate Transition Card, never contains the `Approval:` value, and never repeats the decision's effect. For internal steps (Brownfield Review, Brownfield Analysis), state what the agent does next and that no user action is required, without exposing `next_user_gate: none` or asking for a second approval. See the Runtime Contract §Post-Acceptance Transition Narration for the full contract.
|
|
140
|
-
|
|
141
|
-
### Internal-State Collapse in the Human Card
|
|
142
|
-
|
|
143
|
-
When rendering the compact human Run Status Card, collapse internal sub-states (`verified_change` sub-states, `context_graph_required_action`, `multi_scope_state`) to stable human labels. `escalated`, `open_gap` and `blocked` remain explicitly visible. The full machine/audit projection retains all raw values unchanged. See the Runtime Contract §Internal-State Collapse for the complete mapping table.
|
|
144
|
-
|
|
145
|
-
### On-Demand "Why?" Response
|
|
74
|
+
`../../contracts/interaction.md` is the complete normative owner for interaction kinds, locale,
|
|
75
|
+
canonical values, presentation order, adapter capability, deliberate waiting, native/fallback
|
|
76
|
+
behavior, transient outcomes, permissions and post-response validation. Load and apply that contract;
|
|
77
|
+
do not restate or infer a surface matrix in this skill.
|
|
146
78
|
|
|
147
|
-
|
|
79
|
+
This skill owns only these operational responsibilities:
|
|
148
80
|
|
|
149
|
-
1.
|
|
150
|
-
2.
|
|
151
|
-
3.
|
|
152
|
-
4.
|
|
81
|
+
1. Select exactly one run and evaluate its current gate.
|
|
82
|
+
2. Confirm that the required durable artefact is present and ready.
|
|
83
|
+
3. Consume the canonical `approval_presentation` verbatim for the selected run, gate and revision.
|
|
84
|
+
4. Present that projection and obtain deliberate input through the contract-selected native or exact-text path.
|
|
85
|
+
5. Revalidate the same run, gate and revision immediately after the response and before persistence.
|
|
86
|
+
6. Persist only a currently valid exact approval through the existing control-state workflow.
|
|
153
87
|
|
|
154
|
-
|
|
88
|
+
For status, blocked, read-only or rationale interactions, consume the same canonical projection and
|
|
89
|
+
locale contract without asking for approval. Internal process steps remain distinct from user
|
|
90
|
+
decisions. If the projection, adapter evidence or revalidation is missing, follow the contract's
|
|
91
|
+
fail-closed outcome and leave authority unchanged.
|
|
155
92
|
|
|
156
93
|
## Rules
|
|
157
94
|
1. Fail closed when a required approval or artefact status is missing.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agdf",
|
|
3
|
+
"version": "0.10.2",
|
|
4
|
+
"description": "AI Governance & Delivery Framework (AGDF) brings an operating system for governed AI-assisted delivery to Claude Code, combining workflow skills, control templates and machine-readable repository checks for gate decisions, Brownfield analysis, task-plan review, QA decisions, durable run state and auditable closeout.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"agentic",
|
|
7
|
+
"governance",
|
|
8
|
+
"delivery",
|
|
9
|
+
"ai-native",
|
|
10
|
+
"brownfield"
|
|
11
|
+
],
|
|
12
|
+
"homepage": "https://agdf.iself.eu",
|
|
13
|
+
"repository": "https://github.com/arndtgold/ai-native-governance-delivery-framework",
|
|
14
|
+
"license": "Apache-2.0",
|
|
15
|
+
"author": {
|
|
16
|
+
"name": "Arndt Gold",
|
|
17
|
+
"url": "https://agdf.iself.eu"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -66,9 +66,9 @@ npx --yes @agdf/cli@latest config --language en
|
|
|
66
66
|
Then check whether the live state is actionable:
|
|
67
67
|
|
|
68
68
|
```bash
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
agdf doctor
|
|
70
|
+
agdf doctor --json
|
|
71
|
+
agdf gate-check --json
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
`doctor` does not replace agent judgment. It catches basic control failures: missing live files, missing current gate, missing next allowed action, empty evidence, empty backlog pointer, empty source-of-truth registry, duplicate active SoT rows and invalid quality contracts.
|
|
@@ -24,7 +24,7 @@ try {
|
|
|
24
24
|
console.log(`Language policy: write durable AGDF artefacts in ${artefacts} and user-facing responses in ${chat} unless the user explicitly asks otherwise. Runtime rules stay ${runtime}.`);
|
|
25
25
|
}
|
|
26
26
|
} catch {
|
|
27
|
-
console.log("Project config: .agdf/control/config.json exists but is not valid JSON. Run
|
|
27
|
+
console.log("Project config: .agdf/control/config.json exists but is not valid JSON. Run the surface-local AGDF validator's doctor command.");
|
|
28
28
|
}
|
|
29
29
|
NODE
|
|
30
30
|
)"
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
"OR": "Delivery report",
|
|
80
80
|
"Verified Change": "Verified change",
|
|
81
81
|
"Quick Task": "Quick task",
|
|
82
|
+
"Compact Delivery": "Compact Delivery",
|
|
82
83
|
"Block": "Block"
|
|
83
84
|
},
|
|
84
85
|
"gateActionTitles": {
|
|
@@ -281,6 +282,7 @@
|
|
|
281
282
|
"OR": "Lieferbericht",
|
|
282
283
|
"Verified Change": "Verified Change",
|
|
283
284
|
"Quick Task": "Quick Task",
|
|
285
|
+
"Compact Delivery": "Kompakte Lieferung",
|
|
284
286
|
"Block": "Block"
|
|
285
287
|
},
|
|
286
288
|
"gateActionTitles": {
|
|
@@ -57,7 +57,7 @@ They must not override AGDF gates, approvals or the Runtime Contract.
|
|
|
57
57
|
- Approval of one user gate permits work on the next allowed gate artefact or required internal step only. It does not permit implementation unless the approved gate is `TP` and required internal implementation prerequisites are satisfied.
|
|
58
58
|
- Gates must never be skipped or inferred from urgency, tone, chat history, task wording or an instruction to "start". The next allowed action is always the next unsatisfied gate or internal mandatory step.
|
|
59
59
|
- Missing control files or missing current-state fields do not forbid the agent from preparing the current allowed artefact. They forbid later-gate work and implementation. For a fresh request, the default allowed work is to draft a minimal UR in the response and request `Approval: UR`. Initialize or write `.agdf/control/` only when the user explicitly asks for durable AGDF control state, the repository already uses `.agdf/control/` as its live working state, or a deterministic CLI/CI setup path is being executed.
|
|
60
|
-
- `Approval: UR` permits Brownfield Review after G-00 first
|
|
60
|
+
- `Approval: UR` permits Brownfield Review after G-00 first. The review records its Mode/Slice Decision in the same internal operation when evidence is sufficient; the user is told that no action is required now. A separate `Mode/Slice Decision` step is fail-closed recovery for incomplete or legacy review state, not a normal user decision. UR approval never permits implementation by itself and does not preselect PRD.
|
|
61
61
|
- PRD, SD and TP depth is chosen after Brownfield Review through the Mode/Slice Decision, not before existing-system impact is understood.
|
|
62
62
|
- The Mode/Slice Decision must be visible before any PRD shortcut, Quick Task execution or implementation: record the decision, required next gate, scope reason and evidence in the selected canonical `RUN_STATE.md` or an equivalent linked control artefact.
|
|
63
63
|
- `Approval: PRD` permits Solution Design drafting, not implementation.
|
|
@@ -76,6 +76,9 @@ After an approved and durable UR, perform a lightweight `Brownfield Review` befo
|
|
|
76
76
|
|
|
77
77
|
This review is not a new user approval gate, not PRD, not SD, not TP and not implementation permission.
|
|
78
78
|
It is the sizing and routing step that decides how much later gate discipline is actually needed.
|
|
79
|
+
When evidence is sufficient, persist the review and Mode/Slice selection together; do not expose a
|
|
80
|
+
second routine user decision. Keep the standalone Mode/Slice step only for fail-closed recovery when
|
|
81
|
+
the review record is incomplete or legacy.
|
|
79
82
|
|
|
80
83
|
Its output is limited to:
|
|
81
84
|
|
|
@@ -131,4 +134,3 @@ The `brownfield-analysis` skill has two explicit modes:
|
|
|
131
134
|
- `pre_implementation_analysis`: implementation-preparation analysis after approved durable TP; verifies reuse path, owners, regression risk and fit before `CD+Tests`.
|
|
132
135
|
|
|
133
136
|
Do not mix the modes silently. Name the active mode in Brownfield output.
|
|
134
|
-
|
|
@@ -24,6 +24,18 @@ Use this compact output shape when no formal gate artefact is required:
|
|
|
24
24
|
|
|
25
25
|
Do not add a separate `Quality outlook` line for pure Quick Tasks unless the task became a relevant run.
|
|
26
26
|
|
|
27
|
+
### Quick Task and Compact Delivery
|
|
28
|
+
|
|
29
|
+
Use **Quick Task** for ungated questions, reviews, debugging and eligible narrow fixes that introduce
|
|
30
|
+
no new product semantics or formal artefacts. When an approved UR is followed by a Brownfield Review
|
|
31
|
+
that selects the persisted `quick_task` mode, use **Compact Delivery** as the human-facing label. The
|
|
32
|
+
stored and JSON value remains `quick_task`; Compact Delivery is not a new mode or approval gate.
|
|
33
|
+
|
|
34
|
+
Brownfield Review owns the Mode/Slice selection. A completed review records its decision, scope
|
|
35
|
+
reason, evidence and required next depth in the same internal operation. `Mode/Slice Decision` remains
|
|
36
|
+
only a fail-closed recovery step for incomplete or legacy records and is not a normal second user
|
|
37
|
+
decision.
|
|
38
|
+
|
|
27
39
|
### Verified Change
|
|
28
40
|
|
|
29
41
|
`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.
|
|
@@ -88,4 +100,3 @@ For narrow defect work, a repository may use a lightweight bug scope instead of
|
|
|
88
100
|
|
|
89
101
|
The Bug Lightweight Track does not remove QA, OR, evidence, Brownfield fit or exact approvals required by the target repository.
|
|
90
102
|
If the bug grows beyond the stated boundary, escalate to normal AGDF gate flow.
|
|
91
|
-
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// Generated by create-agdf/scripts/sync-plugin-runtime.js; do not edit.
|
|
4
|
+
import { readFileSync } from "node:fs";
|
|
5
|
+
import process from "node:process";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
import { runLocalValidator } from "./create-agdf/lib/runtime/local-validator.js";
|
|
8
|
+
|
|
9
|
+
const runtimeRoot = fileURLToPath(new URL(".", import.meta.url));
|
|
10
|
+
const manifest = JSON.parse(readFileSync(new URL("./runtime-manifest.json", import.meta.url), "utf8"));
|
|
11
|
+
process.exitCode = runLocalValidator({ runtimeRoot, expectedVersion: manifest.version, surface: process.env.AGDF_SURFACE || "plugin" }, process.argv.slice(2));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
AI Governance & Delivery Framework (AGDF)
|
|
2
|
+
|
|
3
|
+
Copyright 2024-2026 Arndt Gold.
|
|
4
|
+
|
|
5
|
+
The create-agdf package is licensed under the Apache License, Version 2.0.
|
|
6
|
+
|
|
7
|
+
AGDF(TM) and AI Governance & Delivery Framework(TM) are marks of Arndt Gold.
|
|
8
|
+
The package license does not grant permission to use project names, trademarks,
|
|
9
|
+
service marks or logos except as required for reasonable and customary
|
|
10
|
+
description of the origin of the project.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import process from "node:process";
|
|
4
|
+
import { runValidatorCli } from "../lib/runtime/validator-application.js";
|
|
5
|
+
|
|
6
|
+
try {
|
|
7
|
+
process.exitCode = await runValidatorCli(process.argv.slice(2));
|
|
8
|
+
} catch (error) {
|
|
9
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
10
|
+
process.exitCode = 1;
|
|
11
|
+
}
|