hecks

Unbuilt

Status: snapshot, compiled 2026-08-18. Items may have shipped since. Read it as a list of what was unbuilt that day, not as the current backlog.

Every planned, proposed, and not-yet-built feature collected across hecks’s implementation plan, PRDs, work-slice plans, decision records, guides, and bug audits — with the shipped and the live left out.

Sources: 20+ docs across docs/, docs/prds/, docs/decisions/, docs/guides/, docs/audits/ (as of the 2026-08-18 docs/ split into docs/implemented/ vs. active work — see that split for what’s now shipped). Compiled: 2026-08-18


Top priorities

The clearest signal in the whole tree is the survey’s own closing pick — an explicit “if we build three.” Everything else here ranks by how concretely it’s scoped and how much else depends on it.

  1. A universal dispatch MCP server — dispatch / query / state / catalog / describe / validate, every call carrying a required summary. hecks run and the Facade already exist to project it from.
  2. follow + SourceTag — persist the dispatch stream already emitted (event log plus caller kind: process-manager / operator / hook / sidequest-agent / cascade / daemon), add a JSONL tail and a hecks follow.
  3. Drivers — driving on interval | cron | clock in the hecksagon DSL, projected to a Makefile/Procfile target. An older, separate project that is also called hecks (see the editor’s note in the survey linked below) was blocked on this.

Highest-signal items from the rest of the corpus


Wishlist survey

docs/archive/hecks-survey-what-we-wish-we-had.md — a 2026-08-17 read of an older, separate project that is also called hecks, asking one question: what does it have — especially “Storehouse” — that hecks wishes it had.

Storehouse, ranked

  1. Universal MCP server, three zoom levels. Ten tools (dispatch, query, state, catalog, describe_aggregate, list_aggregates, validate, macrophage_check, behaviors, conceive_behaviors), no per-command wrappers. hecks has only a 3-tool query-IR MCP.
  2. follow. A live, cross-process tail of every dispatch, feeding both an MCP resource and a queryable StorehouseEntry domain. hecks has only after-the-fact hecks history.
  3. Drivers. Inbound clocks (interval | cron | clock) declared in the hecksagon, projected to a Procfile — out-of-process by construction, so a dead clock stalls only its own task. hecks’s DSL has no inbound-scheduling concept at all.
  4. SourceTag. A closed enum of dispatcher provenance. Cheap to add.
  5. Gates. Inbound middleware as bluebook records — before/after phase, a check that can be any bluebook query run read-only as a veto, ordered, hydrated at boot. hecks’s authz today is one hardcoded file with no query-as-veto, ordering, or after-phase observers.
  6. Actor mailboxes. poisoned as a first-class status, plus --json and a --fixture deterministic demo mode for inspection tooling.
  7. A standing derivability gauge. A periodic driver that folds the full event log and records derivable | drifted, separating transient from persistent drift and tracking missing rows on their own. hecks has no continuous proof that the fold of its log equals its state.
  8. OutboundEvent. A durable outbox (pending → claimed → delivered | failed) for effect-port edges with idempotent delivery ids and a shared adapter-host protocol. SHIPPED as Runtime::Outbox (ADR 0053): one row per (event, consumer) — every policy and process manager owed a reaction, kind: "effect" when the policy’s trigger is an outbound port operation — committed in the SAME adapter transaction as the aggregate save, drained inline by the dispatcher, pending rows redriven on the next boot, claimed rows surfaced and left for redrive!(claimed: true); Memory/Sqlite/Postgres/PostgresEra carry the hecks_outbox contract, verify! warns for adapters that don’t. Still open from the original item: a shared adapter-HOST protocol (discover → consume → act → dispatch → ack) and a standalone bin/outbox relay with a lease/timeout on claimed — today the relay is the dispatching thread plus boot-time reconciliation. SagaInterpreter’s own pending-dispatch marker (saga_pending_dispatch.rb) stays, complementary: it names a saga LEG mid-flight, the outbox names the EVENT owed to the saga.
  9. Honest-refusal tools. Structured {ok:false, supported:false, error:"…"} instead of a crash, an ENOENT, or a silent no-op.
  10. A two-tier bus design. A local, free, eventually-consistent bus alongside a durable, governed, paid one, chosen per bluebook with domain-level default and aggregate-level override. Would collapse repeated persisted_by lines to one.

Beyond Storehouse — worth stealing


Implementation plan

docs/HECKS_IMPLEMENTATION_PLAN.md — the largest single source by far, 2,511 lines. Phase 1 hardening is still incomplete; phases 4 through 10 (ontology adoption, canonical-domain expansion, auth projections, history & analytics, persistence projection, standards & compliance, research tail) haven’t started.

Foundational architecture

By section — all unbuilt or partial unless noted


