create-agdf 0.13.1 → 0.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) 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/package.json +1 -1
  6. package/generated/plugins/agdf/runtime/runtime-manifest.json +2 -2
  7. package/generated/plugins/agdf/submission/openai/availability.md +1 -1
  8. package/generated/plugins/agdf/submission/openai/capability-matrix.json +1 -1
  9. package/generated/plugins/agdf/submission/openai/release-notes.md +1 -1
  10. package/generated/plugins/agdf/submission/openai/reviewer-cases.json +1 -1
  11. package/generated/submissions/openai/agdf/.codex-plugin/plugin.json +1 -1
  12. package/generated/submissions/openai/agdf/meta/agdf-plugin.definition.json +1 -1
  13. package/generated/submissions/openai/agdf/submission/openai/availability.md +1 -1
  14. package/generated/submissions/openai/agdf/submission/openai/capability-matrix.json +1 -1
  15. package/generated/submissions/openai/agdf/submission/openai/inventory.json +9 -9
  16. package/generated/submissions/openai/agdf/submission/openai/listing.json +1 -1
  17. package/generated/submissions/openai/agdf/submission/openai/readiness.json +2 -2
  18. package/generated/submissions/openai/agdf/submission/openai/readiness.md +2 -2
  19. package/generated/submissions/openai/agdf/submission/openai/release-notes.md +1 -1
  20. package/generated/submissions/openai/agdf/submission/openai/reviewer-cases.json +1 -1
  21. package/lib/release/version-coherence.js +79 -0
  22. package/package.json +5 -3
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agdf",
3
- "version": "0.13.1",
3
+ "version": "0.13.2",
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.1",
3
+ "version": "0.13.2",
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.1",
4
+ "version": "0.13.2",
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.1",
4
+ "version": "0.13.2",
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.13.1",
3
+ "version": "0.13.2",
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.1",
5
+ "version": "0.13.2",
6
6
  "entrypoint": "create-agdf/bin/agdf-validator.js",
7
- "digest": "891fac7000205be2f6ca0d257ad553ad52651a167737726f8bf3ea9d106c03e7"
7
+ "digest": "e8df9cea23140409989af965708dee52d10d7f8929dca4506828673256c8c5e4"
8
8
  }
@@ -1,6 +1,6 @@
1
1
  # Availability Decision Record
2
2
 
