Skip to content

Commit ef743d7

Browse files
committed
site: the llms mirrors are copied at deploy, not maintained twice
www/llms.txt and www/llms-full.txt were a second editable copy of files that live in the metaobjects repo. They drift in CONTENT, not just in version numbers, and an edit landed on whichever copy the editor happened to open. The deploy now copies them from the same clone the injector already makes, pinned to the same release tag, and they are gitignored here so there is one copy to edit. The copy runs BEFORE the injector guard, deliberately. It does not depend on the injector, and now that the mirrors are untracked, skipping the copy means www/llms.txt does not exist at all — a 404 on a documented URL, which is worse than a stale file. A missing source warns instead of failing, for the same reason the injector guard does: one absent text file must not take down the whole site. HELD, not pushed. v0.24.5's docs/llms/ still says 0.24.4 — the docs refresh has always been a post-tag commit — so deploying this now would REGRESS the live mirrors by a release. finish-release.mjs in the metaobjects repo now refuses to tag a tree whose mirrors do not state the release, so the next tag is fresh by construction and this can be pushed right after it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NynrRND6ZUwGvq3ZUTCfxG
1 parent db5c911 commit ef743d7

4 files changed

Lines changed: 25 additions & 459 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,26 @@ jobs:
6868
TAG=$(git tag -l 'v0.*' | grep -E '^v0\.[0-9]+\.[0-9]+$' | sort -V | tail -1)
6969
test -n "$TAG" || { echo "no v0.x release tag found"; exit 1; }
7070
git checkout --quiet "$TAG"
71+
# The agent-facing mirrors, from the SAME clone — do not clone twice. They are
72+
# maintained in the metaobjects repo and merely SERVED from here; keeping a second
73+
# editable copy in this repo is how the two drifted, because an edit landed on
74+
# whichever copy the editor happened to open and the other one won at deploy. They
75+
# are gitignored here for that reason.
76+
#
77+
# This runs BEFORE the injector guard below, deliberately. The copy does not depend
78+
# on the injector, and because the mirrors are no longer tracked in this repo, a
79+
# skipped copy means www/llms.txt does not exist at all — a 404 on a documented URL,
80+
# which is worse than a stale file. A missing SOURCE warns rather than failing, for
81+
# the same reason the injector guard does: one absent text file must not take down
82+
# the whole site.
83+
if [ -f docs/llms/llms.txt ] && [ -f docs/llms/llms-full.txt ]; then
84+
cp docs/llms/llms.txt "$GITHUB_WORKSPACE/www/llms.txt"
85+
cp docs/llms/llms-full.txt "$GITHUB_WORKSPACE/www/llms-full.txt"
86+
echo "copied llms mirrors from metaobjects $TAG"
87+
else
88+
echo "::warning::metaobjects $TAG has no docs/llms mirrors — /llms.txt will 404."
89+
fi
90+
7191
# A release older than the injection program has neither the injector nor the
7292
# payload. Skip rather than fail: the pages still carry their placeholders, and a
7393
# hard failure here would take down the whole deploy — including unrelated prose

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
11
# Generated at deploy time by deploy.yml (meta docs from wizardsofodd)
22
www/reference/
3+
4+
# Copied from the metaobjects repo at deploy (docs/llms/*), pinned to the release tag.
5+
# Tracking them here would mean two editable copies of one file.
6+
www/llms.txt
7+
www/llms-full.txt

0 commit comments

Comments
 (0)