Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .machine_readable/contractiles/dust/dust.ncl
Original file line number Diff line number Diff line change
Expand Up @@ -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 = [""],
},
],
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/contractiles/must/must.ncl
Original file line number Diff line number Diff line change
Expand Up @@ -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 = [
],
},
Expand Down
5 changes: 2 additions & 3 deletions .machine_readable/descriptiles/progblocks_chora.deed
Original file line number Diff line number Diff line change
Expand Up @@ -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.")
Expand Down Expand Up @@ -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")
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 1 addition & 3 deletions AUDIT.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down
10 changes: 7 additions & 3 deletions DEBT.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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)*

Expand Down Expand Up @@ -109,20 +110,23 @@ 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,
script, or workflow reads it — and its `just build` target now names a recipe that was
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`)*
Expand Down
4 changes: 0 additions & 4 deletions docs/wiki/developers/Architecture.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,6 @@ host-page depth.
|Demo page with several `<prog-block>` 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`;
Expand Down
19 changes: 0 additions & 19 deletions package.k9

This file was deleted.

Loading