Work-slice plans

Five smaller, more mechanical planning docs — each scoped to a concrete engineering slice rather than a product feature.

DSL work slices (docs/dsl-work-slices.md)

Fuzzer property expansion (docs/fuzzer-property-expansion-plan.md)

Postgres-era adapter split (docs/postgres-era-adapter-split-plan.md)

Note: the rest of this plan is now marked done and verified; it moved to docs/implemented/ in the 2026-08-18 docs split, with the three items above being the only genuinely open threads.

Rust experiment & handwritten refactor


PRDs

docs/prds/ — eight proposals, in the priority order the README itself gives.


Query DSL & policies

Query DSL (docs/query-dsl.md) — proposed additions, none implemented

Event-storming policies (docs/event-storming-policies.md)


Decision records

Only the ADRs with genuine unbuilt content, per their own status marker — pure rationale-only or fully-shipped records moved to docs/implemented/decisions/ in the 2026-08-18 docs split and are left out here.


Guides & reference

docs/command-form-and-query-form-bluebook.md (status: prototype) — largest cluster of still-open guide-level work: graduate it from an ordinary Ruby DSL into real syntax validated through Hecks.*; give expose per-command and per-query override instead of whole-chapter only; add field-level refusal attribution to the sticky re-render (today it’s whole-banner only); wire up reports/read models (report_form.bluebook is a reserved name only so far); replace the one-JSON-object-per-line fallback for a multi-field list_of with a real repeatable add/remove fieldset; and eventually add styling, live sockets, and a real deploy target — all currently deferred to a wider web-framework idea, with hecks present staying dev-only until then.

docs/rails-integration.md — status: design only, nothing built. Explicitly open, not designed here: the read side beyond one load-bearing show route; authorization enforcement; per-attribute labels/help text; file uploads; real-time updates via ActionCable; which driven adapters should be Rails-native vs. agnostic.

docs/resolution-rules/cross-entity-given.md — the only one of the four resolution-rules docs not yet mirrored into the Rust parser (the other three moved to docs/implemented/resolution-rules/ in the docs split).


Bug audits

docs/audits/2026-08-10-main-bug-audit.md and docs/audits/2026-08-11-bug-triage.md — 75 findings total. Reconciled against current main 2026-08-27 — every H-numbered finding (all 14) plus S1–S3 is now fixed, several found already fixed by the time they were checked and two (H1, the fuzzer-adapter gap under Tier 5) requiring real work this session. See docs/audits/2026-08-26-issue-tracker-reconciliation-plan.md for the finding-by-finding evidence table. M1–M19, L1–L24, and the Rust-parity divergence list — re-verified 2026-08-28 (three independent, parallel investigations, each reading current file:line content and existing spec coverage, not the audit doc’s stale line numbers): 53 of 55 individually-tracked items are fixed or no longer applicable. Full finding-by-finding table: docs/audits/2026-08-28-m1-m19-l1-l24-rust-parity-reverify.md. Two items carry a real, honestly-tracked caveat rather than a clean close — M10’s chapter-level @ports round-trip gap (deliberately deferred, its own separate epic) and R2, whose specific mechanism is gone but whose underlying invariant (“Ruby and Rust refuse identically over the full corpus”) is still actively finding new violations, now tracked in docs/decisions/0037-generated-sequence-fuzz-bridge-found-real-gaps-two-fixed-three-catalogued.md (Findings 3–6, two pending: rspec examples — Finding 5, a real dangling-reference data-integrity gap, is the highest-priority one still open).

Tier 1 — data loss & migration integrity — ALL FIXED

These run in CI: the rspec_postgres_io_parallel shards provision Postgres (.github/actions/postgres), PostgresProbe raises under CI instead of skipping an unreachable server, and hecks list_io_parallel_specs check=<file> fails a PR that adds an io: true spec without listing it in .github/postgres_io_spec_files.txt.

Tier 2–3 — systemic roots & security — ALL FIXED (spot-checked, not exhaustively re-run)

Tier 4 — wrong answers & broken routes — H6–H9, H12 FIXED

Tier 5–7 — ops, harness, and low severity

Still not independently re-checked

Marked fixed in the audit tracking above, but by code reading or by a partial run, not by a spec that fails without the fix. Each is a claim to re-verify before relying on it:


Also reviewed, nothing to add

docs/documentation-plan.md (describes already-completed work, landed 2026-08-04 — moved to docs/implemented/) and the ADRs now under docs/implemented/decisions/ — rationale-only or fully shipped, no unbuilt content remaining.


Compiled from ~/Projects/hecks/docs/ — worktree copies and build output excluded. Re-check open items against current state before acting; several of these plans are weeks old and docs/ was split into docs/implemented/ vs. active work on 2026-08-18, so file paths above may have moved.