create-agdf 0.14.2 → 0.14.3
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 +5 -1
- package/generated/.opencode/contracts/control-scaffold.md +17 -2
- package/generated/.opencode/skills/agdf-delivery-path-search/SKILL.md +16 -4
- package/generated/plugins/agdf/.claude-plugin/plugin.json +1 -1
- package/generated/plugins/agdf/.codex-plugin/plugin.json +1 -1
- package/generated/plugins/agdf/meta/agdf-plugin.definition.json +1 -1
- package/generated/plugins/agdf/meta/contracts/control-scaffold.md +17 -2
- package/generated/plugins/agdf/meta/copilot-payload-baseline.json +2 -2
- package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +1 -1
- package/generated/plugins/agdf/runtime/create-agdf/lib/cli/delivery-path-search-command.js +51 -19
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/contracts.js +37 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/persistence.js +14 -2
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/search-engine.js +126 -36
- package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/state-adapter.js +40 -92
- package/generated/plugins/agdf/runtime/create-agdf/package.json +1 -1
- package/generated/plugins/agdf/runtime/runtime-manifest.json +2 -2
- package/generated/plugins/agdf/skills/delivery-path-search/SKILL.md +16 -4
- package/generated/plugins/agdf/submission/openai/availability.md +1 -1
- package/generated/plugins/agdf/submission/openai/capability-matrix.json +1 -1
- package/generated/plugins/agdf/submission/openai/release-notes.md +7 -1
- package/generated/plugins/agdf/submission/openai/reviewer-cases.json +1 -1
- package/generated/plugins/copilot/agdf/.agdf-payload-inventory.json +27 -27
- package/generated/plugins/copilot/agdf/copilot-skills/agdf-delivery-path-search/SKILL.md +16 -4
- package/generated/plugins/copilot/agdf/copilot-skills/contracts/control-scaffold.md +17 -2
- package/generated/plugins/copilot/agdf/meta/agdf-plugin.definition.json +1 -1
- package/generated/plugins/copilot/agdf/plugin.json +1 -1
- package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +1 -1
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/delivery-path-search-command.js +51 -19
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/contracts.js +37 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/persistence.js +14 -2
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/search-engine.js +126 -36
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/delivery-path-search/state-adapter.js +40 -92
- package/generated/plugins/copilot/agdf/runtime/create-agdf/package.json +1 -1
- package/generated/plugins/copilot/agdf/runtime/runtime-manifest.json +2 -2
- package/generated/submissions/openai/agdf/.codex-plugin/plugin.json +1 -1
- package/generated/submissions/openai/agdf/meta/agdf-plugin.definition.json +1 -1
- package/generated/submissions/openai/agdf/meta/contracts/control-scaffold.md +17 -2
- package/generated/submissions/openai/agdf/meta/copilot-payload-baseline.json +2 -2
- package/generated/submissions/openai/agdf/skills/delivery-path-search/SKILL.md +16 -4
- package/generated/submissions/openai/agdf/submission/openai/availability.md +1 -1
- package/generated/submissions/openai/agdf/submission/openai/capability-matrix.json +1 -1
- package/generated/submissions/openai/agdf/submission/openai/inventory.json +12 -12
- package/generated/submissions/openai/agdf/submission/openai/listing.json +1 -1
- package/generated/submissions/openai/agdf/submission/openai/readiness.json +2 -2
- package/generated/submissions/openai/agdf/submission/openai/readiness.md +2 -2
- package/generated/submissions/openai/agdf/submission/openai/release-notes.md +7 -1
- package/generated/submissions/openai/agdf/submission/openai/reviewer-cases.json +1 -1
- package/lib/cli/delivery-path-search-command.js +51 -19
- package/lib/delivery-path-search/contracts.js +37 -0
- package/lib/delivery-path-search/persistence.js +14 -2
- package/lib/delivery-path-search/search-engine.js +126 -36
- package/lib/delivery-path-search/state-adapter.js +40 -92
- package/package.json +1 -1
package/generated/plugins/agdf/runtime/create-agdf/lib/delivery-path-search/state-adapter.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
1
|
import {
|
|
4
2
|
CONTRACT_VERSION,
|
|
5
3
|
GENERATOR_CONTRACT_VERSION,
|
|
6
4
|
validateGeneratorRequest,
|
|
7
5
|
} from "./contracts.js";
|
|
8
|
-
import {
|
|
6
|
+
import { evaluateGateCheck } from "../control-evaluation/gate-check.js";
|
|
7
|
+
import { readRunState } from "../control-evaluation/run-state.js";
|
|
9
8
|
|
|
10
9
|
function section(content, heading) {
|
|
11
10
|
return (
|
|
@@ -15,100 +14,44 @@ function section(content, heading) {
|
|
|
15
14
|
);
|
|
16
15
|
}
|
|
17
16
|
|
|
18
|
-
function
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
.split("|")
|
|
23
|
-
.slice(1, -1)
|
|
24
|
-
.map((cell) => cell.trim());
|
|
25
|
-
if (
|
|
26
|
-
cells.length >= 2 &&
|
|
27
|
-
cells[0] &&
|
|
28
|
-
!cells[0].startsWith("---") &&
|
|
29
|
-
cells[0] !== "Question"
|
|
30
|
-
)
|
|
31
|
-
answers[cells[0]] = cells[1];
|
|
32
|
-
}
|
|
33
|
-
return answers;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function statusCard(content) {
|
|
37
|
-
const card = {};
|
|
38
|
-
for (const line of section(content, "Run Status Card").split(/\r?\n/)) {
|
|
39
|
-
const cells = line
|
|
40
|
-
.split("|")
|
|
41
|
-
.slice(1, -1)
|
|
42
|
-
.map((cell) => cell.trim().replace(/^`|`$/g, ""));
|
|
43
|
-
if (
|
|
44
|
-
cells.length >= 2 &&
|
|
45
|
-
cells[0] &&
|
|
46
|
-
!cells[0].startsWith("---") &&
|
|
47
|
-
cells[0] !== "Run status"
|
|
48
|
-
)
|
|
49
|
-
card[cells[0]] = cells[1];
|
|
50
|
-
}
|
|
51
|
-
return card;
|
|
17
|
+
function metaField(content, name) {
|
|
18
|
+
return content.match(new RegExp(`^- ${name}:\\s*(.+)$`, "m"))?.[1]
|
|
19
|
+
?.replace(/^`|`$/g, "")
|
|
20
|
+
.trim() ?? "";
|
|
52
21
|
}
|
|
53
22
|
|
|
54
|
-
function
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
23
|
+
export function searchInputFromControl(targetDir, options = {}, dependencies = {}) {
|
|
24
|
+
const evaluate = dependencies.evaluateGateCheck ?? evaluateGateCheck;
|
|
25
|
+
const readRun = dependencies.readRunState ?? readRunState;
|
|
26
|
+
const selection = options.scopeKey ? { runId: options.scopeKey } : {};
|
|
27
|
+
const gate = evaluate(targetDir, selection);
|
|
28
|
+
const run = readRun(targetDir, selection);
|
|
29
|
+
const content = run.content ?? "";
|
|
30
|
+
const evaluatedRunId = gate.status_card?.run_id ?? "";
|
|
31
|
+
const evaluatedRevision = gate.status_presentation?.revision_id ?? "";
|
|
32
|
+
const runId = metaField(content, "run_id");
|
|
33
|
+
const runRevision = metaField(content, "revision_id");
|
|
34
|
+
const runGate = metaField(content, "current_gate");
|
|
35
|
+
let inputFailureCode = "";
|
|
36
|
+
if (!content || run.resolution_error) inputFailureCode = "canonical_control_unavailable";
|
|
37
|
+
else if (!evaluatedRunId || !evaluatedRevision) inputFailureCode = "canonical_snapshot_identity_missing";
|
|
38
|
+
else if (evaluatedRunId !== runId || evaluatedRevision !== runRevision || gate.current_gate !== runGate) {
|
|
39
|
+
inputFailureCode = "stale_control_snapshot";
|
|
40
|
+
} else if (!Array.isArray(gate.allowed) || gate.allowed.length === 0) {
|
|
41
|
+
inputFailureCode = "canonical_actions_unavailable";
|
|
68
42
|
}
|
|
69
|
-
const resolved = existsSync(canonicalRoot)
|
|
70
|
-
? resolveRuns(targetDir, {
|
|
71
|
-
runIdArg: options.scopeKey,
|
|
72
|
-
runIdEnv: process.env.AGDF_RUN_ID,
|
|
73
|
-
})
|
|
74
|
-
: null;
|
|
75
|
-
const runPath =
|
|
76
|
-
resolved?.run.path ?? join(targetDir, ".agdf", "control", "AGDF_RUN.md");
|
|
77
|
-
if (!existsSync(runPath)) throw new Error("missing AGDF run state");
|
|
78
|
-
const content = readFileSync(runPath, "utf8");
|
|
79
|
-
const meta = Object.fromEntries(
|
|
80
|
-
[...content.matchAll(/^- ([a-z_]+):\s*(.+)$/gm)].map((match) => [
|
|
81
|
-
match[1],
|
|
82
|
-
match[2].replace(/^`|`$/g, "").trim(),
|
|
83
|
-
]),
|
|
84
|
-
);
|
|
85
|
-
const answers = tableAnswers(content);
|
|
86
|
-
const card = statusCard(content);
|
|
87
43
|
const result = {
|
|
88
44
|
contract_version: CONTRACT_VERSION,
|
|
89
|
-
scope_key: options.scopeKey
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
),
|
|
100
|
-
]
|
|
101
|
-
.slice(1)
|
|
102
|
-
.map((match) => `${match[1].trim()}: ${match[2].trim()}`),
|
|
103
|
-
risks: section(content, "Risks")
|
|
104
|
-
.split(/\r?\n/)
|
|
105
|
-
.filter(
|
|
106
|
-
(line) =>
|
|
107
|
-
line.startsWith("|") &&
|
|
108
|
-
!line.includes("---") &&
|
|
109
|
-
!line.includes("| Risk |"),
|
|
110
|
-
)
|
|
111
|
-
.map((line) => line.split("|")[1].trim()),
|
|
45
|
+
scope_key: evaluatedRunId || runId || options.scopeKey || "unknown-scope",
|
|
46
|
+
scope_revision: evaluatedRevision || runRevision || "unversioned",
|
|
47
|
+
objective: section(content, "Objective").trim() || "Canonical Delivery Path Search input unavailable",
|
|
48
|
+
current_gate: gate.current_gate || runGate || "unknown",
|
|
49
|
+
allowed_actions: inputFailureCode ? [] : [...gate.allowed],
|
|
50
|
+
forbidden_actions: Array.isArray(gate.forbidden) ? [...gate.forbidden] : [],
|
|
51
|
+
evidence_refs: Array.isArray(gate.evidence_refs)
|
|
52
|
+
? gate.evidence_refs.map((item) => `${item.evidence}: ${item.source}`)
|
|
53
|
+
: [],
|
|
54
|
+
risks: Array.isArray(run.risks) ? run.risks.map((item) => item.risk).filter(Boolean) : [],
|
|
112
55
|
enforcement: options.enforcement ?? {
|
|
113
56
|
level: "instruction_only",
|
|
114
57
|
evidence: ["surface instruction prohibits implementation during search"],
|
|
@@ -122,6 +65,11 @@ export function searchInputFromControl(targetDir, options = {}) {
|
|
|
122
65
|
stability_window: options.stabilityWindow ?? 3,
|
|
123
66
|
},
|
|
124
67
|
};
|
|
68
|
+
if (inputFailureCode) {
|
|
69
|
+
result.input_failure_code = inputFailureCode;
|
|
70
|
+
result.input_failure_detail = run.resolution_error || (gate.blocking_reason !== "none" ? gate.blocking_reason : "") || "canonical input is not ready";
|
|
71
|
+
result.input_recovery_action = gate.next_allowed_action || "Run canonical AGDF gate-check and repair the selected control state.";
|
|
72
|
+
}
|
|
125
73
|
if (options.generation?.enabled)
|
|
126
74
|
result.generation = {
|
|
127
75
|
enabled: true,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schema_version": "1",
|
|
3
3
|
"generated": true,
|
|
4
4
|
"source": "create-agdf/cli",
|
|
5
|
-
"version": "0.14.
|
|
5
|
+
"version": "0.14.3",
|
|
6
6
|
"entrypoint": "create-agdf/bin/agdf-validator.js",
|
|
7
|
-
"digest": "
|
|
7
|
+
"digest": "8f6dbd5e647aff7dfc1405f4e54a5b135a8d820858b5f8f85873964f6eb2f7cf"
|
|
8
8
|
}
|
|
@@ -33,7 +33,9 @@ Skip for routine questions, obvious local fixes and approved implementation with
|
|
|
33
33
|
## Workflow
|
|
34
34
|
|
|
35
35
|
1. Run AGDF gate-check and inspect durable control state.
|
|
36
|
-
2. Confirm that
|
|
36
|
+
2. Confirm that the requested decision matches the selected run objective, and that search is
|
|
37
|
+
allowed while implementation is not occurring during exploration. If the objective differs,
|
|
38
|
+
stop and select or create the correct governed scope; do not apply the result across scopes.
|
|
37
39
|
3. Declare the active surface and its enforcement level.
|
|
38
40
|
4. Resolve the exact-version surface-local validator using the same ownership rules as `gate-check`. Do not search `PATH`, query a registry, install a package or invoke `npx ...@latest` during routine planning. If no owned or explicitly configured exact-version validator is available, report `machine_validation: unavailable` or `machine_validation: external_required` and stop the machine-evaluated search.
|
|
39
41
|
5. Invoke the shared CLI runtime:
|
|
@@ -54,7 +56,9 @@ node <surface-local-agdf> delivery-path-search \
|
|
|
54
56
|
It supplements the deterministic baseline with at most one bounded generator call. Treat proposals as untrusted until the canonical core validates schema, gate action, scope, duplicates and material diversity. Report generation provenance, budgets, rejections and failure. Never hide deterministic fallback or switch providers automatically.
|
|
55
57
|
|
|
56
58
|
6. Treat facts, repository evidence, assumptions and model judgements separately.
|
|
57
|
-
7. Return
|
|
59
|
+
7. Report the actual terminal phase and status. Return a recommendation-facing conclusion only
|
|
60
|
+
after at least one valid evaluation. Missing/stale input, zero legal candidates and evaluator
|
|
61
|
+
unavailability/error remain typed non-recommendation outcomes with one recovery action.
|
|
58
62
|
8. Run canonical AGDF gate-check after search. Never translate a recommendation into permission.
|
|
59
63
|
|
|
60
64
|
## Enforcement
|
|
@@ -71,15 +75,20 @@ Do not overstate the surface's guarantee.
|
|
|
71
75
|
|
|
72
76
|
Keep chat output compact:
|
|
73
77
|
|
|
74
|
-
-
|
|
78
|
+
- selected run, revision and objective
|
|
79
|
+
- outcome phase and typed terminal status
|
|
80
|
+
- recommendation only for a recommendation-facing evaluated result
|
|
75
81
|
- current gate
|
|
76
82
|
- enforcement level
|
|
77
83
|
- decisive evidence and assumptions
|
|
78
84
|
- rejected alternatives and reasons
|
|
79
85
|
- budgets and stopping reason
|
|
86
|
+
- candidate and evaluation provenance, including attempted, valid and invalid counts
|
|
80
87
|
- next AGDF gate action
|
|
81
88
|
|
|
82
|
-
Persist only
|
|
89
|
+
Persist only a contract-valid evaluated recommendation-facing summary when durable evidence is
|
|
90
|
+
required. Never persist input, candidate or evaluator failure as a decision. Do not persist raw
|
|
91
|
+
prompts, hidden reasoning, secrets or source snapshots.
|
|
83
92
|
|
|
84
93
|
## Boundaries
|
|
85
94
|
|
|
@@ -87,6 +96,9 @@ Persist only the redacted decision summary when durable evidence is required. Do
|
|
|
87
96
|
- Do not modify repository files during search.
|
|
88
97
|
- Do not execute evaluator-returned commands.
|
|
89
98
|
- Do not invent default scores for invalid evaluator output.
|
|
99
|
+
- Do not parse Run Status Card or other presentation Markdown as gate-policy input.
|
|
100
|
+
- Do not describe zero valid evaluations as `no_safe_recommendation`.
|
|
101
|
+
- Do not apply one selected run's result to an unrelated question.
|
|
90
102
|
- Do not implement, approve or release based on search output.
|
|
91
103
|
- Do not create agent-specific scoring, gate logic or skill copies.
|
|
92
104
|
- Do not replace deterministic candidates with generated proposals.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# AGDF 0.14.
|
|
1
|
+
# AGDF 0.14.3 — Initial OpenAI Public Plugin Candidate
|
|
2
2
|
|
|
3
3
|
This candidate packages the canonical AGDF workflow skills for public discovery in ChatGPT and
|
|
4
4
|
Codex. It helps users assess delivery fit, preserve explicit human approvals, inspect existing-system
|
|
@@ -19,6 +19,12 @@ runtime or hooks, so automatic runtime checks remain unavailable in this profile
|
|
|
19
19
|
installers also show the target and verified installed AGDF version, distinguish previous intent from
|
|
20
20
|
effective host permission, explain manual mode and recover visibly from an invalid key.
|
|
21
21
|
|
|
22
|
+
Delivery Path Search now consumes canonical selected-run gate actions instead of persisted
|
|
23
|
+
presentation Markdown. Its additive version-1 result fields expose run revision, objective, outcome
|
|
24
|
+
phase and candidate/evaluation provenance. Missing input, zero legal candidates and evaluator
|
|
25
|
+
failures no longer appear as `no_safe_recommendation`; recommendation-facing results require at
|
|
26
|
+
least one valid evaluation and are the only persistable outcomes.
|
|
27
|
+
|
|
22
28
|
AGDF is an independent open-source project by Arndt Gold. It is not affiliated with, endorsed by or
|
|
23
29
|
sponsored by OpenAI and is not a security sandbox, legal assessment, compliance certification or
|
|
24
30
|
autonomous shipping system.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": 1,
|
|
3
3
|
"profile_id": "copilot-runtime-plugin",
|
|
4
|
-
"version": "0.14.
|
|
4
|
+
"version": "0.14.3",
|
|
5
5
|
"baseline": {
|
|
6
6
|
"max_files": 78,
|
|
7
|
-
"max_bytes":
|
|
7
|
+
"max_bytes": 550979
|
|
8
8
|
},
|
|
9
9
|
"stats": {
|
|
10
10
|
"files": 78,
|
|
11
|
-
"bytes":
|
|
11
|
+
"bytes": 550979
|
|
12
12
|
},
|
|
13
13
|
"entries": [
|
|
14
14
|
{
|
|
@@ -73,9 +73,9 @@
|
|
|
73
73
|
"rule": "copilot_name_projection",
|
|
74
74
|
"requirement": "Copilot skill agdf-delivery-path-search",
|
|
75
75
|
"source": "plugin/skills/delivery-path-search/SKILL.md",
|
|
76
|
-
"source_digest": "
|
|
77
|
-
"digest": "
|
|
78
|
-
"bytes":
|
|
76
|
+
"source_digest": "688a0e04f6a1a39be17ded0047f88187b109f25bd9f22927a3d4261cbfdc0bd5",
|
|
77
|
+
"digest": "986c74ab103ca04084bfc1b9fce66090988106670cd224fca43c437a7ee4705b",
|
|
78
|
+
"bytes": 4916
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
"destination": "copilot-skills/agdf-gate-check/SKILL.md",
|
|
@@ -183,9 +183,9 @@
|
|
|
183
183
|
"rule": "copilot_name_projection",
|
|
184
184
|
"requirement": "focused runtime contract",
|
|
185
185
|
"source": "plugin/meta/contracts/control-scaffold.md",
|
|
186
|
-
"source_digest": "
|
|
187
|
-
"digest": "
|
|
188
|
-
"bytes":
|
|
186
|
+
"source_digest": "82d298d5399c56ecbaeef78ac367556b675200c09ea96e160534ec03adb07f42",
|
|
187
|
+
"digest": "2aaa38c39d19d38575270d8bc6e8c113be3bd652f988657d53dae10613f95243",
|
|
188
|
+
"bytes": 10256
|
|
189
189
|
},
|
|
190
190
|
{
|
|
191
191
|
"destination": "copilot-skills/contracts/gate-transition.md",
|
|
@@ -249,7 +249,7 @@
|
|
|
249
249
|
"rule": "render_copilot_hook",
|
|
250
250
|
"requirement": "consent-bound session start check",
|
|
251
251
|
"source": "plugin/meta/agdf-plugin.definition.json",
|
|
252
|
-
"source_digest": "
|
|
252
|
+
"source_digest": "16b69b796510bf4f6907fd986ad64dcf8e5ac4f3860d12e0e62381ea2582b012",
|
|
253
253
|
"digest": "60d7cd31d6c9483c720c5e775c10d94ba7fd214a0b15b046703ced3953bd489f",
|
|
254
254
|
"bytes": 273
|
|
255
255
|
},
|
|
@@ -282,8 +282,8 @@
|
|
|
282
282
|
"rule": "copy",
|
|
283
283
|
"requirement": "local validator and session orientation dependency",
|
|
284
284
|
"source": "plugin/meta/agdf-plugin.definition.json",
|
|
285
|
-
"source_digest": "
|
|
286
|
-
"digest": "
|
|
285
|
+
"source_digest": "16b69b796510bf4f6907fd986ad64dcf8e5ac4f3860d12e0e62381ea2582b012",
|
|
286
|
+
"digest": "16b69b796510bf4f6907fd986ad64dcf8e5ac4f3860d12e0e62381ea2582b012",
|
|
287
287
|
"bytes": 11491
|
|
288
288
|
},
|
|
289
289
|
{
|
|
@@ -304,8 +304,8 @@
|
|
|
304
304
|
"rule": "render_copilot_manifest",
|
|
305
305
|
"requirement": "Copilot plugin discovery",
|
|
306
306
|
"source": "plugin/meta/agdf-plugin.definition.json",
|
|
307
|
-
"source_digest": "
|
|
308
|
-
"digest": "
|
|
307
|
+
"source_digest": "16b69b796510bf4f6907fd986ad64dcf8e5ac4f3860d12e0e62381ea2582b012",
|
|
308
|
+
"digest": "2e60d46f88338ce119067c2681c2517572c15d66b7f3f775bb9da0b0d5048673",
|
|
309
309
|
"bytes": 551
|
|
310
310
|
},
|
|
311
311
|
{
|
|
@@ -359,7 +359,7 @@
|
|
|
359
359
|
"owner": "create-agdf/scripts/sync-plugin-runtime.js",
|
|
360
360
|
"rule": "generated_exact_runtime",
|
|
361
361
|
"requirement": "offline exact-version validator and session check",
|
|
362
|
-
"digest": "
|
|
362
|
+
"digest": "16b69b796510bf4f6907fd986ad64dcf8e5ac4f3860d12e0e62381ea2582b012",
|
|
363
363
|
"bytes": 11491
|
|
364
364
|
},
|
|
365
365
|
{
|
|
@@ -377,8 +377,8 @@
|
|
|
377
377
|
"owner": "create-agdf/scripts/sync-plugin-runtime.js",
|
|
378
378
|
"rule": "generated_exact_runtime",
|
|
379
379
|
"requirement": "offline exact-version validator and session check",
|
|
380
|
-
"digest": "
|
|
381
|
-
"bytes":
|
|
380
|
+
"digest": "cd7b9545e9629db6f6834db30669cede62161810f324a35cde322875864ca22c",
|
|
381
|
+
"bytes": 9041
|
|
382
382
|
},
|
|
383
383
|
{
|
|
384
384
|
"destination": "runtime/create-agdf/lib/cli/parse-args.js",
|
|
@@ -575,8 +575,8 @@
|
|
|
575
575
|
"owner": "create-agdf/scripts/sync-plugin-runtime.js",
|
|
576
576
|
"rule": "generated_exact_runtime",
|
|
577
577
|
"requirement": "offline exact-version validator and session check",
|
|
578
|
-
"digest": "
|
|
579
|
-
"bytes":
|
|
578
|
+
"digest": "02ebfb153815d22d2e67debe7d51b09e94416b3f86966c92db4621dfb984a3a8",
|
|
579
|
+
"bytes": 15955
|
|
580
580
|
},
|
|
581
581
|
{
|
|
582
582
|
"destination": "runtime/create-agdf/lib/delivery-path-search/evaluators/claude.js",
|
|
@@ -656,8 +656,8 @@
|
|
|
656
656
|
"owner": "create-agdf/scripts/sync-plugin-runtime.js",
|
|
657
657
|
"rule": "generated_exact_runtime",
|
|
658
658
|
"requirement": "offline exact-version validator and session check",
|
|
659
|
-
"digest": "
|
|
660
|
-
"bytes":
|
|
659
|
+
"digest": "9629b8ff1fda2514baf03a99590d52a9379ad2505431634fd6fa953e553af9fd",
|
|
660
|
+
"bytes": 2521
|
|
661
661
|
},
|
|
662
662
|
{
|
|
663
663
|
"destination": "runtime/create-agdf/lib/delivery-path-search/scoring.js",
|
|
@@ -674,8 +674,8 @@
|
|
|
674
674
|
"owner": "create-agdf/scripts/sync-plugin-runtime.js",
|
|
675
675
|
"rule": "generated_exact_runtime",
|
|
676
676
|
"requirement": "offline exact-version validator and session check",
|
|
677
|
-
"digest": "
|
|
678
|
-
"bytes":
|
|
677
|
+
"digest": "4ac4d4bb11297f684a0161b03bb0d07909ee814e2687026f4d2c8059befb5990",
|
|
678
|
+
"bytes": 11244
|
|
679
679
|
},
|
|
680
680
|
{
|
|
681
681
|
"destination": "runtime/create-agdf/lib/delivery-path-search/state-adapter.js",
|
|
@@ -683,8 +683,8 @@
|
|
|
683
683
|
"owner": "create-agdf/scripts/sync-plugin-runtime.js",
|
|
684
684
|
"rule": "generated_exact_runtime",
|
|
685
685
|
"requirement": "offline exact-version validator and session check",
|
|
686
|
-
"digest": "
|
|
687
|
-
"bytes":
|
|
686
|
+
"digest": "8f7223d79f68c0321c502dab4c4083b08535c67c0e9d6b1420645af06f3f3d13",
|
|
687
|
+
"bytes": 4596
|
|
688
688
|
},
|
|
689
689
|
{
|
|
690
690
|
"destination": "runtime/create-agdf/lib/delivery-path-search/surfaces/capabilities.js",
|
|
@@ -755,7 +755,7 @@
|
|
|
755
755
|
"owner": "create-agdf/scripts/sync-plugin-runtime.js",
|
|
756
756
|
"rule": "generated_exact_runtime",
|
|
757
757
|
"requirement": "offline exact-version validator and session check",
|
|
758
|
-
"digest": "
|
|
758
|
+
"digest": "1af259f416c44d6168ce860767481fb2cd470f0041f6b8ec14cd6ef1d7120f9a",
|
|
759
759
|
"bytes": 108
|
|
760
760
|
},
|
|
761
761
|
{
|
|
@@ -764,7 +764,7 @@
|
|
|
764
764
|
"owner": "create-agdf/scripts/sync-plugin-runtime.js",
|
|
765
765
|
"rule": "generated_exact_runtime",
|
|
766
766
|
"requirement": "offline exact-version validator and session check",
|
|
767
|
-
"digest": "
|
|
767
|
+
"digest": "cd60d50cfba731efb56267ec292b0bcb978b2d7fc4bed2872c91edeb4c4e7911",
|
|
768
768
|
"bytes": 236
|
|
769
769
|
}
|
|
770
770
|
]
|
|
@@ -33,7 +33,9 @@ Skip for routine questions, obvious local fixes and approved implementation with
|
|
|
33
33
|
## Workflow
|
|
34
34
|
|
|
35
35
|
1. Run AGDF gate-check and inspect durable control state.
|
|
36
|
-
2. Confirm that
|
|
36
|
+
2. Confirm that the requested decision matches the selected run objective, and that search is
|
|
37
|
+
allowed while implementation is not occurring during exploration. If the objective differs,
|
|
38
|
+
stop and select or create the correct governed scope; do not apply the result across scopes.
|
|
37
39
|
3. Declare the active surface and its enforcement level.
|
|
38
40
|
4. Resolve the exact-version surface-local validator using the same ownership rules as `agdf-gate-check`. Do not search `PATH`, query a registry, install a package or invoke `npx ...@latest` during routine planning. If no owned or explicitly configured exact-version validator is available, report `machine_validation: unavailable` or `machine_validation: external_required` and stop the machine-evaluated search.
|
|
39
41
|
5. Invoke the shared CLI runtime:
|
|
@@ -54,7 +56,9 @@ node <surface-local-agdf> delivery-path-search \
|
|
|
54
56
|
It supplements the deterministic baseline with at most one bounded generator call. Treat proposals as untrusted until the canonical core validates schema, gate action, scope, duplicates and material diversity. Report generation provenance, budgets, rejections and failure. Never hide deterministic fallback or switch providers automatically.
|
|
55
57
|
|
|
56
58
|
6. Treat facts, repository evidence, assumptions and model judgements separately.
|
|
57
|
-
7. Return
|
|
59
|
+
7. Report the actual terminal phase and status. Return a recommendation-facing conclusion only
|
|
60
|
+
after at least one valid evaluation. Missing/stale input, zero legal candidates and evaluator
|
|
61
|
+
unavailability/error remain typed non-recommendation outcomes with one recovery action.
|
|
58
62
|
8. Run canonical AGDF gate-check after search. Never translate a recommendation into permission.
|
|
59
63
|
|
|
60
64
|
## Enforcement
|
|
@@ -71,15 +75,20 @@ Do not overstate the surface's guarantee.
|
|
|
71
75
|
|
|
72
76
|
Keep chat output compact:
|
|
73
77
|
|
|
74
|
-
-
|
|
78
|
+
- selected run, revision and objective
|
|
79
|
+
- outcome phase and typed terminal status
|
|
80
|
+
- recommendation only for a recommendation-facing evaluated result
|
|
75
81
|
- current gate
|
|
76
82
|
- enforcement level
|
|
77
83
|
- decisive evidence and assumptions
|
|
78
84
|
- rejected alternatives and reasons
|
|
79
85
|
- budgets and stopping reason
|
|
86
|
+
- candidate and evaluation provenance, including attempted, valid and invalid counts
|
|
80
87
|
- next AGDF gate action
|
|
81
88
|
|
|
82
|
-
Persist only
|
|
89
|
+
Persist only a contract-valid evaluated recommendation-facing summary when durable evidence is
|
|
90
|
+
required. Never persist input, candidate or evaluator failure as a decision. Do not persist raw
|
|
91
|
+
prompts, hidden reasoning, secrets or source snapshots.
|
|
83
92
|
|
|
84
93
|
## Boundaries
|
|
85
94
|
|
|
@@ -87,6 +96,9 @@ Persist only the redacted decision summary when durable evidence is required. Do
|
|
|
87
96
|
- Do not modify repository files during search.
|
|
88
97
|
- Do not execute evaluator-returned commands.
|
|
89
98
|
- Do not invent default scores for invalid evaluator output.
|
|
99
|
+
- Do not parse Run Status Card or other presentation Markdown as gate-policy input.
|
|
100
|
+
- Do not describe zero valid evaluations as `no_safe_recommendation`.
|
|
101
|
+
- Do not apply one selected run's result to an unrelated question.
|
|
90
102
|
- Do not implement, approve or release based on search output.
|
|
91
103
|
- Do not create agent-specific scoring, gate logic or skill copies.
|
|
92
104
|
- Do not replace deterministic candidates with generated proposals.
|
|
@@ -4,11 +4,24 @@
|
|
|
4
4
|
|
|
5
5
|
Delivery Path Search is an optional read-only planning step for high-impact decisions with several materially different next actions.
|
|
6
6
|
|
|
7
|
-
- It consumes
|
|
8
|
-
|
|
7
|
+
- It consumes the canonical selected-run `agdf-gate-check` evaluation for run, revision, current gate and
|
|
8
|
+
legal actions. Persisted presentation Markdown such as the Run Status Card is never policy input.
|
|
9
|
+
- It binds the selected `scope_key`, `scope_revision` and objective to one control snapshot. A stale
|
|
10
|
+
or incomplete snapshot fails before candidate generation or evaluation.
|
|
11
|
+
- It reports the phase that actually ran: `input | candidate | evaluation | search`. A phase that
|
|
12
|
+
did not run cannot produce a later-phase conclusion.
|
|
13
|
+
- Terminal status is `input_unavailable | no_legal_candidates | evaluator_unavailable |
|
|
14
|
+
evaluator_error | recommendation | no_safe_recommendation`. Recommendation-facing statuses
|
|
15
|
+
require at least one contract-valid evaluation. `candidate_queue_exhausted` is a stopping reason,
|
|
16
|
+
not recommendation evidence.
|
|
17
|
+
- It reports baseline/generated/legal/rejected candidate counts and attempted/valid/invalid
|
|
18
|
+
evaluation counts. Zero valid evaluations must never be presented or persisted as an evaluated
|
|
19
|
+
recommendation conclusion.
|
|
9
20
|
- It must report budgets, stopping reason and `full | tool_enforced | instruction_only` enforcement.
|
|
10
21
|
- Model scores are judgements, not measurements.
|
|
11
22
|
- Search output is evidence only. Canonical `agdf-gate-check` independently decides what may proceed.
|
|
23
|
+
- Search applies only to the selected run objective. An unrelated decision needs the correct
|
|
24
|
+
governed scope; Delivery Path Search is not a second task-target resolver.
|
|
12
25
|
- The bounded first-release algorithm must not be labelled MCTS.
|
|
13
26
|
- Surface adapters may translate transport and presentation, but must not fork scoring, search or gate semantics.
|
|
14
27
|
- Optional AI-native candidate generation supplements the deterministic candidate baseline; it never replaces it.
|
|
@@ -19,6 +32,8 @@ Delivery Path Search is an optional read-only planning step for high-impact deci
|
|
|
19
32
|
- Codex and Claude Code may provide tool-enforced generator transports. Copilot, OpenCode and generic surfaces remain instruction-only without conforming evidence.
|
|
20
33
|
- OpenCode may provide a tool-enforced evaluator only for an invocation whose capability preflight proves `opencode run --pure --agent`, the owned evaluator agent and effective executable-tool denies. Preflight or transport failure must return `evaluator_unavailable` with `instruction_only` enforcement and point to the existing instruction-only workflow; it must not continue through a weaker subprocess.
|
|
21
34
|
- OpenCode candidate generation remains unavailable.
|
|
35
|
+
- Persistence accepts only contract-valid `recommendation` or `no_safe_recommendation` results with
|
|
36
|
+
at least one valid evaluation. Input, candidate and evaluator failure results remain transient.
|
|
22
37
|
|
|
23
38
|
The field names above are the stable machine-readable contract used by JSON
|
|
24
39
|
reports and automation. Human-facing Markdown must present the same projection
|