create-agdf 0.14.4 → 0.14.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 (31) 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/meta/distribution-profile-history.json +7 -0
  5. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +1 -1
  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/plugins/copilot/agdf/.agdf-payload-inventory.json +13 -13
  13. package/generated/plugins/copilot/agdf/meta/agdf-plugin.definition.json +1 -1
  14. package/generated/plugins/copilot/agdf/meta/distribution-profile-history.json +7 -0
  15. package/generated/plugins/copilot/agdf/plugin.json +1 -1
  16. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +1 -1
  17. package/generated/plugins/copilot/agdf/runtime/create-agdf/package.json +1 -1
  18. package/generated/plugins/copilot/agdf/runtime/runtime-manifest.json +2 -2
  19. package/generated/submissions/openai/agdf/.codex-plugin/plugin.json +1 -1
  20. package/generated/submissions/openai/agdf/meta/agdf-plugin.definition.json +1 -1
  21. package/generated/submissions/openai/agdf/meta/distribution-profile-history.json +7 -0
  22. package/generated/submissions/openai/agdf/submission/openai/availability.md +1 -1
  23. package/generated/submissions/openai/agdf/submission/openai/capability-matrix.json +1 -1
  24. package/generated/submissions/openai/agdf/submission/openai/inventory.json +10 -10
  25. package/generated/submissions/openai/agdf/submission/openai/listing.json +1 -1
  26. package/generated/submissions/openai/agdf/submission/openai/readiness.json +2 -2
  27. package/generated/submissions/openai/agdf/submission/openai/readiness.md +2 -2
  28. package/generated/submissions/openai/agdf/submission/openai/release-notes.md +1 -1
  29. package/generated/submissions/openai/agdf/submission/openai/reviewer-cases.json +1 -1
  30. package/lib/release/version-bump.js +23 -1
  31. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agdf",
3
- "version": "0.14.4",
3
+ "version": "0.14.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.14.4",
3
+ "version": "0.14.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.14.4",
4
+ "version": "0.14.5",
5
5
  "displayName": "AI Governance & Delivery Framework",
6
6
  "developerName": "Arndt Gold",
7
7
  "description": "Control layer for governed AI-assisted delivery.",
@@ -120,6 +120,13 @@
120
120
  "profile_id": "runtime-plugin",
121
121
  "entry_digest": "a441d633fe11ea402c3366cfac0cec659d32eae5eb4ae6b1d25a1e366a029813",
122
122
  "status": "supported"
123
+ },
124
+ "0.14.5": {
125
+ "contract_id": "five-profile-v1",
126
+ "provenance_schema_version": 1,
127
+ "profile_id": "runtime-plugin",
128
+ "entry_digest": "3fbe40f10a3d15e900962c59511f41193089216e1bdbabc642042f4156674477",
129
+ "status": "supported"
123
130
  }
124
131
  }
125
132
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "id": "agdf",
4
- "version": "0.14.4",
4
+ "version": "0.14.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
  {
2
2
  "name": "@agdf/local-validator-runtime",
3
- "version": "0.14.4",
3
+ "version": "0.14.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.14.4",
5
+ "version": "0.14.5",
6
6
  "entrypoint": "create-agdf/bin/agdf-validator.js",
7
- "digest": "68b83a6721a799c34067cdbcc0ed6664f7fbf89bce186a3d8de284b0959deac7"
7
+ "digest": "c5065a1f27cad7399b0a4bf8f6c580b54a012e6b174c11705cdcfa9b629ea423"
8
8
  }
@@ -1,6 +1,6 @@
1
1
  # Availability Decision Record
2
2
 
