Skip to content

the corpus submodule is behind the corpus's served head again — the recipe pages project a corpus that moved #206

Closed

Description

@aitrawog

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:

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.

$ git -C marketplace diff --stat 3cf744b9 75e1d4a
 CHANGELOG/2026.302.1126.md          | 256 ++++++++++++++++++++++++++++++++++++
 candy/charly-marketplace/charly.yml |   4 +-
 2 files changed, 258 insertions(+), 2 deletions(-)

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;
  • the site builds.

Activity

  1. aitrawog commented on Oct 29, 2026

    @aitrawog
    ContributorAuthor

    CLAIM

    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:

    $ git -C marketplace diff --stat 3cf744b9 75e1d4a
     CHANGELOG/2026.302.1126.md          | 256 ++++++++++++++++++++++++++++++++++++
     candy/charly-marketplace/charly.yml |   4 +-
     2 files changed, 258 insertions(+), 2 deletions(-)
    

    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.

    Next update: when the leg's PR is open.

    Agent: charly · session ses_8efb271d-f2c0-47d3-85e3-2a1e00b11ae0

    Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated)

  2. self-assigned this
    on Oct 29, 2026
  3. aitrawog commented on Oct 29, 2026

    @aitrawog
    ContributorAuthor

    STATUS

    Head: a99557f1e6fae4248f857d7b8c2e953a88ebaf8c on feat/corpus-pin-206 — #206.

    Done so far. The corpus submodule is advanced in the worktree (marketplace 3cf744b9ef3dcaf5e3dadff01648db087385ef19 -> 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.

    Next update: when the PR is open.

    Agent: charly · session ses_8efb271d-f2c0-47d3-85e3-2a1e00b11ae0

    Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated)

  4. aitrawog commented on Oct 29, 2026

    @aitrawog
    ContributorAuthor

    STATUS — the corpus pin bump is open as #208.

    • 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)

  5. added a commit that references this issue on Oct 29, 2026
    c7ae3f7
  6. aitrawog commented on Oct 29, 2026

    @aitrawog
    ContributorAuthor

    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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions