create-agdf 0.14.2 → 0.14.4
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 +39 -3
- package/generated/.opencode/contracts/control-scaffold.md +17 -2
- package/generated/.opencode/contracts/interaction.md +2 -2
- package/generated/.opencode/skills/agdf-delivery-path-search/SKILL.md +16 -4
- package/generated/.opencode/skills/agdf-gate-check/SKILL.md +6 -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/contracts/interaction.md +2 -2
- package/generated/plugins/agdf/meta/copilot-payload-baseline.json +3 -3
- package/generated/plugins/agdf/meta/distribution-profile-history.json +125 -0
- 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/command-registry.js +8 -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/cli/parse-args.js +3 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/doctor.js +13 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/gate-check.js +64 -13
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/run-state.js +6 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-identity.js +9 -0
- package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-state-parser.js +4 -2
- 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/lib/interaction-presentation.js +57 -7
- package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/plugin-provenance.js +46 -3
- 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/scripts/check-runtime-integrity.mjs +2 -0
- package/generated/plugins/agdf/skills/delivery-path-search/SKILL.md +16 -4
- package/generated/plugins/agdf/skills/gate-check/SKILL.md +6 -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 +71 -51
- package/generated/plugins/copilot/agdf/copilot-skills/agdf-delivery-path-search/SKILL.md +16 -4
- package/generated/plugins/copilot/agdf/copilot-skills/agdf-gate-check/SKILL.md +6 -4
- package/generated/plugins/copilot/agdf/copilot-skills/contracts/control-scaffold.md +17 -2
- package/generated/plugins/copilot/agdf/copilot-skills/contracts/interaction.md +2 -2
- package/generated/plugins/copilot/agdf/meta/agdf-plugin.definition.json +1 -1
- package/generated/plugins/copilot/agdf/meta/distribution-profile-history.json +125 -0
- 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/command-registry.js +8 -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/cli/parse-args.js +3 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-evaluation/doctor.js +13 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-evaluation/gate-check.js +64 -13
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-evaluation/run-state.js +6 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-state/run-identity.js +9 -0
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-state/run-state-parser.js +4 -2
- 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/lib/interaction-presentation.js +57 -7
- package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/plugin-provenance.js +46 -3
- 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/contracts/interaction.md +2 -2
- package/generated/submissions/openai/agdf/meta/copilot-payload-baseline.json +3 -3
- package/generated/submissions/openai/agdf/meta/distribution-profile-history.json +125 -0
- package/generated/submissions/openai/agdf/skills/delivery-path-search/SKILL.md +16 -4
- package/generated/submissions/openai/agdf/skills/gate-check/SKILL.md +6 -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 +18 -14
- 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/application.js +24 -6
- package/lib/cli/command-registry.js +8 -1
- package/lib/cli/delivery-path-search-command.js +51 -19
- package/lib/cli/parse-args.js +3 -0
- package/lib/control-evaluation/doctor.js +13 -0
- package/lib/control-evaluation/gate-check.js +64 -13
- package/lib/control-evaluation/run-state.js +6 -0
- package/lib/control-state/run-identity.js +9 -0
- package/lib/control-state/run-state-parser.js +4 -2
- 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/lib/installers/claude-cache-recovery.js +76 -0
- package/lib/installers/copilot-settings.js +146 -16
- package/lib/installers/local-marketplace.js +169 -14
- package/lib/installers/plugin-installers.js +96 -9
- package/lib/interaction-presentation.js +57 -7
- package/lib/lifecycle/operations.js +28 -4
- package/lib/lifecycle/result.js +4 -4
- package/lib/release/profile-history.js +222 -0
- package/lib/release/version-bump.js +527 -0
- package/lib/release/version-coherence.js +92 -38
- package/lib/runtime/distribution-profile-history.js +173 -0
- package/lib/runtime/plugin-provenance.js +46 -3
- package/package.json +7 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": 1,
|
|
3
3
|
"profile_id": "copilot-runtime-plugin",
|
|
4
|
-
"max_files":
|
|
5
|
-
"max_bytes":
|
|
6
|
-
"rationale": "Reviewed Copilot-only manifest, ten prefixed skills, required contracts, exact-version runtime
|
|
4
|
+
"max_files": 80,
|
|
5
|
+
"max_bytes": 568459,
|
|
6
|
+
"rationale": "Reviewed Copilot-only manifest, ten prefixed skills, required contracts, exact-version runtime, Delivery Path Search input-integrity provenance, evidence-plane separation, shared run-identity validation and the one-file distribution profile history catalogue. Measured payload is 80 files/563615 bytes; no byte-capacity increase was required. Any further increase requires review."
|
|
7
7
|
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"contracts": {
|
|
4
|
+
"five-profile-v1": {
|
|
5
|
+
"distribution_profiles": {
|
|
6
|
+
"schemaVersion": 1,
|
|
7
|
+
"marketplaceIdentities": {
|
|
8
|
+
"durable": "agdf",
|
|
9
|
+
"generatedRepository": "agdf-repo"
|
|
10
|
+
},
|
|
11
|
+
"profiles": {
|
|
12
|
+
"source-development": {
|
|
13
|
+
"runtime": "absent",
|
|
14
|
+
"installable": false,
|
|
15
|
+
"machineValidation": "unavailable"
|
|
16
|
+
},
|
|
17
|
+
"runtime-plugin": {
|
|
18
|
+
"runtime": "required",
|
|
19
|
+
"installable": true,
|
|
20
|
+
"machineValidation": "local_exact_version_digest"
|
|
21
|
+
},
|
|
22
|
+
"copilot-runtime-plugin": {
|
|
23
|
+
"runtime": "required",
|
|
24
|
+
"installable": true,
|
|
25
|
+
"machineValidation": "local_exact_version_digest_inventory"
|
|
26
|
+
},
|
|
27
|
+
"opencode-config-local": {
|
|
28
|
+
"runtime": "config_local_package",
|
|
29
|
+
"installable": true,
|
|
30
|
+
"machineValidation": "local_exact_version"
|
|
31
|
+
},
|
|
32
|
+
"portable-skills": {
|
|
33
|
+
"runtime": "absent",
|
|
34
|
+
"installable": true,
|
|
35
|
+
"machineValidation": "unavailable_or_external_required"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"contract_digest": "0211f4e6054a23f0a3ba302e57303adcb8f5903581e99643f803647dd156fe32"
|
|
40
|
+
},
|
|
41
|
+
"four-profile-v1": {
|
|
42
|
+
"distribution_profiles": {
|
|
43
|
+
"schemaVersion": 1,
|
|
44
|
+
"marketplaceIdentities": {
|
|
45
|
+
"durable": "agdf",
|
|
46
|
+
"generatedRepository": "agdf-repo"
|
|
47
|
+
},
|
|
48
|
+
"profiles": {
|
|
49
|
+
"source-development": {
|
|
50
|
+
"runtime": "absent",
|
|
51
|
+
"installable": false,
|
|
52
|
+
"machineValidation": "unavailable"
|
|
53
|
+
},
|
|
54
|
+
"runtime-plugin": {
|
|
55
|
+
"runtime": "required",
|
|
56
|
+
"installable": true,
|
|
57
|
+
"machineValidation": "local_exact_version_digest"
|
|
58
|
+
},
|
|
59
|
+
"opencode-config-local": {
|
|
60
|
+
"runtime": "config_local_package",
|
|
61
|
+
"installable": true,
|
|
62
|
+
"machineValidation": "local_exact_version"
|
|
63
|
+
},
|
|
64
|
+
"portable-skills": {
|
|
65
|
+
"runtime": "absent",
|
|
66
|
+
"installable": true,
|
|
67
|
+
"machineValidation": "unavailable_or_external_required"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"contract_digest": "9987baa4ea91e28a096cac2be8daa876f1c0593e7edbfe2e96b713814aa65ce8"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"releases": {
|
|
75
|
+
"0.13.6": {
|
|
76
|
+
"contract_id": "four-profile-v1",
|
|
77
|
+
"provenance_schema_version": 1,
|
|
78
|
+
"profile_id": "runtime-plugin",
|
|
79
|
+
"entry_digest": "1c21c3fa99cdd788994013f25cbe606ffdcea2cc91d53c679cf061567f652bf3",
|
|
80
|
+
"status": "supported"
|
|
81
|
+
},
|
|
82
|
+
"0.13.7": {
|
|
83
|
+
"contract_id": "four-profile-v1",
|
|
84
|
+
"provenance_schema_version": 1,
|
|
85
|
+
"profile_id": "runtime-plugin",
|
|
86
|
+
"entry_digest": "6d5383537d2640dc13773f2929dd94d0e7e219e82d08418464c77786b475c3ee",
|
|
87
|
+
"status": "supported"
|
|
88
|
+
},
|
|
89
|
+
"0.13.8": {
|
|
90
|
+
"contract_id": "four-profile-v1",
|
|
91
|
+
"provenance_schema_version": 1,
|
|
92
|
+
"profile_id": "runtime-plugin",
|
|
93
|
+
"entry_digest": "405e8cfa72ec2e469354dab52197675783b3723adb969a0692e56ba7c95c85c8",
|
|
94
|
+
"status": "supported"
|
|
95
|
+
},
|
|
96
|
+
"0.14.1": {
|
|
97
|
+
"contract_id": "four-profile-v1",
|
|
98
|
+
"provenance_schema_version": 1,
|
|
99
|
+
"profile_id": "runtime-plugin",
|
|
100
|
+
"entry_digest": "1a6fd6f6a411eddb29e82d7b7abc7d5f658312f555dcf39e160a709194a8b867",
|
|
101
|
+
"status": "supported"
|
|
102
|
+
},
|
|
103
|
+
"0.14.2": {
|
|
104
|
+
"contract_id": "five-profile-v1",
|
|
105
|
+
"provenance_schema_version": 1,
|
|
106
|
+
"profile_id": "runtime-plugin",
|
|
107
|
+
"entry_digest": "f71ee26df3d4a89ecc727a1c30b40221cf062fce9f716a83453bced9503be8fd",
|
|
108
|
+
"status": "supported"
|
|
109
|
+
},
|
|
110
|
+
"0.14.3": {
|
|
111
|
+
"contract_id": "five-profile-v1",
|
|
112
|
+
"provenance_schema_version": 1,
|
|
113
|
+
"profile_id": "runtime-plugin",
|
|
114
|
+
"entry_digest": "c5dbe4044d11a976cd4ccd6de6cf1405ebfcb4a26ce5c6308c34f10142db50c9",
|
|
115
|
+
"status": "supported"
|
|
116
|
+
},
|
|
117
|
+
"0.14.4": {
|
|
118
|
+
"contract_id": "five-profile-v1",
|
|
119
|
+
"provenance_schema_version": 1,
|
|
120
|
+
"profile_id": "runtime-plugin",
|
|
121
|
+
"entry_digest": "a441d633fe11ea402c3366cfac0cec659d32eae5eb4ae6b1d25a1e366a029813",
|
|
122
|
+
"status": "supported"
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -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.
|
|
@@ -209,10 +209,12 @@ the primary chat card into an audit dump. Do not maintain or render a skill-loca
|
|
|
209
209
|
|
|
210
210
|
This complete operational status table remains the status-reporting and detail
|
|
211
211
|
surface. When the same response immediately requests a ready gate approval,
|
|
212
|
-
render its five-field compact approval-time projection first, then the
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
212
|
+
render its five-field compact approval-time projection first, then the complete
|
|
213
|
+
operational Run Status Card verbatim (or its localized failure line with
|
|
214
|
+
diagnostic codes when undeliverable), then the Gate Transition Card in the same
|
|
215
|
+
immediately preceding assistant message, then invoke exactly one native
|
|
216
|
+
question or exact-text fallback. The runtime contract owns this sequence; every
|
|
217
|
+
block is shown exactly once.
|
|
216
218
|
|
|
217
219
|
If this skill creates or updates control artefacts, do not paste full file bodies into the chat.
|
|
218
220
|
List paths, summarize the decision, name the blocker or approval needed, and keep the durable content in the files.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"releaseVersion": "0.14.
|
|
4
|
-
"digest": "
|
|
3
|
+
"releaseVersion": "0.14.4",
|
|
4
|
+
"digest": "594be5be291554c4567bcd711274498d9600a896d2e6b5f85ca941e1dff77d12",
|
|
5
5
|
"files": [
|
|
6
6
|
{
|
|
7
7
|
"path": ".codex-plugin/plugin.json",
|
|
8
|
-
"sha256": "
|
|
8
|
+
"sha256": "44c8561c912ed14a44849a23597e1786612d58596e745df691e6f343c0c595f8"
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
"path": "assets/agdf-icon.svg",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
"path": "meta/agdf-plugin.definition.json",
|
|
32
|
-
"sha256": "
|
|
32
|
+
"sha256": "c0b249067a3fea29e551af28ccc855bfb4e9c7ef95f418d96d7e102c53650159"
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
"path": "meta/agdf-runtime-contract.md",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
"path": "meta/contracts/control-scaffold.md",
|
|
56
|
-
"sha256": "
|
|
56
|
+
"sha256": "82d298d5399c56ecbaeef78ac367556b675200c09ea96e160534ec03adb07f42"
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
"path": "meta/contracts/gate-transition.md",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
"path": "meta/contracts/interaction.md",
|
|
64
|
-
"sha256": "
|
|
64
|
+
"sha256": "45cb0bf83af21d46e55f6fbbc934f7bf1571d0d087a0a304b629297427078ce9"
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
"path": "meta/contracts/modes.md",
|
|
@@ -77,7 +77,11 @@
|
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
"path": "meta/copilot-payload-baseline.json",
|
|
80
|
-
"sha256": "
|
|
80
|
+
"sha256": "c2d5f1fe5285898d90bc9a15972bc388b485b5d212b6952f01d07c2d71f41a17"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"path": "meta/distribution-profile-history.json",
|
|
84
|
+
"sha256": "63a78c2659fe6ece380883d10188e7dad7373866711aeca13005193b68be1ab2"
|
|
81
85
|
},
|
|
82
86
|
{
|
|
83
87
|
"path": "skills/brownfield-analysis/SKILL.md",
|
|
@@ -113,7 +117,7 @@
|
|
|
113
117
|
},
|
|
114
118
|
{
|
|
115
119
|
"path": "skills/delivery-path-search/SKILL.md",
|
|
116
|
-
"sha256": "
|
|
120
|
+
"sha256": "688a0e04f6a1a39be17ded0047f88187b109f25bd9f22927a3d4261cbfdc0bd5"
|
|
117
121
|
},
|
|
118
122
|
{
|
|
119
123
|
"path": "skills/delivery-path-search/help.md",
|
|
@@ -121,7 +125,7 @@
|
|
|
121
125
|
},
|
|
122
126
|
{
|
|
123
127
|
"path": "skills/gate-check/SKILL.md",
|
|
124
|
-
"sha256": "
|
|
128
|
+
"sha256": "7f49c12942fc4312fe57f6be1c9844a9bf1ec5c7c9cce43b1c1d3e81d6c7adbb"
|
|
125
129
|
},
|
|
126
130
|
{
|
|
127
131
|
"path": "skills/gate-check/help.md",
|
|
@@ -161,23 +165,23 @@
|
|
|
161
165
|
},
|
|
162
166
|
{
|
|
163
167
|
"path": "submission/openai/availability.md",
|
|
164
|
-
"sha256": "
|
|
168
|
+
"sha256": "f92ddfc516a7ffa9abbb847118597bdcce52b0087adbe1c3066a7821a9ad22bc"
|
|
165
169
|
},
|
|
166
170
|
{
|
|
167
171
|
"path": "submission/openai/capability-matrix.json",
|
|
168
|
-
"sha256": "
|
|
172
|
+
"sha256": "0839d499972d89c7d173f3193a3e54a5b82aecd280192f80bff09733998e6cd6"
|
|
169
173
|
},
|
|
170
174
|
{
|
|
171
175
|
"path": "submission/openai/listing.json",
|
|
172
|
-
"sha256": "
|
|
176
|
+
"sha256": "c5a069a9047ded702678d928014434dc0b44ead7ecf2b7b84d3d45c1d842742b"
|
|
173
177
|
},
|
|
174
178
|
{
|
|
175
179
|
"path": "submission/openai/release-notes.md",
|
|
176
|
-
"sha256": "
|
|
180
|
+
"sha256": "30e0057bd7e0538b25ca5bcf276fb418887f2e7d1806b431c013ba0d095dabb6"
|
|
177
181
|
},
|
|
178
182
|
{
|
|
179
183
|
"path": "submission/openai/reviewer-cases.json",
|
|
180
|
-
"sha256": "
|
|
184
|
+
"sha256": "f145161287a42a891734e27f6c3b8c88fb873227d4d759c0867e60c17217e715"
|
|
181
185
|
}
|
|
182
186
|
]
|
|
183
187
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"releaseVersion": "0.14.
|
|
3
|
+
"releaseVersion": "0.14.4",
|
|
4
4
|
"candidateState": "repository_ready",
|
|
5
5
|
"submissionReady": false,
|
|
6
6
|
"submissionBlockers": [
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"bundle": {
|
|
18
18
|
"state": "pass",
|
|
19
|
-
"detail": "
|
|
19
|
+
"detail": "45 inventoried files; inventory digest 594be5be291554c4567bcd711274498d9600a896d2e6b5f85ca941e1dff77d12"
|
|
20
20
|
},
|
|
21
21
|
"installed_host": {
|
|
22
22
|
"state": "unverified",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# AGDF Public Plugin Readiness
|
|
2
2
|
|
|
3
|
-
- release: `0.14.
|
|
3
|
+
- release: `0.14.4`
|
|
4
4
|
- candidate_state: `repository_ready`
|
|
5
5
|
- submission_ready: `false`
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
| Class | State | Detail |
|
|
10
10
|
|---|---|---|
|
|
11
11
|
| repository | pass | canonical contract and deterministic source checks |
|
|
12
|
-
| bundle | pass |
|
|
12
|
+
| bundle | pass | 45 inventoried files; inventory digest 594be5be291554c4567bcd711274498d9600a896d2e6b5f85ca941e1dff77d12 |
|
|
13
13
|
| installed_host | unverified | PPD-L02 and PPD-L03 not performed |
|
|
14
14
|
| portal | unverified | unverified |
|
|
15
15
|
| post_publication | unverified | not published |
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# AGDF 0.14.
|
|
1
|
+
# AGDF 0.14.4 — 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.
|
package/lib/cli/application.js
CHANGED
|
@@ -279,10 +279,10 @@ function runLifecyclePhase(phase, operation) {
|
|
|
279
279
|
|
|
280
280
|
function installNextAction(surface, runtimeChecks, fallback) {
|
|
281
281
|
if (surface === "codex" && runtimeChecks.requested === "enabled" && runtimeChecks.effective === "decision_required") {
|
|
282
|
-
return
|
|
282
|
+
return `${fallback} Approve the AGDF session hook when the fresh Codex session asks.`;
|
|
283
283
|
}
|
|
284
284
|
if (surface === "copilot" && runtimeChecks.requested === "enabled" && runtimeChecks.effective === "decision_required") {
|
|
285
|
-
return
|
|
285
|
+
return `${fallback} Review the AGDF session hook when the fresh Copilot session asks.`;
|
|
286
286
|
}
|
|
287
287
|
return fallback;
|
|
288
288
|
}
|
|
@@ -430,9 +430,11 @@ function printInstallFailure(surface, error, options, io, command = surface) {
|
|
|
430
430
|
|
|
431
431
|
function runDisable(options, { io, exec }) {
|
|
432
432
|
try {
|
|
433
|
-
const plan = planRepositoryDisable(options.dir, options.surface);
|
|
433
|
+
const plan = planRepositoryDisable(options.dir, options.surface, { shared: options.shared, exec });
|
|
434
434
|
const applied = applyLifecyclePlan(plan, exec ? { exec } : {});
|
|
435
|
-
const verified = applied.status === "success"
|
|
435
|
+
const verified = applied.status === "success"
|
|
436
|
+
? verifyRepositoryDisabled(options.dir, options.surface, { shared: options.shared })
|
|
437
|
+
: { status: "failed", evidence: [] };
|
|
436
438
|
const result = applied.status === "success" && verified.status !== "healthy" ? "failed" : applied.status;
|
|
437
439
|
const report = createLifecycleResult({
|
|
438
440
|
operation: "disable",
|
|
@@ -440,9 +442,12 @@ function runDisable(options, { io, exec }) {
|
|
|
440
442
|
surface: options.surface,
|
|
441
443
|
scope: "repository",
|
|
442
444
|
verification: { status: verified.status === "healthy" ? "healthy" : "degraded", evidence: [...applied.completed.map((item) => item.path || item.executable), ...verified.evidence] },
|
|
445
|
+
activation: { status: result === "success" ? "pending_restart" : "unknown" },
|
|
443
446
|
restart: { required: result === "success", reason: result === "success" ? "host_reload" : "none" },
|
|
444
447
|
next_action: result === "success"
|
|
445
|
-
?
|
|
448
|
+
? options.surface === "copilot"
|
|
449
|
+
? { kind: "restart", text: "Restart GitHub Copilot in this repository, then inspect /plugin list; independent instructions remain separate." }
|
|
450
|
+
: { kind: "restart", text: "Restart the host in this repository; global AGDF availability and .agdf/control are retained." }
|
|
446
451
|
: { kind: "verify", text: "Inspect the reported repository configuration failure before retrying disable." },
|
|
447
452
|
changes: applied.completed,
|
|
448
453
|
retained: applied.retained,
|
|
@@ -453,7 +458,20 @@ function runDisable(options, { io, exec }) {
|
|
|
453
458
|
printLifecycleResult(report, { json: options.json, io });
|
|
454
459
|
return result === "success" ? 0 : 1;
|
|
455
460
|
} catch (error) {
|
|
456
|
-
|
|
461
|
+
const report = lifecycleFailure({
|
|
462
|
+
operation: "disable",
|
|
463
|
+
surface: options.surface,
|
|
464
|
+
scope: "repository",
|
|
465
|
+
phase: "repository_preflight",
|
|
466
|
+
message: error.message,
|
|
467
|
+
evidence: [error.message],
|
|
468
|
+
nextAction: "Resolve the reported repository configuration or ignore precondition, then retry disable without changing unrelated files.",
|
|
469
|
+
});
|
|
470
|
+
if (options.json) printLifecycleResult(report, { json: true, io });
|
|
471
|
+
else {
|
|
472
|
+
io.error(error.message);
|
|
473
|
+
printLifecycleResult(report, { io });
|
|
474
|
+
}
|
|
457
475
|
return 1;
|
|
458
476
|
}
|
|
459
477
|
}
|
|
@@ -18,7 +18,7 @@ export const commandRegistry = Object.freeze([
|
|
|
18
18
|
command("opencode-status", { preferred: [""], scaffold: [""] }),
|
|
19
19
|
command("status", { preferred: [" [--surface <surface>] [--run <run_id>] [--json]"] }),
|
|
20
20
|
command("runtime-checks", { preferred: [" <status|enable|manual> --surface <codex|claude|copilot|opencode> [--json]"] }),
|
|
21
|
-
command("disable", { preferred: [" --surface <surface> [--scope repository] [--dir <path>]"] }),
|
|
21
|
+
command("disable", { preferred: [" --surface <surface> [--scope repository] [--shared] [--dir <path>]"] }),
|
|
22
22
|
command("uninstall", { preferred: [" --surface <surface> --scope global [--confirm]"] }),
|
|
23
23
|
command("opencode-repo", { preferred: [""], scaffold: [""] }),
|
|
24
24
|
command("init", { preferred: [""], scaffold: [""] }),
|
|
@@ -65,6 +65,12 @@ export function validateCommandOptions(options) {
|
|
|
65
65
|
throw new Error("uninstall requires explicit --scope global");
|
|
66
66
|
}
|
|
67
67
|
if (options.confirm && options.target !== "uninstall") throw new Error("--confirm is supported only by uninstall");
|
|
68
|
+
if (options.shared && !(options.target === "disable" && options.surface === "copilot" && options.scope === "repository")) {
|
|
69
|
+
throw new Error("--shared is supported only by disable --surface copilot --scope repository");
|
|
70
|
+
}
|
|
71
|
+
if (options.target === "disable" && options.surface === "copilot" && options.scope !== "repository") {
|
|
72
|
+
throw new Error("Copilot disable requires explicit --scope repository");
|
|
73
|
+
}
|
|
68
74
|
if (options.runtimeChecksDecision && !["codex", "claude", "copilot", "opencode"].includes(options.target)) {
|
|
69
75
|
throw new Error("--runtime-checks is supported only by codex, claude, copilot and opencode installation commands");
|
|
70
76
|
}
|
|
@@ -126,6 +132,7 @@ Options:
|
|
|
126
132
|
--scope <repository|global>
|
|
127
133
|
Select the lifecycle mutation scope
|
|
128
134
|
--confirm Apply a previously previewed global uninstall plan
|
|
135
|
+
--shared Apply Copilot repository disable through shared .github/copilot/settings.json
|
|
129
136
|
--runtime-checks <enable|manual|cancel>
|
|
130
137
|
Make the installation-time automatic-check decision explicitly; no TTY defaults to manual
|
|
131
138
|
--fixture <path>
|
|
@@ -12,21 +12,25 @@ import { enforcementForSurface } from '../delivery-path-search/surfaces/capabili
|
|
|
12
12
|
import { persistSearchResult } from '../delivery-path-search/persistence.js';
|
|
13
13
|
|
|
14
14
|
function unavailableOpenCodeResult({ options, preflight, input = null, error = null }) {
|
|
15
|
+
const surface = options.surface ?? "opencode";
|
|
15
16
|
const mutation = error?.code === "OPENCODE_EVALUATOR_MUTATION_DETECTED";
|
|
16
|
-
const attempted = Boolean(input);
|
|
17
|
+
const attempted = Boolean(input && error);
|
|
17
18
|
const nextAction = mutation
|
|
18
19
|
? "Investigate and revert the detected repository mutation before any evaluator fallback or retry."
|
|
19
20
|
: "Repair the reported OpenCode capability and retry, or use the existing instruction-only Delivery Path Search workflow.";
|
|
20
21
|
return {
|
|
21
22
|
contract_version: "1",
|
|
22
|
-
surface
|
|
23
|
+
surface,
|
|
23
24
|
scope_key: input?.scope_key ?? options.runId ?? null,
|
|
25
|
+
scope_revision: input?.scope_revision ?? "unversioned",
|
|
26
|
+
objective: input?.objective ?? "Delivery Path Search evaluator capability",
|
|
24
27
|
current_gate: input?.current_gate ?? null,
|
|
28
|
+
outcome_phase: "evaluation",
|
|
25
29
|
status: mutation ? "evaluator_error" : "evaluator_unavailable",
|
|
26
30
|
recommendation: null,
|
|
27
|
-
enforcement: enforcementForSurface(
|
|
31
|
+
enforcement: enforcementForSurface(surface),
|
|
28
32
|
evaluator: {
|
|
29
|
-
name:
|
|
33
|
+
name: surface,
|
|
30
34
|
preflight: preflight?.code ?? "not_run",
|
|
31
35
|
failure_code: error?.code ?? preflight?.code,
|
|
32
36
|
detail: error?.message ?? preflight?.detail,
|
|
@@ -38,6 +42,16 @@ function unavailableOpenCodeResult({ options, preflight, input = null, error = n
|
|
|
38
42
|
failure_code: error?.code ?? preflight?.code,
|
|
39
43
|
evidence: preflight?.evidence ?? [],
|
|
40
44
|
},
|
|
45
|
+
provenance: {
|
|
46
|
+
baseline_candidates: Math.min(input?.allowed_actions?.length ?? 0, input?.budgets?.max_candidates ?? 0),
|
|
47
|
+
generated_candidates: 0,
|
|
48
|
+
legal_candidates: attempted ? 1 : 0,
|
|
49
|
+
rejected_candidates: 0,
|
|
50
|
+
evaluation_attempts: attempted ? 1 : 0,
|
|
51
|
+
valid_evaluations: 0,
|
|
52
|
+
invalid_evaluations: attempted ? 1 : 0,
|
|
53
|
+
},
|
|
54
|
+
failure_code: error?.code ?? preflight?.code,
|
|
41
55
|
stopping_reason: mutation ? "opencode_mutation_detected" : attempted ? "opencode_evaluator_failed" : "opencode_preflight_failed",
|
|
42
56
|
next_action: nextAction,
|
|
43
57
|
next_gate_action: nextAction,
|
|
@@ -46,11 +60,26 @@ function unavailableOpenCodeResult({ options, preflight, input = null, error = n
|
|
|
46
60
|
|
|
47
61
|
export async function executeDeliveryPathSearch(options, io = console, dependencies = {}) {
|
|
48
62
|
const fixture = options.fixture ? JSON.parse(readFileSync(options.fixture, "utf8")) : null;
|
|
63
|
+
const fixtureGeneration = fixture?.generator_response;
|
|
64
|
+
const generationEnabled = Boolean(fixtureGeneration || options.generateCandidates);
|
|
65
|
+
const initialEnforcement = fixture?.input?.enforcement ?? enforcementForSurface(options.surface);
|
|
66
|
+
const initialInput = fixture?.input ?? (dependencies.searchInputFromControl ?? searchInputFromControl)(options.dir, {
|
|
67
|
+
scopeKey: options.runId,
|
|
68
|
+
enforcement: initialEnforcement,
|
|
69
|
+
generation: generationEnabled ? {
|
|
70
|
+
enabled: true,
|
|
71
|
+
maxProposals: options.maxGeneratedCandidates,
|
|
72
|
+
maxDurationMs: options.generationTimeoutMs,
|
|
73
|
+
maxCostUnits: options.generationCostUnits,
|
|
74
|
+
} : undefined,
|
|
75
|
+
});
|
|
49
76
|
const preflight = !fixture && options.surface === "opencode"
|
|
50
77
|
? (dependencies.preflightOpenCodeEvaluator ?? preflightOpenCodeEvaluator)({ cwd: options.dir })
|
|
51
78
|
: null;
|
|
52
79
|
if (preflight?.status === "failed") {
|
|
53
|
-
const result =
|
|
80
|
+
const result = initialInput.input_failure_code
|
|
81
|
+
? await runDeliveryPathSearch(initialInput, { name: "not-invoked", async evaluate() { throw new Error("input failure must stop before evaluation"); } })
|
|
82
|
+
: unavailableOpenCodeResult({ options, preflight, input: initialInput });
|
|
54
83
|
printDeliveryPathSearchResult(result, options, io);
|
|
55
84
|
return result;
|
|
56
85
|
}
|
|
@@ -58,18 +87,7 @@ export async function executeDeliveryPathSearch(options, io = console, dependenc
|
|
|
58
87
|
?? (preflight
|
|
59
88
|
? enforcementForSurface("opencode", preflight.evidence, { preflight })
|
|
60
89
|
: enforcementForSurface(options.surface));
|
|
61
|
-
const
|
|
62
|
-
const generationEnabled = Boolean(fixtureGeneration || options.generateCandidates);
|
|
63
|
-
const baseInput = fixture?.input ?? (dependencies.searchInputFromControl ?? searchInputFromControl)(options.dir, {
|
|
64
|
-
scopeKey: options.runId,
|
|
65
|
-
enforcement,
|
|
66
|
-
generation: generationEnabled ? {
|
|
67
|
-
enabled: true,
|
|
68
|
-
maxProposals: options.maxGeneratedCandidates,
|
|
69
|
-
maxDurationMs: options.generationTimeoutMs,
|
|
70
|
-
maxCostUnits: options.generationCostUnits,
|
|
71
|
-
} : undefined,
|
|
72
|
-
});
|
|
90
|
+
const baseInput = fixture ? initialInput : { ...initialInput, enforcement };
|
|
73
91
|
const input = generationEnabled && !baseInput.generation ? {
|
|
74
92
|
...baseInput,
|
|
75
93
|
generation: {
|
|
@@ -90,7 +108,13 @@ export async function executeDeliveryPathSearch(options, io = console, dependenc
|
|
|
90
108
|
? (dependencies.openCodeEvaluator ?? openCodeEvaluator)({ cwd: options.dir, model: options.model, preflight })
|
|
91
109
|
: null;
|
|
92
110
|
if (!evaluator) {
|
|
93
|
-
|
|
111
|
+
const detail = `${options.surface} has no executable evaluator in this release. Codex, Claude and preflight-qualified OpenCode are the executable adapters; --fixture is available for deterministic contract testing.`;
|
|
112
|
+
const result = {
|
|
113
|
+
...unavailableOpenCodeResult({ options, preflight: { code: "surface_evaluator_unavailable", detail, evidence: [] }, input }),
|
|
114
|
+
surface: options.surface,
|
|
115
|
+
};
|
|
116
|
+
printDeliveryPathSearchResult(result, options, io);
|
|
117
|
+
return result;
|
|
94
118
|
}
|
|
95
119
|
const generator = fixtureGeneration
|
|
96
120
|
? fixtureGenerator(fixtureGeneration)
|
|
@@ -125,15 +149,23 @@ function printDeliveryPathSearchResult(result, options, io) {
|
|
|
125
149
|
return;
|
|
126
150
|
}
|
|
127
151
|
io.log(`AGDF Delivery Path Search: ${result.status}`);
|
|
152
|
+
io.log(`Scope: ${result.scope_key ?? "unknown"} @ ${result.scope_revision ?? "unversioned"}`);
|
|
153
|
+
if (result.objective) io.log(`Objective: ${result.objective}`);
|
|
128
154
|
io.log(`Current gate: ${result.current_gate ?? "unknown"}`);
|
|
155
|
+
io.log(`Outcome phase: ${result.outcome_phase ?? "unknown"}`);
|
|
129
156
|
io.log(`Enforcement: ${result.enforcement.level}`);
|
|
130
157
|
io.log(`Recommendation: ${result.recommendation?.action ?? "none"}`);
|
|
131
158
|
if (result.budgets) io.log(`Evaluations: ${result.budgets.evaluations}`);
|
|
159
|
+
if (result.provenance) {
|
|
160
|
+
io.log(`Candidates: ${result.provenance.legal_candidates} legal, ${result.provenance.rejected_candidates} rejected`);
|
|
161
|
+
io.log(`Evaluation provenance: ${result.provenance.valid_evaluations}/${result.provenance.evaluation_attempts} valid, ${result.provenance.invalid_evaluations} invalid`);
|
|
162
|
+
}
|
|
132
163
|
if (result.generation) {
|
|
133
164
|
io.log(`Generation: ${result.generation.status} (${result.generation.accepted}/${result.generation.returned} accepted)`);
|
|
134
165
|
io.log(`Generation budget: ${result.generation.cost_units} cost units, ${result.generation.duration_ms} ms`);
|
|
135
166
|
if (result.generation.failure_code) io.log(`Generation failure: ${result.generation.failure_code}`);
|
|
136
167
|
}
|
|
137
168
|
io.log(`Stopping reason: ${result.stopping_reason}`);
|
|
138
|
-
io.log(result.
|
|
169
|
+
if (result.failure_code) io.log(`Failure: ${result.failure_code}`);
|
|
170
|
+
io.log(result.next_action ?? result.next_gate_action);
|
|
139
171
|
}
|