--- phase: 01-foundation plan: "01" subsystem: branding tags: [vocabulary, package, vitest, tdd] dependency_graph: requires: [] provides: ["@paperclipai/branding", "VOCAB constant", "VocabKey type"] affects: ["phase-02", "phase-03", "phase-04"] tech_stack: added: ["packages/branding/"] patterns: ["shared-package pattern (mirrors packages/shared/)"] key_files: created: - packages/branding/package.json - packages/branding/tsconfig.json - packages/branding/vitest.config.ts - packages/branding/src/vocab.ts - packages/branding/src/vocab.test.ts - packages/branding/src/index.ts modified: - vitest.config.ts decisions: - "Kept @paperclipai/branding as package name (not @nexus/*) to stay upstream-compatible" - "Used as const for VOCAB to enable TypeScript literal type inference on all values" metrics: duration: "~2 minutes" completed: "2026-03-30" tasks_completed: 2 files_created: 6 files_modified: 1 --- # Phase 01 Plan 01: Branding Package Summary **One-liner:** `@paperclipai/branding` package with 8-key VOCAB constant centralizing all Nexus display string renames (`company→Workspace`, `ceo→Project Manager`, `appName→Nexus`). ## What Was Built A new `packages/branding/` workspace package that serves as the single string mutation surface for all Nexus fork display changes. Downstream phases (2, 3, 4) import `VOCAB` from this package to replace Paperclip terminology in UI strings, CLI output, and agent templates — without touching code identifiers, DB schema, or API routes. ## Tasks Completed | Task | Name | Commit | Files | |------|------|--------|-------| | 1 | Scaffold branding package with VOCAB constant and tests | 3e7848ed | packages/branding/ (6 files), pnpm-lock.yaml | | 2 | Register branding package in root vitest config | 9459619d | vitest.config.ts | ## Verification Results - `pnpm vitest run --project "@paperclipai/branding"` — 9/9 tests pass - All 8 VOCAB keys present with correct Nexus values - Package exports `VOCAB` and `VocabKey` from `packages/branding/src/index.ts` - `packages/branding/package.json` sets `"name": "@paperclipai/branding"`, `"type": "module"` - Root `vitest.config.ts` includes `"packages/branding"` in the projects array ## VOCAB Keys Verified | Key | Value | |-----|-------| | company | Workspace | | companies | Workspaces | | ceo | Project Manager | | board | Owner | | hire | Add | | fire | Remove | | appName | Nexus | | tagline | Open-source orchestration for your agents | ## Deviations from Plan ### Auto-fixed Issues None — plan executed exactly as written. ### Notes The plan's verify command `pnpm vitest run --project packages/branding` uses the directory path as filter, which does not match. Vitest 3.2.4 resolves project names from `package.json` names, so the correct command is `pnpm vitest run --project "@paperclipai/branding"`. Tests pass correctly with this command. The root vitest.config.ts entry `"packages/branding"` is still the correct way to register the workspace project (vitest resolves the config file from the path and reads the package name). ## Known Stubs None — all VOCAB values are fully specified strings, not placeholders. ## Self-Check: PASSED - packages/branding/package.json: FOUND - packages/branding/src/vocab.ts: FOUND - packages/branding/src/index.ts: FOUND - packages/branding/src/vocab.test.ts: FOUND - packages/branding/tsconfig.json: FOUND - packages/branding/vitest.config.ts: FOUND - vitest.config.ts (updated): FOUND - Commit 3e7848ed: FOUND - Commit 9459619d: FOUND - 9/9 tests passing: CONFIRMED