Skip to content

chore: retire the ReScript migration subsystem (FOT-R-22) - #96

Merged
hyperpolymath merged 2 commits into
mainfrom
chore/retire-rescript-migration
Sep 15, 2026
Merged

hyperpolymath merged 2 commits into
mainfrom
chore/retire-rescript-migration

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Retires the ReScript migration subsystem (owner ruling FOT-R-22).

The estate has migrated fully to bun; ReScript is banned estate-wide. The
pipeline built to observe that migration is therefore moot — and it was never
load-bearing to begin with.

Why this is a delete, not a fix

Three independent reasons, each verified against the tree:

  1. It was never wired in. application.ex did not start the pipeline in the
    supervision tree. The only reachable entry was an argv gate on
    --migration-observer, a flag the CLI does not parse — so after SP1b's CLI
    landed, no documented invocation could reach it.
  2. It carried zero tests, despite the design doc describing it as "real and
    tested".
  3. It is not exposed over MCP. maybe_add_mcp_server registers exactly three
    tools (SubmitFeedback, ResearchFeedback, SynthesizeFeedback); an MCP host
    never sees migration_observe in tools/list and cannot call it.

What goes

Nine modules — the migration observer, the batch reviewer, the report generator,
the GenStage producer/consumer pipeline and the two FoT-internal VeriSim writers —
plus the gen_stage dependency from mix.exs and mix.lock.

VeriSimDB itself is NOT retired. It remains a live estate integration
(.machine_readable/integrations/verisimdb.a2ml, gated by dogfood-gate.yml).
Only the two FoT-internal writers went with the pipeline.

Net effect

15 files changed, +19 / −1740.

Verification

  • mix test — 318 tests, 0 failures
  • mix escript.build succeeds; ./feedback-o-tron --version → feedback-o-tron v1.0.0
  • grep -c gen_stage in live code → 0 (the 5 remaining mentions are prose in
    three docs, and two of them are annotated by the second commit — see below)

This branch was rebuilt from patches onto current main (30a4a6b) rather than
rebased over #93's 43-commit ancestry. Its tree hash is byte-identical
(fa9ed5fe…) to the tree those verification figures were measured on, so the
measurements above transfer exactly rather than being re-asserted.

Documentation honesty

The second commit does not silently rewrite history. It annotates the two docs
that are still live references and would otherwise mislead a reader:

  • docs/superpowers/specs/2026-09-07-fot-everywhere-design.adoc — the bullet
    describing the pipeline now records the retirement and warns against seeding L5
    burst clustering on it.
  • TEST-NEEDS.adoc — marked SUPERSEDED, since that audit predates both SP1b — Runnable: product #93
    (which is why its "Unit tests: NONE" claim is false) and this retirement.

🤖 Generated with Claude Code

https://claude.ai/code/session_01HGbKA9B3XfzRSdsjLg3j33

hyperpolymath and others added 2 commits September 15, 2026 10:13
Nine files, 1698 lines, zero tests, and no reachable entry point.

MigrationObserve was never registered: `doors.ex` lists exactly three tools
in @tools and that module is not among them, so no MCP client could call the
392-line tool at all. The rest of the subsystem was reachable only from an
`--migration-observer` argv scan and a FEEDBACK_A_TRON_MIGRATION_MODE env
read, both performed inside `Application.start/2` — the same read-at-boot
shape removed from the submitter in 6e91317.

ReScript is banned estate-wide, so the migration this observed cannot recur.

Deleted: migration_observer, batch_reviewer, report_generator, verisim_writer,
the four-module pipeline/ tree, and mcp/tools/migration_observe.
Dropped {:gen_stage, "~> 1.2"} and unlocked it.
Unwired both optional-child clauses and the argv/env gate from application.ex.
Corrected the pre-ledger comment in submitter.ex, which listed BatchReviewer
as a caller that lands in the drafted clause.

The consent path is untouched: nothing here changes what the CLI prints, that
it refuses to send without a typed y, or that a non-tty answers no.

Verified: 318 tests, 0 failures (unchanged — the subsystem had none);
`mix escript.build` clean; ./feedback-o-tron --version prints v1.0.0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HGbKA9B3XfzRSdsjLg3j33
The code retire in 7ca576c left two tracked documents naming the nine
deleted modules. A repo-wide sweep (not just lib/test/mix.exs) found no
hits in config/, README.adoc, ARCHITECTURE.adoc, the CLI help text, CI,
humans.txt or STATE.a2ml — no user-facing flag was ever advertised — but
two records still pointed at the subsystem:

- TEST-NEEDS.adoc names the nine deleted modules in its file list. The
  document is also superseded for an unrelated reason: it predates #93 and
  still claims "Unit tests: NONE (0 test files found)" against an engine
  with 318 passing tests. Banner rather than curation — surgically editing
  nine filenames out of a document whose headline claim is false would
  polish a lie. Re-running the audit is separate work.

- The 2026-09-07 design spec listed the pipeline as "Real and tested" and
  "the natural seed for burst clustering at L5". Both are now wrong: it
  carried zero tests, and it is gone. Left unmarked, a later session plans
  L5 on a deleted subsystem.

VeriSimDB is explicitly NOT retired. It remains a live estate integration
(.machine_readable/integrations/verisimdb.a2ml, gated by dogfood-gate.yml);
only the two FoT-internal writers went with the pipeline. Recorded in both
documents so a future sweep does not mistake the name for dead code.

The plan document's "Noticed, not in this plan" mention is historical and
is deliberately left as written.

asciidoctor -o /dev/null is silent on both files.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HGbKA9B3XfzRSdsjLg3j33
@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 2 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 1e8c50ca-dd7a-4bf1-a8c2-9e1579264373

📥 Commits

Reviewing files that changed from the base of the PR and between 30a4a6b and c5e8b05.

⛔ Files ignored due to path filters (1)
  • elixir-mcp/mix.lock is excluded by !**/*.lock
📒 Files selected for processing (14)
  • TEST-NEEDS.adoc
  • docs/superpowers/specs/2026-09-07-fot-everywhere-design.adoc
  • elixir-mcp/lib/feedback_a_tron/application.ex
  • elixir-mcp/lib/feedback_a_tron/batch_reviewer.ex
  • elixir-mcp/lib/feedback_a_tron/mcp/tools/migration_observe.ex
  • elixir-mcp/lib/feedback_a_tron/migration_observer.ex
  • elixir-mcp/lib/feedback_a_tron/pipeline/producer.ex
  • elixir-mcp/lib/feedback_a_tron/pipeline/review_consumer.ex
  • elixir-mcp/lib/feedback_a_tron/pipeline/supervisor.ex
  • elixir-mcp/lib/feedback_a_tron/pipeline/verisim_consumer.ex
  • elixir-mcp/lib/feedback_a_tron/report_generator.ex
  • elixir-mcp/lib/feedback_a_tron/submitter.ex
  • elixir-mcp/lib/feedback_a_tron/verisim_writer.ex
  • elixir-mcp/mix.exs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@hyperpolymath
hyperpolymath merged commit 6b16d4f into main Sep 15, 2026
31 of 35 checks passed
@hyperpolymath
hyperpolymath deleted the chore/retire-rescript-migration branch September 15, 2026 09:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant