Conversation
|
Revised in The guide added in #183 already covered much of this well, and the current 160-line page is what is left after three years of erosion. Recovered from the original:
Corrected where it had drifted, rather than copying it forward:
Common issues keeps only entries that still reproduce, and adds the three that cost a newcomer the most time today: bare Verified: |
The documentation refresh moves onboarding to docs/internal/ and adds internal/** to srcExclude, so the page is no longer published. It was also never in the sidebar, and neither README nor CONTRIBUTING links to it, which leaves a new engineer without a discoverable entry point. Add docs/guide/onboarding-new-engineer.md as a published page and link it from the Introduction group so it is reachable from the site. It covers what the reference guides assume rather than repeating them: what the system does, the request path by function name, the ad-tech vocabulary as used in this codebase, where the code lives, a first week, and a symptom-to-page troubleshooting table. The internal maintainer page is left untouched. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The page was written from scratch when the onboarding guide added in #183 already covered much of it. Recover that material instead: the problem statement, what edge position buys, the architecture diagram, the first-party proxy before/after, the key-concepts framing, the local origin stub, and the common-issues table. Correct what drifted since #183 rather than copying it forward: - crates/js/lib is now crates/trusted-server-js/lib - the pinned Rust version is read from .tool-versions through the existing {{RUST_VERSION}} substitution instead of being hardcoded - synthetic ID is now the Edge Cookie ID, and the {{ip}} template config it described no longer exists - the `impl Integration for` example no longer matches the registration builder, so it is replaced with a description of the hooks - the architecture diagram gains the other three adapters and the ad-stack gate - the origin stub uses example.com-style hosts, not a real domain Common issues keeps only entries that still reproduce, and adds the three that cost a newcomer the most time today.
A new engineer has no in-site instructions for running the docs. The VitePress workflow lives in docs/README.md, which srcExclude keeps out of the published site, so it is invisible to anyone browsing the guides. Add a section covering npm ci and npm run dev on port 5173, how a page maps to a Markdown file, and the format/lint/build checks to run before opening a pull request, calling out that the build fails on dead internal links. Note that tool versions come from .tool-versions through the config substitution rather than being typed literally.
The dev server instructions pointed at http://localhost:5173, which redirects instead of serving the home page. The site sets base to /trusted-server for GitHub Pages, so the working URL is http://localhost:5173/trusted-server/. Verified against a running dev server: the bare root returns 302 and the based path returns 200.
The ASCII box drawing is replaced with a Mermaid flowchart, matching the style already used in architecture.md, edge-cookies.md, and first-party-proxy.md. The site already configures withMermaid, so no tooling change is needed. Node labels are single words. Multi-line labels were tried first and clipped: Mermaid sizes the box to the explicit break count but not to its own text wrapping, so the last line of each middle node was cut off at the border. The component detail moved to a table under the diagram, which is easier to scan than cramped box text anyway. Verified in a browser against the dev server rather than the static build, since the mermaid div is empty until client-side hydration: 8 nodes render with SVG, every label legible, and the diagram adapts correctly in both light and dark themes.
Rebased onto 5c043a3, which restores docs/guide/onboarding.md as a published, sidebar-linked page. That page now covers the mental model, request trace, vocabulary, code map, and triage map, so most of this page duplicated it. Its request trace is also more accurate than the one here was: it names dispatch_fallback and the EdgeZero router, where this page had promoted the run_pre_route_filters helper to a top-level step. Keep only what the onboarding guide does not cover: - how to run and edit the VitePress site, including the base-path URL, the pre-pull-request checks, and the version-placeholder and Mermaid conventions - the local origin stub that proves the first-party proxy end to end - a build-traps table for environment failures whose error messages do not name their own cause Retitle to "New Engineer Setup" so the sidebar distinguishes it from Onboarding, and link out to that page rather than restating it.
A new engineer needs a Google account for calendar and shared documents, a GitHub account with write access to the repository, access to the project board to find work, and a Fastly account with an API token to deploy or inspect a service. These are specific to a new hire rather than to working in the codebase, so they belong here and not in the general onboarding guide. The section also notes that none of them block getting started: the Axum adapter runs locally with no edge account. The repository and board URLs are carried over from the onboarding guide added in #183.
ae33fdc to
3e00196
Compare
Point a new engineer at three issues scoped for a first contribution: #1093 (root Markdown escapes the Prettier gate), #1063 (a bare `ts dev proxy` prints an internal error report instead of help), and #1144 (partner token placeholders are not rejected at startup). Each is small, self-contained, and has a neighboring test to copy. The section records the suggested order and the two prerequisites that are not visible from the issues themselves: `ts dev proxy` is macOS-only, and the #1093 fix touches the high-traffic agent guide.
Summary
Draft, stacked on
spec-docs-refresh(#1049), rebased onto5c043a324. Adds one published VitePress page,docs/guide/onboarding-new-engineer.md("New Engineer Setup"), and a sidebar entry beside the restored Onboarding page.It is the practical companion to
/guide/onboarding: day-one access requests, how to run the docs site, a local end-to-end proxy check, and the build traps that cost the most time. It links out to the onboarding guide rather than repeating it.Relationship to #1049
#1049 restores
docs/guide/onboarding.mdas a published, sidebar-linked page covering the mental model, request trace, vocabulary, code map, first development loop, and triage map. That is the right home for all of it, and this page no longer duplicates any of it.This page was originally broader. After the restore landed, it was cut back to only what the onboarding guide does not cover. Its request trace is also more accurate than the one this page previously carried — it names
dispatch_fallbackand the EdgeZero router, where this page had promoted therun_pre_route_filtershelper to a top-level step — so that section was dropped rather than reconciled.What the page covers
Request access — Google account for calendar and shared documents, GitHub account with write access, the project board, and a Fastly account with an API token. These are specific to a new hire rather than to working in the codebase, so they do not belong in the general onboarding guide. The section notes that none of them block getting started, since the Axum adapter runs locally with no edge account.
Reading these docs locally —
cd docs && npm ci && npm run dev, served athttp://localhost:5173/trusted-server/. The base-path suffix is called out because the bare URL redirects rather than serving the home page. Also the pre-pull-request checks, and two authoring conventions: use the.tool-versionsplaceholders rather than literal version numbers, and keep Mermaid node labels short because a box sizes to its explicit line breaks but not to its own text wrapping.Prove the first-party proxy locally — a local origin plus a signed fetch, which exercises signing and proxying end to end.
Build traps — a table of environment failures whose error messages do not name their own cause: bare
cargo testlinking againstfastlysymbols (and barecargo checksucceeding, giving a false green), a staletsbinary rejecting valid configuration, the Rust build requiring Node,tsneeding the repository root, and the Viceroy pin.Test plan
cd docs && npm run format— cleancd docs && npm run lint— cleancd docs && npm run build— succeeds; every internal link resolves, and the build fails on dead linksdivis empty until client-side hydration, so a passing build does not prove a diagram rendershttp://localhost:5173/trusted-server/returns 200, barehttp://localhost:5173/returns 302Docs-only: no Rust, JavaScript, workflow, or configuration changes, so the adapter and test gates are unaffected.
Notes for review
https://github.com/orgs/IABTechLab/projects/3is carried over from the onboarding guide added in Onboarding documenation #183; it could not be verified here because the available token lacks theread:projectscope, and other references in that document had gone stale.internal/./guide/onboardingas extra sections than carry a second sidebar entry, that is a reasonable call and this PR can be closed in favour of a suggestion on Add full-surface documentation refresh spec #1049.🤖 Generated with Claude Code