plan synthetic and smart-flow phases

This commit is contained in:
dirtydishes 2026-06-16 13:46:08 -04:00
parent d1fac6c7ec
commit eaa22de302
19 changed files with 1198 additions and 1 deletions

View file

@ -1,3 +1,13 @@
{"_type":"issue","id":"islandflow-zxh.4","title":"Smart-flow phase 04: replay evaluation and golden tests","description":"Make replay evaluation and golden tests the acceptance gate for smart-flow changes as described in docs/implementation/smart-money/04-replay-evaluation-golden-tests.md. The phase validates derived evidence/hypothesis outputs from deterministic raw streams.","acceptance_criteria":"Replay recomputes derived outputs from raw fixtures; golden signatures cover positive, abstain, false-positive, and noisy scenarios; tests are deterministic and infra-free by default; optional service-container tests are clearly gated.","spec_id":"docs/implementation/smart-money/04-replay-evaluation-golden-tests.md","status":"open","priority":1,"issue_type":"feature","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:44Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:44Z","labels":["phase","planning","smart-flow","smart-money"],"dependencies":[{"issue_id":"islandflow-zxh.4","depends_on_id":"islandflow-259.4","type":"blocks","created_at":"2026-06-16T13:39:09Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-zxh.4","depends_on_id":"islandflow-zxh","type":"parent-child","created_at":"2026-06-16T13:38:44Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0}
{"_type":"issue","id":"islandflow-259.4","title":"Synthetic market-data phase 04: replay integration","description":"Integrate synthetic runs into replay as described in docs/implementation/synthetic-market-data/04-replay-integration.md. Replay should consume generated fixtures or materialized rows with stable ordering and source/run selectors.","acceptance_criteria":"Replay can select synthetic source/run IDs; ordering uses event time, ingest time, sequence, and stable event ID; derived output signatures can be compared to manifests; infra-backed replay checks are optional and not required for the fast Bun test path.","spec_id":"docs/implementation/synthetic-market-data/04-replay-integration.md","status":"open","priority":1,"issue_type":"feature","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:43Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:43Z","labels":["phase","planning","synthetic-market-data"],"dependencies":[{"issue_id":"islandflow-259.4","depends_on_id":"islandflow-259","type":"parent-child","created_at":"2026-06-16T13:38:42Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-259.4","depends_on_id":"islandflow-zxh.3","type":"blocks","created_at":"2026-06-16T13:39:08Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0}
{"_type":"issue","id":"islandflow-zxh.3","title":"Smart-flow phase 03: hypothesis scoring and abstention","description":"Implement hypothesis scoring, alternative explanations, confidence, and abstention behavior as described in docs/implementation/smart-money/03-hypothesis-scoring-abstention.md. The phase turns evidence clusters into cautious hypotheses rather than certainty claims.","acceptance_criteria":"Scores separate evidence strength, confidence, conviction, and penalties; abstention is a first-class output with reasons; alternatives and negative evidence are preserved; compatibility projections do not become the canonical domain model.","spec_id":"docs/implementation/smart-money/03-hypothesis-scoring-abstention.md","status":"open","priority":1,"issue_type":"feature","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:41Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:41Z","labels":["phase","planning","smart-flow","smart-money"],"dependencies":[{"issue_id":"islandflow-zxh.3","depends_on_id":"islandflow-259.3","type":"blocks","created_at":"2026-06-16T13:39:07Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-zxh.3","depends_on_id":"islandflow-zxh","type":"parent-child","created_at":"2026-06-16T13:38:41Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0}
{"_type":"issue","id":"islandflow-259.3","title":"Synthetic market-data phase 03: scenarios, labels, and expected outputs","description":"Implement deterministic scenario authoring, separate ground-truth labels, and expected-output manifests as described in docs/implementation/synthetic-market-data/03-scenarios-labels-expected-outputs.md. This phase is intentionally split into smaller child issues for reviewable PRs.","acceptance_criteria":"Scenario catalog covers representative institutional, retail-attention, event-noise, volatility, hedge, and negative/no-alert conditions; labels remain separate from emitted events; expected outputs include required/forbidden evidence and false-positive penalties; generated outputs are deterministic and reviewable.","spec_id":"docs/implementation/synthetic-market-data/03-scenarios-labels-expected-outputs.md","status":"open","priority":1,"issue_type":"feature","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:40Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:40Z","labels":["phase","planning","synthetic-market-data"],"dependencies":[{"issue_id":"islandflow-259.3","depends_on_id":"islandflow-259","type":"parent-child","created_at":"2026-06-16T13:38:40Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-259.3","depends_on_id":"islandflow-zxh.2","type":"blocks","created_at":"2026-06-16T13:39:06Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":2,"comment_count":0}
{"_type":"issue","id":"islandflow-zxh.2","title":"Smart-flow phase 02: evidence clustering and features","description":"Implement evidence extraction, eligibility, clustering, and feature construction as described in docs/implementation/smart-money/02-evidence-clustering-features.md. The phase moves toward evidence clusters without overconfident participant claims.","acceptance_criteria":"Eligibility decisions, quote joins, evidence quality, clustering keys, and feature values are represented explicitly; ingest remains normalization-first; features preserve traceable evidence refs; stale/wide/noisy inputs can be rejected or down-weighted with reasons.","spec_id":"docs/implementation/smart-money/02-evidence-clustering-features.md","status":"open","priority":1,"issue_type":"feature","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:39Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:39Z","labels":["phase","planning","smart-flow","smart-money"],"dependencies":[{"issue_id":"islandflow-zxh.2","depends_on_id":"islandflow-259.2","type":"blocks","created_at":"2026-06-16T13:39:05Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-zxh.2","depends_on_id":"islandflow-zxh","type":"parent-child","created_at":"2026-06-16T13:38:38Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":2,"comment_count":0}
{"_type":"issue","id":"islandflow-259.2","title":"Synthetic market-data phase 02: manifests, fixtures, and CLI","description":"Implement manifest, fixture, and CLI support for deterministic synthetic runs as described in docs/implementation/synthetic-market-data/02-manifests-fixtures-cli.md. The phase turns the deterministic engine into reusable test/demo artifacts.","acceptance_criteria":"CLI can generate fixtures and expected-output-ready manifests from seed bundles and profiles; manifests pin generator version, seed, parameter hash, event hashes, and replay ordering; fixture helpers support infra-free Bun tests; generated artifacts avoid embedding hidden labels in market events.","spec_id":"docs/implementation/synthetic-market-data/02-manifests-fixtures-cli.md","status":"open","priority":1,"issue_type":"feature","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:37Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:37Z","labels":["phase","planning","synthetic-market-data"],"dependencies":[{"issue_id":"islandflow-259.2","depends_on_id":"islandflow-259","type":"parent-child","created_at":"2026-06-16T13:38:37Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-259.2","depends_on_id":"islandflow-zxh.1","type":"blocks","created_at":"2026-06-16T13:39:04Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":2,"comment_count":0}
{"_type":"issue","id":"islandflow-zxh.1","title":"Smart-flow phase 01: contracts and vocabulary","description":"Implement the contract and naming foundation described in docs/implementation/smart-money/01-contracts-vocabulary.md. The phase separates facts, evidence, hypotheses, confidence, abstention, and user-facing insight projections before classifier behavior is expanded.","acceptance_criteria":"Canonical contracts distinguish observations, evidence clusters, hypotheses, confidence vectors, abstention reasons, and insight projections; legacy smart-money naming is compatibility-only where needed; version fields are present; migration risks and aliases are documented.","spec_id":"docs/implementation/smart-money/01-contracts-vocabulary.md","status":"open","priority":1,"issue_type":"feature","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:36Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:36Z","labels":["phase","planning","smart-flow","smart-money"],"dependencies":[{"issue_id":"islandflow-zxh.1","depends_on_id":"islandflow-259.1","type":"blocks","created_at":"2026-06-16T13:39:03Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-zxh.1","depends_on_id":"islandflow-zxh","type":"parent-child","created_at":"2026-06-16T13:38:35Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0}
{"_type":"issue","id":"islandflow-259.1","title":"Synthetic market-data phase 01: deterministic spine","description":"Implement the deterministic synthetic market-data foundation described in docs/implementation/synthetic-market-data/01-deterministic-spine.md. The phase extracts generation into a seeded package/API that emits canonical market events with provenance while keeping labels separate.","acceptance_criteria":"Seeded generation is byte/hash stable for fixed inputs; emitted events use canonical OptionPrint, OptionNBBO, EquityPrint, and EquityQuote contracts; provenance metadata includes run/seed/parameter context; hidden labels are not embedded in market events; early tests run without Docker, ClickHouse, NATS, or Redis.","spec_id":"docs/implementation/synthetic-market-data/01-deterministic-spine.md","status":"open","priority":1,"issue_type":"feature","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:34Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:34Z","labels":["phase","planning","synthetic-market-data"],"dependencies":[{"issue_id":"islandflow-259.1","depends_on_id":"islandflow-259","type":"parent-child","created_at":"2026-06-16T13:38:33Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":0,"dependent_count":1,"comment_count":0}
{"_type":"issue","id":"islandflow-zxh","title":"Plan smart-money to smart-flow implementation phases","description":"Track the phase-by-phase implementation plan split from docs/plans/smart-flow-architecture-review.md. Durable roadmap: docs/implementation/smart-money/00-roadmap.md. This epic covers evidence-backed smart-flow contracts, clustering, hypothesis scoring, replay evaluation, API/UI explainability, and future calibration.","acceptance_criteria":"Phase docs exist under docs/implementation/smart-money; child phase issues link to their docs; blocker dependencies reflect the planned implementation order; no application code is implemented as part of this planning epic.","spec_id":"docs/implementation/smart-money/00-roadmap.md","status":"open","priority":1,"issue_type":"epic","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:32Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:32Z","labels":["planning","smart-flow","smart-money"],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-259","title":"Plan synthetic market-data implementation phases","description":"Track the phase-by-phase implementation plan split from docs/plans/synthetic-market-data-architecture-review.md. Durable roadmap: docs/implementation/synthetic-market-data/00-roadmap.md. This epic covers deterministic synthetic event generation with canonical market event types, separate labels/manifests, replay integration, demo/load profiles, and future historical calibration.","acceptance_criteria":"Phase docs exist under docs/implementation/synthetic-market-data; child phase issues link to their docs; blocker dependencies reflect the planned implementation order; no application code is implemented as part of this planning epic.","spec_id":"docs/implementation/synthetic-market-data/00-roadmap.md","status":"open","priority":1,"issue_type":"epic","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:30Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:30Z","labels":["planning","synthetic-market-data"],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-0e3","title":"Fix PR 23 CI failures","description":"PR 23 is failing the Forgejo CI Validate workflow. Reproduce the failing gates locally, fix the underlying formatting/lint/typecheck/test/build issues, update the PR branch, and confirm the remote check passes.","status":"closed","priority":1,"issue_type":"bug","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-06-14T19:35:07Z","created_by":"dirtydishes","updated_at":"2026-06-14T19:37:01Z","started_at":"2026-06-14T19:35:12Z","closed_at":"2026-06-14T19:37:01Z","close_reason":"Local Validate workflow passes after applying formatter output and syncing the Docker workspace snapshot.","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-9w7","title":"Allow local dev origins on hosted API","description":"Local bun run dev:web and desktop-local point at the hosted API, but browser requests from http://127.0.0.1:3000 are blocked because the API omits CORS headers and returns 404 for OPTIONS preflight. Add API-side CORS handling, validate local web/desktop browser access, and deploy the API fix.","acceptance_criteria":"API responses include Access-Control-Allow-Origin for allowed local/dev origins; OPTIONS preflight succeeds; bun run dev:web reaches hosted REST/WS endpoints from a browser; bun run dev:desktop local mode reaches the backend through the local web UI; tests/build pass; fix is deployed to api.flow.deltaisland.io.","status":"closed","priority":1,"issue_type":"bug","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-06-13T15:04:19Z","created_by":"dirtydishes","updated_at":"2026-06-13T15:29:42Z","started_at":"2026-06-13T15:04:26Z","closed_at":"2026-06-13T15:29:42Z","close_reason":"Hosted API now reflects allowed local dev origins and handles OPTIONS preflight; local web and desktop dev runners both reach https://api.flow.deltaisland.io; API tests, typecheck, and web build passed.","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-xkq","title":"Rebuild production dashboard options news around mock9 aesthetic","description":"Reconstruct the production web UI for Dashboard, Options, and News around the mock9 through mock12 dense terminal aesthetic while preserving production data subscriptions, drawers, virtualization, route helpers, redirects, and validation.","status":"closed","priority":1,"issue_type":"feature","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-06-13T14:07:34Z","created_by":"dirtydishes","updated_at":"2026-06-13T14:26:46Z","started_at":"2026-06-13T14:07:53Z","closed_at":"2026-06-13T14:26:46Z","close_reason":"Rebuilt Dashboard, Options, and News around the dense mock9 to mock12 production aesthetic; tests and build passed, and Browser visual inspection was documented as blocked by the unavailable in-app browser backend.","dependency_count":0,"dependent_count":0,"comment_count":0}
@ -23,7 +33,7 @@
{"_type":"issue","id":"islandflow-k4f","title":"Gate deploy script on docker workspace snapshot sync","description":"Prevent frozen-lockfile build failures during deploy by adding a local preflight in scripts/deploy.ts that runs bun run check:docker-workspace and aborts with a clear sync+commit remediation message when stale.","status":"closed","priority":1,"issue_type":"task","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-05-15T23:01:44Z","created_by":"dirtydishes","updated_at":"2026-05-15T23:04:11Z","started_at":"2026-05-15T23:01:48Z","closed_at":"2026-05-15T23:04:11Z","close_reason":"Closed","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-xll","title":"Fix bun.lock drift causing frozen-lockfile Docker build failures","description":"Docker image builds fail in multiple targets (candles, web, ingest services) because bun install --frozen-lockfile detects lockfile changes. Update workspace lockfile to match manifests and verify frozen install succeeds.","status":"closed","priority":1,"issue_type":"bug","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-05-15T22:52:38Z","created_by":"dirtydishes","updated_at":"2026-05-15T22:55:23Z","started_at":"2026-05-15T22:52:40Z","closed_at":"2026-05-15T22:55:23Z","close_reason":"Closed","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-9nd","title":"Hosted synthetic tape redesign with internal control surface","description":"Implement hosted synthetic market redesign with shared deterministic regime engine, internal JetStream KV control plane, ingest coupling across options and equities, and an internal bottom-right synthetic-control drawer with Next proxy routes. Preserve the six public smart-money categories while adding hidden subtype families, soft coverage accounting, and backend-only admin endpoints.\n","status":"closed","priority":1,"issue_type":"feature","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-05-14T01:25:02Z","created_by":"dirtydishes","updated_at":"2026-05-14T02:10:03Z","started_at":"2026-05-14T01:25:09Z","closed_at":"2026-05-14T02:10:03Z","close_reason":"Completed","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-9dz","title":"Tune synthetic smart-money scenario coverage","description":"Redesign synthetic smart-money option prints so the emitted scenarios trigger each classifier category more consistently while staying directionally plausible. Focus on scenario mix, DTE/moneyness, price placement, and event/structure context so the Electron demo reliably shows institutional directional, retail whale, event-driven, vol seller, arbitrage, and hedge reactive hits.\n","status":"in_progress","priority":1,"issue_type":"task","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-05-13T21:36:37Z","created_by":"dirtydishes","updated_at":"2026-05-13T21:36:41Z","started_at":"2026-05-13T21:36:41Z","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-9dz","title":"Tune synthetic smart-money scenario coverage","description":"Redesign synthetic smart-money option prints so the emitted scenarios trigger each classifier category more consistently while staying directionally plausible. Focus on scenario mix, DTE/moneyness, price placement, and event/structure context so the Electron demo reliably shows institutional directional, retail whale, event-driven, vol seller, arbitrage, and hedge reactive hits.\n","notes":"2026-06-16 planning split: canonical phase tracking now lives under islandflow-259 and islandflow-zxh, with scenario/label work centered on docs/implementation/synthetic-market-data/03-scenarios-labels-expected-outputs.md and demo/load work on docs/implementation/synthetic-market-data/05-demo-load-profiles.md. Re-scope or close this issue after deterministic foundations are in place so it does not bypass the new phase dependency graph.","status":"in_progress","priority":1,"issue_type":"task","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-05-13T21:36:37Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:43:59Z","started_at":"2026-05-13T21:36:41Z","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-zuf","title":"Fix Home to Tape tab navigation freeze","description":"Home-to-Tape navigation becomes unresponsive because TerminalAppShell enters a live-mode rerender loop. The pinned-evidence prune effect writes new Map instances even when contents are unchanged, which can retrigger state updates indefinitely on the Home route where alert evidence prefetch is active. Make pruning idempotent and add regression coverage.\n","status":"closed","priority":1,"issue_type":"bug","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-05-13T15:05:56Z","created_by":"dirtydishes","updated_at":"2026-05-13T15:08:01Z","started_at":"2026-05-13T15:06:06Z","closed_at":"2026-05-13T15:08:01Z","close_reason":"Completed","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-9ug","title":"Electron desktop shell for hosted Islandflow","description":"Build a macOS-first Electron desktop shell workspace that loads hosted Islandflow in a locked-down BrowserWindow, adds Bun-first dev/package scripts, documents the workflow, and preserves the existing remote API/WS contract.\n","status":"closed","priority":1,"issue_type":"feature","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-05-13T13:11:40Z","created_by":"dirtydishes","updated_at":"2026-05-13T13:20:57Z","started_at":"2026-05-13T13:12:03Z","closed_at":"2026-05-13T13:20:57Z","close_reason":"Completed","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-sh1","title":"Fix live websocket stale lag and reconnect loop","description":"Investigate and fix API live consumer lag causing stale timestamps, feed-behind status, and reconnect loops. Optimize live cache persistence path, add lag telemetry/alerts, and validate in runtime.","status":"closed","priority":1,"issue_type":"bug","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-05-04T17:04:34Z","created_by":"dirtydishes","updated_at":"2026-05-04T17:09:44Z","started_at":"2026-05-04T17:04:38Z","closed_at":"2026-05-04T17:09:44Z","close_reason":"Completed: optimized live cache persistence path, added lag telemetry, deployed api via docker compose on di, verified ws freshness and low hotFeedLagMs","dependency_count":0,"dependent_count":0,"comment_count":0}
@ -32,6 +42,16 @@
{"_type":"issue","id":"islandflow-ayo","title":"Drop stale backlog events from live fanout","description":"Follow-up to live freshness rollout: /ws/live was still fanning out stale backlog events for freshness-gated channels, which kept tape panes in Live feed behind despite active synthetic ingest. Gate fanout and cache ingest by freshness for options/nbbo/equities/flow.","status":"closed","priority":1,"issue_type":"bug","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-04-28T21:26:39Z","created_by":"dirtydishes","updated_at":"2026-04-28T21:26:44Z","started_at":"2026-04-28T21:26:44Z","closed_at":"2026-04-28T21:26:44Z","close_reason":"Completed","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-0v6","title":"Fix tape freshness, NBBO coverage, pause controls, and filter popup","description":"Implement the tape fixes requested for synthetic options notional sizing, strict live freshness, live-mode pause/resume behavior, stronger NBBO snapshot coverage, and moving flow filters behind a popup. Includes server-side live cache changes, web terminal state/UI changes, and tests for synthetic pricing, live snapshot freshness/NBBO retention, and live pause/filter interactions.","status":"closed","priority":1,"issue_type":"task","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-04-28T21:02:52Z","created_by":"dirtydishes","updated_at":"2026-04-28T21:13:38Z","started_at":"2026-04-28T21:02:57Z","closed_at":"2026-04-28T21:13:38Z","close_reason":"Completed","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-e4r","title":"Implement smart-money flow filtering and synthetic firehose modes","description":"Implement the approved multi-surface plan for named synthetic market profiles, options raw-vs-signal filtering, live/API filter contracts, Tape page client-side flow filters, firehose-readiness improvements, tests, and README updates.","status":"closed","priority":1,"issue_type":"feature","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-04-28T20:10:49Z","created_by":"dirtydishes","updated_at":"2026-04-28T20:29:29Z","started_at":"2026-04-28T20:10:53Z","closed_at":"2026-04-28T20:29:29Z","close_reason":"Implemented synthetic market profiles, options signal-path filtering, signal-aware API/replay contracts, Tape page filters, tests, and README updates. Follow-up tracked in islandflow-biq.","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-zxh.5.2","title":"Split smart-flow phase 05b: UI explainability surfaces","description":"PR-sized child of smart-flow phase 05. Rework UI surfaces around evidence quality, confidence versus conviction, alternatives, abstention, and why-not context.","acceptance_criteria":"UI explains why a hypothesis exists, why it may be weak, and why the system abstained; evidence refs and alternatives are inspectable; copy avoids overconfident smart-money claims.","spec_id":"docs/implementation/smart-money/05-api-ui-explainability.md","status":"open","priority":2,"issue_type":"task","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:39:02Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:39:02Z","labels":["phase","phase-split","planning","smart-flow","smart-money"],"dependencies":[{"issue_id":"islandflow-zxh.5.2","depends_on_id":"islandflow-zxh.5","type":"parent-child","created_at":"2026-06-16T13:39:01Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-zxh.5.2","depends_on_id":"islandflow-zxh.5.1","type":"blocks","created_at":"2026-06-16T13:39:20Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-zxh.5.1","title":"Split smart-flow phase 05a: evidence API and websocket surfaces","description":"PR-sized child of smart-flow phase 05. Expose evidence, hypotheses, insights, alternatives, and abstention through API and websocket surfaces.","acceptance_criteria":"New or aliased endpoints expose typed evidence/hypothesis/insight payloads; legacy smart-money surfaces are compatibility aliases; responses include version, refs, abstention, and alternative explanation fields.","spec_id":"docs/implementation/smart-money/05-api-ui-explainability.md","status":"open","priority":2,"issue_type":"task","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:39:00Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:39:00Z","labels":["phase","phase-split","planning","smart-flow","smart-money"],"dependencies":[{"issue_id":"islandflow-zxh.5.1","depends_on_id":"islandflow-259.5","type":"blocks","created_at":"2026-06-16T13:39:19Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-zxh.5.1","depends_on_id":"islandflow-zxh.5","type":"parent-child","created_at":"2026-06-16T13:39:00Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0}
{"_type":"issue","id":"islandflow-zxh.3.2","title":"Split smart-flow phase 03b: abstention and insight projection","description":"PR-sized child of smart-flow phase 03. Add abstention, alternatives, and compatibility insight projections without making projections canonical.","acceptance_criteria":"Abstention reasons are first-class; alternative explanations are exposed; SmartFlowInsight projection is derived from hypotheses and remains separate from canonical evidence/hypothesis events.","spec_id":"docs/implementation/smart-money/03-hypothesis-scoring-abstention.md","status":"open","priority":2,"issue_type":"task","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:59Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:59Z","labels":["phase","phase-split","planning","smart-flow","smart-money"],"dependencies":[{"issue_id":"islandflow-zxh.3.2","depends_on_id":"islandflow-zxh.3","type":"parent-child","created_at":"2026-06-16T13:38:58Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-zxh.3.2","depends_on_id":"islandflow-zxh.3.1","type":"blocks","created_at":"2026-06-16T13:39:18Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-zxh.3.1","title":"Split smart-flow phase 03a: hypothesis score vectors","description":"PR-sized child of smart-flow phase 03. Convert evidence clusters into typed hypothesis score vectors with policy/model versions.","acceptance_criteria":"Hypothesis score vectors include evidence strength, direction, confidence, penalties, and policy/model version; scoring avoids participant-identity certainty and preserves negative evidence.","spec_id":"docs/implementation/smart-money/03-hypothesis-scoring-abstention.md","status":"open","priority":2,"issue_type":"task","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:57Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:57Z","labels":["phase","phase-split","planning","smart-flow","smart-money"],"dependencies":[{"issue_id":"islandflow-zxh.3.1","depends_on_id":"islandflow-259.3","type":"blocks","created_at":"2026-06-16T13:39:18Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-zxh.3.1","depends_on_id":"islandflow-zxh.3","type":"parent-child","created_at":"2026-06-16T13:38:57Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0}
{"_type":"issue","id":"islandflow-zxh.2.2","title":"Split smart-flow phase 02b: clustering and feature vectors","description":"PR-sized child of smart-flow phase 02. Build evidence clusters and feature vectors from explicit facts while preserving lineage.","acceptance_criteria":"Clusters have deterministic keys and windows; features distinguish measured facts from inferred structure; every feature value can trace back to source evidence refs.","spec_id":"docs/implementation/smart-money/02-evidence-clustering-features.md","status":"open","priority":2,"issue_type":"task","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:56Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:56Z","labels":["phase","phase-split","planning","smart-flow","smart-money"],"dependencies":[{"issue_id":"islandflow-zxh.2.2","depends_on_id":"islandflow-zxh.2","type":"parent-child","created_at":"2026-06-16T13:38:55Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-zxh.2.2","depends_on_id":"islandflow-zxh.2.1","type":"blocks","created_at":"2026-06-16T13:39:17Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-zxh.2.1","title":"Split smart-flow phase 02a: eligibility and evidence facts","description":"PR-sized child of smart-flow phase 02. Extract direct observations, quote joins, execution context, and eligibility decisions as explicit evidence facts.","acceptance_criteria":"Evidence facts preserve raw refs and quote context; eligibility decisions carry accept/reject/down-weight reasons; stale quotes, wide spreads, and noisy conditions are represented without hypothesis language.","spec_id":"docs/implementation/smart-money/02-evidence-clustering-features.md","status":"open","priority":2,"issue_type":"task","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:54Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:54Z","labels":["phase","phase-split","planning","smart-flow","smart-money"],"dependencies":[{"issue_id":"islandflow-zxh.2.1","depends_on_id":"islandflow-259.2","type":"blocks","created_at":"2026-06-16T13:39:16Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-zxh.2.1","depends_on_id":"islandflow-zxh.2","type":"parent-child","created_at":"2026-06-16T13:38:54Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0}
{"_type":"issue","id":"islandflow-259.3.2","title":"Split synthetic phase 03b: expected-output manifests","description":"PR-sized child of synthetic phase 03. Add expected-output manifest entries and comparison hooks for generated scenarios.","acceptance_criteria":"Expected-output manifests capture derived event expectations, alert/no-alert outcomes, evidence requirements, and false-positive penalties; comparison output is deterministic and focused for review.","spec_id":"docs/implementation/synthetic-market-data/03-scenarios-labels-expected-outputs.md","status":"open","priority":2,"issue_type":"task","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:53Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:53Z","labels":["phase","phase-split","planning","synthetic-market-data"],"dependencies":[{"issue_id":"islandflow-259.3.2","depends_on_id":"islandflow-259.3","type":"parent-child","created_at":"2026-06-16T13:38:52Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-259.3.2","depends_on_id":"islandflow-259.3.1","type":"blocks","created_at":"2026-06-16T13:39:15Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-259.3.1","title":"Split synthetic phase 03a: scenario catalog and labels","description":"PR-sized child of synthetic phase 03. Define the deterministic scenario catalog and separate label records without changing emitted market event contracts.","acceptance_criteria":"Scenario definitions are deterministic and named; labels are stored separately from market events; each label records run/scenario/event refs, expected class/direction/confidence band, and required or forbidden evidence.","spec_id":"docs/implementation/synthetic-market-data/03-scenarios-labels-expected-outputs.md","status":"open","priority":2,"issue_type":"task","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:51Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:51Z","labels":["phase","phase-split","planning","synthetic-market-data"],"dependencies":[{"issue_id":"islandflow-259.3.1","depends_on_id":"islandflow-259.3","type":"parent-child","created_at":"2026-06-16T13:38:51Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-259.3.1","depends_on_id":"islandflow-zxh.2","type":"blocks","created_at":"2026-06-16T13:39:14Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0}
{"_type":"issue","id":"islandflow-zxh.5","title":"Smart-flow phase 05: API/UI explainability","description":"Expose evidence-backed smart-flow results through API, websocket, and UI explainability surfaces as described in docs/implementation/smart-money/05-api-ui-explainability.md. This comes after replay-validated contracts and scoring behavior exist.","acceptance_criteria":"API/WS surfaces expose evidence, hypotheses, insights, alternatives, and abstention clearly; UI distinguishes evidence quality, confidence, conviction, and why-not signals; legacy endpoints remain aliases only where needed; replay/golden checks support changed projections.","spec_id":"docs/implementation/smart-money/05-api-ui-explainability.md","status":"open","priority":2,"issue_type":"feature","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:47Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:47Z","labels":["phase","planning","smart-flow","smart-money"],"dependencies":[{"issue_id":"islandflow-zxh.5","depends_on_id":"islandflow-259.5","type":"blocks","created_at":"2026-06-16T13:39:11Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-zxh.5","depends_on_id":"islandflow-zxh","type":"parent-child","created_at":"2026-06-16T13:38:47Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0}
{"_type":"issue","id":"islandflow-259.5","title":"Synthetic market-data phase 05: demo and load profiles","description":"Implement named deterministic demo and load profiles as described in docs/implementation/synthetic-market-data/05-demo-load-profiles.md. This comes after foundations, manifests, scenarios, and replay are in place.","acceptance_criteria":"Demo profiles select named deterministic runs/scenarios instead of ambient randomness; load profiles scale rates without changing event semantics; live/demo emitters remain thin consumers of the synthetic package; UI/demo controls do not precede deterministic foundations.","spec_id":"docs/implementation/synthetic-market-data/05-demo-load-profiles.md","status":"open","priority":2,"issue_type":"feature","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:46Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:46Z","labels":["phase","planning","synthetic-market-data"],"dependencies":[{"issue_id":"islandflow-259.5","depends_on_id":"islandflow-259","type":"parent-child","created_at":"2026-06-16T13:38:45Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-259.5","depends_on_id":"islandflow-zxh.4","type":"blocks","created_at":"2026-06-16T13:39:10Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":3,"comment_count":0}
{"_type":"issue","id":"islandflow-v6f","title":"Virtualize dashboard priority board","description":"Improve the root dashboard Priority Board readability and scrolling. Remove the redundant packet column, show packet IDs as secondary evidence metadata without the flowpacket prefix, rename the confusing Decision column, and use TanStack virtual scrolling for the row list.","status":"closed","priority":2,"issue_type":"task","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-06-15T20:58:29Z","created_by":"dirtydishes","updated_at":"2026-06-15T21:01:37Z","started_at":"2026-06-15T20:58:34Z","closed_at":"2026-06-15T21:01:37Z","close_reason":"Completed Priority Board virtualization, copy cleanup, and validation.","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-h0k","title":"Polish dashboard route","description":"Final polish pass for the root dashboard route. Align the command surface to the existing Islandflow terminal design system, tighten visual and copy details, and validate responsive behavior and build quality.","status":"closed","priority":2,"issue_type":"task","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-06-15T20:04:12Z","created_by":"dirtydishes","updated_at":"2026-06-15T20:09:14Z","started_at":"2026-06-15T20:04:13Z","closed_at":"2026-06-15T20:09:14Z","close_reason":"Dashboard route polish shipped on dedicated branch: route title hierarchy cleaned up, command rail isolated from legacy header styles, mobile overflow/touch behavior added, and build/tests passed.","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-j30","title":"Polish dashboard command header","description":"Live design polish for the dashboard command header. Simplify the page header copy to Dashboard, keep status and scope in one compact line, and replace the vague empty-filter copy with a clearer all-flow state.","status":"closed","priority":2,"issue_type":"task","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-06-15T19:29:23Z","created_by":"dirtydishes","updated_at":"2026-06-15T19:31:00Z","started_at":"2026-06-15T19:29:28Z","closed_at":"2026-06-15T19:31:00Z","close_reason":"Dashboard command header polish shipped: simplified title, clarified scope/filter language, compacted status rail, and validated with web build plus focused terminal tests.","dependency_count":0,"dependent_count":0,"comment_count":0}
@ -150,6 +170,8 @@
{"_type":"issue","id":"islandflow-zsy","title":"Expose Forgejo SSH on a direct DNS hostname","description":"git.deltaisland.io currently resolves through Cloudflare's proxy, so SSH on port 2222 does not complete even though the Forgejo container is listening on the host. If SSH-based git/beads workflows are desired, add a DNS-only hostname (or adjust the existing record) that points directly at the server for Forgejo SSH.","status":"open","priority":3,"issue_type":"task","created_at":"2026-05-17T10:34:06Z","created_by":"delta","updated_at":"2026-05-17T10:34:06Z","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-38p","title":"Add native deployment unit templates and rollback helpers","description":"The deploy helper now supports --runtime native, but the repo still relies on operator-managed systemd units and manual rollback. Add checked-in native deployment templates or provisioning guidance for the expected units, and consider lightweight rollback/smoke-test helpers once the host-native path is exercised on the real VPS.","status":"open","priority":3,"issue_type":"task","owner":"dishes@dpdrm.com","created_at":"2026-05-15T23:46:42Z","created_by":"dirtydishes","updated_at":"2026-05-15T23:46:42Z","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-575","title":"Document smart-money event calendar env","description":"Document smart-money event-calendar environment configuration in env examples and README.\n","status":"closed","priority":3,"issue_type":"task","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-05-05T06:57:14Z","created_by":"dirtydishes","updated_at":"2026-05-05T06:57:57Z","started_at":"2026-05-05T06:57:17Z","closed_at":"2026-05-05T06:57:57Z","close_reason":"Documented event-calendar env variables","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-zxh.6","title":"Future smart-flow phase 99: calibration","description":"Track future smart-flow calibration and research-grade validation as described in docs/implementation/smart-money/99-future-calibration.md. This is explicitly not an MVP dependency.","acceptance_criteria":"Future calibration is separated from MVP scoring; calibration datasets, policy versioning, and evaluation metrics are specified before implementation; abstention and confidence semantics remain auditable.","spec_id":"docs/implementation/smart-money/99-future-calibration.md","status":"open","priority":4,"issue_type":"task","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:50Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:50Z","labels":["future","planning","smart-flow","smart-money"],"dependencies":[{"issue_id":"islandflow-zxh.6","depends_on_id":"islandflow-259.6","type":"blocks","created_at":"2026-06-16T13:39:13Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-zxh.6","depends_on_id":"islandflow-zxh","type":"parent-child","created_at":"2026-06-16T13:38:50Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-zxh.6","depends_on_id":"islandflow-zxh.5","type":"blocks","created_at":"2026-06-16T13:39:12Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":2,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-259.6","title":"Future synthetic market-data phase 99: historical calibration","description":"Track future historical calibration for the synthetic generator as described in docs/implementation/synthetic-market-data/99-future-historical-calibration.md. This is explicitly not an MVP dependency.","acceptance_criteria":"Historical calibration remains outside the MVP blocker chain; calibration inputs, privacy/market-data constraints, and parameter fitting strategy are documented before implementation; deterministic synthetic foundations continue to work without historical data.","spec_id":"docs/implementation/synthetic-market-data/99-future-historical-calibration.md","status":"open","priority":4,"issue_type":"task","owner":"dishes@dpdrm.com","created_at":"2026-06-16T17:38:49Z","created_by":"dirtydishes","updated_at":"2026-06-16T17:38:49Z","labels":["future","planning","synthetic-market-data"],"dependencies":[{"issue_id":"islandflow-259.6","depends_on_id":"islandflow-259","type":"parent-child","created_at":"2026-06-16T13:38:48Z","created_by":"dirtydishes","metadata":"{}"},{"issue_id":"islandflow-259.6","depends_on_id":"islandflow-259.5","type":"blocks","created_at":"2026-06-16T13:39:12Z","created_by":"dirtydishes","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0}
{"_type":"issue","id":"islandflow-iwg","title":"Summarize June 9 git activity for standup","description":"Create the daily standup summary for git activity on 2026-06-09, grounded in commits and touched files, and save the report in docs/general.","status":"closed","priority":4,"issue_type":"task","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-06-10T13:02:19Z","created_by":"dirtydishes","updated_at":"2026-06-10T13:04:44Z","started_at":"2026-06-10T13:02:30Z","closed_at":"2026-06-10T13:04:44Z","close_reason":"Created docs/general/2026-06-10-0902-standup-summary-2026-06-09.html with a git-grounded summary of June 9 activity.","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-19f","title":"Summarize June 7 git activity for standup","description":"Create the daily standup summary for yesterday's git activity, grounded in commits and changed files, and save the report in docs/general.","status":"closed","priority":4,"issue_type":"task","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-06-08T13:01:02Z","created_by":"dirtydishes","updated_at":"2026-06-08T13:03:00Z","started_at":"2026-06-08T13:01:15Z","closed_at":"2026-06-08T13:03:00Z","close_reason":"Standup summary for 2026-06-07 created in docs/general with grounded git-history validation.","dependency_count":0,"dependent_count":0,"comment_count":0}
{"_type":"issue","id":"islandflow-a1m","title":"Publish June 3 standup summary","description":"Why this issue exists and what needs to be done:\\n- Produce the daily standup summary for git activity on 2026-06-03.\\n- Ground every statement in commits and touched files only.\\n- Save the HTML artifact under docs/general and complete the automation handoff workflow.","status":"closed","priority":4,"issue_type":"task","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-06-04T13:02:04Z","created_by":"dirtydishes","updated_at":"2026-06-04T13:03:43Z","started_at":"2026-06-04T13:03:34Z","closed_at":"2026-06-04T13:03:43Z","close_reason":"Created docs/general/2026-06-04-standup-summary-2026-06-03.html with a commit-grounded summary of June 3 git activity.","dependency_count":0,"dependent_count":0,"comment_count":0}