You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The faces profile deviates from the pattern the other five follow, in two connected ways. Both are small; together they undermine the rule that makes profiles work.
A profile is a lens onto a corpus that lives elsewhere. It names a target by path and copies nothing.
faces instead ships examples/same-cube/ — actual content (README.md, greet) — inside this repo. That corpus will drift from AffineScript's real faces the moment AffineScript changes, at which point the verifier grounds a claim about a stale fixture while reporting success.
That is this tool's own failure mode turned inward: a claim that still passes on both sides while no longer meaning the same thing. If Invariant Path cannot avoid it in its own examples directory, the idea is not yet legible from the repo — which is the motivation for the README rewrite in #53.
2. It is named for a claim, not a target
The six profiles are echidna, faces, hypatia, panll, pmpl, standards-docs. Five are named for the repo they examine. One is named for a concept inside a repo.
"Different faces, same cube" is one claim about AffineScript. There will be others. Naming the profile after the first claim discovered means the second claim has nowhere obvious to live.
Proposed fix
Rename profiles/faces.md → profiles/affinescript.md, matching the other five. Keep the same-cube claim as the first (and currently only) claim documented inside it.
Delete examples/same-cube/; have the profile point at AffineScript's real tree, as pmpl points at palimpsest-license.
Deliberately filed rather than applied: deleting an examples corpus and renaming a profile is a behaviour change, and the verifier may currently depend on the vendored copy's exact shape. Worth ten minutes of checking rather than a confident sweep.
Found while assessing whether the repo's core idea is legible to a future reader or agent. It was not — see #53.
The
facesprofile deviates from the pattern the other five follow, in two connected ways. Both are small; together they undermine the rule that makes profiles work.1. It vendors its target corpus
profiles/pmpl.mdshows the intended shape:A profile is a lens onto a corpus that lives elsewhere. It names a target by path and copies nothing.
facesinstead shipsexamples/same-cube/— actual content (README.md,greet) — inside this repo. That corpus will drift from AffineScript's real faces the moment AffineScript changes, at which point the verifier grounds a claim about a stale fixture while reporting success.That is this tool's own failure mode turned inward: a claim that still passes on both sides while no longer meaning the same thing. If Invariant Path cannot avoid it in its own examples directory, the idea is not yet legible from the repo — which is the motivation for the README rewrite in #53.
2. It is named for a claim, not a target
The six profiles are
echidna,faces,hypatia,panll,pmpl,standards-docs. Five are named for the repo they examine. One is named for a concept inside a repo."Different faces, same cube" is one claim about AffineScript. There will be others. Naming the profile after the first claim discovered means the second claim has nowhere obvious to live.
Proposed fix
profiles/faces.md→profiles/affinescript.md, matching the other five. Keep the same-cube claim as the first (and currently only) claim documented inside it.examples/same-cube/; have the profile point at AffineScript's real tree, aspmplpoints at palimpsest-license.scripts/verify-same-cube.sh— the verifier is the valuable part, and it is exactly the canonical-wrongness machinery for this claim (see the R10 proposal, docs(testing): R10 — canonical wrongness, the method behind the anti-theatre rule standards#577). Adjust it to read from the target path rather than the vendored copy.Why not just do it
Deliberately filed rather than applied: deleting an examples corpus and renaming a profile is a behaviour change, and the verifier may currently depend on the vendored copy's exact shape. Worth ten minutes of checking rather than a confident sweep.
Found while assessing whether the repo's core idea is legible to a future reader or agent. It was not — see #53.