The ibex-harness repo is Go-first today: no JavaScript package manager, no workspace root, and no place to install Fumadocs without polluting the repository root or conflicting with existing CI. Without pnpm workspaces and Turborepo, we cannot add `docs/app/` in a way that matches the master brief, caches `next build`,
Milestone D.1.1 — pnpm workspace + Turborepo
Status: Planned
Goal: D.1
Phase: 1.5 — Docs Site
Wave: 1
Estimated effort: 2 hours
ADR required: ADR-0023 (docs site architecture)
Spec detail: MASTER_BRIEF.md Part D (D.1.1).
Why This Milestone Exists
The ibex-harness repo is Go-first today: no JavaScript package manager, no workspace root, and no place to install Fumadocs without polluting the repository root or conflicting with existing CI.
Without pnpm workspaces and Turborepo, we cannot add docs/app/ in a way that matches the master brief, caches next build, and exposes pnpm docs:dev / pnpm docs:build from the repo root.
pnpm + Turborepo is the chosen stack (see ADR-0023 and MASTER_BRIEF Part B.2) because it matches Vercel/Next expectations, avoids phantom dependencies, and scales when additional JS apps arrive.
Non-Goals
- Fumadocs bootstrap / Next.js app code (D.2.1)
- npm or yarn lockfiles
- Moving Go services into
docs/app/
Branch
feat/d1-1-workspace
PR Title
chore(docs): pnpm workspace and Turborepo for docs/app (D.1.1)
Prerequisites
- Wave 0 roadmap scaffold merged (repo-guards allows
docs/app/, ADR-0023 accepted)
Deliverables
pnpm-workspace.yamlwithdocs/appandpackages/*docs/app/package.jsonworkspace stub (namedocs; full Fumadocs deps in D.2.1)turbo.jsonpipelines:build,dev,lint,typecheck- Root
package.jsonscripts:docs:dev,docs:build .gitignoreentries for.next/,.source/,.turbo/
See MASTER_BRIEF Part D (D.1.1) for full acceptance detail.
Files Affected
| File Path | Action | Notes |
|---|---|---|
pnpm-workspace.yaml | Add | Workspace package globs |
turbo.json | Add | Turborepo pipeline config |
package.json | Add | Root workspace scripts |
.gitignore | Modify | Node and Next.js artifacts |
docs/adr/ADR-0023-docs-site-architecture.md | Modify | docs/app/ layout (not apps/docs) |
docs/app/package.json | Add | Workspace stub (name: docs) |
docs/app/README.md | Add | App location README |
Testing Requirements
verifyPnpmInstall_ZeroPeerErrors:pnpm installat repo root exits 0verifyDocsDevScript_Resolves:pnpm docs:devinvokes turbo (may fail until D.2.1 creates app)verifyRepoGuards_AllowsRootManifests:make repo-guardspasses with new root files
Acceptance Criteria
-
pnpm installat repo root succeeds -
pnpm docs:devresolves to Turborepo filter fordocs -
repo-guardsCI job passes
Risks
| Risk | Probability | Impact | Mitigation |
|---|---|---|---|
| Windows path + pnpm on dev machines | Medium | Medium | Document Node 20 + pnpm in TOOLCHAIN.md; use WSL if needed |
| Lockfile conflicts with ad-hoc npm usage | Low | High | Add packageManager field in root package.json; CI uses --frozen-lockfile |
| repo-guards rejects new top-level files | Low | High | Wave 0 already updated check-repo-layout.sh |
Last updated on