Planning artifacts (milestones v1.0-v1.2.1, v1.3 queue, PROJECT.md, STATE.md, config) now live alongside the code they describe. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
95 lines
3.5 KiB
Markdown
95 lines
3.5 KiB
Markdown
---
|
|
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
|