create-agdf 0.13.3 → 0.13.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/generated/plugins/agdf/.claude-plugin/plugin.json +1 -1
  2. package/generated/plugins/agdf/.codex-plugin/plugin.json +1 -1
  3. package/generated/plugins/agdf/meta/agdf-plugin.definition.json +1 -1
  4. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +1 -1
  5. package/generated/plugins/agdf/runtime/create-agdf/lib/interaction-presentation.js +11 -4
  6. package/generated/plugins/agdf/runtime/create-agdf/package.json +1 -1
  7. package/generated/plugins/agdf/runtime/runtime-manifest.json +2 -2
  8. package/generated/plugins/agdf/submission/openai/availability.md +1 -1
  9. package/generated/plugins/agdf/submission/openai/capability-matrix.json +1 -1
  10. package/generated/plugins/agdf/submission/openai/release-notes.md +1 -1
  11. package/generated/plugins/agdf/submission/openai/reviewer-cases.json +1 -1
  12. package/generated/submissions/openai/agdf/.codex-plugin/plugin.json +1 -1
  13. package/generated/submissions/openai/agdf/meta/agdf-plugin.definition.json +1 -1
  14. package/generated/submissions/openai/agdf/submission/openai/availability.md +1 -1
  15. package/generated/submissions/openai/agdf/submission/openai/capability-matrix.json +1 -1
  16. package/generated/submissions/openai/agdf/submission/openai/inventory.json +9 -9
  17. package/generated/submissions/openai/agdf/submission/openai/listing.json +1 -1
  18. package/generated/submissions/openai/agdf/submission/openai/readiness.json +2 -2
  19. package/generated/submissions/openai/agdf/submission/openai/readiness.md +2 -2
  20. package/generated/submissions/openai/agdf/submission/openai/release-notes.md +1 -1
  21. package/generated/submissions/openai/agdf/submission/openai/reviewer-cases.json +1 -1
  22. package/lib/interaction-presentation.js +11 -4
  23. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agdf",
3
- "version": "0.13.3",
3
+ "version": "0.13.5",
4
4
  "description": "AI Governance & Delivery Framework (AGDF) is a governance framework for agentic work. Its first implementation provides a control layer for governed AI-assisted software delivery. It combines workflow skills, explicit gates, control templates and machine-readable repository checks to keep work aligned with approved scope and make evidence a prerequisite for consequential gate transitions. Supported workflows include brownfield analysis, task-plan review, QA decisions, durable run state and auditable delivery closeout. AGDF is an independent open-source project, not a security sandbox, compliance certification or autonomous release system.",
