refactor(blog)!: delete blog demo feature
Veect retrofit (ADR-027): the template's demo content is being removed to make room for the Veect package map. This slice deletes packages/blog whole and prunes every composition edge in one commit: core-api router mount, core-cms collections + regenerated Payload types, web-next bindAll entry / home page / blog route / Tailwind sources, blog e2e spec, tsconfig paths, fallow ignore entry, anchor-guard + generator e2e feature lists, compliance artifacts, and feature-list doc entries (CLAUDE.md, AGENTS.md, glossary). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016j8z4VHjedXDTjEDNg7qHK
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
## Purpose
|
||||
|
||||
This app exists solely to serve the Payload Admin UI. It contains no custom CMS code beyond Next.js routing boilerplate. All business knowledge lives in feature packages (`@repo/auth`, `@repo/blog`, etc.), which export their collections/globals via subpath exports (`.../cms`). `@repo/core-cms` composes them into a single Payload config.
|
||||
This app exists solely to serve the Payload Admin UI. It contains no custom CMS code beyond Next.js routing boilerplate. All business knowledge lives in feature packages (`@repo/auth`, etc.), which export their collections/globals via subpath exports (`.../cms`). `@repo/core-cms` composes them into a single Payload config.
|
||||
|
||||
## Port: 3001
|
||||
|
||||
@@ -15,13 +15,13 @@ pnpm dev --filter @repo/cms # http://localhost:3001/admin
|
||||
|
||||
## Key Files
|
||||
|
||||
| File | Purpose |
|
||||
|---|---|
|
||||
| `next.config.mjs` | Minimal config wrapped with `withPayload()` from `@payloadcms/next` |
|
||||
| `tsconfig.json` | TypeScript config with `@payload-config` path alias |
|
||||
| `src/app/(payload)/layout.tsx` | Auto-generated Payload root layout (DO NOT MODIFY) |
|
||||
| `src/app/(payload)/admin/[[...segments]]/page.tsx` | Auto-generated catch-all admin page (DO NOT MODIFY) |
|
||||
| `src/app/(payload)/importMap.js` | Auto-generated Payload import map (DO NOT MODIFY) |
|
||||
| File | Purpose |
|
||||
| -------------------------------------------------- | ------------------------------------------------------------------- |
|
||||
| `next.config.mjs` | Minimal config wrapped with `withPayload()` from `@payloadcms/next` |
|
||||
| `tsconfig.json` | TypeScript config with `@payload-config` path alias |
|
||||
| `src/app/(payload)/layout.tsx` | Auto-generated Payload root layout (DO NOT MODIFY) |
|
||||
| `src/app/(payload)/admin/[[...segments]]/page.tsx` | Auto-generated catch-all admin page (DO NOT MODIFY) |
|
||||
| `src/app/(payload)/importMap.js` | Auto-generated Payload import map (DO NOT MODIFY) |
|
||||
|
||||
## Hard Rules
|
||||
|
||||
@@ -49,15 +49,11 @@ When Payload imports `@payload-config`, it resolves to the composed config from
|
||||
## Composition flow
|
||||
|
||||
```
|
||||
Feature 1 (@repo/blog)
|
||||
└─ src/integrations/cms/collections/articles.ts
|
||||
└─ exported as ./cms
|
||||
|
||||
Feature 2 (@repo/auth)
|
||||
Feature 1 (@repo/auth)
|
||||
└─ src/integrations/cms/collections/users.ts
|
||||
└─ exported as ./cms
|
||||
|
||||
Feature 3 (@repo/navigation)
|
||||
Feature 2 (@repo/navigation)
|
||||
└─ src/integrations/cms/globals/header.ts
|
||||
└─ exported as ./cms
|
||||
|
||||
@@ -83,13 +79,13 @@ cd apps/cms && pnpm generate:types
|
||||
|
||||
## Dependencies
|
||||
|
||||
| Dependency | Purpose |
|
||||
|---|---|
|
||||
| `@repo/core-cms` | Payload config + buildConfig |
|
||||
| Dependency | Purpose |
|
||||
| ------------------ | ------------------------------- |
|
||||
| `@repo/core-cms` | Payload config + buildConfig |
|
||||
| `@payloadcms/next` | Next.js integration for Payload |
|
||||
| `payload` | Payload CMS core |
|
||||
| `next` | Next.js 15 framework |
|
||||
| `sharp` | Image processing |
|
||||
| `payload` | Payload CMS core |
|
||||
| `next` | Next.js 15 framework |
|
||||
| `sharp` | Image processing |
|
||||
|
||||
## Cross-References
|
||||
|
||||
|
||||
@@ -5,16 +5,12 @@ describe("CMS app payload.config", () => {
|
||||
it("registers all feature collections", async () => {
|
||||
const resolved = await config;
|
||||
const slugs = resolved.collections?.map((c) => c.slug) ?? [];
|
||||
expect(slugs).toEqual(
|
||||
expect.arrayContaining(["users", "articles", "pages", "media"]),
|
||||
);
|
||||
expect(slugs).toEqual(expect.arrayContaining(["users", "pages", "media"]));
|
||||
});
|
||||
|
||||
it("registers all feature globals", async () => {
|
||||
const resolved = await config;
|
||||
const slugs = resolved.globals?.map((g) => g.slug) ?? [];
|
||||
expect(slugs).toEqual(
|
||||
expect.arrayContaining(["site-settings", "header"]),
|
||||
);
|
||||
expect(slugs).toEqual(expect.arrayContaining(["site-settings", "header"]));
|
||||
});
|
||||
});
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user