feat(me): migrate autoresearch into me plugin with /goal integration - #660
Conversation
This reverts commit a5a1854.
Autonomous experiment loop migrated from plugins/autoresearch/ to me plugin. Termination owned by Claude Code /goal command instead of self-managed 'NEVER STOP' policy. JSONL state protocol, dashboard, worklog, ideas backlog preserved.
Remove standalone plugins/autoresearch/ and its marketplace entries. The skill now lives at plugins/me/skills/autoresearch/SKILL.md (added in the previous commit) with /goal-driven termination instead of the former 'NEVER STOP' self-managed policy. Also update CI workflow, codex sync check script, and BATS expectations that hardcoded references to plugins/autoresearch. Note: marketplace entry removal and plugin directory deletion are combined into one commit because the BATS test suite verifies bidirectional parity between marketplace.json and plugins/ directory -- they must change atomically.
- Remove autoresearch@bstack from enabledPlugins in setup settings (standalone plugin no longer exists) - Drop the autoresearch directory tree entry and dedicated plugin section from README - Add autoresearch row to the me plugin skill table since the skill now lives there
main's revert (c065e08) re-introduced plugins/autoresearch/ and related references during the merge. This commit re-removes them to preserve the migration to plugins/me/skills/autoresearch/.
📝 WalkthroughWalkthroughThis PR completes the migration of the autoresearch autonomous experiment loop from a standalone plugin to an integrated skill within the me plugin. It replaces the prior "never stop" infinite-loop termination model with goal-driven per-turn evaluation, removes legacy plugin artifacts and marketplace entries, and updates all validation tests and documentation accordingly. ChangesAutoresearch Plugin to Skill Integration
Estimated Code Review Effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly Related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
README.md (1)
49-49:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFix README skill count for the
meplugin.
- README.md line 49 says “Personal skills (16 total)”, but the
meskills table lists only 13 skills (includingautoresearch).- The
plugins/me/skills/directory contains many more skill folders (22 excludingsetup), so the “16 total” figure doesn’t match the table or the actual skill set.- Update the count and/or the table contents so all three are consistent.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README.md` at line 49, Update the README so the "Personal skills (16 total)" entry for the me plugin matches the actual skills: either (A) update the count to the real number of skill folders found under plugins/me/skills/ (22 excluding setup) and ensure the skills table lists all 22 names (including autoresearch), or (B) prune the table to exactly match 16 skills if you intend to advertise 16 — make the README table, the numeric total, and the actual plugins/me/skills/ directory contents consistent; modify the skills table in README.md and the total label so all three sources (count, table, directory) agree.
🧹 Nitpick comments (4)
docs/superpowers/specs/2026-05-26-autoresearch-me-integration-design.md (3)
144-158: 💤 Low valueSpecify language for fenced code block.
The usage example should specify a language identifier (use
textor leave as-is if demonstrating console interaction).♻️ Proposed fix
### 동작 예시 -``` +```text User: /me:autoresearch "optimize parser perf, R² > 0.85" 또는 User: "parser 성능을 R² 0.85까지 끌어올리는 실험 루프 돌려줘"🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/superpowers/specs/2026-05-26-autoresearch-me-integration-design.md` around lines 144 - 158, The fenced example block lacks a language identifier; update the code fence that opens before "User: /me:autoresearch ..." to use a language tag (e.g., ```text) so the snippet is rendered correctly; locate the fenced block containing the "User: /me:autoresearch \"optimize parser perf, R² > 0.85\"" example and change the opening triple backticks to "```text" (and keep the closing triple backticks) to follow the proposed fix.
35-40: 💤 Low valueSpecify language for fenced code block.
The directory structure example should specify a language identifier (or use
textif no syntax highlighting is needed).♻️ Proposed fix
### 결과 디렉토리 구조 -``` +```text plugins/me/skills/autoresearch/ └── SKILL.md # 단일 파일 plugins/autoresearch/ # 삭제</details> <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.In
@docs/superpowers/specs/2026-05-26-autoresearch-me-integration-design.md
around lines 35 - 40, The fenced directory-structure code block in the docs
containing "plugins/me/skills/autoresearch/" lacks a language identifier; update
the opening fence to include a language (e.g., changetotext) so the
block is rendered without erroneous syntax highlighting—edit the block that
contains the lines "plugins/me/skills/autoresearch/", "└── SKILL.md", and
"plugins/autoresearch/ # 삭제" to use ```text as the fence.</details> --- `62-111`: _💤 Low value_ **Specify language for fenced code block.** The structure outline should specify a language identifier (use `text` or `markdown`). <details> <summary>♻️ Proposed fix</summary> ```diff ### SKILL.md 본문 구조 -``` +```text # autoresearch: Autonomous experiment loop ## When to use ``` </details> <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.In
@docs/superpowers/specs/2026-05-26-autoresearch-me-integration-design.md
around lines 62 - 111, The top-level fenced code block that contains the
autoresearch spec currently lacks a language identifier; update the opening
fence (thethat precedes the line "# autoresearch: Autonomous experiment loop") to include a language tag such as text or markdown (e.g., changetoplaintext styling for the whole block.docs/superpowers/plans/2026-05-26-autoresearch-me-integration.md (1)
477-489: 💤 Low valueAdd blank lines around fenced code block.
The expected output example needs blank lines before and after the code fence, and should specify a language identifier for the fence.
♻️ Proposed fix
Expected: +
name: autoresearch
description: Use when asked to "run autoresearch", ...
allowed-tools:
- Read
- Write
- Edit
- Bash
- Glob
- Grep
+🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/superpowers/plans/2026-05-26-autoresearch-me-integration.md` around lines 477 - 489, Add blank lines before and after the fenced code block and include a language identifier on the opening fence; specifically, ensure there is an empty line above the triple-backtick fence that contains the YAML starting with "name: autoresearch" and an empty line after the closing fence, and change the opening fence to something like "```yaml" so the block is properly recognized as YAML.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/superpowers/plans/2026-05-26-autoresearch-me-integration.md`:
- Line 516: The checklist entry "[ ] SKILL.md가 200줄 이하" conflicts with the
actual SKILL.md (239 lines); either update the criterion text to match the real
file (e.g., change the checkbox label to "SKILL.md가 240줄 이하" or "≤240 lines") or
reduce the SKILL.md content to <=200 lines; locate the checklist line containing
"[ ] SKILL.md가 200줄 이하" and either edit that label to the new limit or refactor
the file named SKILL.md to remove/simplify sections until its line count is
<=200, ensuring the checkbox and the actual file length are consistent.
In `@docs/superpowers/specs/2026-05-26-autoresearch-me-integration-design.md`:
- Line 178: The success criterion in
2026-05-26-autoresearch-me-integration-design.md that states "SKILL.md가 200줄 이하"
conflicts with the actual SKILL.md length (239 lines); update the criterion to
reflect the real target (e.g., change to 240 or 239 lines) or change the
guidance to require "≤240 lines" or "simplify SKILL.md to ≤200 lines" depending
on the intended policy, and make the same wording change wherever the exact
200-line threshold for SKILL.md is referenced in that spec so the document and
implementation are consistent.
---
Outside diff comments:
In `@README.md`:
- Line 49: Update the README so the "Personal skills (16 total)" entry for the
me plugin matches the actual skills: either (A) update the count to the real
number of skill folders found under plugins/me/skills/ (22 excluding setup) and
ensure the skills table lists all 22 names (including autoresearch), or (B)
prune the table to exactly match 16 skills if you intend to advertise 16 — make
the README table, the numeric total, and the actual plugins/me/skills/ directory
contents consistent; modify the skills table in README.md and the total label so
all three sources (count, table, directory) agree.
---
Nitpick comments:
In `@docs/superpowers/plans/2026-05-26-autoresearch-me-integration.md`:
- Around line 477-489: Add blank lines before and after the fenced code block
and include a language identifier on the opening fence; specifically, ensure
there is an empty line above the triple-backtick fence that contains the YAML
starting with "name: autoresearch" and an empty line after the closing fence,
and change the opening fence to something like "```yaml" so the block is
properly recognized as YAML.
In `@docs/superpowers/specs/2026-05-26-autoresearch-me-integration-design.md`:
- Around line 144-158: The fenced example block lacks a language identifier;
update the code fence that opens before "User: /me:autoresearch ..." to use a
language tag (e.g., ```text) so the snippet is rendered correctly; locate the
fenced block containing the "User: /me:autoresearch \"optimize parser perf, R² >
0.85\"" example and change the opening triple backticks to "```text" (and keep
the closing triple backticks) to follow the proposed fix.
- Around line 35-40: The fenced directory-structure code block in the docs
containing "plugins/me/skills/autoresearch/" lacks a language identifier; update
the opening fence to include a language (e.g., change ``` to ```text) so the
block is rendered without erroneous syntax highlighting—edit the block that
contains the lines "plugins/me/skills/autoresearch/", "└── SKILL.md", and
"plugins/autoresearch/ # 삭제" to use ```text as the fence.
- Around line 62-111: The top-level fenced code block that contains the
autoresearch spec currently lacks a language identifier; update the opening
fence (the ``` that precedes the line "# autoresearch: Autonomous experiment
loop") to include a language tag such as text or markdown (e.g., change ``` to
```text) so markdown renderers will format it correctly and preserve explicit
plaintext styling for the whole block.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 73fbdbea-165d-4bc3-91e0-ebbdf0dfc740
📒 Files selected for processing (17)
.agents/plugins/marketplace.json.claude-plugin/marketplace.json.github/workflows/sync-marketplace.ymlREADME.mddocs/superpowers/plans/2026-05-26-autoresearch-me-integration.mddocs/superpowers/specs/2026-05-26-autoresearch-me-integration-design.mdplugins/autoresearch/.claude-plugin/plugin.jsonplugins/autoresearch/.codex-plugin/plugin.jsonplugins/autoresearch/commands/autoresearch.mdplugins/autoresearch/hooks/autoresearch-context.shplugins/autoresearch/hooks/hooks.jsonplugins/autoresearch/skills/autoresearch/SKILL.mdplugins/me/skills/autoresearch/SKILL.mdplugins/me/skills/setup/settings.jsonscripts/check-codex-artifacts.shtests/codex_marketplace_json.batstests/codex_plugin_json.bats
💤 Files with no reviewable changes (11)
- plugins/autoresearch/hooks/autoresearch-context.sh
- plugins/autoresearch/hooks/hooks.json
- plugins/autoresearch/.codex-plugin/plugin.json
- plugins/me/skills/setup/settings.json
- .agents/plugins/marketplace.json
- plugins/autoresearch/skills/autoresearch/SKILL.md
- plugins/autoresearch/commands/autoresearch.md
- plugins/autoresearch/.claude-plugin/plugin.json
- scripts/check-codex-artifacts.sh
- .github/workflows/sync-marketplace.yml
- .claude-plugin/marketplace.json
| - [ ] 두 marketplace.json에 autoresearch 엔트리 없음 | ||
| - [ ] 모든 BATS 테스트 통과 | ||
| - [ ] pre-commit 통과 | ||
| - [ ] SKILL.md가 200줄 이하 (원본 254줄 대비 단순화 입증) |
There was a problem hiding this comment.
Success criterion conflicts with actual implementation.
The completion criterion states SKILL.md should be ≤200 lines, but the actual plugins/me/skills/autoresearch/SKILL.md being added is 239 lines. Either update this criterion to reflect the actual line count (e.g., "≤240 lines") or simplify the SKILL.md implementation to meet the 200-line target.
🔧 Proposed fix
-- [ ] SKILL.md가 200줄 이하 (원본 254줄 대비 단순화 입증)
+- [ ] SKILL.md가 240줄 이하 (원본 254줄 대비 단순화 입증)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - [ ] SKILL.md가 200줄 이하 (원본 254줄 대비 단순화 입증) | |
| - [ ] SKILL.md가 240줄 이하 (원본 254줄 대비 단순화 입증) |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/superpowers/plans/2026-05-26-autoresearch-me-integration.md` at line
516, The checklist entry "[ ] SKILL.md가 200줄 이하" conflicts with the actual
SKILL.md (239 lines); either update the criterion text to match the real file
(e.g., change the checkbox label to "SKILL.md가 240줄 이하" or "≤240 lines") or
reduce the SKILL.md content to <=200 lines; locate the checklist line containing
"[ ] SKILL.md가 200줄 이하" and either edit that label to the new limit or refactor
the file named SKILL.md to remove/simplify sections until its line count is
<=200, ensuring the checkbox and the actual file length are consistent.
| ## 성공 기준 | ||
|
|
||
| - `plugins/autoresearch/` 디렉토리 제거되어도 `/autoresearch <goal>`이 me plugin을 통해 작동 | ||
| - SKILL.md가 200줄 이하 (현재 254줄) |
There was a problem hiding this comment.
Success criterion conflicts with actual implementation.
The criterion states SKILL.md should be ≤200 lines (down from 254), but the actual implementation is 239 lines. Update this criterion to match reality or simplify the SKILL.md.
🔧 Proposed fix
-- SKILL.md가 200줄 이하 (현재 254줄)
+- SKILL.md가 240줄 이하 (현재 254줄 대비 6% 감소)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - SKILL.md가 200줄 이하 (현재 254줄) | |
| - SKILL.md가 240줄 이하 (현재 254줄 대비 6% 감소) |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/superpowers/specs/2026-05-26-autoresearch-me-integration-design.md` at
line 178, The success criterion in
2026-05-26-autoresearch-me-integration-design.md that states "SKILL.md가 200줄 이하"
conflicts with the actual SKILL.md length (239 lines); update the criterion to
reflect the real target (e.g., change to 240 or 239 lines) or change the
guidance to require "≤240 lines" or "simplify SKILL.md to ≤200 lines" depending
on the intended policy, and make the same wording change wherever the exact
200-line threshold for SKILL.md is referenced in that spec so the document and
implementation are consistent.
…#668) * docs(autoresearch): spec for restoring standalone plugin /goal is a user-only session command that the agent cannot execute, so the me-integrated skill breaks at the /goal step (Exit 127). Restore the pre-#660 standalone plugins/autoresearch/ which uses a UserPromptSubmit hook instead of /goal. * docs(autoresearch): implementation plan for standalone plugin restore * feat(autoresearch): restore standalone plugin files from efa9cdf~1 Extract the pre-#660 plugin (commands, UserPromptSubmit hook, skill) which uses a hook instead of the unrunnable /goal command. * chore(autoresearch): align plugin version to 17.16.2 * chore(me): remove autoresearch skill (moved to standalone plugin) * chore(marketplace): register autoresearch plugin * docs(readme): move autoresearch to its own plugin section * fix(marketplace): sync autoresearch into codex marketplace The codex marketplace at .agents/plugins/marketplace.json must mirror the claude marketplace skill plugins in order. Add autoresearch and bump the expected plugin count in the bats test from 4 to 5. * docs(autoresearch): record codex marketplace sync in plan --------- Co-authored-by: Test User <test@example.com>
# [17.17.0](v17.16.2...v17.17.0) (2026-05-31) ### Features * **autoresearch:** restore standalone plugin (drop unrunnable /goal) ([#668](#668)) ([7e92589](7e92589)), closes [pre-#660](https://github.com/pre-/issues/660) [pre-#660](https://github.com/pre-/issues/660)
Summary
plugins/autoresearch/독립 plugin을plugins/me/skills/autoresearch/SKILL.md단일 파일로 통합/goal명령어 (v2.1.139+) 가 매 턴 종료 조건 평가 담당UserPromptSubmithook 폐기 (/goal이 턴 사이 자동 진행)Changes
plugins/me/skills/autoresearch/SKILL.md— 238 lines,/goal위임plugins/autoresearch/(6 파일).github/workflows/sync-marketplace.yml,scripts/check-codex-artifacts.sh, 2개 codex BATS 테스트,plugins/me/skills/setup/settings.json,README.mdBackground
조사 결과 obra/autoresearch upstream은 2026-03-18 이후 변경 없음. 가져올 변경사항 없음. 대신 Claude Code
/goal이 현재 plugin의 핵심 메커니즘(턴 사이 자동 진행)을 깔끔하게 대체.Spec:
docs/superpowers/specs/2026-05-26-autoresearch-me-integration-design.mdPlan:
docs/superpowers/plans/2026-05-26-autoresearch-me-integration.mdTest plan
bats tests/— 71/71 passingjq emptyon both marketplace.json filesplugins/autoresearchreferences (grep clean)plugins/me/skills/autoresearch/SKILL.mdfrontmatter 유효/me:autoresearch <goal>호출 시/goal자동 설정 (consumer 환경에서)Notes
/goal명령어). SKILL.md Prerequisites 섹션에 명기.Summary by CodeRabbit
Refactor
Documentation
Tests