Establishes citation-work as the standalone home of the review workspace, migrated out of the citation-evidence umbrella app. - Package/tooling scaffold: package.json, tsconfig, vite/vitest/eslint configs with eslint-plugin-boundaries enforcing engine/anchor/source-only imports - Providers/hooks: EngineProvider, SessionProvider + use* hooks (T02) - Panes: CollectionList, ViewerShell, EvidenceSidebar (T03/T04/T05) - Capture/edit: InlineCaptureForm, EvidenceFormBody; UploadDropzone owned here - ReviewShell: repo-owned three-pane layout with an upload slot seam - Tests: CollectionList, InlineCaptureForm capture flow, EvidenceSidebar export/edit/activation (11 tests, all green) - Anchor consumed as @citation-evidence/evidence-anchor package; @source kept on the umbrella facade for its local viewer-url policy - Docs (README/SCOPE) refreshed; deferred gaps recorded Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .claude/rules | ||
| .forgejo/workflows | ||
| registry | ||
| src/work | ||
| workplans | ||
| .custodian-brief.md | ||
| .gitignore | ||
| .repo-classification.yaml | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| eslint.config.js | ||
| INTENT.md | ||
| LICENSE | ||
| package.json | ||
| pnpm-lock.yaml | ||
| README.md | ||
| SCOPE.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
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 defaultReviewShellupload slot) - Providers/hooks:
EngineProvider,SessionProvider, and the associateduse*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-evidence/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
@sourcefaçade edge once aviewer-urlhome is decided (either a small local module here or anevidence-sourceaddition).
Verification
pnpm install
pnpm typecheck
pnpm lint
pnpm test