opencode-autoresearch 3.1.0 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/.opencode-plugin/plugin.json +1 -1
  2. package/README.md +246 -30
  3. package/VERSION +1 -0
  4. package/dist/cli.js +687 -31
  5. package/dist/cli.js.map +1 -1
  6. package/dist/constants.d.ts +3 -7
  7. package/dist/constants.d.ts.map +1 -1
  8. package/dist/constants.js +3 -7
  9. package/dist/constants.js.map +1 -1
  10. package/dist/helpers.d.ts +7 -3
  11. package/dist/helpers.d.ts.map +1 -1
  12. package/dist/helpers.js +100 -20
  13. package/dist/helpers.js.map +1 -1
  14. package/dist/index.d.ts +4 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +6 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/run-manager.d.ts +2 -2
  19. package/dist/run-manager.d.ts.map +1 -1
  20. package/dist/run-manager.js +24 -22
  21. package/dist/run-manager.js.map +1 -1
  22. package/dist/subagent-pool.d.ts +6 -0
  23. package/dist/subagent-pool.d.ts.map +1 -1
  24. package/dist/subagent-pool.js +12 -2
  25. package/dist/subagent-pool.js.map +1 -1
  26. package/dist/types.d.ts +15 -38
  27. package/dist/types.d.ts.map +1 -1
  28. package/dist/wizard.d.ts.map +1 -1
  29. package/dist/wizard.js +3 -2
  30. package/dist/wizard.js.map +1 -1
  31. package/docs/ARCHITECTURE.md +135 -28
  32. package/docs/QUICKSTART.md +103 -0
  33. package/docs/RELEASE.md +54 -25
  34. package/docs/superpowers/plans/2026-05-03-install-release-security.md +855 -0
  35. package/docs/superpowers/specs/2026-05-03-install-release-security-design.md +80 -0
  36. package/hooks/init.sh +6 -2
  37. package/hooks/status.sh +4 -3
  38. package/hooks/stop.sh +10 -6
  39. package/hooks/verify-package.sh +78 -0
  40. package/package.json +35 -14
  41. package/plugins/autoresearch.ts +13 -0
  42. package/skills/autoresearch/SKILL.md +29 -4
  43. package/skills/autoresearch/references/core-principles.md +3 -3
  44. package/skills/autoresearch/references/interaction-wizard.md +1 -1
  45. package/skills/autoresearch/references/loop-workflow.md +4 -4
  46. package/skills/autoresearch/references/plan-workflow.md +3 -3
  47. package/skills/autoresearch/references/results-logging.md +2 -2
  48. package/skills/autoresearch/references/self-improve-loop.md +255 -0
  49. package/skills/autoresearch/references/state-management.md +3 -3
  50. package/skills/autoresearch/references/subagent-orchestration.md +1 -1
  51. package/dist/complete.d.ts +0 -2
  52. package/dist/complete.d.ts.map +0 -1
  53. package/dist/complete.js +0 -36
  54. package/dist/complete.js.map +0 -1
  55. package/dist/init.d.ts +0 -2
  56. package/dist/init.d.ts.map +0 -1
  57. package/dist/init.js +0 -48
  58. package/dist/init.js.map +0 -1
  59. package/dist/launch.d.ts +0 -2
  60. package/dist/launch.d.ts.map +0 -1
  61. package/dist/launch.js +0 -51
  62. package/dist/launch.js.map +0 -1
  63. package/dist/record.d.ts +0 -2
  64. package/dist/record.d.ts.map +0 -1
  65. package/dist/record.js +0 -26
  66. package/dist/record.js.map +0 -1
  67. package/dist/resume.d.ts +0 -2
  68. package/dist/resume.d.ts.map +0 -1
  69. package/dist/resume.js +0 -20
  70. package/dist/resume.js.map +0 -1
  71. package/dist/status.d.ts +0 -2
  72. package/dist/status.d.ts.map +0 -1
  73. package/dist/status.js +0 -20
  74. package/dist/status.js.map +0 -1
  75. package/dist/stop.d.ts +0 -2
  76. package/dist/stop.d.ts.map +0 -1
  77. package/dist/stop.js +0 -20
  78. package/dist/stop.js.map +0 -1
@@ -0,0 +1,80 @@
1
+ # Install, Release, and Security Update Design
2
+
3
+ ## Goal
4
+
5
+ Prepare Auto Research for the next patch release by adding a native OpenCode install guide, aligning release/package documentation, and fixing security issues found during the audit.
6
+
7
+ ## Current Context
8
+
9
+ Auto Research is distributed as the `opencode-autoresearch` npm package and exposes an OpenCode plugin surface through `.opencode-plugin/plugin.json`, `plugins/autoresearch.ts`, `commands/`, `skills/`, and `hooks/`. The repo already documents npm global installation, but it does not provide a repo-level `.opencode/INSTALL.md` like the Superpowers OpenCode guide.
10
+
11
+ The audit found these release-readiness issues:
12
+
13
+ - `AGENTS.md` is ignored and absent, but package metadata and release docs reference it.
14
+ - `docs/ARCHITECTURE.md` still says the current reference is v3.3.0 while released metadata is v3.3.1.
15
+ - `docs/RELEASE.md` says CI runs tests, but `.github/workflows/release.yml` currently runs build, typecheck, and package verification only.
16
+ - `hooks/status.sh` and `hooks/stop.sh` interpolate `AUTORESEARCH_STATE` directly into inline JavaScript, which can break the JavaScript string if the environment variable contains quotes.
17
+ - Dependencies are clean: `npm audit --audit-level=moderate` found 0 vulnerabilities and `npm outdated` reported no outdated packages.
18
+
19
+ ## Approach
20
+
21
+ Use both supported install paths:
22
+
23
+ - Primary: OpenCode native plugin install through `opencode.json` using the npm package name.
24
+ - Alternative: npm global CLI install for users who want the `autoresearch` and `opencode-autoresearch` commands on `PATH`.
25
+
26
+ This matches current OpenCode plugin documentation, which supports npm package entries in the `plugin` array and automatically installs them at startup. It also keeps the current npm CLI distribution intact.
27
+
28
+ ## Files and Responsibilities
29
+
30
+ - `.opencode/INSTALL.md`: New concise OpenCode install guide modeled after the Superpowers install guide.
31
+ - `README.md`: Main install section should show the OpenCode plugin path first and npm global CLI path second.
32
+ - `docs/OPENCODE_INSTALL.md`: Full install guide should mirror the new install flow and include verification/troubleshooting.
33
+ - `wiki/Installation.md`: Wiki install page should point users to the native plugin path and CLI alternative.
34
+ - `AGENTS.md`: New tracked agent guide with repository-specific working, validation, security, and release rules.
35
+ - `.gitignore`: Stop ignoring tracked `AGENTS.md` while continuing to ignore private local instruction files that should not ship.
36
+ - `package.json`: Include `.opencode/INSTALL.md` in package contents and bump the patch version.
37
+ - `package-lock.json`: Keep npm lock metadata aligned with `package.json`.
38
+ - `.opencode-plugin/plugin.json`: Bump plugin manifest version.
39
+ - `src/constants.ts`: Bump runtime version constant.
40
+ - `VERSION`: Bump canonical version marker.
41
+ - `CHANGELOG.md`: Add the new release entry.
42
+ - `docs/ARCHITECTURE.md`: Align current version and package layout references.
43
+ - `docs/RELEASE.md`: Align release docs with current version surfaces and trusted npm publishing workflow.
44
+ - `.github/workflows/release.yml`: Add `npm test` to match documented release gates.
45
+ - `hooks/status.sh`: Pass state path safely to Node without JavaScript string interpolation.
46
+ - `hooks/stop.sh`: Pass state path safely to Node without JavaScript string interpolation.
47
+ - `hooks/verify-package.sh`: Allow and require `.opencode/INSTALL.md`; keep package allowlist explicit.
48
+
49
+ ## Security Design
50
+
51
+ The hook hardening should pass `STATUS_FILE` through Node's `process.env` instead of embedding it in JavaScript source. This prevents an environment value from changing the JavaScript program text and keeps shell quoting simple.
52
+
53
+ The install docs must avoid `curl | sh` and destructive migration commands. They should show an explicit `opencode.json` plugin entry and a separate npm global CLI path.
54
+
55
+ The package verifier remains allowlist-based. Adding `.opencode/INSTALL.md` must be explicit so unexpected files still fail `npm run verify:pack`.
56
+
57
+ ## Versioning
58
+
59
+ This is a patch release because it adds install documentation, fixes release packaging metadata, and hardens hooks without changing the command surface or runtime data format.
60
+
61
+ Target version: `3.3.2`.
62
+
63
+ ## Verification
64
+
65
+ Run these gates before claiming release readiness:
66
+
67
+ ```bash
68
+ npm audit --audit-level=moderate
69
+ npm run typecheck
70
+ npm run build
71
+ npm run verify:pack
72
+ npm test
73
+ npm pack --dry-run
74
+ ```
75
+
76
+ Also inspect the package dry-run output enough to confirm `.opencode/INSTALL.md`, `AGENTS.md`, `README.md`, `VERSION`, `.opencode-plugin/plugin.json`, `commands/`, `skills/`, `hooks/`, `plugins/`, and `docs/` are present while `.autoresearch/` and local context files are absent.
77
+
78
+ ## Release Boundary
79
+
80
+ This work prepares the repository for release. Creating the git commit, tag, push, GitHub release, or npm publish requires explicit user approval after verification passes.
package/hooks/init.sh CHANGED
@@ -14,8 +14,12 @@ checklist() {
14
14
  }
