generated from coulomb/repo-seed
Implement CE-WP-0009: wire umbrella to @citation-evidence/engine
Add link: dependency on citation-engine, retarget @shared/@engine aliases, remove in-repo shared/engine copies. ADR-0002 accepted (option B). 172 tests, typecheck, and lint pass.
This commit is contained in:
@@ -1,16 +1,19 @@
|
||||
# ADR-0002 — Monorepo vs polyrepo for the six subsystems
|
||||
|
||||
- Status: proposed
|
||||
- Status: accepted
|
||||
- Date: 2026-05-24
|
||||
- Workplan: CE-WP-0001-T07 (stub)
|
||||
- Decided: 2026-06-22
|
||||
- Workplan: CENG-WP-0002-T01
|
||||
|
||||
## Context
|
||||
|
||||
The umbrella-first MVP lives entirely in `citation-evidence/` under
|
||||
`src/{shared,engine,anchor,source,binder,work,app}/`. Each folder is named
|
||||
after its eventual extracted package. At some point — driven by an external
|
||||
consumer needing one subsystem, or by independent release cadence — code
|
||||
will move out into its sister repo.
|
||||
`src/{anchor,source,binder,work,app}/` with shared types and engine services
|
||||
in the extracted `@citation-evidence/engine` package (`citation-engine` repo).
|
||||
|
||||
Each remaining folder is named after its eventual extracted package. At some
|
||||
point — driven by an external consumer needing one subsystem, or by independent
|
||||
release cadence — code will move out into its sister repo.
|
||||
|
||||
We need a written answer to: when that moment comes, do we (a) keep one
|
||||
repository with pnpm workspaces, (b) split into six independent repos with
|
||||
@@ -43,8 +46,29 @@ across the boundary.
|
||||
|
||||
## Decision
|
||||
|
||||
(blank — to be answered before the first subsystem extraction lands.)
|
||||
**B — six independent repos with published packages**, using **`link:` sibling
|
||||
dependencies during local development** until a registry is configured.
|
||||
|
||||
Rationale:
|
||||
|
||||
1. The ecosystem is already organized as six sister repos plus the umbrella;
|
||||
independent repos match the documented architecture.
|
||||
2. `citation-engine` extraction (`CENG-WP-0001`) and umbrella wireup
|
||||
(`CE-WP-0009`) prove the `link:../citation-engine` dev workflow.
|
||||
3. Publishing can be deferred — no registry is configured yet — without
|
||||
blocking extraction of the remaining subsystems.
|
||||
4. Option C adds tooling overhead before any external consumer exists.
|
||||
|
||||
## Consequences
|
||||
|
||||
(blank)
|
||||
- **Local dev:** sister repos sit as siblings under `~/` (or equivalent).
|
||||
Consumers declare `"@citation-evidence/engine": "link:../citation-engine"`.
|
||||
- **Publishing:** when a registry is chosen, bump `@citation-evidence/engine`
|
||||
semver and replace `link:` with the registry version in consumer repos.
|
||||
- **Contracts:** `citation-evidence/wiki/SharedContracts.md` stays authoritative;
|
||||
`citation-engine/wiki/SharedContracts.md` is a conformance copy (see
|
||||
`citation-engine/wiki/README.md`).
|
||||
- **Versioning:** engine package semver tracks API/contract changes; umbrella
|
||||
and sister repos pin or range-pin on publish.
|
||||
- **CI:** each repo runs its own test/lint pipeline; cross-repo integration
|
||||
tests remain in `citation-evidence` until subsystems extract fully.
|
||||
@@ -21,8 +21,8 @@ CE-WP-0008 fixes capture field value persistence and viewport scroll reliability
|
||||
| Workplan | Repo | Title | Status |
|
||||
|----------|------|-------|--------|
|
||||
| `CENG-WP-0001` | citation-engine | Extract engine from umbrella | done |
|
||||
| `CE-WP-0009` | citation-evidence | Wire umbrella to `@citation-evidence/engine` | active |
|
||||
| `CENG-WP-0002` | citation-engine | Package distribution (ADR-0002, publish prep) | active |
|
||||
| `CE-WP-0009` | citation-evidence | Wire umbrella to `@citation-evidence/engine` | done |
|
||||
| `CENG-WP-0002` | citation-engine | Package distribution (ADR-0002, publish prep) | done |
|
||||
|
||||
`CE-WP-0009` depends on `CENG-WP-0001`. `CENG-WP-0002` can run in parallel;
|
||||
publish tasks wait on ADR-0002 resolution.
|
||||
|
||||
Reference in New Issue
Block a user