feat(research): migrate approval queue end-to-end #155
No reviewers
Labels
No labels
bug
design
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
research
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/starintel-auto-research!155
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/research-approval-migration"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
This PR makes
/research-pendinga canonical operator queue and adds fail-closed regression gates. It does not merge or deploy anything.Pre-Migration Inventory
roam/research/**/*.org, excludingindex.org,sources.org, andsearch-log.org, exactly the scope consumed by the repository queue.APPROVED=15,DONE=12,DRAFT=4,IMPLEMENTED-PROTOTYPE=4,MISSING=2,RESEARCHING=3,REVIEW=50,SUPERSEDED=1.APPROVED=29,PENDING=62,REJECTED=0.roam/research/auto-dig/ADAR-APPROVAL-001-dashboard-ux.orgwas handled asPENDING; its old approval evidence authorizes a linked design/implementation direction, not a research conclusion, and the canonical evidence records that ambiguity. ItsDONElifecycle was preserved.Migration Result
PENDING=62,APPROVED=29,REJECTED=0.REVIEW/RESEARCHED/VERIFIEDrecords remain in the eligible scope.prolog-rlm.research-approval.v1, immediately after#+status:.APPROVEDmappings require explicit research-basis/scope/direction/conclusion evidence or a strict legacy human approval record. Publication, implementation, architecture, and design-promotion approvals do not promote research approval.Queue And PR Pane
/research-pendingnow renders 62 canonical pending rows by default; no legacy toggle is required.lost-rob0t/starintel-auto-researchwithauto-dig,auto-research,star-server, and the other corpus projects.<!-- starintel-research-approval:v1 -->body line, theresearch-approval/...branch convention, or strict legacy review conventions.researchorADARDno longer qualify a PR.False Positives Excluded
lost-rob0t/dotfiles#156feat(qtile): add shared Emacs popup UI and stabilize desktop integrationis excluded.lost-rob0t/prolog-rlm#132Add programmable AgentProlog configuration runtimeis excluded.lost-rob0t/starintel-server#126test: re-prove strict trailing-comma rejection on current masteris excluded.lost-rob0t/dotfiles#161is a producer/configuration PR; its marker appears as documentation in backticks rather than as the exact standalone marker line, so it is excluded from the approval queue.Correctly Retained
lost-rob0t/starintel-auto-research#152is retained by the strict legacy## Human-gated ADARD review packageconvention.lost-rob0t/starintel-auto-research#142is retained by the strictresearch/branch plusroam/research/*.orgbody-path convention.Files Changed
roam/research/**/*.orgrecords: canonical approval metadata only; no design, ADR, index, runbook, todo, or ordinary project note was migrated.scripts/research_approval_migration.py: deterministic report, dry-run, migration, check, normalization, provenance verification, legacy evidence reconciliation, and fail-closed contradiction handling.scripts/research_queue.pyandscripts/build-research-pending.py: strict canonical queue parsing and visible repository column.pages/static/research-pending.jsandtests/test_research_pending.py: explicit marker/branch/legacy PR classifier and false-positive regressions.tests/test_research_approval_migration.py: migration mapping, body/lifecycle preservation, contradiction, discovery, and idempotence regressions.scripts/validate-docs.py: canonical approval metadata validation and metadata-only migration handling for changed-document audits..github/workflows/pages.yml: migration/provenance gate and generated queue assertions.AGENTS.mdandREADME.md: operator/model guardrails and reproducible migration workflow.Exact Verification
python3 -m py_compile scripts/_roamlib.py scripts/implement.py scripts/mark-design.py scripts/sync.py scripts/validate-docs.py scripts/enhance-pages.py scripts/check-pages-links.py scripts/research_approval_migration.py scripts/research_queue.py scripts/build-research-pending.py: passed.node --check pages/static/research-pending.js: passed.python3 -m unittest discover -s tests -p 'test_*.py' -v: 63 tests passed.python3 scripts/research_approval_migration.py --dry-run: 91 eligible, 91 canonical, 0 proposed changes,APPROVED=29,PENDING=62,REJECTED=0.python3 scripts/research_approval_migration.py: second migration pass completed withmigrated=0.python3 scripts/research_approval_migration.py --check --verify:unmigrated=0,lifecycle_preserved=91,body_preserved=91.python3 scripts/validate-changed-docs.py --changed-since origin/main --audit-date 2026-08-27: passed for 91 changed substantive Org documents.python3 scripts/sync.py: synchronized 0 status events.PATH=/tmp/opencode/bin:$PATH bash scripts/publish-pages: passed; 190 Org-roam pages published locally, 61 PlantUML blocks rendered, 168 search records, 100 RSS items, research-pending present.python3 scripts/check-pages-links.py _site: passed for 196 HTML pages and 212 generated text files; links, custom domain, and secret scan passed.canonical_rows=62 legacy_rows=0.emacs -Q --batch -L .doom.d/autoload -l .doom.d/tests/research-dashboard-test.el -f ert-run-tests-batch-and-exit: 20 tests passed on dotfiles PR #161.Known Repository Baseline Failure
python3 scripts/sync.py --checkandpython3 scripts/validate-docs.pywere executed exactly and report the repository's existing 248 document-audit violations outside this migration, primarily missing approval/changelog metadata in legacy design/index/runbook/todo documents and pre-existing malformed records. The migration does not suppress those full-audit failures; the changed-document gate passes for this PR's 91 metadata-only research changes.Exact Head
ad4f92ae7c4ebd0365c808e25d1288bb5a7fdc7e.main.Operator naming correction: the Auto-Research approval schema/control-plane namespace must use ADARD naming. Replace
prolog-rlm.research-approval.v1withadard.research-approval.v1consistently across the migration script, validators, tests, AGENTS/README documentation, and all migrated research metadata before this PR is merged. Prolog-RLM is not the owner/name of this control plane. Preserve the existing lifecycle-vs-approval semantics and rerun the repository-native migration/verification/publication gates after the rename. Do not merge #155 with the Prolog-RLM identifier still present.