Skip to content

feat(docs): public site#202

Merged
SutuSebastian merged 8 commits into
mainfrom
docs/public-site
Jul 20, 2026
Merged

feat(docs): public site#202
SutuSebastian merged 8 commits into
mainfrom
docs/public-site

Conversation

@SutuSebastian

@SutuSebastian SutuSebastian commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Private Blume app apps/docs at https://stainless-code.com/codemap (homepage, guides, recipes, concepts, reference + curated roadmap)
  • TypeDoc → MDX API reference, CI docs job, FTP deploy (docs label), workspace docs:* scripts, docs-voice / product-tenets skills
  • Concepts: Why Codemap, When to skip, and a source-checked Comparison page (SQL index vs knowledge graph vs quality gate vs fixed-tool explorers)
  • Harden follow-ups: TypeDoc TS pin, changelog validate filter, API surface scrub, deploy action pin, API card deep-links

Test plan

  • bun run docs:dev — homepage install chip, hero CLI, nav
  • bun run docs:api && bun run docs:validate && bun run docs:check && bun run docs:build && bun run docs:audit
  • CI docs job green
  • /guides/getting-started package-install tabs
  • /concepts/comparison — matrix + pick table + name collisions; peer GitHub links only in pick table
  • /reference/roadmap curated (no maintainer plan stubs)
  • Deploy under /codemap after merge with docs label (or release / dispatch)

Add apps/docs (guides, recipes, concepts, reference + curated roadmap),
TypeDoc API pipeline, CI/deploy workflows, and docs-voice agent skills.
@changeset-bot

changeset-bot Bot commented Jul 20, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 6738e9f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@stainless-code/codemap Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@SutuSebastian, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 45 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 2a0d7db3-b99f-4728-8fd8-fee8d2e27bcc

📥 Commits

Reviewing files that changed from the base of the PR and between 557f603 and 6738e9f.

📒 Files selected for processing (2)
  • apps/docs/content/guides/config.mdx
  • apps/docs/scripts/validate.ts
📝 Walkthrough

Walkthrough

The PR adds a Blume-powered public Codemap documentation site with guides, concepts, recipes, API references, homepage components, validation and API-generation tooling, CI/deployment workflows, documentation governance, and related repository configuration.

Changes

Public documentation site