15
15
 
16
16
  if [ -f ".autoresearch/state.json" ]; then
17
- status=$(node -e "try{const s=require('.autoresearch/state.json');console.log(s.status||'')}catch{e}''" 2>/dev/null || true)
17
+ status=$(node --input-type=module -e "
18
+ import { readFileSync } from 'fs';
19
+ const s = JSON.parse(readFileSync('.autoresearch/state.json', 'utf8'));
20
+ console.log(s.status || '');
21
+ " 2>/dev/null || true)
18
22
  if [ "$status" = "running" ] || [ "$status" = "initialized" ]; then
19
23
  checklist
20
24
  fi
21
- fi
25
+ fi
package/hooks/status.sh CHANGED
@@ -7,8 +7,9 @@ set -e
7
7
  STATUS_FILE="${AUTORESEARCH_STATE:-.autoresearch/state.json}"
8
8
 
9
9
  if [ -f "$STATUS_FILE" ]; then
10
- node -e "
11
- const s = require('$STATUS_FILE');
10
+ node --input-type=module -e "
11
+ import { readFileSync } from 'fs';
12
+ const s = JSON.parse(readFileSync('$STATUS_FILE', 'utf8'));
12
13
  console.log('Auto Research run: ' + s.run_id);
13
14
  console.log('Status: ' + s.status);
14
15
  console.log('Mode: ' + s.mode);
@@ -20,4 +21,4 @@ if [ -f "$STATUS_FILE" ]; then
20
21
  " 2>/dev/null || echo "No active run."
21
22
  else
22
23
  echo "No active run."
23
- fi
24
+ fi
package/hooks/stop.sh CHANGED
@@ -7,16 +7,20 @@ set -e
7
7
  STATUS_FILE="${AUTORESEARCH_STATE:-.autoresearch/state.json}"
8
8
 
9
9
  if [ -f "$STATUS_FILE" ]; then
10
- mode=$(node -e "try{const s=require('$STATUS_FILE');console.log(s.mode||'')}catch{e}''" 2>/dev/null || true)
10
+ mode=$(node --input-type=module -e "
11
+ import { readFileSync } from 'fs';
12
+ const s = JSON.parse(readFileSync('$STATUS_FILE', 'utf8'));
13
+ console.log(s.mode || '');
14
+ " 2>/dev/null || true)
11
15
  if [ "$mode" = "background" ]; then
12
- node -e "
13
- const fs = require('fs');
14
- const s = JSON.parse(fs.readFileSync('$STATUS_FILE','utf8'));
16
+ node --input-type=module -e "
17
+ import { readFileSync, writeFileSync } from 'fs';
18
+ const s = JSON.parse(readFileSync('$STATUS_FILE', 'utf8'));
15
19
  s.updated_at = new Date().toISOString();
16
20
  s.flags.stop_requested = true;
17
21
  s.flags.background_active = false;
18
22
  s.status = 'stopping';
19
- fs.writeFileSync('$STATUS_FILE', JSON.stringify(s, null, 2) + '\n');
23
+ writeFileSync('$STATUS_FILE', JSON.stringify(s, null, 2) + '\n');
20
24
  console.log('Stop requested for run: ' + s.run_id);
21
25
  " 2>/dev/null || echo "Could not update state."
22
26
  else
@@ -24,4 +28,4 @@ if [ -f "$STATUS_FILE" ]; then
24
28
  fi
25
29
  else
26
30
  echo "No active run."
27
- fi
31
+ fi
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ TMP_DIR="$(mktemp -d)"
5
+ trap 'rm -rf "$TMP_DIR"' EXIT
6
+
7
+ PACK_JSON="$TMP_DIR/npm-pack-dry-run.json"
8
+ npm pack --dry-run --json --ignore-scripts > "$PACK_JSON"
9
+
10
+ node --input-type=module - "$PACK_JSON" <<'NODE'
11
+ import fs from "fs";
12
+
13
+ const packJsonPath = process.argv[2];
14
+ const raw = fs.readFileSync(packJsonPath, "utf8");
15
+ const packResult = JSON.parse(raw);
16
+ const entries = Array.isArray(packResult) ? packResult : [packResult];
17
+ const files = entries.flatMap((entry) => Array.isArray(entry.files) ? entry.files : []);
18
+
19
+ const allowedRoots = new Set(["dist", "hooks", "commands", "skills", "plugins", "docs", ".opencode-plugin"]);
20
+ const allowedFiles = new Set(["package.json", "README.md", "LICENSE", "AGENTS.md", "VERSION"]);
21
+ const requiredFiles = [
22
+ ".opencode-plugin/plugin.json",
23
+ "hooks/init.sh",
24
+ "skills/autoresearch/SKILL.md",
25
+ "commands/autoresearch.md",
26
+ ];
27
+
28
+ const normalizePath = (filePath) => filePath.replace(/^package\//, "");
29
+ const isForbidden = (filePath) => filePath === ".autoresearch" || filePath.startsWith(".autoresearch/");
30
+ const isAllowed = (filePath) => {
31
+ if (allowedFiles.has(filePath)) return true;
32
+ const [root] = filePath.split("/");
33
+ return allowedRoots.has(root);
34
+ };
35
+
36
+ const violations = [];
37
+ const packageJson = JSON.parse(fs.readFileSync("package.json", "utf8"));
38
+
39
+ if (packageJson.bin?.["opencode-autoresearch"] !== "dist/cli.js") {
40
+ violations.push("package.json bin.opencode-autoresearch must be dist/cli.js for npm global installs");
41
+ }
42
+
43
+ if (packageJson.repository?.url !== "git+https://github.com/Maleick/AutoResearch.git") {
44
+ violations.push("package.json repository.url must use the npm-normalized git+https URL");
45
+ }
46
+
47
+ for (const file of files) {
48
+ const filePath = normalizePath(String(file.path || ""));
49
+ if (!filePath) continue;
50
+
51
+ if (isForbidden(filePath)) {
52
+ violations.push(`${filePath} is runtime state and must not be published`);
53
+ } else if (!isAllowed(filePath)) {
54
+ violations.push(`${filePath} is not in the package allowlist`);
55
+ }
56
+ }
57
+
58
+ if (files.length === 0) {
59
+ violations.push("npm pack dry-run returned no package files");
60
+ }
61
+
62
+ const packagedPaths = new Set(files.map((file) => normalizePath(String(file.path || ""))).filter(Boolean));
63
+ for (const requiredFile of requiredFiles) {
64
+ if (!packagedPaths.has(requiredFile)) {
65
+ violations.push(`${requiredFile} is required in the package`);
66
+ }
67
+ }
68
+
69
+ if (violations.length > 0) {
70
+ console.error("FAIL: npm package contains unexpected files:");
71
+ for (const violation of violations) {
72
+ console.error(`- ${violation}`);
73
+ }
74
+ process.exit(1);
75
+ }
76
+
77
+ console.log(`Package dry-run verified ${files.length} files`);
78
+ NODE
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "opencode-autoresearch",
3
- "version": "3.1.0",
4
- "description": "Auto Research for OpenCode. Subagent-first autonomous iteration loop with standing-pool orchestration and mechanical verification.",
3
+ "version": "3.3.1",
4
+ "description": "Autonomous recursive self-improvement engine for OpenCode. Subagent-first iteration loop with standing-pool orchestration and mechanical verification.",
5
5
  "author": {
6
6
  "name": "Maleick",
7
7
  "url": "https://github.com/Maleick"
@@ -11,36 +11,57 @@
11
11
  "type": "git",
12
12
  "url": "git+https://github.com/Maleick/AutoResearch.git"
13
13
  },
14
+ "bugs": {
15
+ "url": "https://github.com/Maleick/AutoResearch/issues"
16
+ },
14
17
  "license": "MIT",
15
18
  "keywords": [
16
19
  "opencode",
17
20
  "plugin",
18
21
  "autoresearch",
19
22
  "automation",
20
- "workflows"
23
+ "workflows",
24
+ "self-improvement",
25
+ "iteration"
21
26
  ],
22
27
  "type": "module",
23
- "main": "dist/index.js",
28
+ "main": "./dist/index.js",
29
+ "types": "./dist/index.d.ts",
24
30
  "bin": {
25
- "autoresearch": "dist/cli.js"
31
+ "autoresearch": "dist/cli.js",
32
+ "opencode-autoresearch": "dist/cli.js"
33
+ },
34
+ "exports": {
35
+ ".": {
36
+ "types": "./dist/index.d.ts",
37
+ "default": "./dist/index.js"
38
+ }
26
39
  },
27
40
  "files": [
28
- "dist/",
29
- "commands/",
30
- "skills/",
31
- "hooks/",
32
- "docs/",
33
- ".opencode-plugin/"
41
+ "dist",
42
+ "hooks",
43
+ "commands",
44
+ "skills",
45
+ "plugins",
46
+ "docs",
47
+ ".opencode-plugin",
48
+ "AGENTS.md",
49
+ "VERSION",
50
+ "README.md",
51
+ "LICENSE"
34
52
  ],
35
53
  "scripts": {
36
54
  "build": "tsc",
37
55
  "typecheck": "tsc --noEmit",
38
- "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
39
- "pack": "npm pack --dry-run",
40
- "lint": "echo 'TODO: add lint'"
56
+ "test": "node --no-warnings --experimental-vm-modules node_modules/jest/bin/jest.js --config jest.config.json",
57
+ "verify:pack": "bash hooks/verify-package.sh",
58
+ "prepack": "tsc"
41
59
  },
42
60
  "devDependencies": {
61
+ "@types/jest": "^30.0.0",
43
62
  "@types/node": "^20.0.0",
63
+ "jest": "^30.3.0",
64
+ "ts-jest": "^29.4.9",
44
65
  "typescript": "^5.9.3"
45
66
  },
46
67
  "engines": {
@@ -0,0 +1,13 @@
1
+ export {
2
+ id,
3
+ repoRoot,
4
+ version,
5
+ } from "../dist/index.js";
6
+
7
+ export async function server() {
8
+ return {
9
+ event() {
10
+ return undefined;
11
+ },
12
+ };
13
+ }
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: autoresearch
3
- description: "Run a subagent-first structured improve-verify loop in OpenCode. Activate with /autoresearch or specialized modes like /autoresearch:plan, /autoresearch:debug, /autoresearch:fix, /autoresearch:learn, /autoresearch:predict, /autoresearch:scenario, /autoresearch:security, /autoresearch:ship."
3
+ description: "Run a subagent-first structured improve-verify loop in OpenCode. Activate with /autoresearch or specialized modes like /autoresearch:plan, /autoresearch:debug, /autoresearch:fix, /autoresearch:learn, /autoresearch:predict, /autoresearch:scenario, /autoresearch:security, /autoresearch:ship. Supports recursive self-improvement loops."
4
4
  metadata:
5
- short-description: "Subagent-first autonomous iteration loop for OpenCode"
5
+ short-description: "Subagent-first autonomous iteration loop for OpenCode with recursive self-improvement"
6
6
  ---
7
7
 
8
8
  # Auto Research for OpenCode
@@ -18,7 +18,8 @@ When invoked:
18
18
  3. Read `references/subagent-orchestration.md`
19
19
  4. For new interactive runs, read `references/interaction-wizard.md`, `references/plan-workflow.md`, and `references/loop-workflow.md`
20
20
  5. For state and results semantics, read `references/state-management.md` and `references/results-logging.md`
21
- 6. For specialized modes, read the matching workflow reference:
21
+ 6. For self-improvement and recursive loops, read `references/self-improve-loop.md`
22
+ 7. For specialized modes, read the matching workflow reference:
22
23
  - `references/debug-workflow.md`
23
24
  - `references/fix-workflow.md`
24
25
  - `references/learn-workflow.md`
@@ -37,6 +38,27 @@ The main agent is the orchestrator. Subagents are the standing execution pool.
37
38
  - The main agent owns the final decision, the edit, and the run state.
38
39
  - Approval belongs before launch. After launch, continue by default unless the user stops the run.
39
40
 
41
+ ## Recursive Self-Improvement
42
+
43
+ Auto Research can run on itself:
44
+
45
+ ```mermaid
46
+ flowchart TD
47
+ A[Meta-Goal] --> B[Child Loop]
48
+ B --> C[Evaluate]
49
+ C --> D{Improve?}
50
+ D -->|yes| E[Learn + Memory]
51
+ D -->|no| F[Adapt Strategy]
52
+ E --> G[Next Child]
53
+ F --> G
54
+ G --> B
55
+ ```
56
+
57
+ - Use `references/self-improve-loop.md` for recursive run semantics.
58
+ - Meta-iterations spawn child loops that inherit the meta-goal.
59
+ - Patterns extracted from child results guide strategy adaptation.
60
+ - Memory persists across meta-iterations in `autoresearch-memory.md`.
61
+
40
62
  ## Required Internal Fields
41
63
 
42
64
  Infer or confirm before launching:
@@ -61,6 +83,7 @@ Strongly recommended:
61
83
  5. Record every iteration before the next one starts.
62
84
  6. Keep strict improvements, discard regressions.
63
85
  7. Continue until the stop condition is met.
86
+ 8. For self-improvement runs, archive state before each meta-iteration.
64
87
 
65
88
  ## Background Control
66
89
 
@@ -74,4 +97,6 @@ autoresearch complete
74
97
 
75
98
  ## Output
76
99
 
77
- Follow `references/structured-output-spec.md`. Print a setup summary before the first iteration, short progress updates during the loop, and a completion summary when done.
100
+ Follow `references/structured-output-spec.md`. Print a setup summary before the first iteration, short progress updates during the loop, and a completion summary when done.
101
+
102
+ For recursive runs, emit meta-iteration summaries in addition to standard progress.
@@ -13,8 +13,8 @@ The loop exists to make disciplined progress, not noisy activity.
13
13
 
14
14
  ## Artifact Discipline
15
15
 
16
- - `autoresearch-state.json` is the current run snapshot.
17
- - `research-results.tsv` is the append-only experiment log.
18
- - `autoresearch-launch.json` is the last background launch request.
16
+ - `.autoresearch/state.json` is the current run snapshot.
17
+ - `autoresearch-results.tsv` is the append-only experiment log.
18
+ - `.autoresearch/launch.json` is the last background launch request.
19
19
 
20
20
  Only helper scripts should mutate these files when possible.
@@ -14,7 +14,7 @@ Confirm or infer:
14
14
  6. Should the run stay in `foreground` or move to `background`?
15
15
  7. Which standing subagent pool should stay active for the run?
16
16
 
17
- Use `python scripts/autoresearch_wizard.py` to build the first setup summary, then only ask about fields that are still missing or risky.
17
+ Use `autoresearch wizard` to build the first setup summary, then only ask about fields that are still missing or risky.
18
18
 
19
19
  ## Launch Rule
20
20
 
@@ -4,10 +4,10 @@
4
4
 
5
5
  1. Read the relevant code and repo configuration.
6
6
  2. Read `references/subagent-orchestration.md` so the standing subagent pool and task split are clear before the first iteration.
7
- 3. Generate the initial setup summary with `scripts/autoresearch_wizard.py` when the request is incomplete.
7
+ 3. Generate the initial setup summary with `autoresearch wizard` when the request is incomplete.
8
8
  4. Summarize the goal, scope, metric, direction, verify command, guard, and subagent plan.
9
9
  5. Ask one grounded clarification round if needed.
10
- 6. Initialize artifacts with `scripts/autoresearch_init_run.py`.
10
+ 6. Initialize artifacts with `autoresearch init`.
11
11
 
12
12
  ## Phase 2: Iterate
13
13
 
@@ -19,7 +19,7 @@ For each iteration:
19
19
  4. Run verify and guard commands.
20
20
  5. Feed subagent findings back into the next iteration plan.
21
21
  6. Keep or discard the experiment.
22
- 7. Record the outcome with `scripts/autoresearch_record_iteration.py`.
22
+ 7. Record the outcome with `autoresearch record`.
23
23
 
24
24
  ## Phase 3: Decide
25
25
 
@@ -32,4 +32,4 @@ Stop when:
32
32
 
33
33
  Once the user approves launch, continue by default until one of those stop conditions is true. Do not restart the approval cycle on every pass; re-anchor the same standing pool and keep iterating.
34
34
 
35
- Background supervisors should use `scripts/autoresearch_supervisor_status.py` to make the relaunch decision from the same artifacts.
35
+ Background supervisors should use `autoresearch status` to make the relaunch decision from the same artifacts.
@@ -1,6 +1,6 @@
1
1
  # Plan Workflow
2
2
 
3
- Use this when the user invokes `$codex-autoresearch` without a complete setup or explicitly asks for a wizard.
3
+ Use this when the user invokes `/autoresearch:plan` without a complete setup or explicitly asks for a wizard.
4
4
 
5
5
  ## Goal
6
6
 
@@ -19,7 +19,7 @@ Turn a vague request into a launch-ready setup summary with:
19
19
 
20
20
  1. Read the repo before asking anything.
21
21
  2. Infer defaults where the repo makes them obvious.
22
- 3. Generate the setup summary with `python scripts/autoresearch_wizard.py`.
22
+ 3. Generate the setup summary with `autoresearch wizard`.
23
23
  4. Ask only the missing or risky questions.
24
24
  5. Let the user correct the setup once before launch.
25
25
  6. If the user approves, initialize artifacts and start the loop.
@@ -38,5 +38,5 @@ Ask these in order when missing:
38
38
  ## Defaults
39
39
 
40
40
  - If the repo has `pytest.ini` or a `tests/` directory, default `verify` to `pytest`.
41
- - If the repo contains `scripts/autoresearch_supervisor_status.py`, offer it as the default guard.
41
+ - If the repo contains `autoresearch status`, offer it as the default guard.
42
42
  - Default metric direction to `lower` unless the user clearly wants to maximize a score.
@@ -1,8 +1,8 @@
1
1
  # Results Logging
2
2
 
3
- `research-results.tsv` is the primary append-only results log per run.
3
+ `autoresearch-results.tsv` is the primary append-only results log per run.
4
4
 
5
- For Claude compatibility, the runtime also maintains `autoresearch-results.tsv` as a synchronized alias.
5
+ The runtime maintains `autoresearch-results.tsv` as the canonical iteration log.
6
6
 
7
7
  ## Required Columns
8
8