Repository navigation
Make the agent guides match reality: Vercel deployment, and remove the Jekyll migration scripts - #1057
Closed
Iamfle4ka wants to merge 3 commits into
Closed
Make the agent guides match reality: Vercel deployment, and remove the Jekyll migration scripts#1057Iamfle4ka wants to merge 3 commits into
Iamfle4ka wants to merge 3 commits into
Conversation
AGENTS.md described production as GitHub Actions building and running `aws s3 sync` to `help.keboola.com`. The live domain is served by Vercel (`server: Vercel`), and PRs get Vercel preview deployments. The S3 sync in `.github/workflows/main.yml` is still wired up and still succeeds on every push to `main`, so this documents both rather than claiming the workflow is gone — but it records that S3 is not what serves the live domain, so nobody reasons about production routing from it. Whether the sync is still needed is a separate question for whoever owns the infrastructure. Also notes the two Vercel defaults that actually constrain us, since `vercel.json` only sets `/pagefind/*` cache headers: a missing trailing slash is normalized, and `404.html` from the build root answers unmatched paths. Adds one local-verification note while nearby: `astro preview` enforces `trailingSlash: 'always'` and answers a slash-less URL with its own Not Found page rather than the site's 404, which reads as a broken 404 locally. Open `/404.html` directly instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…reality scripts/migrate.mjs is not dead weight, it is a live hazard. It has no dry-run and no confirmation — main() runs on invocation — and its pruneStalePages() walks src/content/docs and rm -rf's every page whose Jekyll source is missing from the repo root. That source was deleted wholesale in dff14ec, and SKIP_DIRS excludes src from the source walk, so nothing maps back: simulated read-only, one `node scripts/migrate.mjs` deletes 307 of 307 pages, zero survivors. It sat in an agent-readable scripts/ directory with AGENTS.md advertising it by name; "no longer used" in prose is not a guard. switchover.mjs goes with it — it calls migrate.mjs, its own job (removing the Jekyll tree) is done, and its output already said migrate.mjs was obsolete and should be removed in a follow-up. Nothing else references either script: no npm script, no workflow. Git history keeps both. AGENTS.md: the deployment section this branch already corrected stays as it is — it carries two facts a shorter rewrite dropped, both load-bearing for the 404 work: `astro preview` answers a slash-less URL with its own Not Found page (so check /404.html directly), and Vercel returns 404.html from the build root, so that file must not move. Added the check-redirects.mjs entry, and the tsv it checks now that both are committed rather than sitting untracked beside a guide that described them. check-redirects.mjs is committed as a local tool, not a gate: nothing in .github or package.json calls it, and it exits 1 today because 119 dev URLs have no home in dist until the migration batches land. Its --gen mode additionally needs PLACEMENT-MAP.md, which is not in the repo. CLAUDE.md: adds "How to work with me" — skills are invoked when they match the task, not before every answer, and the fact-checker/guide-tester delegation now exists as a real section, since .claude/settings.json's PostToolUse hook has been citing "CLAUDE.md Delegation" at a section that did not exist. Drops the three rules it restated from the @-imported AGENTS.md, which is where they now live alone. .gitignore: reports/, the local briefing/plan/map notes, _graph/, .obsidian/, shoot.mjs and screenshots.manifest.json — all local artifacts sitting untracked and one `git add -A` away from being committed. `.claude` loses its trailing slash: it is a symlink, and `.claude/` only matches a real directory. Verified: build clean (306 pages), and check-redirects.mjs runs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This was referenced Aug 5, 2026
Collaborator
Author
|
Superseded by #1086, which consolidates the four PRs that were all editing What survived into #1086 — the whole guide part: the Vercel-is-production section in this PR's wording (including that What did NOT survive — still open work, recorded here so it isn't lost:
Closing as a duplicate; the branch stays on the remote, so both pieces above are recoverable from it. |
jordanrburger
pushed a commit
that referenced
this pull request
Aug 5, 2026
Consolidates four overlapping PRs that all edited the same three files: #1000 (docs house style + revamp process), #1065 (dev→help migration rules), #1057 and #1076 (Vercel-is-production, .claude symlink fix). Two conflicts are resolved by hand rather than by merge order: the Screenshots bullet, which #1000 and #1057 rewrote in different directions, and the Claude-specific notes list, where #1057 dropped three bullets #1000 kept. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
AGENTS.mdsaid production deploys via GitHub Actions building and runningaws s3 synctohelp.keboola.com. The live domain is served by Vercel, and every PR gets a Vercel preview deployment.Contributor-facing docs are the thing agents and new contributors reason from, so this matters beyond cosmetics: anyone working out 404 handling, redirects, trailing slashes or cache headers from that section would reach the wrong conclusion.
What this does and doesn't claim
The S3 sync in
.github/workflows/main.ymlis still wired up and still succeeds on every push tomain— most recently today. So this documents both rather than pretending the workflow is gone: it records that S3 runs but is not what serves the live domain. Whether the sync is still needed (backup, another domain, leftover) is a separate question for whoever owns the infrastructure, and nothing here assumes an answer.It also records the two Vercel defaults that actually constrain the build, since
vercel.jsononly sets/pagefind/*cache headers: a missing trailing slash is normalized, and404.htmlfrom the build root answers unmatched paths — so the 404 must stay at the build root.One local-verification note
Added while nearby, because it costs a real debugging detour:
astro previewenforcestrailingSlash: 'always'and answers a slash-less URL with its own "Not Found" page instead of the site's 404. Locally that reads as a broken 404 page. Open/404.htmldirectly; production normalizes the slash and behaves correctly.Verification
Documentation only — no build, config or content changes. Claims checked against the live site (
server: Vercel;/compentnsand/compentns/both 404,/componentsand/components/both 200), against this repo'svercel.json, and against themain.ymlrun history (still succeeding on pushes tomain).🤖 Generated with Claude Code
Also in this PR: two scripts removed, and the guides made to match
The branch grew past its original scope because everything here is the same class of problem — a contributor guide describing a repo that has moved on.
scripts/migrate.mjsandscripts/switchover.mjsare gonemigrate.mjswas not dead weight but a live hazard. It has no dry-run and no confirmation —main()runs on invocation — andpruneStalePages()walkssrc/content/docsandrm -rfs every page whose Jekyll source is missing from the repo root. That source was deleted wholesale indff14ec1, andSKIP_DIRSexcludessrcfrom the source walk, so nothing maps back.Simulated read-only (nothing was run): one
node scripts/migrate.mjsdeletes 307 of 307 pages, zero survivors. It sat in an agent-readablescripts/directory withAGENTS.mdnaming it — and "legacy … no longer used" in prose is not a guard.switchover.mjsgoes with it: it callsmigrate.mjs, its own job (removing the Jekyll tree) is finished, and its own output already saidmigrate.mjswas obsolete and should be dropped in a follow-up. Nothing else references either script — no npm script, no workflow. Git history keeps both.check-redirects.mjs+_data/redirects/dev-to-help.tsvcommittedBoth were sitting untracked next to a guide that described them. Committed as a local tool, not a gate: nothing in
.githuborpackage.jsoncalls it, and it currently exits 1 because 119 dev URLs have no home indistuntil the migration batches land. Its--genmode additionally needsPLACEMENT-MAP.md, which is not in the repo.CLAUDE.md.claude/settings.json's PostToolUse hook has been citing "CLAUDE.md Delegation" at a section that did not exist, so the model was being handed an authoritative pointer into nothing.@-importedAGENTS.md; they now live in one place..gitignorereports/, the local briefing/plan/map notes,_graph/,.obsidian/,shoot.mjsandscreenshots.manifest.json— all local artifacts that were untracked and onegit add -Aaway from being committed..claudealso loses its trailing slash: it is a symlink, and.claude/only matches a real directory.Verification for this part
npx astro buildclean (306 pages) after the deletions, andcheck-redirects.mjsruns.