Review README.md and CONTRIBUTING.md for all relevant repository information.
- Use
npm installto install dependencies. - Use
npm run devto start the local development server (runsprebuildautomatically). - Use
npm run buildto produce a production build (also runsprebuildautomatically). - Do not edit files in
build/; it is compiled output. scripts/prebuild.jsandscripts/assemble-content.mjsmust run before the dev server or build — they are wired into thepredev/prebuild/prestarthooks, so callingnpm run devornpm run buildis sufficient. The assembler fetches harper-pro'sdocs/at its latest published release or a laterdocs/<release>-<n>tag of it (mainuntil a release containsdocs/), and harper's at the commit harper-pro'scoresubmodule points to there; setHARPER_DOCS_PATH/HARPER_PRO_DOCS_PATHto build against local checkouts (npm run devthen reloads on edits there).
- TypeScript (config files and scripts), MDX/Markdown (content).
- Prettier is configured via
@harperfast/code-guidelines/prettier(seepackage.json). - Required before every commit/PR: run
npm run format:write, then confirmnpm run format:checkis clean. This is a hard gate, not advisory — CI fails any unformatted PR (see CI). - Formatting applies to every file in the repo, not just content. Prettier runs against the whole tree (
prettier .) —.ts,.md,.mdx,.json, and files underplans/,scripts/, etc. Do not assume a directory is exempt because it is not user-facing docs. npm run lintruns oxlint over JavaScript and TypeScript with warnings treated as errors.
- This repo holds
learn/,fabric/, the archived v4 reference (reference_versioned_docs/version-v4/), and release notes up to 5.3. Sidebar configs:sidebarsLearn.ts,sidebarsReference.ts,sidebarsReleaseNotes.ts,sidebarsFabric.ts. - The v5 reference and the open minor's release notes live in
docs/of HarperFast/harper and HarperFast/harper-pro.scripts/assemble-content.mjscopies them intoreference/andrelease-notes/<codename>/<minor>.generated.mdbefore every build; never edit or commit those generated paths here. Writing rules for that content, including version badges, are in harper'sdocs/AGENTS.md, and they apply tolearn/too. - Do not modify
reference_versioned_docs/for current (v5) work. - The
<VersionBadge>and<EngineBadge>components are globally registered — no import needed in.md/.mdxfiles. - See the complete repository organization in
CONTRIBUTING.md
npm run test:workflowschecks companion workflow scenarios.npm run buildis the best end-to-end check — it will fail on broken links, missing imports, or MDX errors.npm run typecheckchecks TypeScript config files only.- Known issue:
npm run serve(post-build preview) 404s on paths like/docs/4.Xlocally due to an upstreamserve-handlerbug. This is not a real breakage — see CONTRIBUTING.md for details. - Before shipping a command a page documents, run it as harper's
docs/AGENTS.mddescribes.
- CI runs the production build, TypeScript Check, Lint Check, Format Check and Workflow Tests on pull requests.
- If CI fails on formatting, run
npm run format:writelocally and commit the result.
- Issues are filed via the issue forms (blank issues are disabled). Each form sets an issue type: Bug (documented content is wrong/broken, or a site defect), Feature (new or expanded docs/site capability), or Task (smaller edits/cleanup, usually applied during triage).
- Area labels:
content(documentation text/examples) vsplatform(the docs site itself — build, search, navigation, styling). These are the only area labels; there are no per-subsystem labels. - Kind is captured by the issue type, not labels — do not reintroduce
bug/enhancementlabels. - Milestones:
v5.xrelease milestones, named to match theharper/harper-prorepos. Tag an issue with the milestone of the release whose docs it must ship with, so docs work is tracked per release. Do not delete the empty release milestones — they are the canonical per-release buckets. - See
CONTRIBUTING.md(Reporting Issues) for the contributor-facing version.