phase 1 5 docs site

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.yaml with docs/app and packages/*
  • docs/app/package.json workspace stub (name docs; full Fumadocs deps in D.2.1)
  • turbo.json pipelines: build, dev, lint, typecheck
  • Root package.json scripts: docs:dev, docs:build
  • .gitignore entries for .next/, .source/, .turbo/

See MASTER_BRIEF Part D (D.1.1) for full acceptance detail.


Files Affected

File PathActionNotes
pnpm-workspace.yamlAddWorkspace package globs
turbo.jsonAddTurborepo pipeline config
package.jsonAddRoot workspace scripts
.gitignoreModifyNode and Next.js artifacts
docs/adr/ADR-0023-docs-site-architecture.mdModifydocs/app/ layout (not apps/docs)
docs/app/package.jsonAddWorkspace stub (name: docs)
docs/app/README.mdAddApp location README

Testing Requirements

  • verifyPnpmInstall_ZeroPeerErrors: pnpm install at repo root exits 0
  • verifyDocsDevScript_Resolves: pnpm docs:dev invokes turbo (may fail until D.2.1 creates app)
  • verifyRepoGuards_AllowsRootManifests: make repo-guards passes with new root files

Acceptance Criteria

  • pnpm install at repo root succeeds
  • pnpm docs:dev resolves to Turborepo filter for docs
  • repo-guards CI job passes

Risks

RiskProbabilityImpactMitigation
Windows path + pnpm on dev machinesMediumMediumDocument Node 20 + pnpm in TOOLCHAIN.md; use WSL if needed
Lockfile conflicts with ad-hoc npm usageLowHighAdd packageManager field in root package.json; CI uses --frozen-lockfile
repo-guards rejects new top-level filesLowHighWave 0 already updated check-repo-layout.sh
Edit on GitHub

Last updated on

On this page

0%