Layer / File(s) Summary
Site foundation and homepage
apps/docs/blume.config.ts, apps/docs/pages/**, apps/docs/components/**
Adds site configuration, navigation, homepage sections, footer, pagination, 404 handling, styling, and static hosting metadata.
Concepts, guides, recipes, and references
apps/docs/content/concepts/**, apps/docs/content/guides/**, apps/docs/content/recipes/**, apps/docs/content/reference/**
Adds structured documentation for Codemap concepts, CLI and agent workflows, recipes, MCP, formats, API usage, environment variables, and roadmap content.
API and validation tooling
typedoc.json, apps/docs/scripts/*, apps/docs/package.json
Adds TypeDoc configuration, generated API-link rewriting, validation diagnostics filtering, and docs-specific package scripts.
CI and deployment
.github/workflows/ci.yml, .github/workflows/deploy-docs.yml
Builds, validates, typechecks, audits, and deploys the documentation site through CI and FTPS deployment workflows.
Governance and repository integration
.agents/**, .cursor/**, README.md, package.json, docs/**, lint-staged.config.js
Adds documentation authoring guidance, updates README/docs ownership, registers workspace scripts, adjusts formatting, and records the docs release configuration.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant GitHubActions
  participant DocsWorkspace
  participant Blume
  participant StaticHost
  GitHubActions->>DocsWorkspace: run docs API, validation, typecheck, build, and audit scripts
  DocsWorkspace->>Blume: generate and validate site output
  GitHubActions->>StaticHost: upload apps/docs/dist via FTPS
Loading

Possibly related PRs

Suggested labels: documentation

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 44.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and clearly captures the main change: adding a public docs site.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/public-site

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Delete + lift content boundary into docs/README; drop shipped Next item;
update lsp-diagnostic-push and Blume audit lesson cross-refs.
Pin typescript@6.0.3 for typedoc@0.28; filter changelog→maintainer-docs
broken links in validate.ts; fix hero --params; consumer-surface prose.
@SutuSebastian SutuSebastian added the docs Deploy docs site on merge to main label Jul 20, 2026
Restore docs:api --clean; SHA-pin FTP deploy action; hide TypeDoc
sources; narrow changelog validate to maintainer docs/ links.
Ship a category-based Comparison concept (SQL index vs knowledge graph vs quality gate vs fixed-tool explorers), wire nav/footer, and point Why / When to skip at it.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (2)
.agents/skills/update-docs/SKILL.md (1)

8-8: 🔒 Security & Privacy | 🔵 Trivial | 💤 Low value

Consider pinning the version in the npx command.

Running npx skills without a version suffix dynamically downloads the latest version, which poses a supply chain or rug-pull risk if the package is compromised. Consider pinning the version (e.g., npx skills@<version>) for safer execution, especially in agent-automated environments.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.agents/skills/update-docs/SKILL.md at line 8, Pin the npx skills dependency
in the documented “Upstream workflow” command by adding an explicit trusted
version to skills, while preserving the existing blume-update-docs skill
argument and workflow.

Source: Linters/SAST tools

apps/docs/scripts/validate.ts (1)

29-32: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

spawnSync has no timeout and swallows spawn errors.

Two small robustness gaps:

  • No timeout is set, so a hung blume validate process blocks the CI job indefinitely instead of failing fast.
  • If the spawn itself fails (e.g. blume not resolvable on PATH), result.error is never inspected/printed — the script exits 1 (safe) but with no diagnostic message explaining why.
🔧 Suggested fix
 const result = spawnSync("blume", ["validate", ...args], {
   encoding: "utf8",
   maxBuffer: 32 * 1024 * 1024,
+  timeout: 120_000,
 });
 
 const stdout = result.stdout ?? "";
 const stderr = result.stderr ?? "";
 if (stderr) process.stderr.write(stderr);
+if (result.error) process.stderr.write(`${result.error}\n`);
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/docs/scripts/validate.ts` around lines 29 - 32, Update the spawnSync
invocation in the validation script to enforce a finite timeout so hung blume
validate processes fail promptly, and inspect result.error after spawning to
print a clear diagnostic when process creation fails (including when blume
cannot be resolved). Preserve the existing result-status handling for
successfully spawned processes.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/docs/content/guides/config.mdx`:
- Around line 35-45: Update the “Common knobs” configuration table in the guide
to document the root and databasePath options defined by
codemapUserConfigSchema, including each option’s role and behavior consistent
with the src/config.ts contract. Preserve the existing entries and table
formatting.

In `@apps/docs/scripts/rewrite-api-links.ts`:
- Around line 16-19: Add "modules.mdx" to the TYPEDOC_SCAFFOLD set so the
scaffold filter excludes the TypeDoc single-entry file configured by
typedoc.json and recognized by the API metadata.

---

Nitpick comments:
In @.agents/skills/update-docs/SKILL.md:
- Line 8: Pin the npx skills dependency in the documented “Upstream workflow”
command by adding an explicit trusted version to skills, while preserving the
existing blume-update-docs skill argument and workflow.

In `@apps/docs/scripts/validate.ts`:
- Around line 29-32: Update the spawnSync invocation in the validation script to
enforce a finite timeout so hung blume validate processes fail promptly, and
inspect result.error after spawning to print a clear diagnostic when process
creation fails (including when blume cannot be resolved). Preserve the existing
result-status handling for successfully spawned processes.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b23eb456-9707-4ad4-ab36-02e7a586841d

📥 Commits

Reviewing files that changed from the base of the PR and between e17d716 and 557f603.

⛔ Files ignored due to path filters (9)
  • apps/docs/public/apple-touch-icon.png is excluded by !**/*.png
  • apps/docs/public/favicon-96x96.png is excluded by !**/*.png
  • apps/docs/public/favicon.ico is excluded by !**/*.ico
  • apps/docs/public/favicon.svg is excluded by !**/*.svg
  • apps/docs/public/icon.svg is excluded by !**/*.svg
  • apps/docs/public/logo.svg is excluded by !**/*.svg
  • apps/docs/public/web-app-manifest-192x192.png is excluded by !**/*.png
  • apps/docs/public/web-app-manifest-512x512.png is excluded by !**/*.png
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (81)
  • .agents/lessons.md
  • .agents/rules/docs-voice-priming.md
  • .agents/skills/docs-governance/LIFECYCLE.md
  • .agents/skills/docs-voice/SKILL.md
  • .agents/skills/harden-pr/LEDGER.md
  • .agents/skills/product-tenets/SKILL.md
  • .agents/skills/update-docs/SKILL.md
  • .changeset/config.json
  • .changeset/docs-site.md
  • .cursor/rules/docs-voice-priming.mdc
  • .cursor/skills/docs-voice
  • .cursor/skills/product-tenets
  • .cursor/skills/update-docs
  • .github/workflows/ci.yml
  • .github/workflows/deploy-docs.yml
  • AGENTS.md
  • README.md
  • apps/docs/.gitignore
  • apps/docs/.oxfmtrc.json
  • apps/docs/blume.config.ts
  • apps/docs/components.ts
  • apps/docs/components/blume/Footer.astro
  • apps/docs/components/blume/Pagination.astro
  • apps/docs/components/curated-popular.ts
  • apps/docs/content/concepts/comparison.mdx
  • apps/docs/content/concepts/index-lifecycle.mdx
  • apps/docs/content/concepts/index.mdx
  • apps/docs/content/concepts/meta.ts
  • apps/docs/content/concepts/schema-overview.mdx
  • apps/docs/content/concepts/when-to-skip.mdx
  • apps/docs/content/concepts/why-codemap.mdx
  • apps/docs/content/guides/agents-mcp.mdx
  • apps/docs/content/guides/apply.mdx
  • apps/docs/content/guides/audit-baselines.mdx
  • apps/docs/content/guides/cli-overview.mdx
  • apps/docs/content/guides/config.mdx
  • apps/docs/content/guides/coverage-churn.mdx
  • apps/docs/content/guides/getting-started.mdx
  • apps/docs/content/guides/github-action.mdx
  • apps/docs/content/guides/index.mdx
  • apps/docs/content/guides/meta.ts
  • apps/docs/content/guides/programmatic.mdx
  • apps/docs/content/recipes/affected-tests.mdx
  • apps/docs/content/recipes/fan-in.mdx
  • apps/docs/content/recipes/find-symbol-definitions.mdx
  • apps/docs/content/recipes/index.mdx
  • apps/docs/content/recipes/meta.ts
  • apps/docs/content/reference/api/index.mdx
  • apps/docs/content/reference/api/meta.ts
  • apps/docs/content/reference/cli.mdx
  • apps/docs/content/reference/env.mdx
  • apps/docs/content/reference/formats.mdx
  • apps/docs/content/reference/index.mdx
  • apps/docs/content/reference/mcp.mdx
  • apps/docs/content/reference/meta.ts
  • apps/docs/content/reference/roadmap.mdx
  • apps/docs/package.json
  • apps/docs/pages/404.astro
  • apps/docs/pages/_home/Batteries.astro
  • apps/docs/pages/_home/FinalCta.astro
  • apps/docs/pages/_home/Hero.astro
  • apps/docs/pages/_home/HowItWorks.astro
  • apps/docs/pages/_home/InstallBox.astro
  • apps/docs/pages/_home/UseCases.astro
  • apps/docs/pages/_home/source-snippets.ts
  • apps/docs/pages/index.astro
  • apps/docs/public/.htaccess
  • apps/docs/public/site.webmanifest
  • apps/docs/scripts/rewrite-api-links.ts
  • apps/docs/scripts/validate.ts
  • apps/docs/theme.css
  • apps/docs/tsconfig.json
  • docs/README.md
  • docs/plans/lsp-diagnostic-push.md
  • docs/roadmap.md
  • lint-staged.config.js
  • package.json
  • src/adapters/types.ts
  • src/api.ts
  • src/config.ts
  • typedoc.json

Comment thread apps/docs/content/guides/config.mdx
Comment thread apps/docs/scripts/rewrite-api-links.ts
@SutuSebastian SutuSebastian changed the title feat(docs): ship Blume public docs site at /codemap feat(docs): public site at /codemap Jul 20, 2026
@SutuSebastian SutuSebastian changed the title feat(docs): public site at /codemap feat(docs): public site Jul 20, 2026
Document root/databasePath knobs; fail fast on spawn errors and 120s timeout for blume validate.
@SutuSebastian

Copy link
Copy Markdown
Contributor Author

CodeRabbit nit triage (no inline threads)

Claim Verdict Action
Pin npx skills version in update-docs/SKILL.md 💭 / skip Upstream install pointer (skills add haydenbleasel/blume), not a CI pin. Pinning without a bump workflow goes stale; leave as published upstream command.
validate.ts timeout + result.error Applied in 6738e9f (120s timeout; print spawn/ETIMEDOUT errors).

Inline: config knobs ✅ resolved; modules.mdx scaffold ❌ left open with evidence.

@SutuSebastian
SutuSebastian merged commit c629c55 into main Jul 20, 2026
13 checks passed
@SutuSebastian
SutuSebastian deleted the docs/public-site branch July 20, 2026 09:53
@github-actions github-actions Bot mentioned this pull request Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Deploy docs site on merge to main

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant