diff --git a/archive-plan-v1.1.2.json b/archive-plan-v1.1.2.json new file mode 100644 index 0000000..806e842 --- /dev/null +++ b/archive-plan-v1.1.2.json @@ -0,0 +1,13 @@ +{ + "schema_version": "cd-augment-archive-plan/v1", + "product": {"name": "TestForge Codex plugin", "version": "1.1.2"}, + "artifacts": [ + { + "id": "plugin", + "kind": "plugin", + "source": "plugins/testforge", + "archive_name": "Plugin-TestForge-v1.1.2.zip", + "top_level": "testforge-plugin" + } + ] +} diff --git a/plugins/testforge/.codex-plugin/plugin.json b/plugins/testforge/.codex-plugin/plugin.json index 1a50c56..a8f91db 100644 --- a/plugins/testforge/.codex-plugin/plugin.json +++ b/plugins/testforge/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "testforge", - "version": "1.1.1", + "version": "1.1.2", "description": "Risk-driven software verification and independent evidence review for coding Agents.", "author": { "name": "Collaborative Dynamics", @@ -32,9 +32,9 @@ "Write" ], "defaultPrompt": [ - "Verify this repository before it ships: reconstruct the blast radius, rank catastrophic risks, run safe authorized checks, and issue a traceable release assessment.", - "Challenge this completed verification package for missed catastrophic risks, weak oracles, broken traceability, and unsupported confidence.", - "Turn this failing test or bug report into the smallest credible evidence set that distinguishes product, test, environment, and uncertainty failures." + "Verify this repository: map impact, rank catastrophic risks, run safe checks, and issue a traceable release assessment.", + "Challenge this verification package for catastrophic omissions, weak oracles, broken traceability, and unsupported confidence.", + "Turn this failure into evidence that distinguishes product, test, environment, and uncertainty causes." ], "brandColor": "#48CBE8", "composerIcon": "./assets/testforge-icon-v1.1.1.png", diff --git a/release-assets/v1.1.2/Plugin-TestForge-v1.1.2.zip b/release-assets/v1.1.2/Plugin-TestForge-v1.1.2.zip new file mode 100644 index 0000000..2a17a77 Binary files /dev/null and b/release-assets/v1.1.2/Plugin-TestForge-v1.1.2.zip differ diff --git a/release-assets/v1.1.2/archive-custody.json b/release-assets/v1.1.2/archive-custody.json new file mode 100644 index 0000000..b9f1e38 --- /dev/null +++ b/release-assets/v1.1.2/archive-custody.json @@ -0,0 +1,21 @@ +{ + "schema_version": "cd-augment-archive-custody/v1", + "product": { + "name": "TestForge Codex plugin", + "version": "1.1.2" + }, + "created_at": "2026-07-20T10:55:50.286746+00:00", + "artifacts": [ + { + "top_level": "testforge-plugin", + "source_tree_sha256": "d2738cee88f58cc878af88ff9f7a1f211a214b3ae32e388148fd1c3cfd065003", + "archive_sha256": "ae04e5b090e48f94aa6316b38955bd82e38a75a202161db56f0d5fed539fdae7", + "bytes": 865770, + "member_count": 106, + "id": "plugin", + "kind": "plugin", + "source": "plugins/testforge", + "archive_name": "Plugin-TestForge-v1.1.2.zip" + } + ] +} diff --git a/release-manifest.json b/release-manifest.json index 16b0e47..4f78430 100644 --- a/release-manifest.json +++ b/release-manifest.json @@ -3,7 +3,7 @@ "package": "testforge-public-repository", "version": "1.1.1", "release_date": "2026-07-20", - "artifact_count": 418, + "artifact_count": 421, "artifacts": [ { "path": ".agents/plugins/marketplace.json", @@ -30,6 +30,11 @@ "size": 1998, "sha256": "bcdb3dc2ab15604c3ddd7e3a0cf0ca05fea994f84a862e54c13dcd87c92d316c" }, + { + "path": "archive-plan-v1.1.2.json", + "size": 330, + "sha256": "e6e252419fbd8707ed6020551c695bb30d63b15c5574a52b24e18a2c994eeaf2" + }, { "path": "archive-plan.json", "size": 872, @@ -122,8 +127,8 @@ }, { "path": "plugins/testforge/.codex-plugin/plugin.json", - "size": 2119, - "sha256": "94d8fd3669d657618a7e012aaee5721f6cc1bd53754b28c793df24dddf134889" + "size": 2014, + "sha256": "5130b07286a89ec9c3e837b2432a3dbb02f7ea5a9a6b5ef2715470ecd40feba8" }, { "path": "plugins/testforge/assets/testforge-answer-sheet-v1.1.1.svg", @@ -1812,8 +1817,8 @@ }, { "path": "tests/test_public_distribution.py", - "size": 4347, - "sha256": "9b338c1bf9ed04e9d834e1d3eca72a462a0bc91b2419b92f04be51ac8d52ef5b" + "size": 4517, + "sha256": "faa493e1c4d85e52ad4933e3c5ad28283e7c5246b77458e82f9df21251f162a4" }, { "path": "tools/augment-evals/.gitignore", @@ -2080,11 +2085,21 @@ "size": 229, "sha256": "53b5d5d9817d4627e84a0aec211c91904d20cd01549b6db6e7563e8958c37edd" }, + { + "path": "verification/evidence/plugin-readiness-v1.1.2.json", + "size": 229, + "sha256": "39b995b6ecde0121e3951081f45022148de456ff83467aa332b8745938e96819" + }, { "path": "verification/release-summary-v1.1.1.json", "size": 3821, "sha256": "92d50fda786fe3881dc9dd9dbbfe3e7414dd5cff86f47451e0a3cb675b8a44df" }, + { + "path": "verification/release-summary-v1.1.2.json", + "size": 2310, + "sha256": "8dd00ab570d33033c2afcb4aafab6cd32b1434634b020354189a103c775f37a7" + }, { "path": "verification/verification-report.json", "size": 2187, diff --git a/tests/test_public_distribution.py b/tests/test_public_distribution.py index 134d122..db070da 100644 --- a/tests/test_public_distribution.py +++ b/tests/test_public_distribution.py @@ -11,7 +11,8 @@ CANONICAL = ROOT / "testforge" PLUGIN = ROOT / "plugins" / "testforge" PLUGIN_SKILLS = PLUGIN / "skills" -VERSION = "1.1.1" +PACKAGE_VERSION = "1.1.1" +PLUGIN_VERSION = "1.1.2" class PublicDistributionTests(unittest.TestCase): @@ -39,11 +40,14 @@ def test_marketplace_and_plugin_identity_agree(self): self.assertEqual("./plugins/testforge", entry["source"]["path"]) self.assertEqual(entry["name"], manifest["name"]) self.assertEqual("./skills/", manifest["skills"]) - self.assertEqual(VERSION, manifest["version"]) + self.assertEqual(PLUGIN_VERSION, manifest["version"]) package_manifest = (CANONICAL / "package-manifest.yaml").read_text( encoding="utf-8" ) - self.assertIn(f"version: {VERSION}\n", package_manifest) + self.assertIn(f"version: {PACKAGE_VERSION}\n", package_manifest) + + for prompt in manifest["interface"]["defaultPrompt"]: + self.assertLessEqual(len(prompt), 128, prompt) for key in ("privacyPolicyURL", "termsOfServiceURL"): self.assertTrue(manifest["interface"][key].startswith("https://")) diff --git a/verification/evidence/plugin-readiness-v1.1.2.json b/verification/evidence/plugin-readiness-v1.1.2.json new file mode 100644 index 0000000..3255410 --- /dev/null +++ b/verification/evidence/plugin-readiness-v1.1.2.json @@ -0,0 +1,12 @@ +{ + "schema_version": "cd-plugin-readiness-audit/v1", + "plugin_root": "plugins/testforge", + "name": "testforge", + "version": "1.1.2", + "skill_count": 2, + "issues": [], + "summary": { + "errors": 0, + "warnings": 0 + } +} diff --git a/verification/release-summary-v1.1.2.json b/verification/release-summary-v1.1.2.json new file mode 100644 index 0000000..0687e71 --- /dev/null +++ b/verification/release-summary-v1.1.2.json @@ -0,0 +1,49 @@ +{ + "schema_version": "cd-independent-release-review/v1", + "product": "TestForge Codex plugin", + "version": "1.1.2", + "core_augment_version": "1.1.1", + "review_date": "2026-07-20", + "scope": "Plugin-only host-compatibility patch; the TestForge Augment, both standalone skills, and both Claude archives remain byte-identical to v1.1.1", + "trigger": "A fresh Codex v0.144.5 task discovered both installed skills and opened bundled resources, but the host ignored all three plugin listing prompts because each exceeded 128 characters.", + "changes": [ + "Shorten all three defaultPrompt entries to 128 characters or fewer while preserving their verification intent.", + "Separate plugin version custody from the unchanged v1.1.1 Augment version in distribution tests.", + "Add a regression assertion for the current host prompt-length limit." + ], + "evidence": { + "deterministic_tests": "66 passed; 0 failed", + "plugin_audit": "verification/evidence/plugin-readiness-v1.1.2.json", + "plugin_audit_result": "2 skills; zero errors and zero warnings", + "prompt_lengths": [119, 126, 102], + "archive_custody": "release-assets/v1.1.2/archive-custody.json", + "prior_fresh_task_activation": { + "plugin_version": "1.1.1", + "software_verification_resource": "references/core/risk-based-testing.md", + "verification_reviewer_resource": "review-rubric.md", + "activation": "passed with ignored-listing-prompt warnings" + } + }, + "archives": [ + { + "name": "Plugin-TestForge-v1.1.2.zip", + "sha256": "ae04e5b090e48f94aa6316b38955bd82e38a75a202161db56f0d5fed539fdae7", + "bytes": 865770, + "members": 106 + } + ], + "unchanged_release_objects": [ + "TestForge-v1.1.1.zip", + "Skill-software-verification--TestForge-v1.1.1.zip", + "Skill-verification-reviewer--TestForge-v1.1.1.zip", + "software-verification-v1.1.1.zip", + "verification-reviewer-v1.1.1.zip" + ], + "material_findings": [], + "conditions": [ + "Install v1.1.2 from the refreshed marketplace and repeat fresh-task skill and bundled-resource activation.", + "Official OpenAI Plugins Directory submission, approval, publication, and discoverability remain separate states." + ], + "disposition": "REVIEW_PASS_WITH_CONDITIONS", + "release_decision": "READY_WITH_RESIDUAL_RISK" +}