5
5
  "keywords": [
6
6
  "agentic",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agdf",
3
- "version": "0.13.3",
3
+ "version": "0.13.5",
4
4
  "description": "Control layer for governed AI-assisted delivery.",
5
5
  "author": {
6
6
  "name": "Arndt Gold",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "id": "agdf",
4
- "version": "0.13.3",
4
+ "version": "0.13.5",
5
5
  "displayName": "AI Governance & Delivery Framework",
6
6
  "developerName": "Arndt Gold",
7
7
  "description": "Control layer for governed AI-assisted delivery.",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "id": "agdf",
4
- "version": "0.13.3",
4
+ "version": "0.13.5",
5
5
  "displayName": "AI Governance & Delivery Framework",
6
6
  "developerName": "Arndt Gold",
7
7
  "description": "Control layer for governed AI-assisted delivery.",
@@ -558,9 +558,15 @@ export function buildApprovalOrientationSnapshot({
558
558
  const primaryHeading = String(pack.gateActionTitles?.[gate] ?? "").trim();
559
559
  const artefactRefs = Object.freeze([...(humanPresentation.artefactRefs ?? [])].map((ref) => Object.freeze({ ...ref })));
560
560
  const nextGate = String(statusCard.next_gate_after_approval ?? "none");
561
+ const nextUserGate = String(statusCard.next_user_gate ?? "").trim();
562
+ const userActionRequired = String(statusCard.user_action_required ?? "").trim();
563
+ const userActionSemanticsValid = (userActionRequired === "no" && nextUserGate === "none")
564
+ || (userActionRequired === "yes" && REQUIRED_GATES.includes(nextUserGate) && nextGate === nextUserGate);
565
+ if (!userActionSemanticsValid) return null;
561
566
  const narration = pack.primary.narration.gates[gate] ?? {};
562
- const nextDecision = narration.userAction
563
- || (nextGate === "none" ? pack.primary.narration.noAction : `${pack.gateTitles[nextGate] ?? nextGate} ${pack.interaction.decisionFollows}`);
567
+ const nextDecision = userActionRequired === "no"
568
+ ? pack.primary.narration.noAction
569
+ : narration.userAction || `${pack.gateTitles[nextUserGate] ?? nextUserGate} ${pack.interaction.decisionFollows}`;
564
570
  const statusFields = Object.freeze([
565
571
  Object.freeze({ id: "selected_run", label: pack.statusCard.run, value: `${runTitle} · \`${runId}\`` }),
566
572
  Object.freeze({ id: "readiness_status", label: pack.statusCard.title, value: pack.interaction.ready }),
@@ -655,8 +661,9 @@ export function validateApprovalOrientationSnapshot(snapshot, { registry, expect
655
661
  const localizedGateTitle = gateTitle(registry, locale, gate);
656
662
  const nextGate = String(snapshot.gate_transition_card?.next_gate ?? "none");
657
663
  const narration = pack.primary.narration.gates[gate] ?? {};
658
- const nextDecision = narration.userAction
659
- || (nextGate === "none" ? pack.primary.narration.noAction : `${pack.gateTitles[nextGate] ?? nextGate} ${pack.interaction.decisionFollows}`);
664
+ const nextDecision = REQUIRED_GATES.includes(nextGate)
665
+ ? narration.userAction || `${pack.gateTitles[nextGate] ?? nextGate} ${pack.interaction.decisionFollows}`
666
+ : pack.primary.narration.noAction;
660
667
  const nextTransition = `${narration.agentNext ?? pack.primary.actions[gate] ?? ""}. ${nextDecision}.`;
661
668
  const localeConsistent = resolvePresentationLocale(registry, locale) === locale
662
669
  && heading === pack.gateActionTitles?.[gate]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agdf/local-validator-runtime",
3
- "version": "0.13.3",
3
+ "version": "0.13.5",
4
4
  "private": true,
5
5
  "type": "module"
6
6
  }
@@ -2,7 +2,7 @@
2
2
  "schema_version": "1",
3
3
  "generated": true,
4
4
  "source": "create-agdf/cli",
5
- "version": "0.13.3",
5
+ "version": "0.13.5",
6
6
  "entrypoint": "create-agdf/bin/agdf-validator.js",
7
- "digest": "496bee4ca4033209f031b78a3041f7d056c6a046cd069b29752f118ef01da266"
7
+ "digest": "8a076d7647c39ea3c19f6cc7c30052d798ec65abe705b56065c784f2bebc8068"
8
8
  }
@@ -1,6 +1,6 @@
1
1
  # Availability Decision Record
2
2
 
3
- - release: `0.13.3`
3
+ - release: `0.13.5`
4
4
  - decision_state: `pending`
5
5
  - decision_owner: verified publisher
6
6
  - countries: not selected
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "releaseVersion": "0.13.3",
3
+ "releaseVersion": "0.13.5",
4
4
  "evidenceStates": [
5
5
  "common",
6
6
  "codex-specific",
@@ -1,4 +1,4 @@
1
- # AGDF 0.13.3 — Initial OpenAI Public Plugin Candidate
1
+ # AGDF 0.13.5 — 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "releaseVersion": "0.13.3",
3
+ "releaseVersion": "0.13.5",
4
4
  "cases": [
5
5
  {
6
6
  "id": "positive-proportional-fit",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agdf",
3
- "version": "0.13.3",
3
+ "version": "0.13.5",
4
4
  "description": "Control layer for governed AI-assisted delivery.",
5
5
  "author": {
6
6
  "name": "Arndt Gold",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "id": "agdf",
4
- "version": "0.13.3",
4
+ "version": "0.13.5",
5
5
  "displayName": "AI Governance & Delivery Framework",
6
6
  "developerName": "Arndt Gold",
7
7
  "description": "Control layer for governed AI-assisted delivery.",
@@ -1,6 +1,6 @@
1
1
  # Availability Decision Record
2
2
 
3
- - release: `0.13.3`
3
+ - release: `0.13.5`
4
4
  - decision_state: `pending`
5
5
  - decision_owner: verified publisher
6
6
  - countries: not selected
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "releaseVersion": "0.13.3",
3
+ "releaseVersion": "0.13.5",
4
4
  "evidenceStates": [
5
5
  "common",
6
6
  "codex-specific",
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "releaseVersion": "0.13.3",
4
- "digest": "2d6fb0e0b4d6931891fb539f6e5fc50febcf7901440a3bad9d9e1c72c1a853d5",
3
+ "releaseVersion": "0.13.5",
4
+ "digest": "5e93c979972386a5b255c67bcbc491e13a21b7a6a046c292bd0fd4cfd60a72e0",
5
5
  "files": [
6
6
  {
7
7
  "path": ".codex-plugin/plugin.json",
8
- "sha256": "207b9ed2dba613d8105ca4d40b2740bc603d16f40a15529cd4a2160341b0d609"
8
+ "sha256": "50cfbd46d2b9584ce53fd58ef30d78560dff54f086f138bacb4e882ce558d06f"
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": "6f752759d6f9d37cbd3adc5f62e2d7b755f776876ac7f2106375da8f4196037b"
32
+ "sha256": "65918917ec5a640a093b26638fca4151de2863d659280e97cb88a10722951312"
33
33
  },
34
34
  {
35
35
  "path": "meta/agdf-runtime-contract.md",
@@ -157,23 +157,23 @@
157
157
  },
158
158
  {
159
159
  "path": "submission/openai/availability.md",
160
- "sha256": "fe4a54dc1c82b73ac2f102fdd627f2b43d830b423d99cf277919f33f27e9629a"
160
+ "sha256": "65cb1697e3d7a9cd096e8adee1aa5670f3a075f3ff000d1c8d0e4dcc4a2f65a9"
161
161
  },
162
162
  {
163
163
  "path": "submission/openai/capability-matrix.json",
164
- "sha256": "e67ed5149ee24da6a79a6f78621fba9c9ab466abf1eae1abd28a8f77b2d0ec9b"
164
+ "sha256": "0509483fd59a74e924fb1339bbe71f68bc00dd70c948dfda99f77c6b74edc8ac"
165
165
  },
166
166
  {
167
167
  "path": "submission/openai/listing.json",
168
- "sha256": "3ad5b47f49395c8dde35eb6b2bac2c12302dbeafef321150c625cfa9413a6ebd"
168
+ "sha256": "55d09444fcbc0b8f4d953d1ede9e930647f6551236e6fac54f759f127c2ccf6a"
169
169
  },
170
170
  {
171
171
  "path": "submission/openai/release-notes.md",
172
- "sha256": "f86eedd0b8fe7f90cee6795e87c63611e484f21c346bcdf4135e82f44151a471"
172
+ "sha256": "dfca2f38093336d508e341ce9ddd79fefa76db59aac9a9bed7b513ab39a21bf3"
173
173
  },
174
174
  {
175
175
  "path": "submission/openai/reviewer-cases.json",
176
- "sha256": "0440e6f4659e34f0cbef40d394a213e6342b4644d4c0413b83827175b92d28d5"
176
+ "sha256": "6e242aaf7b381353ffd5924f91cc257bc65c14b1f8960612ec33db9558ee0c35"
177
177
  }
178
178
  ]
179
179
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "releaseVersion": "0.13.3",
3
+ "releaseVersion": "0.13.5",
4
4
  "submissionType": "skills",
5
5
  "identity": {
6
6
  "technicalId": "agdf",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "releaseVersion": "0.13.3",
3
+ "releaseVersion": "0.13.5",
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": "43 inventoried files; inventory digest 2d6fb0e0b4d6931891fb539f6e5fc50febcf7901440a3bad9d9e1c72c1a853d5"
19
+ "detail": "43 inventoried files; inventory digest 5e93c979972386a5b255c67bcbc491e13a21b7a6a046c292bd0fd4cfd60a72e0"
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.13.3`
3
+ - release: `0.13.5`
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 | 43 inventoried files; inventory digest 2d6fb0e0b4d6931891fb539f6e5fc50febcf7901440a3bad9d9e1c72c1a853d5 |
12
+ | bundle | pass | 43 inventoried files; inventory digest 5e93c979972386a5b255c67bcbc491e13a21b7a6a046c292bd0fd4cfd60a72e0 |
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.13.3 — Initial OpenAI Public Plugin Candidate
1
+ # AGDF 0.13.5 — 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "releaseVersion": "0.13.3",
3
+ "releaseVersion": "0.13.5",
4
4
  "cases": [
5
5
  {
6
6
  "id": "positive-proportional-fit",
@@ -558,9 +558,15 @@ export function buildApprovalOrientationSnapshot({
558
558
  const primaryHeading = String(pack.gateActionTitles?.[gate] ?? "").trim();
559
559
  const artefactRefs = Object.freeze([...(humanPresentation.artefactRefs ?? [])].map((ref) => Object.freeze({ ...ref })));
560
560
  const nextGate = String(statusCard.next_gate_after_approval ?? "none");
561
+ const nextUserGate = String(statusCard.next_user_gate ?? "").trim();
562
+ const userActionRequired = String(statusCard.user_action_required ?? "").trim();
563
+ const userActionSemanticsValid = (userActionRequired === "no" && nextUserGate === "none")
564
+ || (userActionRequired === "yes" && REQUIRED_GATES.includes(nextUserGate) && nextGate === nextUserGate);
565
+ if (!userActionSemanticsValid) return null;
561
566
  const narration = pack.primary.narration.gates[gate] ?? {};
562
- const nextDecision = narration.userAction
563
- || (nextGate === "none" ? pack.primary.narration.noAction : `${pack.gateTitles[nextGate] ?? nextGate} ${pack.interaction.decisionFollows}`);
567
+ const nextDecision = userActionRequired === "no"
568
+ ? pack.primary.narration.noAction
569
+ : narration.userAction || `${pack.gateTitles[nextUserGate] ?? nextUserGate} ${pack.interaction.decisionFollows}`;
564
570
  const statusFields = Object.freeze([
565
571
  Object.freeze({ id: "selected_run", label: pack.statusCard.run, value: `${runTitle} · \`${runId}\`` }),
566
572
  Object.freeze({ id: "readiness_status", label: pack.statusCard.title, value: pack.interaction.ready }),
@@ -655,8 +661,9 @@ export function validateApprovalOrientationSnapshot(snapshot, { registry, expect
655
661
  const localizedGateTitle = gateTitle(registry, locale, gate);
656
662
  const nextGate = String(snapshot.gate_transition_card?.next_gate ?? "none");
657
663
  const narration = pack.primary.narration.gates[gate] ?? {};
658
- const nextDecision = narration.userAction
659
- || (nextGate === "none" ? pack.primary.narration.noAction : `${pack.gateTitles[nextGate] ?? nextGate} ${pack.interaction.decisionFollows}`);
664
+ const nextDecision = REQUIRED_GATES.includes(nextGate)
665
+ ? narration.userAction || `${pack.gateTitles[nextGate] ?? nextGate} ${pack.interaction.decisionFollows}`
666
+ : pack.primary.narration.noAction;
660
667
  const nextTransition = `${narration.agentNext ?? pack.primary.actions[gate] ?? ""}. ${nextDecision}.`;
661
668
  const localeConsistent = resolvePresentationLocale(registry, locale) === locale
662
669
  && heading === pack.gateActionTitles?.[gate]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-agdf",
3
- "version": "0.13.3",
3
+ "version": "0.13.5",
4
4
  "description": "Bootstrap AGDF repository-local plugin files, Copilot/OpenCode instructions, skills, control files and machine-readable checks.",
5
5
  "type": "module",
6
6
  "files": [