Skip to content

Docs: Vercel 廃止に合わせて開発文書と RTM を現状に揃える - #321

Open
jasonhnd wants to merge 4 commits into
prefrom
work/issue-vercel-docs-sync
Open

Docs: Vercel 廃止に合わせて開発文書と RTM を現状に揃える#321
jasonhnd wants to merge 4 commits into
prefrom
work/issue-vercel-docs-sync

Conversation

@jasonhnd

@jasonhnd jasonhnd commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Documentation-sync half of the Vercel decommission. Stacked on #320 — until that merges into pre, this PR's diff also shows the two tooling commits. Merge #320 first, then this diff reduces to docs plus the stale-scan guard.

Note: the tracking issues could not be created from this environment (gh is read-only here and the GitHub MCP connection is down). The issue drafts were reviewed and approved before this work started; add Closes #N once the docs issue exists.

Goal

Bring active developer documentation in line with the post-Vercel reality: GitHub Pages is the only deployment target and _site the only approved assembly output.

Why this is a real problem and not cosmetics

Neither docs:audit nor docs:stale failed on this drift. No document links to vercel.json as a file, and STALE_PATTERNS had no Vercel rule. Eleven active documents would have gone on describing a build path that no longer exists, silently, which is precisely the drift class the repository's stale-scan mechanism exists to prevent. So this PR both fixes the text and closes the hole that let it stay invisible.

Corrected active documents

Document What changed
08-operations/deployment-runbook.md Dropped the Vercel row from Deployment Targets; the required runner is now described as shared by pull requests and the Pages deploy; the assembler accepts only _site
05-functional-specs/release-gate.md Canonical gate is local / PR / GitHub Pages; _site is the only valid output directory; the Vercel bunx bun@<version> bullet became a plain runner-startup pin statement; unsafe-output guidance names only _site
04-architecture/ard.md Static assembly and recursive-cleanup boundary name only _site
04-architecture/astro-site-architecture.md Only _site is accepted; the verification wrapper is no longer labelled "Vercel/GitHub Pages"
04-architecture/ai-discovery-architecture.md Route evidence resolves in the final _site tree
05-functional-specs/ai-discovery-surface.md txt_route_audit.ts validates against _site
06-implementation/toolchain.md Canonical runner consumers no longer include Vercel; default output is _site
08-operations/incident-runbook.md Deploy-only failures point at the GitHub Pages workflow logs
07-quality/qa-checklist.md Assembled-output check names only _site
03-requirements/nfr.md NFR-001 drops Vercel from the reproducible-gate surfaces
03-requirements/rtm.md NFR-001 and NFR-014 name the required-verification and Pages deploy pipelines

Two further corrections beyond the eleven:

  • 04-architecture/astro-5-to-7-upgrade-plan.md stated "Vercel runs root bun run vercel:build" and cited Vercel's Node version as evidence for the Astro v6 floor. Both are now false, so the build-path row and the Node-floor row were corrected in place. The rest of the upgrade reference is still valid, so it was not archived.
  • 05-functional-specs/ai-surface-consumability-design.md described static JSON as working on "GitHub Pages / Vercel static hosting". Generalised to "GitHub Pages and any other static host", which is both accurate and more useful than naming a host we no longer use.

Since _site is now the default as well as the only approved output, passages that presented bun run verify --out _site as a separate Pages-parity invocation now state that the bare canonical command already produces the Pages artifact, and that deploy.yml passes the flag explicitly for the same result.

Regression guard

tools/active_doc_stale_scan.ts gains a vercel-deploy-path pattern matching _vercel_public, vercel:build, and vercel.json, so the claim cannot silently return to an active document. Three reviewed allowlist entries cover the historical documents that legitimately name those tokens; docs/99-archive was already allowlisted wholesale.

The pattern deliberately targets those three concrete artifacts rather than the bare word "Vercel". A broad /vercel/i would fire on legitimate prose — including the corrected upgrade-plan sentence in this very PR, and the wiki body entries that discuss Vercel as an x402 / edge-payment company. The tradeoff is that a future sentence like "Vercel builds the site", written without any of the three tokens, would not be caught.

tools/active_doc_stale_scan.test.ts extends both existing cases: the negative fixture now includes a Vercel build claim and expects vercel-deploy-path in the finding set, and the archive fixture includes Vercel history to prove the allowlist still exempts it.

