brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Triage improvement work and run or resume accepted measured loops in a local project. Architecture, documentation, UX, product study, open research, taste, and one-shot fixes stay direct unless the user explicitly requests repeated measurement with a complete experiment contract.
Claude Code
$ npx -y skills add TheGreenCedar/codex-autoresearch --skill codex-autoresearch --agent claude-code
Codex
$ npx skills add TheGreenCedar/codex-autoresearch --skill codex-autoresearch -a codex -y
Cursor
$ npx skills add TheGreenCedar/codex-autoresearch --skill codex-autoresearch -a cursor -y
Gemini CLI
$ npx skills add TheGreenCedar/codex-autoresearch --skill codex-autoresearch -a gemini-cli -y
GitHub Copilot
$ npx skills add TheGreenCedar/codex-autoresearch --skill codex-autoresearch -a github-copilot -y
OpenCode
$ npx skills add TheGreenCedar/codex-autoresearch --skill codex-autoresearch -a opencode -y
Windsurf
$ npx skills add TheGreenCedar/codex-autoresearch --skill codex-autoresearch -a windsurf -y
name: codex-autoresearch description: Triage improvement work and run or resume accepted measured loops in a local project. Architecture, documentation, UX, product study, open research, taste, and one-shot fixes stay direct unless the user explicitly requests repeated measurement with a complete experiment contract.
Decide fit before exploring the repository. Autoresearch governs repeated measured experiments; it does not take over every task that mentions research, quality, or improvement.
Use this as the only Codex-facing Autoresearch skill. Do not route to retired subskills, slash commands, or MCP surfaces.
Make one read-only fit call before benchmark discovery, recipe lookup, repository scanning, default inference, or setup:
node scripts/autoresearch.mjs prompt-plan --cwd <project> --prompt "<request>"
Follow its typed disposition:
An existing session is `matching` only when repository, checkout, goal, metric semantics, evaluator, checks, and scope are compatible. Shared words are not evidence of a match. Replacing or abandoning a session requires explicit user intent.
An explicit loop request with an incomplete contract is `needs-user`, with bounded read-only preparation when allowed. A discovered command is a proposal, never execution authority.
The fit parser reads one labeled field per line: `Benchmark: <command>`, `Metric: <name> (<unit>), lower is better` (or `higher`), `Checks: <command>`, and `Scope: <paths>`, plus `Stop after <N> packets`. If the user's explicit loop request already supplies those facts in prose, include that faithful field transcription with the original request. Preserve negation and read-only intent, and leave genuinely missing facts missing. Do not ask the user to repeat facts merely to satisfy parser syntax.
Use this evidence capsule:
1. State the requested outcome. 2. Identify the main uncertainty. 3. Gather the cheapest evidence that can resolve it. 4. Perform the direct task. 5. Verify the result and bound the claim.
Direct work may finish an implementation, explanation, review, or ordinary correctness check. It may not claim measured improvement or authorize a keep without accepted evaluator and checks evidence.
Architecture, documentation, UX, product study, open-ended research, taste, bugs, quality, delight, and generic improvement language do not independently select a loop. A qualitative gap loop is appropriate only when the user explicitly wants repeated evaluation against a stable, accepted checklist.
Once fit is `run-loop`:
1. Identify the repository and child package that own the work. 2. Run `git status --short --branch` and preserve unrelated changes. 3. Establish one complete contract: goal, repository and worktree identity, metric semantics, evaluator, independent checks, editable and protected scope, noise model, keep rule, stop rule, and enforceable budgets. 4. Use `setup` for a new session. Identify and protect the independent check implementation in `autoresearch.config.json` with `checkImplementationPaths` and `checksAuthoritative: true` only after reviewing its assertions. Review `new-segment --dry-run`, then use `new-segment --yes` to record the user-accepted contract. The same explicit transition replaces a contract. Do not execute a packet until `state --report` shows an accepted contract. 5. Configure `commitPaths` before a keep may commit changes.
The accepted evaluator and checks are the only execution authority. CLI, config, wrapper, separator, command-file, or environment-file overrides may run only when they reproduce the accepted execution digest exactly. Otherwise stop and transition the contract explicitly.
Metric names carry no semantics. A name containing `quality`, `score`, `precision`, or similar text does not imply a direction, threshold, target, or perfect value.
Unknown noise requires repeated reference and unchanged-candidate measurements. Log qualification packets as `measure`; the default requires at least two reference and two candidate samples. Every packet consumes budget. A keep requires the complete sample cohorts to pass the accepted comparison, not merely a favorable last result. Estimated model tokens or calls are advisory unless trusted host telemetry makes them enforceable.
For an existing matching session, run one bounded read:
node scripts/autoresearch.mjs state --cwd <project> --report
Do not reread raw session files and separately ask state, recommendation, doctor, watchdog, portfolio advice, and finalization to vote on the next step. The report projects one `DecisionPlan` with:
A codex plugin for running optimization loops inside a codebase. It is useful when you have a measurable target and many possible changes to try: test runtime, build speed, bundle size, model loss, Lighthouse scores, memory use, query latency, or any other metric you can print from a script.
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.