From dd297eab805313a9b7c450d53a300109672dfd23 Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Tue, 6 Oct 2026 23:45:58 +0100 Subject: [PATCH] chore: retire package.k9, a manifest nothing consumed (DEBT D4) No code, script, workflow or Justfile reads package.k9, and its `just build` target named a recipe that was deleted. Delete it, of D4's three options the smallest, and remove it from the dust version-drift probe (whose grep would otherwise exit 2 on the missing file and pass vacuously), the must.ncl and chora deed text, AGENTS.md, AUDIT, DEBT, the wiki's Architecture table and the CHANGELOG. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_019tmsGh5n4GwJZYq9Z5mtxH --- .machine_readable/contractiles/dust/dust.ncl | 2 +- .machine_readable/contractiles/must/must.ncl | 2 +- .../descriptiles/progblocks_chora.deed | 5 ++--- AGENTS.md | 2 +- AUDIT.adoc | 4 +--- CHANGELOG.md | 2 ++ DEBT.adoc | 10 +++++++--- docs/wiki/developers/Architecture.adoc | 4 ---- package.k9 | 19 ------------------- 9 files changed, 15 insertions(+), 35 deletions(-) delete mode 100644 package.k9 diff --git a/.machine_readable/contractiles/dust/dust.ncl b/.machine_readable/contractiles/dust/dust.ncl index 6be4214..8dc497f 100644 --- a/.machine_readable/contractiles/dust/dust.ncl +++ b/.machine_readable/contractiles/dust/dust.ncl @@ -48,7 +48,7 @@ { level = 3, heading = "version-string-disagreement (RESOLVED 2026-10-05 — all fields aligned on 0.3.0)", - fields = [{ key = "description", value = "package.k9 and contracts.ncl (deleted 2026-10-06) said 1.0.0; progblocks.launcher.a2ml (now progblocks.launcher_praxis.deed) and progblocks-launcher.sh said 0.1.0; package.json said 0.3.0. The run line now detects a regression: it matches only if a field has drifted off 0.3.0 again" }, { key = "run", value = "! grep -qE '\"(1\\.0\\.0|0\\.1\\.0)\"' package.k9 progblocks-launcher.sh && grep -q ':version \"0.3.0\"' progblocks.launcher_praxis.deed" }, { key = "severity", value = "warning" }, { key = "enforced-by", value = "not yet automated (documentary)" }, { key = "notes", value = "Resolve to one version before any tag is cut — see the repo deed's (playbook (release-process …)) clause." }], + fields = [{ key = "description", value = "package.k9 and contracts.ncl (both deleted 2026-10-06) said 1.0.0; progblocks.launcher.a2ml (now progblocks.launcher_praxis.deed) and progblocks-launcher.sh said 0.1.0; package.json said 0.3.0. The run line now detects a regression: it matches only if a field has drifted off 0.3.0 again" }, { key = "run", value = "! grep -qE '\"(1\\.0\\.0|0\\.1\\.0)\"' progblocks-launcher.sh && grep -q ':version \"0.3.0\"' progblocks.launcher_praxis.deed" }, { key = "severity", value = "warning" }, { key = "enforced-by", value = "not yet automated (documentary)" }, { key = "notes", value = "Resolve to one version before any tag is cut — see the repo deed's (playbook (release-process …)) clause." }], text = [""], }, ], diff --git a/.machine_readable/contractiles/must/must.ncl b/.machine_readable/contractiles/must/must.ncl index 23585c5..8a0ce5e 100644 --- a/.machine_readable/contractiles/must/must.ncl +++ b/.machine_readable/contractiles/must/must.ncl @@ -115,7 +115,7 @@ }, { title = "No verification ledger to check", - text = ["", "This repo has no VERIFICATION.md and no src/verify*.mjs scripts, and makes", "no formal proof claims — see the repo deed's (neurosym …) clause. package.k9", "describes intent; nothing in this tree consumes it."], + text = ["", "This repo has no VERIFICATION.md and no src/verify*.mjs scripts, and makes", "no formal proof claims — see the repo deed's (neurosym …) clause."], items = [ ], }, diff --git a/.machine_readable/descriptiles/progblocks_chora.deed b/.machine_readable/descriptiles/progblocks_chora.deed index 7337dd1..52f589c 100644 --- a/.machine_readable/descriptiles/progblocks_chora.deed +++ b/.machine_readable/descriptiles/progblocks_chora.deed @@ -126,8 +126,8 @@ (neurosym :version "0.1.0" :last-updated "2026-10-05" - ; No formal proof claims: package.k9 is consumed by nothing. contracts.ncl and - ; k9-validator.js, which only looked like validation, were deleted on 2026-10-06. + ; No formal proof claims. contracts.ncl and k9-validator.js, which only looked like + ; validation, and package.k9, which nothing consumed, were deleted on 2026-10-06. :formal-proof-claims #f (hypatia :scan-enabled #t :scan-depth standard :report-format "logtalk") (evidence :kind test :tool "bun test (happy-dom)" :location "tests/" :notes "Unit and behaviour tests; also tools/a11y-audit.mjs (axe-core in Chromium), run in CI.") @@ -158,7 +158,6 @@ :purpose ("Define canonical semantics and policy boundaries for this repository." "Provide a stable golden path and invariant contract for release readiness." "Say plainly which source wins when documentation and the code disagree.") :owns ("What the component actually does: src/prog-block.js and src/prog-block.css, read directly, are authoritative, not any feature list" "What is and isn't verified about this repo (EXPLAINME.adoc, AUDIT.adoc)") (supersedes :lower "README.md feature list" :higher "src/ as read, with EXPLAINME.adoc as its evidence map" :note "Resolve drift by fixing the document, never by weakening the facts.") - (supersedes :lower "package.k9 declarations" :higher "actual runtime behaviour" :note "No tool in this tree consumes package.k9.") (supersedes :lower "progblocks-launcher.sh (generated)" :higher "progblocks.launcher_praxis.deed (its input)" :note "The generated script is what is broken, not its input.") (implementation-policy :allowed ("JavaScript (ESM, no bundler)" "CSS (Shadow DOM)" "HTML" "Shell" "Nickel" "DEED" "KYAML" "AsciiDoc" "Markdown") diff --git a/AGENTS.md b/AGENTS.md index 5e8adf9..5f0d7fc 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -7,7 +7,7 @@ and is guarded by `tests/registration.test.js`. Read the repo deed `.machine_readable/descriptiles/progblocks_chora.deed` (its `(manifest …)` and `(maturity …)` clauses first), then `README.md`, then `DEBT.adoc` before touching anything. `README.md`'s Features table and `ARCHITECTURE.md`'s -"intended vs. actual" section are the fastest way to learn which claims in `package.k9` are +"intended vs. actual" section are the fastest way to learn which documented claims are aspirational rather than true. Do not hand-edit the generated `progblocks-launcher.sh` — it is produced from diff --git a/AUDIT.adoc b/AUDIT.adoc index 00f0576..3fa3764 100644 --- a/AUDIT.adoc +++ b/AUDIT.adoc @@ -100,9 +100,7 @@ Recorded so that nothing later mistakes silence for modesty. * **No security review.** gitleaks proves no *secrets* are committed. It says nothing about the component's behaviour. The known injection surface (C1) was closed on 2026-10-05 and has regression tests, but no independent review has been made. -* **`package.k9` is not consumed by anything.** Its declarations are documentary. One of its `JUST` targets names a recipe that no longer exists. - -* **Nothing pretends to validate.** The always-"valid" `src/k9-validator.js` stub and the self-describing `contracts.ncl` were deleted on 2026-10-06 (RELEASE-CRITERIA T2; `DEBT.adoc` C10 and T4). `package.k9` remains documentary, as above. +* **Nothing pretends to validate.** The always-"valid" `src/k9-validator.js` stub and the self-describing `contracts.ncl` were deleted on 2026-10-06 (RELEASE-CRITERIA T2; `DEBT.adoc` C10 and T4). `package.k9`, a manifest nothing consumed, was deleted the same day (`DEBT.adoc` D4). == Provenance of this audit diff --git a/CHANGELOG.md b/CHANGELOG.md index a5833a1..c6638cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -103,6 +103,8 @@ Nothing has been released. There is no tagged version and no published package; ### Removed +- `package.k9`, a K9 manifest that nothing in the tree consumed and whose `just build` target named a + deleted recipe (DEBT D4). - `src/k9-validator.js`, whose `validateNickel()` returned "valid" unconditionally, and `contracts.ncl`, which type-checked only its own self-description; with them the `just check` recipe and `package.k9`'s `NICKEL validate` line (RELEASE-CRITERIA T2; DEBT C10, T4). diff --git a/DEBT.adoc b/DEBT.adoc index 20e96de..ceba61b 100644 --- a/DEBT.adoc +++ b/DEBT.adoc @@ -42,8 +42,9 @@ chose `0.3.0`, and every one of those fields now says it. Nothing has been relea `0.3.0` is a pre-release number. On 2026-10-05 `progblocks.launcher.a2ml` was replaced by `progblocks.launcher_praxis.deed` (A2ML retired), which carries `:version "0.3.0"`. -Evidence: `grep -rn "1\.0\.0\|0\.1\.0\|0\.3\.0" package.k9 progblocks.launcher_praxis.deed package.json` +Evidence: `grep -rn "1\.0\.0\|0\.1\.0\|0\.3\.0" progblocks.launcher_praxis.deed package.json` (the deed's `:schema-version "1.0.0"` is the deed format's version, not the package's). +`package.k9` and `contracts.ncl` no longer exist (D4, T4). === L2 — The launcher descriptor's licence was changed without upstream coordination *(FLAG-ONLY)* @@ -109,7 +110,7 @@ otherwise re-litigate. The A2ML-parser deferral no longer needs one: A2ML was re estate-wide on 2026-10-05 (owner decision), so no A2ML parser is planned and the regex substitution of template variables is the design, not a stand-in. -=== D4 — `package.k9` documents an interface nothing consumes *(OPEN)* +=== D4 — `package.k9` documented an interface nothing consumed *(CLEARED 2026-10-06)* The manifest declares `MUST require: browser_environment / custom_elements`, points `JUST` targets at `just build` / `just test`, and until 2026-10-06 pointed `NICKEL` at `contracts.ncl`. No code, @@ -117,12 +118,15 @@ script, or workflow reads it — and its `just build` target now names a recipe deleted as unbuildable. Evidence: `grep -rn "package.k9" --include="*.js" --include="*.yml" --include="Justfile" .` -returns nothing outside documentation. `grep -n build package.k9` names a deleted recipe. +returned nothing outside documentation, and `grep -n build package.k9` named a deleted recipe. Clearing it: either wire a K9 validation step into CI, or mark the file explicitly as a declaration-only artefact, or delete it. A manifest that documents a non-existent recipe is worse than no manifest. +Cleared 2026-10-06 by deletion, the smallest of the three. Evidence: `test ! -e package.k9`; +`git grep -n package.k9` finds only history-tense lines. + == Code debt === C1 — Cross-site scripting via unescaped re-injection *(CLEARED 2026-10-05, branch `feat/render-core-variants-vars`)* diff --git a/docs/wiki/developers/Architecture.adoc b/docs/wiki/developers/Architecture.adoc index 01cf894..89b0ad9 100644 --- a/docs/wiki/developers/Architecture.adoc +++ b/docs/wiki/developers/Architecture.adoc @@ -42,10 +42,6 @@ host-page depth. |Demo page with several `` elements, including a `group` pair and an inline `glyph-mode` example. -|`package.k9` -|20 -|Declarative K9 manifest. Nothing in the repository consumes it. - |`progblocks-launcher.sh` |466 |**Generated** by `launch-scaffolder` from `progblocks.launcher_praxis.deed`; diff --git a/package.k9 b/package.k9 deleted file mode 100644 index d2ae576..0000000 --- a/package.k9 +++ /dev/null @@ -1,19 +0,0 @@ -# package.k9 -# Self-Validating Component for ProgBlocks -# Utilises the Must-Just-Nickel triad - -MUST - - require: browser_environment - version: ">= es6" - - require: custom_elements - -JUST - - target: build - command: "just build" - - target: test - command: "just test" - -NICKEL - - expose: - name: "progblocks-engine" - version: "0.3.0"