From a9e3b76a388ac5ee4ef408f8f343469d60464595 Mon Sep 17 00:00:00 2001 From: tegwick Date: Mon, 22 Jun 2026 19:32:59 +0200 Subject: [PATCH] Add CENG-WP-0002 package distribution workplan Document ADR-0002 resolution, publish readiness, and SharedContracts sync. Update CENG-WP-0001 follow-up to reference CE-WP-0009 and CENG-WP-0002. --- workplans/CENG-WP-0001-intent-placeholder.md | 9 +- .../CENG-WP-0002-package-distribution.md | 154 ++++++++++++++++++ 2 files changed, 159 insertions(+), 4 deletions(-) create mode 100644 workplans/CENG-WP-0002-package-distribution.md diff --git a/workplans/CENG-WP-0001-intent-placeholder.md b/workplans/CENG-WP-0001-intent-placeholder.md index 2940b4f..fc49675 100644 --- a/workplans/CENG-WP-0001-intent-placeholder.md +++ b/workplans/CENG-WP-0001-intent-placeholder.md @@ -93,8 +93,9 @@ depends_on: [T02, T03] --- -## Follow-up (out of scope) +## Follow-up -- Wire `citation-evidence` to consume `@citation-evidence/engine` as a workspace - dependency and delete the in-repo copies (CE-WP-0009 or equivalent). -- Publish package to a registry when sister repos are ready to depend on it. \ No newline at end of file +- `CE-WP-0009` — wire `citation-evidence` to consume this package via `link:` and + delete in-repo copies (`citation-evidence/workplans/CE-WP-0009-engine-workspace-wireup.md`). +- `CENG-WP-0002` — ADR-0002, publish readiness, contract sync + (`workplans/CENG-WP-0002-package-distribution.md`). \ No newline at end of file diff --git a/workplans/CENG-WP-0002-package-distribution.md b/workplans/CENG-WP-0002-package-distribution.md new file mode 100644 index 0000000..8bddb03 --- /dev/null +++ b/workplans/CENG-WP-0002-package-distribution.md @@ -0,0 +1,154 @@ +--- +id: CENG-WP-0002 +type: workplan +title: "Package distribution — ADR-0002, publish readiness, contract sync" +domain: citation_evidence +repo: citation-engine +status: active +owner: codex +topic_slug: citation_evidence_mvp +created: "2026-06-22" +updated: "2026-06-22" +depends_on_workplan: CENG-WP-0001 +state_hub_workstream_id: "ccd217a2-572d-435d-9a29-e0a55b6a4311" +spec_refs: + - ../citation-evidence/docs/decisions/ADR-0002-monorepo-vs-polyrepo.md + - ../citation-evidence/wiki/SharedContracts.md + - ../citation-evidence/wiki/DependencyMap.md +--- + +# CENG-WP-0002 — Package Distribution + +Make `@citation-evidence/engine` consumable beyond a sibling `link:` checkout: +resolve the monorepo-vs-polyrepo decision, document the install story for sister +repos, and prepare optional registry publish. + +Prerequisite: `CENG-WP-0001` complete. `CE-WP-0009` (umbrella wireup) can +proceed in parallel using `link:`; publish tasks here depend on T01. + +## Dependency order + +``` +T01 (resolve ADR-0002) + └─ T02 (consumer install docs + export surface) + └─ T03 (SharedContracts sync runbook) + └─ T04 (publish readiness — optional until registry chosen) +``` + +--- + +## T01 — Resolve ADR-0002 + +```task +id: CENG-WP-0002-T01 +status: wait +priority: critical +depends_on: [] +``` + +Fill in `citation-evidence/docs/decisions/ADR-0002-monorepo-vs-polyrepo.md`: + +- **Decision** — pick A, B, or C for the citation-evidence ecosystem. +- **Recommended default** (if no strong preference): **B — six independent repos + with published packages**, using `link:../citation-engine` during local dev + until a registry is configured. +- **Consequences** — how sister repos install engine, how versions bump, how + `SharedContracts.md` stays authoritative. + +Stop and ask the repo owner if the choice is genuinely ambiguous. + +**Acceptance:** ADR status moves from `proposed` to `accepted`; decision and +consequences sections are filled. + +--- + +## T02 — Consumer install docs and export surface + +```task +id: CENG-WP-0002-T02 +status: wait +priority: high +depends_on: [T01] +``` + +Document in `citation-engine/README.md`: + +- **Local dev** — `link:../citation-engine` (sibling checkout layout). +- **Post-publish** — `pnpm add @citation-evidence/engine` (registry TBD). + +Review and stabilize `package.json` `exports`: + +```json +{ + ".": "./src/engine/index.ts", + "./shared": "./src/shared/index.ts" +} +``` + +Confirm TypeScript consumers can resolve both entry points without deep imports +into `src/`. Add `types` conditions or subpath exports only if a consumer +repo hits resolution errors during `CE-WP-0009`. + +**Acceptance:** README has copy-paste install snippets for umbrella and one +sister repo placeholder (`evidence-anchor`). + +--- + +## T03 — SharedContracts sync runbook + +```task +id: CENG-WP-0002-T03 +status: wait +priority: high +depends_on: [T01] +``` + +`citation-evidence/wiki/SharedContracts.md` remains the **authoritative** +contract. `citation-engine/wiki/SharedContracts.md` is a conformance copy for +enum tests (`evidence-link.test.ts`). + +Write a short runbook (in `citation-engine/README.md` or `wiki/README.md`): + +1. Contract change lands in umbrella `wiki/SharedContracts.md`. +2. Copy/sync to `citation-engine/wiki/SharedContracts.md`. +3. Update runtime enums/types in `src/shared/` if needed. +4. Run `pnpm test` in both repos. + +**Acceptance:** runbook exists; `evidence-link.test.ts` path to local +`wiki/SharedContracts.md` is documented. + +--- + +## T04 — Publish readiness (deferred until registry exists) + +```task +id: CENG-WP-0002-T04 +status: wait +priority: low +depends_on: [T01, T02] +``` + +Prepare for first registry publish when a host is chosen (npm, GitHub Packages, +private Verdaccio, etc.): + +- Decide `private: false` vs scoped private package. +- Add `files` whitelist (`src/`, `wiki/`, `README.md`, `LICENSE`). +- Optional: `tsc` emit to `dist/` if consumers cannot consume TypeScript + sources directly (decide based on ADR-0002 choice and first consumer). +- Versioning policy: semver from `0.1.0`; breaking contract changes bump minor + or major per `SharedContracts.md` § change process. +- CI publish step stub (document only — no registry credentials in repo). + +**Acceptance:** a "Publishing checklist" section in README; package is +structurally publishable even if no publish has occurred yet. + +--- + +## Relationship to other workplans + +| Workplan | Role | +|----------|------| +| `CENG-WP-0001` | Extraction — **done** | +| `CE-WP-0009` | Umbrella consumes engine via `link:` — can start now | +| `CENG-WP-0002` | Distribution strategy and publish prep — this file | +| Future `EANCH-WP-0002`, etc. | Sister-repo extractions depend on engine install story from T02 | \ No newline at end of file