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.
4.1 KiB
id, type, title, domain, repo, repo_id, topic_slug, topic_id, status, owner, created, updated, depends_on_workplan, planning_order, planning_priority, spec_refs
| id | type | title | domain | repo | repo_id | topic_slug | topic_id | status | owner | created | updated | depends_on_workplan | planning_order | planning_priority | spec_refs | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CE-WP-0009 | workplan | Wire umbrella to @citation-evidence/engine package | citation_evidence | citation-evidence | a677c189-b4e2-4f2a-9e48-faa482c277e6 | citation_evidence_mvp | 96fa8e80-9f74-40f2-84cd-644e9747b9ec | done | codex | 2026-06-22 | 2026-06-22 | CE-WP-0008 | 9 | high |
|
CE-WP-0009 — Wire Umbrella to @citation-evidence/engine
Replace the in-repo src/shared/ and src/engine/ copies with a dependency on
the extracted citation-engine package (@citation-evidence/engine).
Prerequisite: CENG-WP-0001 complete (engine extracted and tests green).
This workplan does not publish the package — it uses a local link: (or
equivalent) dependency on the sibling checkout. Publishing is CENG-WP-0002.
Goals
- Single canonical source for shared types and engine services (
citation-engine). - Umbrella tests and app behavior unchanged after wireup.
- ESLint boundary rules still enforce the dependency map (subsystems may not import each other's behavior; engine/shared come from the package).
Dependency order
T01 (add package dependency + resolve aliases)
└─ T02 (point tsconfig / vite / eslint at package)
└─ T03 (delete src/shared + src/engine)
└─ T04 (verification: test + lint + typecheck + manual smoke)
T01 — Add @citation-evidence/engine dependency
id: CE-WP-0009-T01
status: done
priority: critical
depends_on: []
Add a workspace-style local dependency on the sibling repo:
"dependencies": {
"@citation-evidence/engine": "link:../citation-engine"
}
Run pnpm install and confirm node_modules/@citation-evidence/engine resolves.
Document the sibling-checkout requirement in README.md (engine repo must sit
next to umbrella, same layout as today).
Acceptance: pnpm why @citation-evidence/engine shows the link target.
T02 — Retarget @shared/* and @engine/* aliases
id: CE-WP-0009-T02
status: done
priority: critical
depends_on: [T01]
Update tooling so existing @shared/* and @engine/* imports keep working
without rewriting every consumer file:
tsconfig.jsonpaths →node_modules/@citation-evidence/engine/src/shared/*and.../src/engine/*(or equivalent stable path through the link).vite.config.tsresolve aliases — same targets.eslint.config.js— removesharedandengineelement patterns undersrc/; treat the package as external for boundary lint (subsystems still may only import@shared/@engine, not each other's folders).
Do not change import statements in anchor/, source/, binder/,
work/, or app/ unless an alias path breaks.
Acceptance: pnpm typecheck passes before folder deletion.
T03 — Delete in-repo engine copies
id: CE-WP-0009-T03
status: done
priority: critical
depends_on: [T02]
Remove:
src/shared/(entire tree)src/engine/(entire tree)
Update partition README pointers in remaining src/*/ folders to reference
@citation-evidence/engine instead of "future home: citation-engine".
Acceptance: src/ contains only anchor/, source/, binder/, work/,
app/ (plus any top-level app entry). No duplicate engine code in git.
T04 — Verification
id: CE-WP-0009-T04
status: done
priority: critical
depends_on: [T03]
pnpm test— full suite green (integration + unit).pnpm typecheck— clean.pnpm lint— clean; boundary rules still catch illegal cross-partition imports.- Manual smoke: dev server loads, PDF review → evidence → form link → export citation card (PRD §20 path).
Acceptance: CI-equivalent commands pass; no runtime import errors.
Out of scope
- Publishing
@citation-evidence/engineto a registry (CENG-WP-0002). - Extracting
anchor/,source/,binder/, orwork/to sister repos. - Resolving
ADR-0002(recommended before publish, not required forlink:).