This checklist is the writing machinery for the root README.md.
The current docs are not authoritative. Treat existing Markdown files as hints only. The root README must be built from facts visible in code, package manifests, source exports, tests, schemas, samples, and scripts.
Create a README that is inspiring, accurate, and robust:
- explains PureStack as a TypeScript-native frontend ecosystem for the AI age
- makes the sustained AI generation thesis clear
- describes what this repository contains
- maps the packages without hallucinating features
- shows only syntax and commands that are verified in this repo
- avoids coupling PureStack to independent projects
- Do not use
FEATURES.md, package README files, or old docs as factual authority. - Do not claim a capability unless it is verified in source, tests, schema, or package metadata.
- Do not present future plans as current features.
- Do not position PureStack as a TypeScript backend/server ideology.
- Do not couple PureStack to independent downstream projects.
- Do not imply an open-source/pro split before the product strategy is decided.
- Do not include install or publish commands unless they are true for the public release state.
- Do not use icon names in examples unless they are verified in
packages/ts-svg-icons.
Use these as truth sources, in this order:
package.jsonat the repo rootpackages/*/package.jsonpackages/*/src/index.ts- package source files under
packages/*/src - tests under
packages/**/*.test.ts - schemas under
packages/**/schema - real sample content under
packages/ts-ssg/sample-content - build and generation scripts under
scripts - current root tooling configuration such as
vite.config.ts,tsconfig.json, andbiome.json
Existing docs may be used only to find places to verify in code.
Every meaningful README claim should fit this table before it is written.
| Claim | Evidence | Confidence | README wording |
|---|---|---|---|
PureStack has Yarn workspaces under packages/* |
root package.json workspaces |
high | "This repository contains the PureStack package workspace." |
@purestack/ts-ssg exports buildSite and startDevServer |
packages/ts-ssg/src/index.ts |
high | "ts-ssg provides build and dev-server APIs." |
.mdx and .rmdx are supported content extensions |
contentExtensions.ts and related tests |
pending | pending |
Rules:
Confidencemust behighfor anything in the final README.pendingclaims stay out of the README.- If wording requires two facts, list both evidence sources.
Checklist:
- Read root
package.json. - List workspace package names from
packages/*/package.json. - For each package, capture:
- package name
- private/public status
- module/types/bin fields
- export map
- files included in package
- dependencies that define its role
- scripts that reveal how it is built or tested
- Read each
packages/*/src/index.ts. - Record only exported APIs, types, and registration functions visible from package entry points.
- Mark internal packages or private tools clearly.
Output:
- a verified package map
- a list of public entry points
- a list of packages that should not be marketed as public if still private
For each capability, find direct code/test evidence.
Verify before claiming:
- build API
- dev server API
- CLI bin
- content discovery
.md,.mdx,.rmdxsupport- frontmatter parsing
- Markdown and Regor MDX compilation
- static assets
- script bundling
- template tag transform
- navigation generation
- sitemap/robots/Pagefind/consent/GA4 only if source confirms current support
- i18n only if source confirms current support
- sample content shape
Verify before claiming:
- Regor component syntax in MDX
- component registration path
- built-in component initialization
- app/script embedding through real samples
.mdxas primary extension and.rmdxas explicit Regor MDX alternative
Verify before claiming:
- exported component definition functions
- exported style registration functions
regorComponentspackage metadata- source condition in
@purestack/ts-components - included
src/**/*.tspackage files, excluding tests - semantic tones and theme APIs from
ts-style - component names only from actual exports or package metadata
Verify before claiming:
@purestack/ts-htmlexported builders and node types@purestack/ts-cssexported style helpers- tests that demonstrate serialization, escaping, selectors, or CSS variable behavior
Verify before claiming:
- exported page script builders
- runtime globals
- generated embed files exist, but do not edit them
- any script named in README exists in
src/index.ts
Verify before claiming:
- exported icon providers
getSvgIconbehavior- direct icon exports
- icon names used in README examples exist in generated source
Verify before claiming:
- extension package metadata
- contributed languages and file extensions
- syntax grammars
- activation events
- commands
- source features such as formatting, diagnostics, linked editing, component metadata, and navigation only if implemented in source
Every example in the README must come from a working pattern.
Checklist:
- Prefer examples adapted from
packages/ts-ssg/sample-content. - Use
.mdxas the primary docs/example extension. - Mention
.rmdxas the explicit Regor MDX alternative. - If showing
RegorApp, verify the pattern in sample content or code. - If showing TypeScript component/app code, verify imports exist.
- If showing component tags, verify the component exists in
regorComponentsor package exports. - If showing config, verify fields in
siteConfig.schema.jsonor config types. - Keep examples small enough to be readable.
- Do not invent quick-start commands that have not been verified.
Before a section is accepted, answer these questions.
- Does it match the organization profile hero, replacing
PureStack StudiowithPureStack? - Does it say frontend/product source, not web stack?
- Does it avoid unsupported business model claims?
- Does it distinguish one-shot generation from sustained product evolution?
- Does it say PureStack gives AI a better source world, not perfect magic?
- Does it explain why coherent TypeScript helps generation, inspection, refactoring, and maintenance?
- Does every package in the map exist?
- Is every one-line package description backed by
package.jsonandsrc/index.ts? - Are private or not-yet-public pieces labeled carefully?
- Is it compact?
- Are all claims verified?
- Does it avoid duplicating
FEATURES.md? - Does it avoid naming independent downstream projects?
- Do commands exist in root or package
package.json? - Do commands avoid running generated embed scripts as a reader prerequisite?
- Do TypeScript build and type-check commands use the stable TypeScript 7
tscexecutable, except where a package script explicitly uses another tool?
- Does status say built and production-used without overclaiming public readiness?
- Does it leave room for public release shaping?
- Does it avoid "stable", "1.0-ready", or "drop-in replacement" unless explicitly decided?
Use this outline unless a better code-derived structure appears.
- Centered hero matching the organization profile
- "Why PureStack Exists"
- AI can one-shot in any framework
- PureStack targets sustained AI generation and maintenance
- coherent typed source is the architectural bet
- "What This Repository Contains"
- one paragraph
- compact package table
- "How The Pieces Fit"
- Markdown/MDX for prose/content
- Regor MDX for component-rich content
- TypeScript for components, styles, scripts, and product behavior
- one SSG/build pipeline
- "A Tiny Shape Of PureStack"
- verified
.mdxpage snippet - verified TypeScript app/component snippet if compact enough
- verified
- "Package Map"
- package
- role
- evidence-backed one-liner
- "Current Status"
- built
- production-used
- public release preparation
- "Development"
- verified commands only
- "License"
- verify from root and package manifests
Run this before accepting the README.
- No claim depends only on docs.
- No downstream project coupling.
- No TypeScript-server ideology.
- No invented examples.
- No unverified commands.
- No package feature described from memory.
- No feature inventory dump.
- No competitor dunking.
- No AI hype without architectural explanation.
- The README is skimmable in two minutes.
- The README still feels alive and worth entering.
When writing the README, first build the evidence ledger from source. Then draft the README from the ledger, not from memory.
Good README language should be:
- precise enough for engineers
- confident enough for the vision
- short enough to be read
- concrete enough to be trusted