docs(work): decompose platform-retrofit and walking-skeleton epics
platform-retrofit: 8 stories / 18 tasks (spec bundle into docs/product, single-version release-please before deletions, demo feature removal, web-next auth shell, optional cores, work-tree archive, library traces, agent-doc rewrite). walking-skeleton: 11 stories / 28 tasks across workspaces, discovery, core-runner-protocol, runner app, editor, and the flagship connect-to-selection e2e; builds on platform-retrofit (prose dependency note — cross-epic frontmatter unsupported). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016j8z4VHjedXDTjEDNg7qHK
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
---
|
||||
id: 01-commit-product-docs
|
||||
epic: platform-retrofit
|
||||
title: Commit the product spec and design references under docs/product/
|
||||
type: technical-story
|
||||
status: in-progress
|
||||
feature: docs
|
||||
depends-on: []
|
||||
blocks: [08-rewrite-agent-docs]
|
||||
created: 2026-07-12T10:22:00Z
|
||||
---
|
||||
|
||||
## Goal
|
||||
|
||||
The full Veect specification bundle is committed and authoritative under `docs/product/`: spec docs at top level (filenames preserved from the `.proto/veect-product-docs/` bundle), design references (`Veect.dc.html`, `Veect Landing.dc.html`, the Weave backup, the `veect-codebase/` prototype, upload PNGs) under `docs/product/reference/`, the product README amended with the ADR-027/028/029 supersessions and the `Veect.dc.html` ground-truth authority row (ADR-029 §5). `veect-product-docs.zip` and the emptied `.proto/` are gone.
|
||||
|
||||
## Why
|
||||
|
||||
Sandcastle implementers run in git worktrees, which contain only committed files — every PRD referencing the spec would be unreadable to the agents implementing it while the bundle sits untracked in `.proto/`. Committing the spec makes it the canonical source dispatch agents can read (PRD user stories 1 and 7).
|
||||
|
||||
## Done when
|
||||
|
||||
- `git ls-files docs/product/` shows the full committed spec bundle; `.proto/` and `veect-product-docs.zip` no longer exist.
|
||||
- Design references live under `docs/product/reference/`; the prototype codebase is NOT vendored into `packages/` (ADR-029) and its `package.json` stays outside the pnpm workspace globs (`packages/*`, `apps/*`) by construction.
|
||||
- Fallow/lint ignore lists skip `docs/product/reference/` so whole-codebase auditors don't flag reference material.
|
||||
- `docs/product/README.md` opens with a short "Repo supersessions" section linking ADR-027/028/029, and its authority table includes the `Veect.dc.html` ground-truth row.
|
||||
- HTML prototypes committed as-is (no LFS — PRD Q1).
|
||||
- `pnpm typecheck && pnpm lint && pnpm test && pnpm conformance && pnpm fallow:audit && pnpm coverage:diff` pass on every commit.
|
||||
|
||||
## In scope
|
||||
|
||||
- Moving `.proto/veect-product-docs/*` → `docs/product/` (top level, filenames preserved).
|
||||
- Moving the design references from `.proto/design/` → `docs/product/reference/`.
|
||||
- Deleting `veect-product-docs.zip` (repo root) and the emptied `.proto/` directory.
|
||||
- Fallow/lint ignore-list entries for `docs/product/reference/`.
|
||||
- The "Repo supersessions" + authority-table amendment to `docs/product/README.md`.
|
||||
|
||||
## Out of scope
|
||||
|
||||
- Vendoring the prototype codebase into `packages/` (never — ADR-029).
|
||||
- CLAUDE.md/AGENTS.md updates that point at `docs/product/` (story 08).
|
||||
- Any edits to the spec documents' content beyond the README amendment.
|
||||
|
||||
## Tasks
|
||||
|
||||
- [ ] Migrate the spec bundle `.proto/veect-product-docs/` → `docs/product/` (top level, filenames preserved) and delete the stray `veect-product-docs.zip` at the repo root — spec docs committed and greppable; all gates pass on this commit.
|
||||
- [ ] Migrate the design references from `.proto/design/` → `docs/product/reference/` (HTML prototypes as-is, `veect-codebase/` prototype, upload PNGs and remaining bundle files), add `docs/product/reference/` to the fallow/lint ignore lists so whole-codebase auditors skip reference material, and delete the emptied `.proto/` — one commit, all gates pass.
|
||||
- [ ] Amend `docs/product/README.md`: prepend a short "Repo supersessions" section linking ADR-027/028/029 and add the `Veect.dc.html` ground-truth row to the authority table (ADR-029 §5) — one commit, all gates pass.
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
id: 02-single-version-release-please
|
||||
epic: platform-retrofit
|
||||
title: Rewrite release-please to a single root product version
|
||||
type: technical-story
|
||||
status: todo
|
||||
feature: tooling
|
||||
depends-on: []
|
||||
blocks: [03-delete-demo-apps-and-features, 08-rewrite-agent-docs]
|
||||
created: 2026-07-12T10:22:00Z
|
||||
---
|
||||
|
||||
## Goal
|
||||
|
||||
`release-please-config.json` + `.release-please-manifest.json` track the root package only — a single product version with plain `v*` tags (`include-component-in-tag` dropped), pre-1.0 bump policy retained. Veect is a hosted SaaS that deploys continuously; per-feature versions return only if an npm distribution ships.
|
||||
|
||||
## Why
|
||||
|
||||
release-please currently tracks five demo feature packages that stories 03/04 delete. Rewriting to root-only FIRST keeps ADR-021's Conventional-Commit → release automation working through the deletions: if a deletion commit touched a still-tracked `packages/<feature>/**` path, release-please would try to bump a package whose `package.json` no longer exists. Story 03 therefore depends on this story (PRD user story 5 + ADR-021 constraint).
|
||||
|
||||
## Done when
|
||||
|
||||
- `release-please-config.json` validates against its schema and tracks only `"."`.
|
||||
- `include-component-in-tag` is dropped (single `v*` tags); pre-1.0 bump policy (`bump-patch-for-minor-pre-major`) retained; changelog sections retained.
|
||||
- `.release-please-manifest.json` contains only the root entry.
|
||||
- Any release-please CI workflow references to per-package components still work.
|
||||
- `pnpm typecheck && pnpm lint && pnpm test && pnpm conformance && pnpm fallow:audit && pnpm coverage:diff` pass.
|
||||
|
||||
## In scope
|
||||
|
||||
- `release-please-config.json`, `.release-please-manifest.json`, and any CI workflow wiring that assumes per-component tags.
|
||||
|
||||
## Out of scope
|
||||
|
||||
- Deleting the feature packages themselves (story 03).
|
||||
- Renaming the root package (`template-vertical` → product name changes belong to the docs rewrite only if the PRD's next-PRD work requires it; this story touches versioning config only).
|
||||
- Retagging or rewriting existing git tags/releases.
|
||||
|
||||
## Tasks
|
||||
|
||||
- [ ] Rewrite `release-please-config.json` to track the root package only (drop the five `packages/*` entries and `include-component-in-tag`, keep the pre-1.0 bump policy and changelog sections), shrink `.release-please-manifest.json` to the root entry, and adjust any release CI workflow that assumed per-component tags — config validates, one commit, all gates pass.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
id: 03-delete-demo-apps-and-features
|
||||
epic: platform-retrofit
|
||||
title: Delete web-tanstack and the four demo content features
|
||||
type: technical-story
|
||||
status: todo
|
||||
feature: web-tanstack, blog, media, marketing-pages, navigation
|
||||
depends-on: [02-single-version-release-please]
|
||||
blocks: [04-web-next-shell, 08-rewrite-agent-docs]
|
||||
created: 2026-07-12T10:22:00Z
|
||||
---
|
||||
|
||||
## Goal
|
||||
|
||||
`apps/web-tanstack` and the demo features `blog`, `media`, `marketing-pages`, `navigation` are gone, including all composition wiring: core-api router anchors, core-cms collection anchors, web-next pages/imports, the bindAll dispatcher entries, seeds, e2e specs, and Storybook references. Only `auth` remains at the feature tier. Deletion order is dependency-order — app first, then features — and each deletion is one slice/commit that leaves every gate green.
|
||||
|
||||
## Why
|
||||
|
||||
The demo content blocks the package map: the Veect features (workspaces, projects, design-doc, discovery, ai) can't land cleanly while blog/media/navigation/marketing-pages occupy the workspace, the router/CMS composition, and the app surfaces (PRD user story 4). The generators are template-driven (`turbo/generators/templates/`), not derived from live features, so all four content features go (PRD Q2).
|
||||
|
||||
## Done when
|
||||
|
||||
- `apps/web-tanstack`, `packages/blog`, `packages/media`, `packages/marketing-pages`, `packages/navigation` no longer exist; no imports from deleted features anywhere; `pnpm turbo boundaries` clean.
|
||||
- Each deleted feature's wiring (core-api router anchor, core-cms collection anchor, bindAll entry, web-next UI imports, seeds, e2e specs, Storybook references) was pruned in the same slice as the package deletion.
|
||||
- `docs/glossary.md` Packages-section terms describing each deleted feature were pruned in the same slice that deleted the feature (no orphaned glossary terms); `auth` entries stay.
|
||||
- The `auth` feature's manifest, tests, and coverage bands are untouched (regression canary — ADR-027 §4).
|
||||
- ESLint/turbo boundary configs and the generators survived the deletions (spot-check: `pnpm turbo gen feature` still scaffolds; any config a deletion breaks is fixed inside that same slice).
|
||||
- `pnpm typecheck && pnpm lint && pnpm test && pnpm conformance && pnpm fallow:audit && pnpm coverage:diff` pass on EVERY slice — no big-bang broken middle.
|
||||
|
||||
## In scope
|
||||
|
||||
- The five deletion slices and their wiring/seed/e2e/Storybook/glossary pruning.
|
||||
- Fixing any ESLint/turbo boundary config or generator breakage a deletion causes, inside the causing slice.
|
||||
|
||||
## Out of scope
|
||||
|
||||
- Replacing the web-next home page and the boot smoke assertion (story 04).
|
||||
- Deleting `auth`, `apps/cms`, `apps/storybook`, or any core package — they stay wired.
|
||||
- Generator retargeting beyond what deletions force (PRD out of scope).
|
||||
|
||||
## Tasks
|
||||
|
||||
- [ ] Delete `apps/web-tanstack` and all its wiring in one slice — workspace/turbo entries, root scripts, CI references (e.g. `WEB_TANSTACK_SENTRY_DSN` / `VITE_` DSN wiring), e2e project entries — one commit, all gates green.
|
||||
- [ ] Delete `packages/blog` and prune its composition wiring in the same slice — core-api router anchor, core-cms collection anchor, bindAll entry, web-next pages/imports, seeds, e2e specs, Storybook references, glossary terms — one commit, all gates green.
|
||||
- [ ] Delete `packages/media` and prune its composition wiring in the same slice (same checklist as blog) — one commit, all gates green.
|
||||
- [ ] Delete `packages/marketing-pages` and prune its composition wiring in the same slice (same checklist; includes its cross-feature event handlers consuming auth events) — one commit, all gates green.
|
||||
- [ ] Delete `packages/navigation` and prune its composition wiring in the same slice (same checklist) — one commit, all gates green.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
id: 04-web-next-shell
|
||||
epic: platform-retrofit
|
||||
title: Reduce web-next to an auth shell with a boot smoke assertion
|
||||
type: technical-story
|
||||
status: todo
|
||||
feature: web-next
|
||||
depends-on: [03-delete-demo-apps-and-features]
|
||||
blocks: [08-rewrite-agent-docs]
|
||||
created: 2026-07-12T10:22:00Z
|
||||
---
|
||||
|
||||
## Goal
|
||||
|
||||
`apps/web-next` is a compiling shell: auth (sign-in/out) plus a minimal authenticated placeholder home page. The app bootstrap stays intact — `bindAll()`, instrumentation — and a dev-seed boot smoke test asserts `bindAll()` resolves with only auth bound, proving no dangling DI symbols from the deleted features. `apps/cms` (Payload admin over the remaining collections) and `apps/storybook` stay as-is.
|
||||
|
||||
## Why
|
||||
|
||||
Veect features land on a stable floor: the repo must typecheck/test green with only auth + core packages (PRD user story 4). The workspaces UI that replaces the placeholder arrives with the next PRD (walking skeleton), so the shell needs to prove exactly one thing — sign-in works and nothing references deleted features.
|
||||
|
||||
## Done when
|
||||
|
||||
- `pnpm dev` boots web-next in dev-seed mode (no Payload required) with sign-in working.
|
||||
- The home page is a minimal authenticated placeholder; auth UI surfaces and app bootstrap (`bindAll()`, instrumentation) are untouched.
|
||||
- A dev-seed boot smoke test asserts `bindAll()` resolves with only auth bound (mirrors the existing boot-assertion pattern in web-next's server bootstrap tests).
|
||||
- The auth sign-in Playwright spec is green as the surviving e2e baseline.
|
||||
- `pnpm typecheck && pnpm lint && pnpm test && pnpm conformance && pnpm fallow:audit && pnpm coverage:diff` pass on every commit.
|
||||
|
||||
## In scope
|
||||
|
||||
- Replacing the web-next home page with a minimal authenticated placeholder; removing any remaining demo-content leftovers in web-next (layouts, nav chrome, metadata).
|
||||
- The boot smoke assertion in web-next's server bootstrap tests.
|
||||
- Keeping the auth e2e sign-in spec green.
|
||||
|
||||
## Out of scope
|
||||
|
||||
- The workspaces UI / any new Veect feature surface (walking-skeleton PRD).
|
||||
- The landing page (`polish-playground-landing` PRD — this epic leaves no marketing surface).
|
||||
- Changes to `apps/cms` or `apps/storybook`.
|
||||
- Auth feature changes — its manifest, tests, and coverage bands stay untouched.
|
||||
|
||||
## Tasks
|
||||
|
||||
- [ ] Replace the web-next home page with a minimal authenticated placeholder, keeping the auth UI surfaces (sign-in/out) and app bootstrap (`bindAll()`, instrumentation) intact, and remove any remaining demo-content leftovers in the app — one commit, all gates green, auth e2e spec still passing.
|
||||
- [ ] Add the dev-seed boot smoke assertion: a web-next server bootstrap test proving `bindAll()` resolves with only auth bound (no dangling DI symbols from deleted features), mirroring the existing boot-assertion pattern — one commit, all gates green.
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
id: 05-scaffold-optional-cores
|
||||
epic: platform-retrofit
|
||||
title: Scaffold core-events and core-realtime
|
||||
type: technical-story
|
||||
status: todo
|
||||
feature: core-events, core-realtime
|
||||
depends-on: []
|
||||
blocks: [08-rewrite-agent-docs]
|
||||
created: 2026-07-12T10:22:00Z
|
||||
---
|
||||
|
||||
## Goal
|
||||
|
||||
`@repo/core-events` and `@repo/core-realtime` exist as workspace packages, scaffolded via `pnpm turbo gen core-package`, each with its generator-emitted test suite and pre-shipped library trace (ADR-022 "pre-shipped trace" mechanism). No consumers are wired yet beyond compile-green.
|
||||
|
||||
## Why
|
||||
|
||||
The walking-skeleton PRD needs runner status events and pushes; scaffolding the two optional cores now means that PRD lands on a floor where the bus and realtime substrate already compile and pass gates (PRD in-scope item).
|
||||
|
||||
## Done when
|
||||
|
||||
- `packages/core-events` and `packages/core-realtime` exist and build.
|
||||
- Generator-emitted test suites pass; pre-shipped traces satisfy the ADR-022 pre-commit hook.
|
||||
- No consumers wired — nothing in `auth` or the apps depends on them yet.
|
||||
- `pnpm typecheck && pnpm lint && pnpm test && pnpm conformance && pnpm fallow:audit && pnpm coverage:diff` pass on each commit.
|
||||
|
||||
## Out of scope
|
||||
|
||||
- Wiring any publisher/consumer or realtime channel (walking-skeleton PRD).
|
||||
- Additional test coverage beyond the generator-emitted suites (PRD testing decision: none required until consumers exist).
|
||||
|
||||
## Tasks
|
||||
|
||||
- [ ] Run `pnpm turbo gen core-package events` to scaffold `@repo/core-events` with its generator-emitted tests and pre-shipped trace (ADR-022) — compile-green, no consumers wired, one commit, all gates pass.
|
||||
- [ ] Run `pnpm turbo gen core-package realtime` to scaffold `@repo/core-realtime` with its generator-emitted tests and pre-shipped trace (ADR-022) — compile-green, no consumers wired, one commit, all gates pass.
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
id: 06-archive-template-work
|
||||
epic: platform-retrofit
|
||||
title: Archive the shipped template work tree
|
||||
type: technical-story
|
||||
status: todo
|
||||
feature: docs
|
||||
depends-on: []
|
||||
blocks: []
|
||||
created: 2026-07-12T10:22:00Z
|
||||
---
|
||||
|
||||
## Goal
|
||||
|
||||
The eight shipped template epics and their nine PRDs live under `docs/work/archive/{epics,prds}/` (with a one-line README), `_state.json` is rebuilt via `pnpm work rebuild-state`, and `pnpm work status` shows only Veect work.
|
||||
|
||||
## Why
|
||||
|
||||
Dispatch context and prioritization are assembled from the work tree; eight shipped template epics pollute it and point agents at the wrong product (PRD user story 2). Archived work stays greppable — it documents how the machinery was built.
|
||||
|
||||
## Done when
|
||||
|
||||
- `pnpm work status` lists zero template epics (only the Veect epics — `platform-retrofit`, `walking-skeleton` — remain under `docs/work/epics/`).
|
||||
- The eight epics (`binder-wrap-helper`, `ci-security-and-supply-chain`, `compliance-docs-scaffolds`, `compliance-manifests-pii-retention-subprocessors`, `dsr-consent-and-cookie-banner`, `library-evaluation-policy`, `product-analytics-channel`, `security-headers-rate-limit-sbom`) and their nine PRDs (the eight matching PRDs + `coverage-architecture`) are under `docs/work/archive/` and greppable; `platform-retrofit.prd.md` and `walking-skeleton.prd.md` stay in `docs/work/prds/`.
|
||||
- The work CLI ignores the archive path (its state builder walks `docs/work/epics/` only — verified, glob adjusted if not).
|
||||
- `docs/work/_system/_state.json` is regenerated and passes the state-sync pre-commit guard.
|
||||
- `pnpm typecheck && pnpm lint && pnpm test && pnpm conformance && pnpm fallow:audit && pnpm coverage:diff` pass.
|
||||
|
||||
## Out of scope
|
||||
|
||||
- Editing archived epic/story/PRD content.
|
||||
- Archiving `walking-skeleton.prd.md` or this epic's PRD — they are live Veect work.
|
||||
|
||||
## Tasks
|
||||
|
||||
- [ ] Create `docs/work/archive/{epics,prds}/` with a one-line README, move the eight shipped template epics and nine shipped PRDs into it, verify the work CLI ignores the archive path (adjust its glob if it doesn't), and run `pnpm work rebuild-state` to regenerate `_state.json` — one commit, `pnpm work status` shows only Veect work, all gates pass.
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
id: 07-editor-library-traces
|
||||
epic: platform-retrofit
|
||||
title: Library traces for @xyflow/react and zustand
|
||||
type: technical-story
|
||||
status: todo
|
||||
feature: docs
|
||||
depends-on: []
|
||||
blocks: []
|
||||
created: 2026-07-12T10:22:00Z
|
||||
---
|
||||
|
||||
## Goal
|
||||
|
||||
`docs/library-decisions/` contains approved traces (via the `/evaluate-library` skill, ADR-022) for the feature-tier runtime deps the walking-skeleton PRD needs: `@xyflow/react` and `zustand` (v5). Traces only — the packages are not installed by this story.
|
||||
|
||||
## Why
|
||||
|
||||
Walking-skeleton tasks must not stall on the library-policy pre-commit hook (PRD user story 6). Pre-approving the traces decouples library evaluation from feature implementation.
|
||||
|
||||
## Done when
|
||||
|
||||
- `docs/library-decisions/` contains an approved trace for `@xyflow/react` and an approved trace for `zustand` (v5), each produced by the `/evaluate-library` protocol.
|
||||
- The ADR-022 pre-commit hook passes on each commit.
|
||||
- `pnpm typecheck && pnpm lint && pnpm test && pnpm conformance && pnpm fallow:audit && pnpm coverage:diff` pass.
|
||||
|
||||
## Out of scope
|
||||
|
||||
- Installing either package into any workspace package (the consuming feature installs them in the walking-skeleton PRD).
|
||||
- Traces for runner-side deps (execa, vite, react-docgen-typescript) — app-tier `apps/runner` deps are exempt from ADR-022; traces for them are optional hardening, deferred.
|
||||
|
||||
## Tasks
|
||||
|
||||
- [ ] Run `/evaluate-library` for `@xyflow/react` and commit the approved trace to `docs/library-decisions/` — one commit, all gates pass.
|
||||
- [ ] Run `/evaluate-library` for `zustand` (v5) and commit the approved trace to `docs/library-decisions/` — one commit, all gates pass.
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
id: 08-rewrite-agent-docs
|
||||
epic: platform-retrofit
|
||||
title: Rewrite CLAUDE.md and AGENTS.md for Veect
|
||||
type: technical-story
|
||||
status: todo
|
||||
feature: docs
|
||||
depends-on:
|
||||
[
|
||||
01-commit-product-docs,
|
||||
02-single-version-release-please,
|
||||
03-delete-demo-apps-and-features,
|
||||
04-web-next-shell,
|
||||
05-scaffold-optional-cores,
|
||||
]
|
||||
blocks: []
|
||||
created: 2026-07-12T10:22:00Z
|
||||
---
|
||||
|
||||
## Goal
|
||||
|
||||
CLAUDE.md and AGENTS.md describe Veect: control-plane/runner vocabulary, the new package map (auth + core packages, `apps/{web-next,cms,storybook}`, no demo features, no web-tanstack), ADR-027/028/029 references, the single-root versioning policy, and `docs/product/` as the authoritative spec location. The "15 conformance rules" miscount is fixed to sixteen.
|
||||
|
||||
## Why
|
||||
|
||||
Agent context is assembled from these files; today they describe a blog/CMS starter, so generated epics use the wrong vocabulary and package map (PRD user story 3). This story lands last because the docs describe the state the other stories produce.
|
||||
|
||||
## Done when
|
||||
|
||||
- CLAUDE.md and AGENTS.md project-overview sections describe Veect (spot check: no mention of blog/media/marketing-pages/navigation or web-tanstack as live packages/apps).
|
||||
- Control-plane/runner vocabulary and ADR-027/028/029 references are present; `docs/product/` appears where the spec is referenced.
|
||||
- CLAUDE.md's versioning bullet reflects the root-only release-please policy (story 02), and the "15 conformance/\* rules" Quick Start miscount reads sixteen, matching the enumerated rule list.
|
||||
- Stale artifacts of the deletions are gone from both files (ports table, Sentry DSN trio, five-feature package lists).
|
||||
- `docs/glossary.md` needs no further changes here — the Veect domain section already exists and deleted-feature terms were pruned in story 03's slices; verify only.
|
||||
- `pnpm typecheck && pnpm lint && pnpm test && pnpm conformance && pnpm fallow:audit && pnpm coverage:diff` pass on each commit.
|
||||
|
||||
## In scope
|
||||
|
||||
- CLAUDE.md: project overview, Read First, key conventions/versioning bullets, ports/DSN references, conformance-rule count.
|
||||
- AGENTS.md: package map, boundary rules, per-package conventions sections.
|
||||
|
||||
## Out of scope
|
||||
|
||||
- Glossary edits (handled in story 03's deletion slices; Veect section already exists).
|
||||
- Guide rewrites under `docs/guides/` beyond what CLAUDE.md/AGENTS.md link corrections force.
|
||||
- Generator template documentation changes (generators stay as-is per PRD).
|
||||
|
||||
## Tasks
|
||||
|
||||
- [ ] Rewrite CLAUDE.md for Veect — project overview and Read First (control-plane/runner vocabulary, new package map, ADR-027/028/029 + `docs/product/` references), versioning bullet updated to the root-only policy, ports/DSN/feature lists purged of deleted packages, and the "15 conformance rules" miscount fixed to sixteen — one commit, all gates pass.
|
||||
- [ ] Rewrite AGENTS.md for Veect — package map, boundary rules, and per-package conventions reflecting auth + cores + the three surviving apps, same vocabulary and ADR references as CLAUDE.md — one commit, all gates pass.
|
||||
45
docs/work/epics/platform-retrofit/_epic.md
Normal file
45
docs/work/epics/platform-retrofit/_epic.md
Normal file
@@ -0,0 +1,45 @@
|
||||
---
|
||||
id: platform-retrofit
|
||||
prd: docs/work/prds/platform-retrofit.prd.md
|
||||
title: Platform retrofit — repurpose template-vertical as the Veect monorepo
|
||||
type: epic
|
||||
status: in-progress
|
||||
features:
|
||||
[
|
||||
blog,
|
||||
media,
|
||||
marketing-pages,
|
||||
navigation,
|
||||
web-tanstack,
|
||||
web-next,
|
||||
core-events,
|
||||
core-realtime,
|
||||
]
|
||||
created: 2026-07-12T10:22:00Z
|
||||
---
|
||||
|
||||
## Goal
|
||||
|
||||
Turn the `template-vertical` starter into a clean, truthful Veect monorepo: commit the product spec under `docs/product/`, delete the four demo content features and `apps/web-tanstack`, reduce `apps/web-next` to a compiling auth shell, scaffold `core-events` + `core-realtime`, archive the shipped template work, move release-please to a single root version, pre-approve the editor's library traces, and rewrite CLAUDE.md/AGENTS.md for Veect — with every conformance gate green on every slice.
|
||||
|
||||
## Why
|
||||
|
||||
Three concrete pains (PRD): dispatch agents in worktrees cannot read the untracked `.proto/` spec bundle; `pnpm work status`, CLAUDE.md/AGENTS.md, and release-please all describe a blog/CMS starter that no longer reflects the product; and the demo features occupy the workspace, router/CMS composition, and versioning config that the Veect features (workspaces, projects, design-doc, discovery, ai) need. ADR-027/028/029 are the decision baseline; this epic implements their repo-level consequences only.
|
||||
|
||||
## Stories
|
||||
|
||||
- [ ] [01 — Commit the product spec and design references under docs/product/](01-commit-product-docs/_story.md)
|
||||
- [ ] [02 — Rewrite release-please to a single root product version](02-single-version-release-please/_story.md)
|
||||
- [ ] [03 — Delete web-tanstack and the four demo content features](03-delete-demo-apps-and-features/_story.md)
|
||||
- [ ] [04 — Reduce web-next to an auth shell with a boot smoke assertion](04-web-next-shell/_story.md)
|
||||
- [ ] [05 — Scaffold core-events and core-realtime](05-scaffold-optional-cores/_story.md)
|
||||
- [ ] [06 — Archive the shipped template work tree](06-archive-template-work/_story.md)
|
||||
- [ ] [07 — Library traces for @xyflow/react and zustand](07-editor-library-traces/_story.md)
|
||||
- [ ] [08 — Rewrite CLAUDE.md and AGENTS.md for Veect](08-rewrite-agent-docs/_story.md)
|
||||
|
||||
## Out of scope (from PRD)
|
||||
|
||||
- Any new Veect feature code (walking-skeleton PRD and successors).
|
||||
- The landing page (`polish-playground-landing` PRD).
|
||||
- Generator retargeting beyond what deletions force — the feature generator's Payload+tRPC shape is correct for Veect's control plane (ADR-027 §5) and stays as-is.
|
||||
- Runner infrastructure, Docker images, fixtures; billing, GitHub App, self-host distribution (deferred per ADR-027).
|
||||
Reference in New Issue
Block a user