feat: bootstrap unified generic auto-research control plane #1

Merged
lost-rob0t merged 32 commits from feature/initial-control-plane into main 2026-08-30 03:18:22 +00:00
lost-rob0t commented 2026-08-30 00:11:42 +00:00 (Migrated from github.com)

What this does

Bootstraps emacs-auto-research as the standalone generic home for the research UI/UX that previously lived in Doom dotfiles.

Unified control plane

  • M-x auto-research is the single dashboard.
  • ALL configured projects are shown by default.
  • Project scoping/reset, search, open, approve/reject, and new research live in the same UI.
  • Research opened directly from a configured research root automatically gets auto-research-document-mode, so approval is available in the document itself (C-c C-a / C-c C-r).

Approval repair

  • Adds a canonical auto-research.approval.v1 metadata layer.
  • Deterministically migrates partial/legacy prolog-rlm.research-approval.v1 and adard.research-approval.v1 records.
  • Repair happens before approve/reject and remains strict about the final canonical representation.
  • Conflicting duplicate decisions fail closed instead of being guessed.

Generic project model

  • Configurable repository root + research control-plane root per project.
  • Project identity prevents same-named research files in different repos from colliding.
  • M-x auto-research-current-project supports project-local use while the normal dashboard remains all-projects-first.

Standalone plugin API

  • Core has no Consortium, StarIntel, Prolog-RLM, RAGE, GitHub, or gptel dependency.
  • External systems can register projects, plugin actions, and after-decision observers through auto-research-plugin.el.
  • Plugin actions are available from the dashboard with x and from open documents with C-c C-x.
  • Consortium is explicitly documented as an optional adapter above this package, not a dependency of it.

Vanilla Emacs / Doom

  • Vanilla Emacs keymaps are the baseline.
  • Evil is optional.
  • auto-research-doom.el adds equivalent motion/normal-state bindings only when Evil exists.

Docs

  • Extensive canonical README.org with feature/architecture/UX docs and ARADR explanation.
  • docs/ARADR.org
  • docs/PLUGINS.org
  • docs/METADATA.org
  • docs/CONFIGURATION.org
  • docs/MIGRATION.org

Tests

  • Adds batch ERT target and initial regression tests for metadata repair, idempotence, conflicts, project identity, plugin project contribution, plugin decision observation, and direct-open research recognition.

Important migration boundary

This does not delete the old dotfile implementation yet. The existing dashboard's complete GitHub remote discovery + approval-PR delivery path still needs to be ported as an optional adapter before the old files can be removed without a regression. docs/MIGRATION.org makes that explicit.

Validation note

I could not execute the batch ERT suite in the current tool environment because the container cannot resolve GitHub to clone the branch. The test target is included, but this PR should get a local make test run before merge.

## What this does Bootstraps `emacs-auto-research` as the standalone generic home for the research UI/UX that previously lived in Doom dotfiles. ### Unified control plane - `M-x auto-research` is the single dashboard. - ALL configured projects are shown by default. - Project scoping/reset, search, open, approve/reject, and new research live in the same UI. - Research opened directly from a configured research root automatically gets `auto-research-document-mode`, so approval is available in the document itself (`C-c C-a` / `C-c C-r`). ### Approval repair - Adds a canonical `auto-research.approval.v1` metadata layer. - Deterministically migrates partial/legacy `prolog-rlm.research-approval.v1` and `adard.research-approval.v1` records. - Repair happens before approve/reject and remains strict about the final canonical representation. - Conflicting duplicate decisions fail closed instead of being guessed. ### Generic project model - Configurable repository root + research control-plane root per project. - Project identity prevents same-named research files in different repos from colliding. - `M-x auto-research-current-project` supports project-local use while the normal dashboard remains all-projects-first. ### Standalone plugin API - Core has no Consortium, StarIntel, Prolog-RLM, RAGE, GitHub, or gptel dependency. - External systems can register projects, plugin actions, and after-decision observers through `auto-research-plugin.el`. - Plugin actions are available from the dashboard with `x` and from open documents with `C-c C-x`. - Consortium is explicitly documented as an optional adapter above this package, not a dependency of it. ### Vanilla Emacs / Doom - Vanilla Emacs keymaps are the baseline. - Evil is optional. - `auto-research-doom.el` adds equivalent motion/normal-state bindings only when Evil exists. ### Docs - Extensive canonical `README.org` with feature/architecture/UX docs and ARADR explanation. - `docs/ARADR.org` - `docs/PLUGINS.org` - `docs/METADATA.org` - `docs/CONFIGURATION.org` - `docs/MIGRATION.org` ### Tests - Adds batch ERT target and initial regression tests for metadata repair, idempotence, conflicts, project identity, plugin project contribution, plugin decision observation, and direct-open research recognition. ## Important migration boundary This does **not** delete the old dotfile implementation yet. The existing dashboard's complete GitHub remote discovery + approval-PR delivery path still needs to be ported as an optional adapter before the old files can be removed without a regression. `docs/MIGRATION.org` makes that explicit. ## Validation note I could not execute the batch ERT suite in the current tool environment because the container cannot resolve GitHub to clone the branch. The test target is included, but this PR should get a local `make test` run before merge.
Sign in to join this conversation.
No description provided.