Skip to content
Merged
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
66 changes: 56 additions & 10 deletions 1-formats/deed/mappings/launcher-standard-to-praxis-deed.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -361,16 +361,62 @@ descriptors under `metadatastician/` and `_ESOTERIC_GROUP _SET/`. These are
per-application *instances* of the metadata block, a different family from this
standard, and they need their own spec before anything touches them.

⚠ This was first recorded as **10 files**. That is an undercount by more than
5×. Measured 2026-09-22 (`rg --files -g '*.launcher.a2ml'`, excluding
`.claude/worktrees/` and `developer/worktrees/`): **23 distinct descriptors
across 52 on-disk paths** — the path count exceeds the descriptor count because
several repos are cloned more than once — and **39 of those paths cite the
deleted `launcher-standard.a2ml`**. Two of the 23 (`_DATABASE`,
`_ESOTERIC_GROUP`) are set-level rather than per-application, which is why an
app-name census returns 21. The figure decays as clones are added, so it is
dated rather than stated as standing fact; `hyperpolymath/standards#960` carries
the decision on what happens to these descriptors.
⚠ This was first recorded as **10 files**, which was an undercount.

⚠ **CORRECTED 2026-09-22 — the correction itself was wrong.** This paragraph
previously read "an undercount by more than 5×… **23 distinct descriptors across
52 on-disk paths**… **39 of those paths cite the deleted
`launcher-standard.a2ml`**", and explained the gap against `standards#960`'s own
figure of 21 by asserting that two set-level directories (`_DATABASE`,
`_ESOTERIC_GROUP`) inflate the descriptor census. **All three numbers were
wrong, the multiplier was wrong, and the explanation was a rationalisation of a
control that was correctly firing.** The sweep was run from `developer/` without
a scope restriction, so it counted two populations that are not live repositories:

* **9 paths** under `archive/` quarantine snapshots
(`_QUARANTINE-2026-09-02`, `_QUARANTINE-2026-09-03-halted-rebase`,
`2026-09-08-drain/orphaned-worktrees`);
* **7 paths** under `tools/opt/cargo/git/checkouts/` (`burble` ×5,
`gossamer` ×2) — vendored cargo git checkouts, not clones.

* a further **5 paths** under nested `.claude/worktrees/` — linked worktrees
inside the repos themselves, which duplicate every file they contain.

`standards#960`'s figure of **21 was right**; this document's 23 was wrong, and
so was the set-level explanation offered for the difference. 10 → 21 is roughly
**2×**, not "more than 5×".

⚠ The worktree exclusion is worth stating precisely, because getting it wrong
is silent: a ripgrep `-g '!.claude/worktrees/**'` glob **only matches at the
search root** and excludes nothing when the worktrees are nested inside repos.
The exclude must be `-g '!**/.claude/worktrees/**'`, and the sweep needs a
positive control on its own filter.

Re-measured 2026-09-22, scoped to `hyper-repos` and `meta-repos` only, with
nested worktrees verified absent from the result:

[cols="3,1"]
|===
| metric | value

| `*.launcher.a2ml` paths on disk | 31
| **distinct descriptor basenames** | **21**
| paths citing the deleted `launcher-standard.a2ml` | 26
| distinct descriptors citing it | 17
| **distinct upstream repositories affected** | **18**
|===

All **66** citing lines are `#` comments, in six distinct shapes — so the
citation text is fixable independently of the file extension.

The path counts decay as clones and worktrees are added, so they are dated
rather than stated as standing fact. **The distinct counts do not**, and that
is the invariant worth trusting: when the worktree exclusion was corrected the
path figures moved (36→31, 29→26, 71→66) while distinct descriptors stayed 21,
distinct citing descriptors stayed 17 and distinct upstream repositories stayed
18 — which is exactly what removing duplicates should do.
`hyperpolymath/standards#960` carries the decision on what happens to these
descriptors.

== 8. What this spec does not claim

Expand Down
Loading