3
- - release: `0.14.4`
3
+ - release: `0.14.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.14.4",
3
+ "releaseVersion": "0.14.5",
4
4
  "evidenceStates": [
5
5
  "common",
6
6
  "codex-specific",
@@ -1,4 +1,4 @@
1
- # AGDF 0.14.4 — Initial OpenAI Public Plugin Candidate
1
+ # AGDF 0.14.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.14.4",
3
+ "releaseVersion": "0.14.5",
4
4
  "cases": [
5
5
  {
6
6
  "id": "positive-proportional-fit",
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "schema_version": 1,
3
3
  "profile_id": "copilot-runtime-plugin",
4
- "version": "0.14.4",
4
+ "version": "0.14.5",
5
5
  "baseline": {
6
6
  "max_files": 80,
7
7
  "max_bytes": 568459
8
8
  },
9
9
  "stats": {
10
10
  "files": 80,
11
- "bytes": 564486
11
+ "bytes": 564743
12
12
  },
13
13
  "entries": [
14
14
  {
@@ -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": "c0b249067a3fea29e551af28ccc855bfb4e9c7ef95f418d96d7e102c53650159",
252
+ "source_digest": "1a4874e35cfda6bb89b78f5421bf7e9ea7317d87467223316b8da882a6ec6328",
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": "c0b249067a3fea29e551af28ccc855bfb4e9c7ef95f418d96d7e102c53650159",
286
- "digest": "c0b249067a3fea29e551af28ccc855bfb4e9c7ef95f418d96d7e102c53650159",
285
+ "source_digest": "1a4874e35cfda6bb89b78f5421bf7e9ea7317d87467223316b8da882a6ec6328",
286
+ "digest": "1a4874e35cfda6bb89b78f5421bf7e9ea7317d87467223316b8da882a6ec6328",
287
287
  "bytes": 11491
288
288
  },
289
289
  {
@@ -304,9 +304,9 @@
304
304
  "rule": "copy",
305
305
  "requirement": "local validator and session orientation dependency",
306
306
  "source": "plugin/meta/distribution-profile-history.json",
307
- "source_digest": "63a78c2659fe6ece380883d10188e7dad7373866711aeca13005193b68be1ab2",
308
- "digest": "63a78c2659fe6ece380883d10188e7dad7373866711aeca13005193b68be1ab2",
309
- "bytes": 4141
307
+ "source_digest": "c746c93daa3ee3d229c2e33f46f0235cb512953cf9229df773725dde3ebb8033",
308
+ "digest": "c746c93daa3ee3d229c2e33f46f0235cb512953cf9229df773725dde3ebb8033",
309
+ "bytes": 4398
310
310
  },
311
311
  {
312
312
  "destination": "plugin.json",
@@ -315,8 +315,8 @@
315
315
  "rule": "render_copilot_manifest",
316
316
  "requirement": "Copilot plugin discovery",
317
317
  "source": "plugin/meta/agdf-plugin.definition.json",
318
- "source_digest": "c0b249067a3fea29e551af28ccc855bfb4e9c7ef95f418d96d7e102c53650159",
319
- "digest": "20c0b63fce6257d1731f5c283f37b3589db3d27156f02812e18946a1fb7eee0b",
318
+ "source_digest": "1a4874e35cfda6bb89b78f5421bf7e9ea7317d87467223316b8da882a6ec6328",
319
+ "digest": "608ced3e8ebddddb4fc1065f7055007b204cafde4915441dafa7a2f769ba88d8",
320
320
  "bytes": 551
321
321
  },
322
322
  {
@@ -370,7 +370,7 @@
370
370
  "owner": "create-agdf/scripts/sync-plugin-runtime.js",
371
371
  "rule": "generated_exact_runtime",
372
372
  "requirement": "offline exact-version validator and session check",
373
- "digest": "c0b249067a3fea29e551af28ccc855bfb4e9c7ef95f418d96d7e102c53650159",
373
+ "digest": "1a4874e35cfda6bb89b78f5421bf7e9ea7317d87467223316b8da882a6ec6328",
374
374
  "bytes": 11491
375
375
  },
376
376
  {
@@ -775,7 +775,7 @@
775
775
  "owner": "create-agdf/scripts/sync-plugin-runtime.js",
776
776
  "rule": "generated_exact_runtime",
777
777
  "requirement": "offline exact-version validator and session check",
778
- "digest": "10edb2974a67e4f75eb42a0dde270fa044afb4c6f57da831a063d8a8880b360c",
778
+ "digest": "d63d2b99be1b4bb1c4942bde49d0ddaf7efc3424869d151e1fac3794602facbb",
779
779
  "bytes": 108
780
780
  },
781
781
  {
@@ -784,7 +784,7 @@
784
784
  "owner": "create-agdf/scripts/sync-plugin-runtime.js",
785
785
  "rule": "generated_exact_runtime",
786
786
  "requirement": "offline exact-version validator and session check",
787
- "digest": "4af36ec9fc74e233d36858a09ac0360eeb633b647401ffd9159b23e39e237dd3",
787
+ "digest": "a3d75dd965a4c7253c534051c4915200575beb8fcb9be664bb46e94937b5b0f9",
788
788
  "bytes": 236
789
789
  }
790
790
  ]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "id": "agdf",
4
- "version": "0.14.4",
4
+ "version": "0.14.5",
5
5
  "displayName": "AI Governance & Delivery Framework",
6
6
  "developerName": "Arndt Gold",
7
7
  "description": "Control layer for governed AI-assisted delivery.",
@@ -120,6 +120,13 @@
120
120
  "profile_id": "runtime-plugin",
121
121
  "entry_digest": "a441d633fe11ea402c3366cfac0cec659d32eae5eb4ae6b1d25a1e366a029813",
122
122
  "status": "supported"
123
+ },
124
+ "0.14.5": {
125
+ "contract_id": "five-profile-v1",
126
+ "provenance_schema_version": 1,
127
+ "profile_id": "runtime-plugin",
128
+ "entry_digest": "3fbe40f10a3d15e900962c59511f41193089216e1bdbabc642042f4156674477",
129
+ "status": "supported"
123
130
  }
124
131
  }
125
132
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agdf",
3
- "version": "0.14.4",
3
+ "version": "0.14.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.14.4",
4
+ "version": "0.14.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
  {
2
2
  "name": "@agdf/local-validator-runtime",
3
- "version": "0.14.4",
3
+ "version": "0.14.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.14.4",
5
+ "version": "0.14.5",
6
6
  "entrypoint": "create-agdf/bin/agdf-validator.js",
7
- "digest": "68b83a6721a799c34067cdbcc0ed6664f7fbf89bce186a3d8de284b0959deac7"
7
+ "digest": "c5065a1f27cad7399b0a4bf8f6c580b54a012e6b174c11705cdcfa9b629ea423"
8
8
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agdf",
3
- "version": "0.14.4",
3
+ "version": "0.14.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.14.4",
4
+ "version": "0.14.5",
5
5
  "displayName": "AI Governance & Delivery Framework",
6
6
  "developerName": "Arndt Gold",
7
7
  "description": "Control layer for governed AI-assisted delivery.",
@@ -120,6 +120,13 @@
120
120
  "profile_id": "runtime-plugin",
121
121
  "entry_digest": "a441d633fe11ea402c3366cfac0cec659d32eae5eb4ae6b1d25a1e366a029813",
122
122
  "status": "supported"
123
+ },
124
+ "0.14.5": {
125
+ "contract_id": "five-profile-v1",
126
+ "provenance_schema_version": 1,
127
+ "profile_id": "runtime-plugin",
128
+ "entry_digest": "3fbe40f10a3d15e900962c59511f41193089216e1bdbabc642042f4156674477",
129
+ "status": "supported"
123
130
  }
124
131
  }
125
132
  }
@@ -1,6 +1,6 @@
1
1
  # Availability Decision Record
2
2
 
3
- - release: `0.14.4`
3
+ - release: `0.14.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.14.4",
3
+ "releaseVersion": "0.14.5",
4
4
  "evidenceStates": [
5
5
  "common",
6
6
  "codex-specific",
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "releaseVersion": "0.14.4",
4
- "digest": "594be5be291554c4567bcd711274498d9600a896d2e6b5f85ca941e1dff77d12",
3
+ "releaseVersion": "0.14.5",
4
+ "digest": "a811fe87ac3bddea7af7d50aa0091c28fc203164a341057546694c49affd68d5",
5
5
  "files": [
6
6
  {
7
7
  "path": ".codex-plugin/plugin.json",
8
- "sha256": "44c8561c912ed14a44849a23597e1786612d58596e745df691e6f343c0c595f8"
8
+ "sha256": "07f168dc1acc3b17f05981f6307332f73679c23a896222774b4d7ef5a313f8da"
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": "c0b249067a3fea29e551af28ccc855bfb4e9c7ef95f418d96d7e102c53650159"
32
+ "sha256": "1a4874e35cfda6bb89b78f5421bf7e9ea7317d87467223316b8da882a6ec6328"
33
33
  },
34
34
  {
35
35
  "path": "meta/agdf-runtime-contract.md",
@@ -81,7 +81,7 @@
81
81
  },
82
82
  {
83
83
  "path": "meta/distribution-profile-history.json",
84
- "sha256": "63a78c2659fe6ece380883d10188e7dad7373866711aeca13005193b68be1ab2"
84
+ "sha256": "c746c93daa3ee3d229c2e33f46f0235cb512953cf9229df773725dde3ebb8033"
85
85
  },
86
86
  {
87
87
  "path": "skills/brownfield-analysis/SKILL.md",
@@ -165,23 +165,23 @@
165
165
  },
166
166
  {
167
167
  "path": "submission/openai/availability.md",
168
- "sha256": "f92ddfc516a7ffa9abbb847118597bdcce52b0087adbe1c3066a7821a9ad22bc"
168
+ "sha256": "5be78fe0ced53c60440945ff063e736acf724904c4fd270cb89d906d6205835e"
169
169
  },
170
170
  {
171
171
  "path": "submission/openai/capability-matrix.json",
172
- "sha256": "0839d499972d89c7d173f3193a3e54a5b82aecd280192f80bff09733998e6cd6"
172
+ "sha256": "1bf9c28618bcd92b70ea77a0a309e8cfa18e16d0c85f3566c9fc29c6b93509a3"
173
173
  },
174
174
  {
175
175
  "path": "submission/openai/listing.json",
176
- "sha256": "c5a069a9047ded702678d928014434dc0b44ead7ecf2b7b84d3d45c1d842742b"
176
+ "sha256": "6bd19130d9ba81e035229b0549e0b55bf3c7537993ee4779579cdffc178023e1"
177
177
  },
178
178
  {
179
179
  "path": "submission/openai/release-notes.md",
180
- "sha256": "30e0057bd7e0538b25ca5bcf276fb418887f2e7d1806b431c013ba0d095dabb6"
180
+ "sha256": "9d30edf57eda2a6fdd3ac50fad8681a9ba05c8121a83fb6e526c23342e9a29d7"
181
181
  },
182
182
  {
183
183
  "path": "submission/openai/reviewer-cases.json",
184
- "sha256": "f145161287a42a891734e27f6c3b8c88fb873227d4d759c0867e60c17217e715"
184
+ "sha256": "26fc4e09251923322b1199610fcba7f6f77540cc9aac4fdc570e3a23df9abd0a"
185
185
  }
186
186
  ]
187
187
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "releaseVersion": "0.14.4",
3
+ "releaseVersion": "0.14.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.14.4",
3
+ "releaseVersion": "0.14.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": "45 inventoried files; inventory digest 594be5be291554c4567bcd711274498d9600a896d2e6b5f85ca941e1dff77d12"
19
+ "detail": "45 inventoried files; inventory digest a811fe87ac3bddea7af7d50aa0091c28fc203164a341057546694c49affd68d5"
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.4`
3
+ - release: `0.14.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 | 45 inventoried files; inventory digest 594be5be291554c4567bcd711274498d9600a896d2e6b5f85ca941e1dff77d12 |
12
+ | bundle | pass | 45 inventoried files; inventory digest a811fe87ac3bddea7af7d50aa0091c28fc203164a341057546694c49affd68d5 |
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.4 — Initial OpenAI Public Plugin Candidate
1
+ # AGDF 0.14.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.14.4",
3
+ "releaseVersion": "0.14.5",
4
4
  "cases": [
5
5
  {
6
6
  "id": "positive-proportional-fit",
@@ -1,4 +1,5 @@
1
1
  import { createHash, randomUUID } from "node:crypto";
2
+ import { execFileSync } from "node:child_process";
2
3
  import {
3
4
  existsSync,
4
5
  lstatSync,
@@ -87,6 +88,19 @@ function compareSemver(leftValue, rightValue) {
87
88
  return 0;
88
89
  }
89
90
 
91
+ function defaultTagExists(repoRoot, tag) {
92
+ try {
93
+ execFileSync(
94
+ "git",
95
+ ["rev-parse", "--verify", "--quiet", `refs/tags/${tag}`],
96
+ { cwd: repoRoot, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] },
97
+ );
98
+ return true;
99
+ } catch {
100
+ return false;
101
+ }
102
+ }
103
+
90
104
  function groupedWritableSurfaces() {
91
105
  const grouped = new Map();
92
106
  for (const surface of WRITABLE_RELEASE_VERSION_SURFACES) {
@@ -192,6 +206,7 @@ export function planReleaseVersionBump({
192
206
  nextVersion,
193
207
  acceptedContractDigest,
194
208
  fs = defaultFs,
209
+ tagExists = defaultTagExists,
195
210
  } = {}) {
196
211
  repoRoot = resolve(repoRoot);
197
212
  parseSemver(nextVersion);
@@ -209,6 +224,12 @@ export function planReleaseVersionBump({
209
224
  if (comparison < 0) {
210
225
  throw failure("release_version_bump_invalid", `target ${nextVersion} is older than current ${currentVersion}`);
211
226
  }
227
+ if (comparison > 0 && !tagExists(repoRoot, `agdf-v${currentVersion}`)) {
228
+ throw failure(
229
+ "release_version_bump_invalid",
230
+ `current release agdf-v${currentVersion} has no exact tag; finish or reconcile that release before advancing to ${nextVersion}`,
231
+ );
232
+ }
212
233
 
213
234
  let catalogue;
214
235
  try {
@@ -446,11 +467,12 @@ export function executeReleaseVersionBump({
446
467
  nextVersion,
447
468
  acceptedContractDigest,
448
469
  fs = defaultFs,
470
+ tagExists = defaultTagExists,
449
471
  hooks = {},
450
472
  } = {}) {
451
473
  repoRoot = resolve(repoRoot);
452
474
  recoverReleaseVersionBump({ repoRoot, fs });
453
- const plan = planReleaseVersionBump({ repoRoot, nextVersion, acceptedContractDigest, fs });
475
+ const plan = planReleaseVersionBump({ repoRoot, nextVersion, acceptedContractDigest, fs, tagExists });
454
476
  const transactionId = randomUUID();
455
477
  const entries = plan.entries.map((entry) => ({
456
478
  relative_path: entry.relativePath,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-agdf",
3
- "version": "0.14.4",
3
+ "version": "0.14.5",
4
4
  "description": "Install AGDF plugins, bootstrap supported repository surfaces and validate durable governance state.",
5
5
  "type": "module",
6
6
  "files": [