evidence-binder/workplans/EBIND-WP-0001-intent-placeholder.md
tegwick d3ae130c1a
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
docs: workplan-first agent guidance prose (CUST-WP-0055 T04 batch 5)
2026-07-08 19:51:22 +02:00

5.1 KiB

id type title domain repo status owner topic_slug created updated state_hub_workstream_id
EBIND-WP-0001 workplan Extract evidence-binder from citation-evidence infotech evidence-binder ready codex citation_evidence_mvp 2026-06-21 2026-07-08 405d789c-0e0b-4764-89ed-0f6140a143e7

EBIND-WP-0001 — Extract evidence-binder from citation-evidence

evidence-binder is still INTENT-only in this repo, but the current implementation already exists upstream in ../citation-evidence/src/binder/. That slice includes a binding service, in-memory link repository, active-state machine, rect registry and overlay, provider wiring, and a small form-oriented reference UI. This workplan turns the placeholder into a concrete extraction plan that preserves the canonical contracts in ../citation-evidence/wiki/SharedContracts.md and the allowed edges in ../citation-evidence/wiki/DependencyMap.md.

Lock Extraction Boundary And Contract Deltas

id: EBIND-WP-0001-T01
status: todo
priority: high
state_hub_task_id: "f2abe7f8-089b-4719-a739-18dc3224e9eb"

Review the upstream binder slice (services/, repos/, state/, visual-guide/, BinderProvider.tsx, FormRenderer.tsx) against SharedContracts.md sections 2.4, 2.5, 4, and 7 plus DependencyMap.md section 2. Capture and resolve remaining deltas before extraction, including INTENT drift around EvidenceTarget naming, the dropped derived-from / needs-check relation values, and any event vocabulary that is not yet canonicalized.

Stand Up Standalone Package, Tests, And Repo Metadata

id: EBIND-WP-0001-T02
status: todo
priority: high
state_hub_task_id: "122a254f-6490-4211-bde7-ce515c72c36a"

Create the standalone package and test harness that this repo currently lacks, then refresh repo-local metadata so it stops looking like a placeholder. This includes package entrypoints, test scripts, baseline CI/tooling, README.md, SCOPE.md, and the stale capability metadata in registry/indexes/capabilities.yaml.

Extract Headless Binding Model And Repository

id: EBIND-WP-0001-T03
status: todo
priority: high
state_hub_task_id: "d58501a4-b2e5-45fa-b504-e2c37ca48e68"

Move the headless binding primitives from ../citation-evidence/src/binder/repos/in-memory-links.ts and ../citation-evidence/src/binder/services/bindings.ts with their tests. Keep the current query directions, default relation/status behavior, and event-bus emission semantics while staying independent of persistence, viewer internals, citation-work, and evidence-source.

Extract Active State And Provider Composition

id: EBIND-WP-0001-T04
status: todo
priority: high
state_hub_task_id: "b6f96550-c4a6-4ce1-bfde-4c91d33da687"

Extract state/active.ts and BinderProvider.tsx so the binder owns the active target / active evidence / active annotation state triple plus the composition root that wires link storage, binding services, rect registry, and engine bus access. Preserve initialLinks restore behavior and bus injection without introducing a dependency on umbrella app code.

Extract Rect Registry, Change Pumps, And Overlay

id: EBIND-WP-0001-T05
status: todo
priority: high
state_hub_task_id: "58b55a71-eee4-4f3d-9bcd-7c3678320dd1"

Move the visual-guide contract from ../citation-evidence/src/binder/visual-guide/, including rect-registry.ts, events.ts, react-hooks.ts, Overlay.tsx, and their tests. Preserve the section 7 rect kinds, invalidate/version semantics, requestAnimationFrame throttling, and the contract that independent renderers publish rects into one registry.

Decide Binder-Owned Reference UI Surface

id: EBIND-WP-0001-T06
status: todo
priority: medium
state_hub_task_id: "39164219-5f35-49cf-874a-00fd0c902007"

Decide whether FormRenderer.tsx and FieldDefinitionForm.tsx remain binder exports, move into examples, or shift into an application layer. Whatever the outcome, keep binder form-friendly but target-neutral, avoid a citation-work dependency, and document which React surfaces are supported versus merely illustrative.

Cut Over Umbrella Integration And Verify Boundaries

id: EBIND-WP-0001-T07
status: todo
priority: high
state_hub_task_id: "efceaee5-43a8-4ecf-9025-a5843eecada0"

Update citation-evidence to consume the extracted binder package instead of owning src/binder/ directly, or otherwise enforce the same boundary through package-level imports during a staged cutover. Verify there are no forbidden edges to citation-evidence behavior, citation-work, or evidence-source, and keep shared-contract changes flowing through the umbrella docs until the cutover is complete.

Exit Criteria

id: EBIND-WP-0001-T08
status: todo
priority: medium
state_hub_task_id: "2c89dfcb-1526-46d9-936d-8f97f4e48d76"

Exit when this repo exports the binder service, active-state flow, and visual-guide rect-registry contract with passing tests; repo docs and metadata match the canonical shared contracts; and the umbrella app can define a target, link evidence, activate evidence, and draw the field-to-card-to-highlight overlay without relying on the upstream src/binder/ implementation.