Historical records deliberately left alone

07-quality/code-doc-alignment-audit.md, the existing rows in 07-quality/documentation-drift-audit.md, 01-strategy/next-development-plan.md, and 99-archive/site-development-plan.md keep their Vercel mentions. They are dated evidence of past state, which the repository's active-vs-historical rule permits.

07-quality/documentation-drift-audit.md gains one appended row recording this deployment-boundary change, plus an allowed-historical example for retired Vercel references.

Validation

All run locally on Bun 1.3.14 matching .bun-version.

Command Result
bun run docs:audit Audit passed
bun run docs:stale 72 active docs clean across 17 checks (was 16 — the new pattern is live)
bun test tools/active_doc_stale_scan.test.ts 3 pass, 0 fail
bun run release:docs files_checked=46 release_notes_checked=44 problems=0
bun run verify (all 22 gates) PASS
git diff --check clean (inside verify)

Out of scope, flagged for a separate fix

docs/05-functional-specs/release-gate.md still contains a pre-existing failure-handling line telling the reader to "restore exact Japanese -> English -> Chinese order". That contradicts the line a few paragraphs above it, which correctly states the locale contract is ja/en with no Chinese reading surface. It is leftover drift from the #316 Chinese removal and has nothing to do with Vercel, so it was left untouched rather than smuggled into this scope.

Release-note impact

CHANGELOG.md and a release note are required when this reaches main, handled in the promotion step. No README change: README does not mention Vercel or deployment targets. No discovery-surface regeneration: corpus content and counts are unchanged.

Open in Web Open in Cursor 

jasonhnd and others added 4 commits August 20, 2026 13:35
promote: 日英の公開文書に揃える (v2026.08.20-2)
…output

GitHub Pages is already the live production deployment: finwiki.zksc.io is a
CNAME to jasonhnd.github.io on the Pages A records, and the live response
header is server: GitHub.com. Vercel was a parallel shadow build that served
no production traffic.

assertPinnedBun() read and validated vercel.json as step 0 of the verification
pipeline, so the config deletion and the runner change have to land together
or every gate breaks at startup. The .bun-version and packageManager pin
checks are unchanged.

Collapsing the default --out from _vercel_public to _site also makes pull
request verification and the Pages deploy assemble into the same target;
required-verification.yml runs bare `bun run verify` while deploy.yml passes
--out _site explicitly.

The tests keep _vercel_public only as negative assertions proving the name is
now rejected.

Co-authored-by: Jason@HND <jasonhnd@users.noreply.github.com>
.vercel and _vercel_public can no longer be produced by this repository, so
the shared corpus walk exclusions, the JSON sweep, the opinion audit walk and
.gitignore no longer need to skip them. _site stays excluded because it is
still the assembly target.

provenance_completeness_audit.ts keeps its defensive prefix check but points
it at _site, which is the directory that can now appear in a worktree.

Anyone holding a stale _vercel_public/ or .vercel/ directory should remove it;
a leftover copy would now be walked, and index:counts, wiki:audit and
release:check would fail loudly rather than pass silently.

Co-authored-by: Jason@HND <jasonhnd@users.noreply.github.com>
… boundary

The Vercel shadow build is retired, so eleven active documents no longer
describe a real system. Correct the deployment runbook targets table, the
release-gate spec, ARD, the Astro site architecture, the AI discovery
architecture and surface specs, the toolchain reference, the incident runbook,
the QA checklist, NFR-001, and RTM rows NFR-001 and NFR-014.

_site is now the default as well as the only approved output, so passages that
presented `--out _site` as a separate Pages-parity invocation now say the bare
canonical command already produces the Pages artifact.

Historical records keep their Vercel mentions: the code/doc alignment audit,
the existing drift-audit rows, the 2026-06 development plan, and the archived
site development plan. The drift audit gains a row for this boundary change and
an allowed-historical example.

active_doc_stale_scan.ts gains a vercel-deploy-path pattern so `_vercel_public`,
`vercel:build` and `vercel.json` cannot silently return to an active document,
with reviewed allowlist entries for the three historical docs that legitimately
name them. The archive directory was already allowlisted wholesale.

Co-authored-by: Jason@HND <jasonhnd@users.noreply.github.com>
@vercel

vercel Bot commented Sep 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
finwiki Error Error Sep 1, 2026 6:03am UTC

Request Review

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants