generated from coulomb/repo-seed
Implement CE-WP-0001 Foundations: TS scaffold, lint boundaries, normalize v1, fixtures
T01 Toolchain — vite + pnpm 9.15 + React 18 + strict TS (ADR-0001).
T02 Folder layout — src/{shared,engine,anchor,source,binder,work,app}/
mirroring the future subsystem split, with path aliases.
T03 Boundary lint — eslint-plugin-boundaries enforcing the dependency
edges from wiki/DependencyMap.md §4; verified by a violating fixture.
T04 Canonical normalization v1 — src/shared/text/normalize.ts with
NORMALIZE_VERSION=1; 10/10 vitest covering ligatures, CRLF, soft
hyphens (including line-break reassembly), mixed whitespace.
T05 PDF fixture corpus — 7 user-supplied German PDFs in fixtures/pdfs/
(gitignored binaries) plus a manifest with verbatim known-good
quotes and page counts, ready for CE-WP-0002 selector tests.
T06 README upgrade — umbrella README points at wiki/docs/workplans
and documents the dev workflow.
T07 ADR-0002..0006 stubs in docs/decisions/.
Toolchain end-to-end: pnpm install + lint + typecheck + test all green.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
78
README.md
78
README.md
@@ -1 +1,77 @@
|
||||
document-centered evidence workspace for capturing, managing, presenting, and re-opening citations
|
||||
# citation-evidence
|
||||
|
||||
A document-centered evidence workspace for capturing, managing, presenting,
|
||||
and re-opening citations. The umbrella over the six-package design described
|
||||
in `INTENT.md` and `wiki/ArchitectureOverview.md`.
|
||||
|
||||
During the MVP all code lives here under `src/` (see "Repository layout"
|
||||
below). Sister repos hold INTENT only — code migrates outward when each
|
||||
subsystem stabilises.
|
||||
|
||||
## Documentation
|
||||
|
||||
| Where | What |
|
||||
|------------------------|---------------------------------------------------------|
|
||||
| `INTENT.md` | Project intent, scope, the umbrella-first decision |
|
||||
| `wiki/` | PRD, Architecture, SharedContracts, DependencyMap |
|
||||
| `docs/decisions/` | ADRs (architecturally significant decisions) |
|
||||
| `workplans/` | Ralph-driven workplans that implement the MVP slice |
|
||||
| `history/` | Time-stamped assessments and post-mortems |
|
||||
|
||||
The canonical contracts are in [`wiki/SharedContracts.md`](wiki/SharedContracts.md);
|
||||
the partition boundaries are in [`wiki/DependencyMap.md`](wiki/DependencyMap.md).
|
||||
Both are referenced from every workplan and from each sister repo's INTENT.md.
|
||||
|
||||
## Repository layout
|
||||
|
||||
```
|
||||
src/
|
||||
shared/ # vocabulary, types, pure helpers → becomes part of citation-engine
|
||||
engine/ # services, repositories, event bus → becomes part of citation-engine
|
||||
anchor/ # selector creation/resolution, viewer adapter contract → becomes evidence-anchor
|
||||
source/ # ingest, fingerprint, extraction, recovery → becomes evidence-source
|
||||
binder/ # evidence-to-target binding, visual guide → becomes evidence-binder
|
||||
work/ # review UI (sidebar, viewer shell) → becomes citation-work
|
||||
app/ # the reference workspace shell → stays in citation-evidence
|
||||
```
|
||||
|
||||
The dependency-edge rules between partitions are enforced by ESLint via
|
||||
`eslint-plugin-boundaries` (see `eslint.config.js`). Extraction to a sister
|
||||
repo is intended to be a `git mv` plus a `package.json` cut — nothing more.
|
||||
|
||||
## Sister repos
|
||||
|
||||
Peers under `~/`; each holds INTENT.md only during MVP:
|
||||
|
||||
- [`~/citation-engine`](../citation-engine/) — shared model + engine services
|
||||
- [`~/evidence-anchor`](../evidence-anchor/) — selectors + adapter contract
|
||||
- [`~/evidence-source`](../evidence-source/) — ingest, representation, recovery
|
||||
- [`~/evidence-binder`](../evidence-binder/) — binding, visual guide, rect registry
|
||||
- [`~/citation-work`](../citation-work/) — review UI surfaces
|
||||
|
||||
## Dev workflow
|
||||
|
||||
Requirements: Node 20 LTS (see `.nvmrc`) and `pnpm` 9.
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
pnpm dev # vite dev server (once src/app/ has a real entry)
|
||||
pnpm test # vitest one-shot
|
||||
pnpm test:watch
|
||||
pnpm lint # eslint with boundary rules
|
||||
pnpm typecheck # tsc --noEmit
|
||||
pnpm build # production bundle
|
||||
```
|
||||
|
||||
## Workplans (Ralph)
|
||||
|
||||
Workplans drive incremental implementation through the ralph loop. The harness
|
||||
lives in `~/ralph-workplan/`; see `workplans/README.md` for the active list
|
||||
and ordering.
|
||||
|
||||
```bash
|
||||
/ralph-workplan workplans/CE-WP-0001-foundations.md
|
||||
```
|
||||
|
||||
The loop self-retires when every task in the file has `status: done` and the
|
||||
workplan's frontmatter `status: done`.
|
||||
|
||||
Reference in New Issue
Block a user