3
- - release: `0.13.1`
3
+ - release: `0.13.2`
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.1",
3
+ "releaseVersion": "0.13.2",
4
4
  "evidenceStates": [
5
5
  "common",
6
6
  "codex-specific",
@@ -1,4 +1,4 @@
1
- # AGDF 0.13.1 — Initial OpenAI Public Plugin Candidate
1
+ # AGDF 0.13.2 — 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.1",
3
+ "releaseVersion": "0.13.2",
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.1",
3
+ "version": "0.13.2",
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.1",
4
+ "version": "0.13.2",
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.1`
3
+ - release: `0.13.2`
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.1",
3
+ "releaseVersion": "0.13.2",
4
4
  "evidenceStates": [
5
5
  "common",
6
6
  "codex-specific",
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "releaseVersion": "0.13.1",
4
- "digest": "c159dc46c8791df5832de97dbd73cf1edf617d91ff2c3311b9b40d5bb8165f40",
3
+ "releaseVersion": "0.13.2",
4
+ "digest": "39e413c04f3a9ed00a929059c811517122595db1ca996160014ab28e40d4343b",
5
5
  "files": [
6
6
  {
7
7
  "path": ".codex-plugin/plugin.json",
8
- "sha256": "9d0ac45b4330f9ab3ca7fbbc55c807e9515a52f94dd4b26c455e15fdc144e9ac"
8
+ "sha256": "7c312e36df469557f1a8b4c9ce3c58cdcfa15e9f4203d2daea7fa2cc03eefe9f"
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": "95f1ffc55c0399f3699e6a155d56d9a41c83e20a41cb9a88b82b7e5db0a63b16"
32
+ "sha256": "825d2e15df0a4cff0c3821f1f03c97dbf6310a3a58ff75e93becce5e68c43b3d"
33
33
  },
34
34
  {
35
35
  "path": "meta/agdf-runtime-contract.md",
@@ -153,23 +153,23 @@
153
153
  },
154
154
  {
155
155
  "path": "submission/openai/availability.md",
156
- "sha256": "5d255a6d89f73debef7c4ff3ea06f7c50afd7d1ee99f98edd8dbca15f372dfe6"
156
+ "sha256": "e4c8f423e8f34f451bea859b22bbe957f763edf193ee64e5b70a9493dab70d22"
157
157
  },
158
158
  {
159
159
  "path": "submission/openai/capability-matrix.json",
160
- "sha256": "635ad05cfbc85e424459a608004eb4df138453f8c690b0e6692e71cbf9992738"
160
+ "sha256": "139a02d1da98ff87e190a611d2aaf65d14bdf186afa65eb3687100d401473704"
161
161
  },
162
162
  {
163
163
  "path": "submission/openai/listing.json",
164
- "sha256": "fe4975537654a5cecbecde892fb6fe8692e8f81c70d88cff68b3f6c3ef230b7d"
164
+ "sha256": "bc8f674e2ca9134da8e283943123613fee4a40cc5f45ba9caa6e26d459255daf"
165
165
  },
166
166
  {
167
167
  "path": "submission/openai/release-notes.md",
168
- "sha256": "61a954ef4c53ffed608cdab5e7341ba7ea191e90aa8368b56958291451047fa4"
168
+ "sha256": "8dde4b6ba3fa6b8a5075e749a5b5cdad0ca86e07130e03df395a0698e3187ec3"
169
169
  },
170
170
  {
171
171
  "path": "submission/openai/reviewer-cases.json",
172
- "sha256": "d3317556ae2732fc9a88ade14c7f98f97f2c6c98ceb430cd31adeded39f7ee28"
172
+ "sha256": "ffd89e71028ca29031fd283c8a7980006f4d16026eb2c6d09e401b788caf83ed"
173
173
  }
174
174
  ]
175
175
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "releaseVersion": "0.13.1",
3
+ "releaseVersion": "0.13.2",
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.1",
3
+ "releaseVersion": "0.13.2",
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": "42 inventoried files; inventory digest c159dc46c8791df5832de97dbd73cf1edf617d91ff2c3311b9b40d5bb8165f40"
19
+ "detail": "42 inventoried files; inventory digest 39e413c04f3a9ed00a929059c811517122595db1ca996160014ab28e40d4343b"
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.1`
3
+ - release: `0.13.2`
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 | 42 inventoried files; inventory digest c159dc46c8791df5832de97dbd73cf1edf617d91ff2c3311b9b40d5bb8165f40 |
12
+ | bundle | pass | 42 inventoried files; inventory digest 39e413c04f3a9ed00a929059c811517122595db1ca996160014ab28e40d4343b |
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.1 — Initial OpenAI Public Plugin Candidate
1
+ # AGDF 0.13.2 — 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.1",
3
+ "releaseVersion": "0.13.2",
4
4
  "cases": [
5
5
  {
6
6
  "id": "positive-proportional-fit",
@@ -0,0 +1,79 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { join, resolve } from "node:path";
3
+
4
+ function jsonVersion(relativePath, select = (value) => value.version) {
5
+ return {
6
+ relativePath,
7
+ read: (repoRoot) => select(JSON.parse(readFileSync(join(repoRoot, relativePath), "utf8"))),
8
+ };
9
+ }
10
+
11
+ function textVersion(relativePath, pattern) {
12
+ return {
13
+ relativePath,
14
+ read: (repoRoot) => readFileSync(join(repoRoot, relativePath), "utf8").match(pattern)?.[1],
15
+ };
16
+ }
17
+
18
+ const VERSION_SURFACES = [
19
+ jsonVersion("plugin/.codex-plugin/plugin.json"),
20
+ jsonVersion("plugin/.claude-plugin/plugin.json"),
21
+ jsonVersion("create-agdf/package.json"),
22
+ jsonVersion("agdf/package.json"),
23
+ jsonVersion("agdf/package.json", (value) => value.dependencies?.["create-agdf"]),
24
+ jsonVersion("pages/package.json"),
25
+ jsonVersion("pages/package-lock.json"),
26
+ jsonVersion("pages/package-lock.json", (value) => value.packages?.[""]?.version),
27
+ textVersion("pages/src/data/site.ts", /version:\s*"([^"]+)"/),
28
+ jsonVersion("plugin/submission/openai/capability-matrix.json", (value) => value.releaseVersion),
29
+ jsonVersion("plugin/submission/openai/reviewer-cases.json", (value) => value.releaseVersion),
30
+ textVersion("plugin/submission/openai/release-notes.md", /^# AGDF (\S+) —/m),
31
+ textVersion("plugin/submission/openai/availability.md", /^- release: `([^`]+)`$/m),
32
+ jsonVersion("create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json"),
33
+ jsonVersion("create-agdf/generated/plugins/agdf/.codex-plugin/plugin.json"),
34
+ jsonVersion("create-agdf/generated/plugins/agdf/.claude-plugin/plugin.json"),
35
+ jsonVersion("create-agdf/generated/plugins/agdf/runtime/runtime-manifest.json"),
36
+ jsonVersion("create-agdf/generated/plugins/agdf/runtime/create-agdf/package.json"),
37
+ jsonVersion("create-agdf/generated/submissions/openai/agdf/meta/agdf-plugin.definition.json"),
38
+ jsonVersion("create-agdf/generated/submissions/openai/agdf/.codex-plugin/plugin.json"),
39
+ jsonVersion("create-agdf/generated/submissions/openai/agdf/submission/openai/capability-matrix.json", (value) => value.releaseVersion),
40
+ jsonVersion("create-agdf/generated/submissions/openai/agdf/submission/openai/reviewer-cases.json", (value) => value.releaseVersion),
41
+ jsonVersion("create-agdf/generated/submissions/openai/agdf/submission/openai/listing.json", (value) => value.releaseVersion),
42
+ jsonVersion("create-agdf/generated/submissions/openai/agdf/submission/openai/inventory.json", (value) => value.releaseVersion),
43
+ jsonVersion("create-agdf/generated/submissions/openai/agdf/submission/openai/readiness.json", (value) => value.releaseVersion),
44
+ textVersion("create-agdf/generated/submissions/openai/agdf/submission/openai/release-notes.md", /^# AGDF (\S+) —/m),
45
+ textVersion("create-agdf/generated/submissions/openai/agdf/submission/openai/availability.md", /^- release: `([^`]+)`$/m),
46
+ textVersion("create-agdf/generated/submissions/openai/agdf/submission/openai/readiness.md", /^- release: `([^`]+)`$/m),
47
+ ];
48
+
49
+ export function collectReleaseVersionEvidence({ repoRoot }) {
50
+ repoRoot = resolve(repoRoot);
51
+ const definitionPath = join(repoRoot, "plugin", "meta", "agdf-plugin.definition.json");
52
+ const expectedVersion = JSON.parse(readFileSync(definitionPath, "utf8")).version;
53
+ const entries = VERSION_SURFACES.map(({ relativePath, read }) => {
54
+ const absolutePath = join(repoRoot, relativePath);
55
+ if (!existsSync(absolutePath)) return { relativePath, actualVersion: undefined };
56
+ return { relativePath, actualVersion: read(repoRoot) };
57
+ });
58
+ return { expectedVersion, entries };
59
+ }
60
+
61
+ export function releaseVersionMismatches({ expectedVersion, entries }) {
62
+ return entries.filter(({ actualVersion }) => actualVersion !== expectedVersion);
63
+ }
64
+
65
+ export function assertReleaseVersionCoherence({ repoRoot, evidence } = {}) {
66
+ evidence ??= collectReleaseVersionEvidence({ repoRoot });
67
+ const mismatches = releaseVersionMismatches(evidence);
68
+ if (mismatches.length === 0) return evidence;
69
+
70
+ const generated = mismatches.some(({ relativePath }) => relativePath.startsWith("create-agdf/generated/"));
71
+ const code = generated ? "AGDF_GENERATED_VERSION_STALE" : "AGDF_RELEASE_VERSION_SKEW";
72
+ const details = mismatches
73
+ .map(({ relativePath, actualVersion }) => `- ${relativePath}: ${actualVersion ?? "missing version"}`)
74
+ .join("\n");
75
+ const error = new Error(`${code}: expected ${evidence.expectedVersion} on every release surface\n${details}\nRun npm --prefix create-agdf run release:prepare.`);
76
+ error.code = code;
77
+ error.mismatches = mismatches;
78
+ throw error;
79
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-agdf",
3
- "version": "0.13.1",
3
+ "version": "0.13.2",
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": [
@@ -22,7 +22,9 @@
22
22
  "scripts": {
23
23
  "sync-package-assets": "node ./scripts/sync-package-assets.js",
24
24
  "build:public-plugin": "node ./scripts/build-public-plugin.js",
25
+ "test:release-version-coherence": "node ./scripts/release-version-coherence-test.js",
25
26
  "test:public-plugin": "node ./scripts/public-plugin-test.js",
27
+ "release:prepare": "npm run sync-package-assets && npm run test:release-version-coherence && npm run test:public-plugin",
26
28
  "test:delivery-path-search": "node ./scripts/delivery-path-search-test.js",
27
29
  "test:delivery-path-search-unit": "node ./scripts/delivery-path-search-unit-test.js",
28
30
  "test:delivery-path-search-generator": "node ./scripts/delivery-path-search-generator-test.js",
@@ -46,8 +48,8 @@
46
48
  "test:proportionality": "node ./scripts/proportionality-benchmark-test.js",
47
49
  "test:release-bootstrap": "node ./scripts/release-bootstrap-smoke-test.js",
48
50
  "test:routing": "npm run sync-package-assets && node ./scripts/test-routing.js",
49
- "smoke-test": "npm run sync-package-assets && npm run test:public-plugin && npm run test:cli-modularization && npm run test:local-validator && npm run test:local-marketplace && npm run test:package-build && npm run test:package-contents && npm run test:lifecycle && npm run test:control-state && npm run test:interaction-presentation && npm run test:verified-change && npm run test:runtime-integrity-layout && npm run test:runtime-integrity-negative && npm run test:skill-evals && npm run eval:skills && npm run test:proportionality && npm run test:delivery-path-search && npm run test:delivery-path-search-unit && npm run test:delivery-path-search-generator && npm run test:opencode-hardening && node ./scripts/smoke-test.js && node ./scripts/test-routing.js",
50
- "prepack": "npm run sync-package-assets"
51
+ "smoke-test": "npm run release:prepare && npm run test:cli-modularization && npm run test:local-validator && npm run test:local-marketplace && npm run test:package-build && npm run test:package-contents && npm run test:lifecycle && npm run test:control-state && npm run test:interaction-presentation && npm run test:verified-change && npm run test:runtime-integrity-layout && npm run test:runtime-integrity-negative && npm run test:skill-evals && npm run eval:skills && npm run test:proportionality && npm run test:delivery-path-search && npm run test:delivery-path-search-unit && npm run test:delivery-path-search-generator && npm run test:opencode-hardening && node ./scripts/smoke-test.js && node ./scripts/test-routing.js",
52
+ "prepack": "npm run release:prepare"
51
53
  },
52
54
  "keywords": [
53
55
  "agdf",