bot-implementer 1d649648da
CI / Workspace bootstrap checks (pull_request) Successful in 4m41s
feat: bootstrap pnpm workspace (E00-S01)
pnpm 11.23.0 workspace with a committed frozen lockfile, Node engine
restricted to the 24.x line, TypeScript 6.0.3 pinned exactly, strict base
tsconfig, apps/packages/extensions kept as separate workspaces, root
build/test/typecheck commands, and the FIT-001 architecture test rejecting
core-to-extension imports. Minimal CI runs only the root scripts (S05
stages stay out of scope). Closes #58.
2026-08-27 23:00:54 +00:00

PersonalBlog (EPPP)

A modular personal blogging platform. This is the workspace bootstrap (E00-S01): a pnpm monorepo skeleton with strict TypeScript, a committed frozen lockfile, and an enforced dependency boundary between core packages and concrete extensions.

Toolchain (pinned)

Tool Version Where pinned
pnpm 11.23.0 packageManager in root package.json
Node.js 24.x line engines.node in root package.json
TypeScript 6.0.3 (exact) root devDependencies
Vitest 4.1.10 (exact) root devDependencies

Direct toolchain dependencies are exact-pinned; the lockfile is committed and installs always use --frozen-lockfile.

Workspace layout

apps/          application shells (e.g. server, admin)
packages/      core / shared packages (contracts, core, extension-sdk, ...)
extensions/    concrete extensions (themes, features, integrations)
tests/         root-level architecture guard tests

Each group is a separate workspace glob in pnpm-workspace.yaml, so packages cannot accidentally collapse into one another.

Dependency boundary (FIT-001)

Core packages (packages/*) must never import a concrete extension (extensions/*) — neither by package name nor by relative path. The rule is enforced by tests/architecture.test.ts, which discovers extension packages from the filesystem, so new extensions are guarded automatically. It runs as part of pnpm test and CI.

Local (non-container) developer path

No Docker required for workspace work; containers arrive in E00-S02.

  1. Install Node.js 24.x (e.g. via nvm: nvm install 24).
  2. Enable the pinned package manager: corepack enable (reads packageManager: pnpm@11.23.0), or npm install -g pnpm@11.23.0.
  3. Install dependencies (frozen lockfile): pnpm install --frozen-lockfile
  4. Verify the workspace:
    Command Runs
    pnpm build compiles every workspace package
    pnpm test runs the test suite (Vitest, incl. FIT-001)
    pnpm typecheck typechecks root tests and every workspace package

Out of scope for this story

  • Docker Compose baseline and container smoke tests — E00-S02
  • PostgreSQL adapter and migration runner — E00-S03
  • CI pipeline stages beyond the root scripts — E00-S05
S
Description
No description provided
Readme
857 KiB
Languages
JavaScript 89%
TypeScript 9.9%
Dockerfile 1.1%