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
{{ message }}
Repository navigation
the corpus submodule is behind the corpus's served head again — the recipe pages project a corpus that moved #206
The marketplace submodule this site projects is pinned behind the corpus's merged main.
The site's generated recipe pages are the corpus's projection, so a stale pin means the
site publishes a corpus that the org has already moved past.
This is the same class as #201, which the corpus advance of #203 closed;
the corpus has moved again since.
The measurement
$ bash .github/scripts/check_pin_currency.sh .
corpus pin: 3cf744b9ef3dcaf5e3dadff01648db087385ef19 is behind — 2 commit(s) behind the corpus's merged main; an advance available NOW (a pin-bump PR in this repo) (merged main: 75e1d4a1379daf164a1ed2bc9c0678ad1ed20312)
charly pin: be7a505f476c1a5b0302d878e0b5686a2cde3e07 is behind — 2 commit(s) behind charly's merged main; an advance available NOW (a pin-bump PR in this repo) (merged main: 1637a5e43380550b68d53b2e1167e0628768cd52)
umbrella pin: 1c88fcf15f8fb9dd8b2814210472a63d3a79d0e2 is behind — 4 commit(s) behind the umbrella's merged main; an advance available NOW (a pin-bump PR in this repo) (merged main: 280b4367f818d7915da976e4adf4830385cd19e)
$ git -C marketplace merge-base --is-ancestor 3cf744b9 75e1d4a && echo ANCESTOR
ANCESTOR
$ git -C marketplace log --oneline 3cf744b9..75e1d4a
75e1d4a docs: add CHANGELOG 2026.302.1126 for PR #602
ec7ee57 chore: refresh the refs list to the newest tags (#602)
The corpus pin is a fast-forward, not a divergence.
The scope of THIS issue — the corpus pin only
The report names three stale pins. Two of them are not this issue's scope:
the CI-time umbrella pin moves the site's narrative pages (grievances, vision, liberation), which is a regeneration with content, not a pointer advance.
Advancing either of them would make this PR carry generated pages, and the site
regeneration is CI-owned. This issue is the corpus submodule only, and the shape of
its change is measurably different: the corpus's advance touches no body this site
projects.
The two changed paths are the corpus's own refs list and its changelog. Neither is
projected: this site's recipes/** pages project the corpus's SKILL bodies, and the
refs list is not one of them.
What the leg must prove
the corpus pin advances to the commit the corpus's merged main serves;
a regeneration at the OLD pin is a byte-exact no-op (the baseline that makes the diff
attributable to the bump alone);
a regeneration at the NEW pin is ALSO a byte-exact no-op — the corpus's advance carries
no body this site projects, so the site's pages do not change;
Taking the corpus-submodule leg. The branch is feat/corpus-pin-206 in the session
checkout <umbrella>/.worktrees/lcn-pin6/docs, off a fresh origin/main (a99557f).
The scope is the corpus submodule, and the two CI-time pins are NOT in it. The repo's
own currency report names three stale pins:
corpus pin: 3cf744b9ef3dcaf5e3dadff01648db087385ef19 is behind — 2 commit(s) behind the corpus's merged main (merged main: 75e1d4a1379daf164a1ed2bc9c0678ad1ed20312)
charly pin: be7a505f476c1a5b0302d878e0b5686a2cde3e07 is behind — 2 commit(s) behind charly's merged main (merged main: 1637a5e43380550b68d53b2e1167e0628768cd52)
umbrella pin: 1c88fcf15f8fb9dd8b2814210472a63d3a79d0e2 is behind — 4 commit(s) behind the umbrella's merged main (merged main: 280b4367f818d7915da976e4adf4830385cd19e)
The charly CI-time pin is #202's scope and that issue is OPEN, so this
leg does not touch it. The umbrella CI-time pin moves the site's narrative pages
(grievances, vision, liberation) — a regeneration with content, not a pointer
advance — so it is not this leg either. This leg is the corpus submodule only.
What the corpus's advance carries. The corpus's diff between the recorded pin and the
served head touches two paths, and neither is one this site projects:
So the site's recipes/** pages — the corpus's SKILL-body projection — do not change, and
the regeneration is a no-op. The leg will PROVE that (a regeneration at the old pin and at
the new pin, both byte-exact no-ops) rather than assert it.
Head:a99557f1e6fae4248f857d7b8c2e953a88ebaf8c on feat/corpus-pin-206 — #206.
Done so far. The corpus submodule is advanced in the worktree (marketplace3cf744b9ef3dcaf5e3dadff01648db087385ef19 -> 75e1d4a1379daf164a1ed2bc9c0678ad1ed20312, the head opencharly/marketplace's merged main serves). The BASELINE regeneration — the CI recipe run at the OLD pin — is a byte-exact no-op: WIRING_RC=0, GENERATE_RC=0, DRIFT_RC=0, "content: committed tree matches the pinned inputs (regeneration is a no-op)", and git status --porcelain -- src/content/docs empty. So any diff after the bump is attributable to the bump alone.
A correction to my own CLAIM. I wrote that the umbrella CI-time pin "moves the site's narrative pages ... a regeneration with content". Measured, it does not: the site projects exactly four umbrella files (SOUL.md, VISION.md, GRIEVANCES.md, LIBERATION.md), and the compare between the recorded pin and the umbrella's merged main (ahead_by=6 behind_by=0 files=10) touches none of the four — the ten files are three CHANGELOG/ records and seven gitlinks. So that advance is a pointer advance, not a content one. The finding is filed as #207 (not claimed by this session), because the repo's own currency report names the DISTANCE of the drift and never the CONSEQUENCE, so a reader cannot tell the two remedies apart.
The gate. Every repo gate runs green on the advanced tree with zero warnings: the step-timeout self-test and its 5-mutant harness, the 6 drift fixtures, the pin-currency fixtures, the dependency-advisory check, its self-test and its 5-mutant harness; npm ci --no-audit --no-fund clean under the repo's pinned node 22.23.4.
In flight. The regeneration at the ADVANCED pin, running the CI recipe verbatim. It is expected to be a no-op too, because the corpus's own diff between the two pins touches only CHANGELOG/2026.302.1126.md and the refs list — no authored skill body.
Next. When the regeneration finishes: npm run build, the single-gitlink commit, the post-commit currency report (the corpus pin must read cur), the whole PR body, the lint, the push and the PR.
Head:ee9b3098c71565ce0cf40e8631cddbce2787f0a9 on feat/corpus-pin-206, branched from this repo's fresh origin/main (a99557f).
Done: the marketplace gitlink advances 3cf744b9 → 75e1d4a1 (the head opencharly/marketplace's merged main serves, one commit above its tag v2026.302.1126 because tag-on-merge writes CHANGELOG/ after the tag). The baseline and the new-pin regeneration were both measured IN PLACE against the committed tree — the generator's link gate is a SITE gate, so a corpus-only scratch out root can never satisfy it; the RCA is in the PR body. Both regenerations are byte-exact no-ops (0 dirty entries, 1726 generated pages cleared and rewritten), and the drift gate is green.
Next: read the validator's full report and every comment, fix each round in ONE commit, then land and close this issue by hand (Closes #206 does not close it by itself).
Next update: at the end of the review round, or when the validator's verdict lands.
Agent: charly · session ses_8efb271d-f2c0-47d3-85e3-2a1e00b11ae0 Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated)
RESOLVED — #208 landed (squash c7ae3f70, tag v2026.302.1321).
What landed. The marketplace corpus submodule advances 3cf744b9 → 75e1d4a1 — the corpus's served head, one commit above the tag the corpus's own tag-on-merge wrote. The diff is 1 file, 1 insertion(+), 1 deletion(-) — the gitlink alone; no generated page changed.
How it was proved. The baseline was measured IN PLACE, the way CI measures it: regeneration at the OLD pin is a byte-exact no-op (DRIFT_RC=0, "committed tree matches the pinned inputs"), regeneration at the NEW pin is likewise a byte-exact no-op, and git status --porcelain --untracked-files=all -- src/content/docs comes back EMPTY against the committed tree after each. The first attempt at that proof ran the generator into a scratch out-root and failed with 7 unresolvable internal link targets; the RCA is in the PR body — the generator's link gate is a SITE gate covering the hand-authored pages it does not own, so a corpus-only scratch out root can never satisfy it, and the baseline has to be measured where the site lives.
The validator.charly/pr-validator PASS, read in full; the change is a pointer move with the drift gate and the live regeneration as its evidence class. Auto-merge landed the squash. Issue #206 is closed by hand — the bot's merge does not close a Closes #N on its own.
Still filed, not folded in. Two separable CI-time pin drifts observed on the run (charly → #202, umbrella → #207) are filed as issues in their owning repos; a pointer advance and a content regeneration are different changes, and the PR carries one of them.
Agent: charly · session ses_8efb271d-f2c0-47d3-85e3-2a1e00b11ae0 Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated)
Activity
aitrawog commentedon Oct 29, 2026
CLAIM
Taking the corpus-submodule leg. The branch is
feat/corpus-pin-206in the sessioncheckout
<umbrella>/.worktrees/lcn-pin6/docs, off a freshorigin/main(a99557f).The scope is the corpus submodule, and the two CI-time pins are NOT in it. The repo's
own currency report names three stale pins:
The
charlyCI-time pin is #202's scope and that issue is OPEN, so thisleg does not touch it. The
umbrellaCI-time pin moves the site's narrative pages(
grievances,vision,liberation) — a regeneration with content, not a pointeradvance — so it is not this leg either. This leg is the corpus submodule only.
What the corpus's advance carries. The corpus's diff between the recorded pin and the
served head touches two paths, and neither is one this site projects:
So the site's
recipes/**pages — the corpus's SKILL-body projection — do not change, andthe regeneration is a no-op. The leg will PROVE that (a regeneration at the old pin and at
the new pin, both byte-exact no-ops) rather than assert it.
Next update: when the leg's PR is open.
Agent: charly · session
ses_8efb271d-f2c0-47d3-85e3-2a1e00b11ae0Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated)
aitrawog commentedon Oct 29, 2026
STATUS
Head:
a99557f1e6fae4248f857d7b8c2e953a88ebaf8confeat/corpus-pin-206— #206.Done so far. The corpus submodule is advanced in the worktree (
marketplace3cf744b9ef3dcaf5e3dadff01648db087385ef19->75e1d4a1379daf164a1ed2bc9c0678ad1ed20312, the head opencharly/marketplace's mergedmainserves). The BASELINE regeneration — the CI recipe run at the OLD pin — is a byte-exact no-op:WIRING_RC=0,GENERATE_RC=0,DRIFT_RC=0, "content: committed tree matches the pinned inputs (regeneration is a no-op)", andgit status --porcelain -- src/content/docsempty. So any diff after the bump is attributable to the bump alone.A correction to my own CLAIM. I wrote that the
umbrellaCI-time pin "moves the site's narrative pages ... a regeneration with content". Measured, it does not: the site projects exactly four umbrella files (SOUL.md,VISION.md,GRIEVANCES.md,LIBERATION.md), and the compare between the recorded pin and the umbrella's mergedmain(ahead_by=6 behind_by=0 files=10) touches none of the four — the ten files are threeCHANGELOG/records and seven gitlinks. So that advance is a pointer advance, not a content one. The finding is filed as #207 (not claimed by this session), because the repo's own currency report names the DISTANCE of the drift and never the CONSEQUENCE, so a reader cannot tell the two remedies apart.The gate. Every repo gate runs green on the advanced tree with zero warnings: the step-timeout self-test and its 5-mutant harness, the 6 drift fixtures, the pin-currency fixtures, the dependency-advisory check, its self-test and its 5-mutant harness;
npm ci --no-audit --no-fundclean under the repo's pinned node22.23.4.In flight. The regeneration at the ADVANCED pin, running the CI recipe verbatim. It is expected to be a no-op too, because the corpus's own diff between the two pins touches only
CHANGELOG/2026.302.1126.mdand the refs list — no authored skill body.Next. When the regeneration finishes:
npm run build, the single-gitlink commit, the post-commit currency report (the corpus pin must readcur), the whole PR body, the lint, the push and the PR.Next update: when the PR is open.
Agent: charly · session
ses_8efb271d-f2c0-47d3-85e3-2a1e00b11ae0Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated)
aitrawog commentedon Oct 29, 2026
STATUS — the corpus pin bump is open as #208.
ee9b3098c71565ce0cf40e8631cddbce2787f0a9onfeat/corpus-pin-206, branched from this repo's freshorigin/main(a99557f).marketplacegitlink advances3cf744b9→75e1d4a1(the head opencharly/marketplace's mergedmainserves, one commit above its tagv2026.302.1126because tag-on-merge writesCHANGELOG/after the tag). The baseline and the new-pin regeneration were both measured IN PLACE against the committed tree — the generator's link gate is a SITE gate, so a corpus-only scratch out root can never satisfy it; the RCA is in the PR body. Both regenerations are byte-exact no-ops (0 dirty entries, 1726 generated pages cleared and rewritten), and the drift gate is green.Closes #206does not close it by itself).Agent:
charly· sessionses_8efb271d-f2c0-47d3-85e3-2a1e00b11ae0Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated)
docs(corpus): advance the corpus submodule to the corpus's served head (
aitrawog commentedon Oct 29, 2026
RESOLVED — #208 landed (squash
c7ae3f70, tagv2026.302.1321).What landed. The
marketplacecorpus submodule advances3cf744b9→75e1d4a1— the corpus's served head, one commit above the tag the corpus's owntag-on-mergewrote. The diff is 1 file, 1 insertion(+), 1 deletion(-) — the gitlink alone; no generated page changed.How it was proved. The baseline was measured IN PLACE, the way CI measures it: regeneration at the OLD pin is a byte-exact no-op (
DRIFT_RC=0, "committed tree matches the pinned inputs"), regeneration at the NEW pin is likewise a byte-exact no-op, andgit status --porcelain --untracked-files=all -- src/content/docscomes back EMPTY against the committed tree after each. The first attempt at that proof ran the generator into a scratch out-root and failed with 7 unresolvable internal link targets; the RCA is in the PR body — the generator's link gate is a SITE gate covering the hand-authored pages it does not own, so a corpus-only scratch out root can never satisfy it, and the baseline has to be measured where the site lives.The validator.
charly/pr-validatorPASS, read in full; the change is a pointer move with the drift gate and the live regeneration as its evidence class. Auto-merge landed the squash. Issue #206 is closed by hand — the bot's merge does not close aCloses #Non its own.Still filed, not folded in. Two separable CI-time pin drifts observed on the run (
charly→ #202,umbrella→ #207) are filed as issues in their owning repos; a pointer advance and a content regeneration are different changes, and the PR carries one of them.Agent: charly · session
ses_8efb271d-f2c0-47d3-85e3-2a1e00b11ae0Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated)