Skip to content

Build docs site and move the CLI into a Turborepo workspace#22

Merged
dubscode merged 3 commits into
mainfrom
feat/docs-website
Mar 8, 2026
Merged

Build docs site and move the CLI into a Turborepo workspace#22
dubscode merged 3 commits into
mainfrom
feat/docs-website

Conversation

@dubscode
Copy link
Copy Markdown
Contributor

@dubscode dubscode commented Mar 8, 2026

Summary

  • move the CLI into packages/cli and wire the repo as a pnpm/turbo monorepo
  • add a Fumadocs-based docs app with landing page, command reference, guides, concepts, and contributor docs
  • apply the custom docs theme and polish docs UX, including sidebar deduplication and stale-Next recovery guardrails
  • add supporting agent/playwright skill docs and repo config updates needed for the new workflow

Changes

  • created apps/docs with Fumadocs, MDX content collections, search, OG image routes, and LLM export routes
  • moved the existing CLI source, tests, and build config under packages/cli
  • updated workspace tooling, turbo config, CI, and release wiring for the monorepo layout
  • added docs tests for sidebar metadata and clean restart scripts
  • documented the docs dev workflow and local stale-build recovery steps

Behavior Impact

  • user-visible changes: DubStack now has a full docs site with a themed home page and structured command, guide, concept, and contributing docs
  • error message/output changes: none intended for the CLI
  • stack state or git safety considerations: no command semantics were intentionally changed; most CLI work here is packaging and layout relocation

Testing

  • pnpm test
  • pnpm typecheck
  • pnpm checks
  • Added or updated tests for changed behavior

Coding Agent Checklist

  • Agent was given AGENTS.md and relevant .agents/* docs
  • No git worktrees were used
  • Changes are scoped and source-first (src/)

Docs

  • README/QUICKSTART updated where needed
  • .agents docs updated where needed

Risks / Follow-Ups

  • Risk level: medium, because this changes repo structure, CI and release paths, and adds a new docs app in one branch
  • Follow-up tasks: decide whether to keep the local homebrew/dubstack.rb file in sync with the external tap and whether to add a small CLI release helper script

dubscode added 2 commits March 7, 2026 20:53
Expand the docs site content and navigation, add the custom shadcn/Fumadocs theme used across the landing and docs pages, and include the sidebar deduplication plus local stale-build recovery guardrails.
Copilot AI review requested due to automatic review settings March 8, 2026 06:43
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR converts the repo into a pnpm + Turborepo monorepo, moves the DubStack CLI into packages/cli, and adds a new Fumadocs-based Next.js docs site under apps/docs.

Changes:

  • Added Turborepo + pnpm workspace configuration and updated CI/release workflows for the monorepo layout
  • Moved CLI packaging/config to packages/cli and introduced a docs app (apps/docs) with content, routes, and tests
  • Added agent skill docs and Claude configuration updates supporting the new workflow

Reviewed changes

Copilot reviewed 87 out of 206 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
turbo.json Adds Turborepo task graph for build/test/typecheck/dev across workspaces
tsconfig.json Converts root TS config into a base config for workspace extension
skills-lock.json Adds lock entry for a new playwright-cli skill source
pnpm-workspace.yaml Defines apps/* and packages/* as workspace packages
packages/cli/tsconfig.json Adds CLI-local TS config extending root base config
packages/cli/package.json Adds CLI package manifest/scripts for workspace publishing/testing
package.json Converts root into a private workspace package with turbo-driven scripts
biome.json Enables CSS Modules + Tailwind directive parsing
docs/plans/2026-02-21-merge-workflow-guardrails.md Removes an old planning document from docs/plans/
docs/plans/2026-02-21-dub-ux-command-parity-implementation.md Removes an old planning document from docs/plans/
docs/plans/2026-02-21-dub-ux-command-parity-design.md Removes an old planning document from docs/plans/
docs/plans/2026-02-21-dub-sync-parity-implementation.md Removes an old planning document from docs/plans/
docs/plans/2026-02-21-dub-sync-parity-design.md Removes an old planning document from docs/plans/
docs/plans/2026-02-21-dogfood-cli-ux-improvements.md Removes an old planning document from docs/plans/
apps/docs/tsconfig.json Adds TS config for the docs app
apps/docs/test/package-scripts.test.mjs Adds test ensuring docs package has stale-build recovery scripts
apps/docs/test/meta.test.mjs Adds test ensuring sidebar meta has no separator duplicates
apps/docs/src/mdx-components.tsx Adds MDX component wiring for Fumadocs UI
apps/docs/src/lib/source.ts Adds Fumadocs source loader and helpers (OG/LLM export)
apps/docs/src/lib/layout.shared.tsx Adds shared layout config (nav/title/links)
apps/docs/src/lib/cn.ts Adds Tailwind Merge helper for className composition
apps/docs/src/components/ai/page-actions.tsx Adds “Copy Markdown” + “Open in …” actions for docs pages
apps/docs/src/app/og/docs/[...slug]/route.tsx Adds OG image route for docs pages
apps/docs/src/app/llms.txt/route.ts Adds llms.txt index route
apps/docs/src/app/llms.mdx/docs/[[...slug]]/route.ts Adds per-page LLM-friendly MDX export route
apps/docs/src/app/llms-full.txt/route.ts Adds full-site LLM-friendly plaintext export route
apps/docs/src/app/layout.tsx Adds root Next layout + metadata + fonts
apps/docs/src/app/global.css Adds Tailwind + theme variables + base layer styling
apps/docs/src/app/docs/layout.tsx Adds docs layout using Fumadocs DocsLayout
apps/docs/src/app/docs/[[...slug]]/page.tsx Adds docs page renderer + metadata + actions
apps/docs/src/app/api/search/route.ts Adds server search route backed by Fumadocs source
apps/docs/src/app/(home)/page.tsx Adds landing page for docs site
apps/docs/src/app/(home)/layout.tsx Adds home layout wrapper using Fumadocs HomeLayout
apps/docs/source.config.ts Adds Fumadocs MDX collection config + schemas
apps/docs/postcss.config.mjs Adds PostCSS config for Tailwind v4 plugin
apps/docs/package.json Adds docs app manifest, scripts, and dependencies
apps/docs/next.config.mjs Adds MDX integration and rewrites for .mdx exports
apps/docs/content/docs/meta.json Adds docs root sidebar metadata
apps/docs/content/docs/index.mdx Adds docs introduction page
apps/docs/content/docs/guides/stacking-workflow.mdx Adds workflow playbook guide
apps/docs/content/docs/guides/migration-from-graphite.mdx Adds Graphite-to-DubStack command mapping guide
apps/docs/content/docs/guides/meta.json Adds guides sidebar metadata
apps/docs/content/docs/guides/conflict-resolution.mdx Adds troubleshooting guide
apps/docs/content/docs/guides/ai-assistant.mdx Adds AI assistant guide
apps/docs/content/docs/getting-started/quickstart.mdx Adds getting-started quickstart page
apps/docs/content/docs/getting-started/meta.json Adds getting-started sidebar metadata
apps/docs/content/docs/getting-started/installation.mdx Adds installation docs
apps/docs/content/docs/contributing/testing.mdx Adds contributing/testing docs
apps/docs/content/docs/contributing/meta.json Adds contributing sidebar metadata
apps/docs/content/docs/contributing/development.mdx Adds contributing/development workflow docs
apps/docs/content/docs/contributing/agent-skills.mdx Adds docs describing packaged agent skills
apps/docs/content/docs/concepts/state-management.mdx Adds state management concept page
apps/docs/content/docs/concepts/stacked-diffs.mdx Adds stacked diffs concept page
apps/docs/content/docs/concepts/stack-graph.mdx Adds stack graph concept page
apps/docs/content/docs/concepts/meta.json Adds concepts sidebar metadata
apps/docs/content/docs/commands/undo.mdx Adds recovery command docs (continue/abort/undo)
apps/docs/content/docs/commands/track.mdx Adds track/untrack/delete command docs
apps/docs/content/docs/commands/sync.mdx Adds sync command docs
apps/docs/content/docs/commands/submit.mdx Adds submit command docs
apps/docs/content/docs/commands/skills.mdx Adds skills command docs
apps/docs/content/docs/commands/restack.mdx Adds restack command docs
apps/docs/content/docs/commands/post-merge.mdx Adds post-merge command docs
apps/docs/content/docs/commands/navigate.mdx Adds navigation command docs
apps/docs/content/docs/commands/modify.mdx Adds modify command docs
apps/docs/content/docs/commands/meta.json Adds commands sidebar metadata
apps/docs/content/docs/commands/merge-next.mdx Adds merge-next/land command docs
apps/docs/content/docs/commands/log.mdx Adds log command docs
apps/docs/content/docs/commands/doctor.mdx Adds maintenance command docs (doctor/ready/prune/merge-*)
apps/docs/content/docs/commands/create.mdx Adds create command docs
apps/docs/content/docs/commands/checkout.mdx Adds checkout + navigation + orientation docs
apps/docs/README.md Adds docs app README + stale-build recovery notes
apps/docs/.gitignore Adds docs app gitignore for Next/Fumadocs artifacts
AGENTS.md Updates agent guidance for monorepo structure and new paths
.gitignore Updates repo ignore list for turbo/next/fumadocs artifacts
.github/workflows/release.yml Updates release workflow to pack/publish from packages/cli
.github/workflows/merge-order.yml Updates merge-order workflow to run CLI from workspace
.github/workflows/ci.yml Updates CI to use turbo --affected and adjusts coverage artifact path
.claude/skills/playwright-cli Adds Claude skill link for playwright-cli
.claude/settings.json Adds Claude hook to auto-run Biome formatting on edits
.claude/agents/test-writer.md Adds a Claude agent prompt for generating tests (needs path update)
.claude/agents/code-reviewer.md Adds a Claude agent prompt for reviewing code (needs path update)
.agents/skills/playwright-cli/references/video-recording.md Adds playwright-cli reference documentation
.agents/skills/playwright-cli/references/tracing.md Adds playwright-cli reference documentation
.agents/skills/playwright-cli/references/test-generation.md Adds playwright-cli reference documentation
.agents/skills/playwright-cli/references/storage-state.md Adds playwright-cli reference documentation
.agents/skills/playwright-cli/references/session-management.md Adds playwright-cli reference documentation
.agents/skills/playwright-cli/references/running-code.md Adds playwright-cli reference documentation
.agents/skills/playwright-cli/references/request-mocking.md Adds playwright-cli reference documentation
.agents/skills/playwright-cli/SKILL.md Adds playwright-cli skill definition
Comments suppressed due to low confidence (2)

apps/docs/src/components/ai/page-actions.tsx:1

  • The Clipboard API expects each ClipboardItem entry value to be a Blob (or a promise resolving to a Blob), but this code returns a string from res.text(). This will throw at runtime in browsers that enforce the spec. Fix by returning a Blob (e.g., new Blob([content], { type: 'text/plain' })) or by using navigator.clipboard.writeText(content) for plain text copying.
    apps/docs/src/app/og/docs/[...slug]/route.tsx:1
  • This route is /og/docs/[...slug], so generateStaticParams should only return params for slug. Returning an extra lang key doesn’t match the segment params and may become a build error with stricter Next.js validation. Remove lang (or move lang into the route structure if localization is intended).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/merge-order.yml Outdated
Comment thread .claude/settings.json Outdated
Comment thread .github/workflows/ci.yml
Comment thread .claude/agents/test-writer.md Outdated
@dubscode dubscode merged commit 7aa9a6f into main Mar 8, 2026
3 checks passed
@dubscode dubscode deleted the feat/docs-website branch March 8, 2026 07:20
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