citation-work/README.md

80 lines
2.9 KiB
Markdown
Raw Normal View History

# citation-work
A document review workspace — the React surfaces for the review workflow:
collection list, viewer shell, evidence sidebar, annotation create flow,
and review-oriented upload/navigation shell.
Published as the `@citation-evidence/work` package and consumed by the
`citation-evidence` umbrella app's review mode.
## Current state
This repo is now the **code of record** for the review workspace. The slice was
extracted from the umbrella app under `CWORK-WP-0001`; `citation-evidence` no
longer carries a local `src/work/` implementation and instead depends on this
package (its `@work` alias resolves here).
Package surface (`src/work/index.ts`):
- **Shell:** `ReviewShell` — the three-pane review layout (collection · viewer · sidebar)
- **Panes:** `CollectionList`, `ViewerShell`, `EvidenceSidebar`
- **Capture/edit:** `InlineCaptureForm`, `EvidenceFormBody`
- **Upload:** `UploadDropzone` (also the default `ReviewShell` upload slot)
- **Providers/hooks:** `EngineProvider`, `SessionProvider`, and the associated
`use*` hooks; `useExportEvidence`; `useDebugFlag`
### Upload seam decision (T03)
`UploadDropzone` is owned by this package — it depends only on `@source` and the
local engine/session hooks, so the shell renders a complete review surface with
no umbrella-local imports. `ReviewShell` still exposes an `upload` slot so a
consumer can substitute its own affordance; when omitted, the package default is
used.
## Boundary
`citation-work` depends on:
- [`@citation-evidence/engine`](../citation-engine/)
- [`@citation-evidence/evidence-anchor`](../evidence-anchor/)
- `@source` (PDF ingestion + viewer-url policy)
It may **not** import from binder-owned or umbrella-app-owned review-to-form
code. The dependency edges are enforced by `eslint-plugin-boundaries` in
`eslint.config.js`.
## Alias / extraction notes
`citation-engine` and `evidence-anchor` are extracted sibling packages and are
consumed by their package names. `@source/*` still resolves into the umbrella's
`src/source` façade because that façade owns the local `viewer-url` policy that
is not part of the extracted `evidence-source` package. This is the one
remaining transitional edge; see the deferred list below.
## Deferred after this extraction
The following were intentionally **not** part of `CWORK-WP-0001` and remain for a
subsequent workplan slice (see the workplan's "Deferred After This Workplan"
section for the authoritative list):
- collection search / filter UX,
- document review-status interactions,
- evidence-item status / tagging / filtering UX,
- binder-integrated review-to-form workflows,
- new viewer/document-format features beyond the current PDF slice,
- retiring the `@source` façade edge once a `viewer-url` home is decided (either
a small local module here or an `evidence-source` addition).
## Verification
```bash
pnpm install
pnpm typecheck
pnpm lint
pnpm test
```
## Workplan
- [CWORK-WP-0001](workplans/CWORK-WP-0001-extract-review-workspace.md)