Commit Graph

23 Commits

Author SHA1 Message Date
590543fb65 docs(architecture): rewrite dependency-flow for vertical features + boundary rules 2026-05-05 09:32:25 +02:00
f6e86cf55e docs(architecture): rewrite overview for vertical feature architecture 2026-05-05 09:32:10 +02:00
d4969d2fb5 docs(architecture): copy refactor design spec into in-tree reference 2026-05-05 09:31:41 +02:00
1f0a6e73bf docs(plan): add Plan 6 (cleanup + enforcement + e2e + docs)
20 tasks in 5 phases: A) migrate ui→core-ui, repoint apps/cms+storybook,
delete 6 legacy packages; B) eslint-plugin-boundaries with three-tag
model + composition exceptions; C) Playwright in both apps with smoke
specs + root test:e2e task; D) full doc rewrite (overview, dependency
flow, guides, root+per-package AGENTS.md, 4 new ADRs, 4 updated/
superseded ADRs, delete 6 stale plans); E) all-green final check.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 09:09:41 +02:00
cdd7513032 docs(plan-5): add superjson transformer to httpBatchLink in both providers
Server uses superjson via core-shared/trpc/init's initTRPC config.
Client httpBatchLink must match or complex types (Date, Map, Set)
silently break on the wire. Caught during execution.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 08:48:49 +02:00
a3b72f5a7f docs(plan): add Plan 5 (app + UI integration)
17 tasks: populate core-trpc with React client + per-framework providers;
add bindProduction(config) helpers to each payload-backed feature;
swap web-next deps from @repo/api/api-client/ui to core-* + features;
wire tRPC route handler with idempotent bindAllProduction(); render
example pages (home with nav + site name + article list, /about,
/blog/[slug]); parallel-prove framework portability in web-tanstack.
First plan that produces browser-rendered output.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 08:43:04 +02:00
ff6fec7eab fix(tsconfig): set rootDir explicitly in feature packages
TypeScript emits an informational diagnostic when source files span
multiple top-level dirs (src/ + tests/) without explicit rootDir.
Setting rootDir="." satisfies the recommendation and matches the
include pattern. Updates blog, auth, marketing-pages — and Plan 4
doc so navigation (still pending) starts correct.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 08:30:19 +02:00
09f45afab1 docs(plan): add Plan 4 (marketing-pages + navigation features)
17 tasks: marketing-pages with Pages collection + SiteSettings global +
read use-cases + tRPC router; navigation with Header global + read
use-case + tRPC router. Composes both into core-cms (now 4 collections,
2 globals) and core-api (now 4 namespaces). All Plan 2/3 lessons baked in.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 08:24:33 +02:00
42ef78bcfd docs(plan): add Plan 3 (Auth + Media + restore blog relations)
17 tasks: full auth feature canonical migration (entities, services,
use-cases, DI with constructor-injected service, controllers, users
collection, tRPC router); skeleton media feature (collection only);
restore blog's author→users relation and featuredImage→media upload.
Bakes in all Plan-2 lessons (vitest alias, no rootDir, relative imports
in src, no @repo/core-cms in feature deps).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 00:35:51 +02:00
ed4d204a7e docs(plan-2): document relative-imports-in-source rule for feature packages
Discovered during execution: when downstream packages like @repo/core-api
typecheck and follow imports into a feature, they don't have the feature's
@/ alias and fail with TS2307. Source files use relative imports;
@/ is reserved for test files within the feature's own context.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 22:36:10 +02:00
81fe4aa3b2 docs(plan-2): document constructor-injection pattern for payload repos
Revises Task 2.8's note: spec example used `import config from
'@repo/core-cms'` which creates a workspace dependency cycle (blog deps
on core-cms; core-cms deps on blog/cms). Constructor injection breaks the
cycle at the package graph. Apply to all payload-backed feature repos.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 22:32:01 +02:00
1da0c06085 docs(plan-2): fix vitest.config.ts to include @/ alias
Vitest doesn't read tsconfig paths automatically; the alias must be
declared in vitest.config.ts via resolve.alias. Discovered during
execution and fixed in the live blog package; updating the source
plan so future feature plans (auth, media, etc.) start correct.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 22:22:05 +02:00
74cb9bd29a docs(plan): add Plan 2 (Blog feature canonical migration)
17 tasks migrating the existing content/articles domain into a new
@repo/blog package with full canonical layer shape. Per-feature
InversifyJS container, payload-articles repository using getPayload +
core-cms config, simplified schema (author as text, no featuredImage)
with TODOs to restore in Plan 3 when auth + media features are migrated.
Wires blog/cms into core-cms and blog/api into core-api.

Plan 2 of 6 — total revised from original 4 during execution to keep
each plan digestible (Plan 1 in-flight numbering preserved).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 22:07:00 +02:00
5e041e4906 docs(plan): add Plan 1 (Foundation) for vertical refactor
Implementation plan for spec phases 1-3: scaffold five core-* packages,
populate core-shared with Payload primitives + tRPC plumbing, and lift
the Payload config into a stub core-cms with apps/cms repointed at it.
First of four plans in the vertical-refactor sequence.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 20:15:07 +02:00
1436650fa6 docs(spec): add vertical feature monorepo refactor design
Captures the approved architectural pivot from horizontal Clean
Architecture packages to vertical feature packages with core-* foundation
packages, per the source spec (v1 + addenda v3/v4/v5) and 12 brainstorming
decisions (big-bang migration, per-feature InversifyJS containers,
integrations/ folder rename, controllers retained, etc.).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 20:04:45 +02:00
a22c9bdaed feat: add docs/ folder (architecture, guides, ADRs) 2026-04-06 15:05:35 +02:00
eb195c8261 feat: add root documentation (CLAUDE.md, AGENTS.md, .mcp.json) 2026-04-06 15:02:01 +02:00
d13f7d166e Add Plan 5: UI System implementation plan 2026-04-06 14:55:35 +02:00
1b93fecb7f Add Plan 4: API Layer + App Shells implementation plan 2026-04-06 14:48:00 +02:00
0196de59a4 Add Plan 3: Payload CMS Integration implementation plan
10 tasks covering: cms-core dependencies, Users/Articles/Media collections,
slug auto-generation hook, SiteSettings global, Payload config, dual-mode
cms-client (local + HTTP), thin Next.js admin shell, build verification.
2026-04-06 14:38:33 +02:00
25e533b6be Add Plan 2: Core Package + DI implementation plan
12 tasks covering: dependencies, vitest config, entities (models + errors),
application interfaces, DI container (InversifyJS), mock infrastructure,
auth use cases + tests (TDD), content use cases + tests (TDD),
auth controllers + tests, content controllers + tests, public API exports.
2026-04-06 14:21:30 +02:00
d0d335d829 Add Plan 1: Monorepo Foundation implementation plan
8 tasks covering: root workspace files, shared TypeScript config,
shared ESLint config, placeholder packages, placeholder apps,
Docker Compose, dependency installation + verification, test dirs.
2026-04-06 13:56:00 +02:00
c3c2e19e4f Add clean architecture monorepo template design spec
Comprehensive design specification covering: Turborepo+pnpm monorepo, clean
architecture core (InversifyJS DI), tRPC+TanStack Query shared API layer,
Payload CMS with dual-mode client (local+HTTP), Atomic Design UI with
shadcn/ui+Storybook, MCP agent infrastructure, and 4-tier documentation
architecture with ~22 AGENTS.md files.
2026-04-06 13:28:56 +02:00