research-direction-selector · diff
v5.6.0-rc.2 to v5.8.0
51 added, 30 removed. Audit A to A.
---
name: research-direction-selector
- description: Choose and audit metric-driven research experiments with scoped evidence, budgets and authorized execution. Current implementations focus on ML, with optional bounded mathematical checks; not general GPU scheduling or a promise of autonomous discovery.
+ description: Choose and audit theoretical or empirical research steps with scoped evidence, budgets and authorized execution. Supports proof obligations, experiment comparisons and native research records; domain-specific solvers and scientific evidence are still required.
metadata:
- version: v5.6.0-rc.2
- engine: rds-cli-v5.6
+ version: v5.8.0
+ engine: rds-cli-v5.8
---
# Research Direction Selector
- Help the researcher make the next useful decision and advance authorized work. Current support focuses on ML; another domain needs its own executable protocol and evidence.
-
- ## Small decision loop
-
- - Infer goal, metric, evidence, rival explanation, budget and next decision from the request and project. Fill low-risk detail internally; require no form. Missing evaluation calls for a minimal protocol before material commitments, never an invented goal, frozen metric or threshold.
- - Unless following a clear authorized instruction, internally consider >=3 causally distinct routes: task gain, rival representation/mechanism and consequential diagnostic; replace irrelevant categories. Do not expose a three-item menu each turn.
- - Recommend one default and at most one serious alternative, with a deciding observation, fair comparison and stop/revision condition. Proceed within existing authorization; unanswered advice is never acceptance. Ask only for an uninferable material goal, method or resource choice.
- - In stalled discussion, advance the smallest useful decision or reversible check. Do not force an unknown objective or spend on an unaccepted material proposal. Follow clear instructions even when preferring another route.
- - Keep rejected proposals' scope and falsifying evidence. Reopen on changed evidence, scope or intervention, naming the change; do not repeat unchanged advocacy.
+ Pick the goal type, run its one command, and drive the work from the kernel's own next step. All commands run from the RDS checkout as `python -B scripts/rds_cli.py …`; `--root <dir>` selects the project directory. This file is the entry point, not the rulebook: acceptance philosophy lives in the linked docs and is loaded only when the current decision needs it.
- ## Evidence that changes decisions
+ ## Decision tree
- Separate task gain, mechanism and search-policy evidence. Published, proxy, oracle, toy and reused-development results motivate tests, not local confirmation. Precommit comparison and untouched confirmation; track exposure. Policy claims need whole trajectories at equal total budget. Reuse compatible controls; do not default to multi-seed campaigns.
+ | Goal | Run | Detail on demand |
+ | --- | --- | --- |
+ | Start from a plain-language request (first time) | Follow the [plain-language quick start](docs/quickstart.md) — copyable prompts, a generated first project, and `[RDS-REJECT]` recovery | [Project runner example](examples/project-runner/README.md) |
+ | Start a locked experiment campaign | `project init --contract <contract.json>` — template below | [Project tools](docs/development-loop.md) |
+ | Advance a running campaign | `project next` — prints the derived step and its runnable command | [Development loop](docs/development-loop.md) |
+ | Decide a research direction | `advise --context <context.json> --graph <graph.json> --brief`; lock the route with `--choose <candidate-id> --record <checkpoint-id>` | [Research discipline](references/research-discipline.md) |
+ | Audit evidence into the ledger | `artifacts import --manifest <manifest.json>` | [Agent entry](docs/agent-entry.md) |
+ | Check a mathematical claim | `formal verify --spec <spec.json> --tactics rational` | [Formal framework](references/formal_framework.md) |
+ | Reuse or register a local tool | `rsi extract --source <file> --entry <function> --name <id>`, then `rsi validate --name <id> --cases <cases.json>` → `rsi register --name <id>` | [Native research](docs/native-research.md) |
+ | Wrap one frozen tool job | `exec --name <id> --timeout 30 -- <command…>` — receipt-bound execution without contract JSON | [Agent entry](docs/agent-entry.md#wrap-a-command) |
+ | Record a decision or rejection | `checkpoint save --id <id> --decision <decision.json>` (kind auto-selects from the root); `reject --reason '<text>' --evidence <file>` reuses the current choice | [Local decision workflow](docs/lightweight-workflow.md) |
- Check what executed computation changes: a knob name or mathematical side condition does not establish a mechanism. Preserve raw observations and failures. Missing evidence stays unknown; hashes bind artifacts and exit code 0 records execution, not science. Self-signed success creates no evidence or authority.
+ **Driving pattern:** after any campaign-changing command, run `project status --brief` or `project next` and execute the printed `next_move` — register, execute, recover, compare, record — instead of memorizing a command sequence. The kernel derives the step from recorded ledger state only.
- ## Continuity and preferences
+ **Non-negotiables** (details in the linked docs): infer goal, acceptance conditions, evidence and budget from the request and project — never invent a metric, threshold or goal, and missing evaluation calls for a minimal protocol before material commitments. Missing evidence stays `UNKNOWN`; exit code 0 and self-signed success are execution records, not science. Recommend one default and at most one serious alternative, with a deciding observation, fair comparison and a stop/revision condition. Ask only for an uninferable material goal, method or resource choice.
- Record structured route decisions with `checkpoint save --decision` in the existing project/reference SQLite ledger. For local anti-loop review, supply `--research-context` with the question ID, goal revision, scope and current facts. Advisor verifies the checkpoint hashes and contract binding before pruning unchanged rejected routes; changed evidence or conditions reopen review, and A→B→A warns without veto. See [local decision workflow](docs/lightweight-workflow.md).
+ ## Minimal project contract template
- Checkpoints authenticate recorded choices, not their scientific validity or execution authority. Keep unanswered proposals pending and existing receipt/formal gates intact. Do not add chat mirrors, source indexes or parallel state machines. The standalone `--research-note` Markdown route is retired.
+ Validated by `project init`: relative paths, hex SHA-256 of each file, all five binding roles required, `min_useful_delta` as an exact rational string. Optional fields (`objective_sha256`, `execution_policy`, `stop_policy`, `maintenance_allowance`) are documented in [stop policy](docs/stop-policy.md) and [native research](docs/native-research.md). Generate a real, immediately valid contract with `python -B examples/project-runner/prepare.py --root <new-empty-dir>`.
- [Obelisk](references/obelisk.md) is an optional history enhancement when exact past wording, parameters or numbers are needed. Its existing bridge wraps the public CLI, requiring no second service. `history preflight` checks enhanced-mode setup; missing/unusable CLI leaves local anti-loop review usable, but must never be reported as a completed Obelisk query. Version success does not establish index freshness, skill loading or project coverage.
+ ```json
+ {
+ "schema": 1,
+ "description": "CPU demonstration, not scientific confirmation",
+ "bindings": [
+ {"role": "code", "path": "experiment.py", "sha256": "<sha256>"},
+ {"role": "config", "path": "config.json", "sha256": "<sha256>"},
+ {"role": "data", "path": "data.csv", "sha256": "<sha256>"},
+ {"role": "evaluator", "path": "evaluate.py", "sha256": "<sha256>"},
+ {"role": "protocol", "path": "protocol.json", "sha256": "<sha256>"}
+ ],
+ "allowed_commands": [
+ ["python", "-B", "experiment.py", "--arm", "control", "--output", "outputs/control.json"],
+ ["python", "-B", "experiment.py", "--arm", "treatment", "--output", "outputs/treatment.json"]
+ ],
+ "output_roots": ["outputs"],
+ "budget": {"wall_seconds": 20},
+ "primary_metric": {"name": "mse", "direction": "min", "min_useful_delta": "1/100"}
+ }
+ ```
- Apply and persist research preferences only with explicit opt-in. [Optional preferences](references/optional-preferences.md) are 空投's examples, not others' defaults or experiment authority.
+ Then `project init --contract <root>/contract.json`, register each arm with `project create --manifest <root>/<arm>.json`, and follow `project next`.
- ## Load detail only for the current task
+ ## Load more only when the decision needs it
- | Need | Read or use |
- |---|---|
- | Substantive comparison or evidence/human-direction conflict | Relevant [research discipline](references/research-discipline.md) sections: decision contract, direction program, evidence, output. Keep schemas internal. |
- | A general rule could change this decision | Relevant [judgment graph](references/judgment-graph.yaml) nodes: date, scope, applicability, counterexample. For RSI comparisons read [RSI evidence](references/rsi-evidence.md). These are scoped corrections, not universal laws; do not load all libraries. |
- | Execute the scalar reference protocol | [L3 contract](references/l3-state-machine.md), then the discipline's CLI section. Its restricted rational AST/MSE receipts do not validate external training. |
- | Execute/resume a project or develop RDS | [Development loop](docs/development-loop.md): authorized argv, bindings, raw artifacts, live checkpoints. Inspect existing runs before another attempt. |
- | Mathematical obligation / Lean certificate | [Formal framework](references/formal_framework.md) and discipline's formal section: actual checker and declared scope; `UNKNOWN` stays unknown. |
- | Graph gaps / Advisor advancement | [Frontier](docs/advisor-frontier.md) or [advancement protocol](docs/advisor-advancement.md). Proposed nodes/ASTs need independent evidence. |
+ - Goal-linked dependencies, method limits, theory/experiment acceptance: [agent entry](docs/agent-entry.md)
+ - Evidence classes, output contract, controls, precommitted comparison: [research discipline](references/research-discipline.md)
+ - Capacity, idle resources, parallel batches: [resource-aware planning](docs/resource-planning.md)
+ - Stalled formulation, plateau, theory-tool lookup: [theory reformulation](docs/theory-reformulation.md)
+ - Anti-loop checkpoint review: [local decision workflow](docs/lightweight-workflow.md)
+ - Formal scope, `UNKNOWN` semantics, Lean backends: [formal framework](references/formal_framework.md)
+ - Native objectives, asset retention, RSI ledger: [native research](docs/native-research.md)
+ - Optional history enhancement: [Obelisk](references/obelisk.md); preferences apply only with explicit opt-in: [optional preferences](references/optional-preferences.md)
- Runner, Lean and RSI remain optional capabilities with their gates intact. Advisor and rule lint are heuristic; rule adoption needs bound evaluation. Software or historical-fixture success is not research-policy gain.
+ Runner, Lean and RSI remain optional capabilities with their gates intact. Advisor and rule lint are heuristic; report the actual backend and assurance (`CERTIFICATE_CHECKED` for the rational checker, `LEAN_KERNEL_CHECKED` for native Lean) and keep unresolved results unknown.