Connect evidence items to structured targets such as form fields, claims, requirements.
Find a file
tegwick d21f8d97b8
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Record federation and registrar escalation
2026-08-21 10:29:29 +02:00
.claude/rules docs: workplan-first agent guidance prose (CUST-WP-0055 T04 batch 5) 2026-07-08 19:51:22 +02:00
.forgejo/workflows Add Forgejo CI smoke workflow (enablement template) 2026-07-08 12:31:21 +02:00
docs Extract binder package from citation-evidence (EBIND-WP-0001) 2026-07-09 01:36:33 +02:00
registry Repair capability federation index 2026-08-21 08:58:31 +02:00
src Repair capability federation index 2026-08-21 08:58:31 +02:00
workplans Record federation and registrar escalation 2026-08-21 10:29:29 +02:00
.custodian-brief.md chore(consistency): sync task status from DB [auto] 2026-08-21 08:56:00 +02:00
.gitignore Extract binder package from citation-evidence (EBIND-WP-0001) 2026-07-09 01:36:33 +02:00
.nvmrc Extract binder package from citation-evidence (EBIND-WP-0001) 2026-07-09 01:36:33 +02:00
.repo-classification.yaml Add .repo-classification.yaml (CUST-WP-0050 T11 agent first-pass) 2026-06-22 17:47:36 +02:00
AGENTS.md Regenerate agent instructions from state-hub templates (CUST-WP-0055 T01) 2026-07-08 14:50:20 +02:00
CLAUDE.md Normalize agent instructions and workplan frontmatter (STATE-WP-0067) 2026-06-22 23:16:24 +02:00
eslint.config.js Extract binder package from citation-evidence (EBIND-WP-0001) 2026-07-09 01:36:33 +02:00
INTENT.md Extract binder package from citation-evidence (EBIND-WP-0001) 2026-07-09 01:36:33 +02:00
LICENSE Adopt Target Revenue Source License V1C1 (org-wide preliminary rollout) 2026-07-30 00:07:31 +02:00
package.json Extract binder package from citation-evidence (EBIND-WP-0001) 2026-07-09 01:36:33 +02:00
pnpm-lock.yaml Extract binder package from citation-evidence (EBIND-WP-0001) 2026-07-09 01:36:33 +02:00
README.md Extract binder package from citation-evidence (EBIND-WP-0001) 2026-07-09 01:36:33 +02:00
SCOPE.md Extract binder package from citation-evidence (EBIND-WP-0001) 2026-07-09 01:36:33 +02:00
tsconfig.json Extract binder package from citation-evidence (EBIND-WP-0001) 2026-07-09 01:36:33 +02:00
vitest.config.ts Extract binder package from citation-evidence (EBIND-WP-0001) 2026-07-09 01:36:33 +02:00
WORK-RECORDS.md Repair capability federation index 2026-08-21 08:58:31 +02:00

evidence-binder

@citation-evidence/evidence-binder — connect evidence items to structured targets (form fields, claims, requirements, …) and render the visual guide that ties a target, its evidence card, and the source highlight together.

This is the canonical home of the binder implementation, extracted from citation-evidence/src/binder/ (EBIND-WP-0001).

What this package owns

  • Evidence linksEvidenceLink repository + binding service (services/bindings.ts, repos/in-memory-links.ts). Two query directions: all evidence for a target and all targets for an evidence item. Emits the canonical engine bus events (EvidenceLinkCreated/Updated/Removed, EvidenceItemActivated).
  • Active state — the (activeTarget, activeEvidenceItemId, activeAnnotationId) machine and React provider (state/active.ts) that the form UI, evidence sidebar, and viewer adapter coordinate through.
  • Rect registry contract (SharedContracts §7) — a single registry into which independent renderers publish field / evidence-card / highlight rects, plus the change pumps, React hooks, and the SVG Overlay that draws the guide (visual-guide/).
  • Reference form UIFormRenderer and FieldDefinitionForm, kept as supported, target-neutral exports (see docs/adr/ADR-0001-reference-ui-surface.md).

BinderProvider composes all four concerns behind one mount.

Dependency boundary

Per citation-evidence/wiki/DependencyMap.md §2, this package may depend on citation-engine and evidence-anchor, and must not depend on evidence-source, citation-work, or the umbrella citation-evidence. The MVP slice imports only citation-engine (shared types + event bus). The boundary is enforced by eslint.config.js. Shared-contract authority stays in the umbrella wiki.

Develop

pnpm install        # links @citation-evidence/engine from ../citation-engine
pnpm test           # vitest (node + happy-dom suites)
pnpm typecheck      # tsc -b --noEmit
pnpm lint           # eslint (enforces the dependency boundary)

Requires a sibling checkout of citation-engine (see .nvmrc for the Node version). See docs/extraction-inventory.md for the extraction boundary and resolved contract deltas.