Skip to content
Automation
Skill

/ds-decision

Use when the quest needs an explicit go, stop, branch, reuse-baseline, write, finalize, reset, or user-decision transition with reasons and evidence.

From plugin
dr-claw
1k173 skills8 agents
Install
$ npx -y skills add OpenLAIR/dr-claw --skill ds-decision --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/ds-decision

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when the quest needs an explicit go, stop, branch, reuse-baseline, write, finalize, reset, or user-decision transition with reasons and evidence.

SKILL.md

ds-decision.SKILL.md
name: ds-decision
description: Use when the quest needs an explicit go, stop, branch, reuse-baseline, write, finalize, reset, or user-decision transition with reasons and evidence.
skill_role: stage
license: MIT
metadata:
  author: ResearAI/DeepScientist
  version: "1.0.0"

Decision

Use this skill whenever continuation is non-trivial.

Interaction discipline

  • Follow the shared interaction contract injected by the system prompt.
  • For ordinary active work, prefer a concise progress update once work has crossed roughly 6 tool calls with a human-meaningful delta, and do not drift beyond roughly 12 tool calls or about 8 minutes without a user-visible update.
  • Message templates are references only. Adapt to context and vary wording so updates feel natural and non-robotic.
  • If the runtime starts an auto-continue turn with no new user message, continue from the active requirements and durable quest state instead of replaying the previous user turn.
  • If `startup_contract.decision_policy = autonomous`, do not emit ordinary `artifact.interact(kind='decision_request', ...)` calls; decide the route yourself, record the reason, and continue.
  • Use `reply_mode='blocking'` for the actual decision request only when the user must choose before safe continuation and the quest contract still allows a user-gated decision.
  • If a threaded user reply arrives, interpret it relative to the latest decision or progress interaction before assuming the task changed completely.
  • Quest completion is a special terminal decision: first ask for explicit completion approval with `artifact.interact(kind='decision_request', reply_mode='blocking', reply_schema={'decision_type': 'quest_completion_approval'}, ...)`, and only after an explicit approval reply should you call `artifact.complete_quest(...)`.

Tool discipline

  • **Do not use native `shell_command` / `command_execution` in this skill.**
  • **If decision-making needs shell, CLI, Python, bash, node, git, npm, uv, or environment evidence, gather it through `bash_exec(...)`.**
  • **For git state inside the current quest repository or worktree, prefer `artifact.git(...)` before raw shell git commands.**
  • **Use `decision` to judge the route, not as an excuse to bypass the `bash_exec(...)` / `artifact.git(...)` tool contract.**

Stage purpose

`decision` is not a normal anchor. It is a cross-cutting control skill that should be used whenever the quest must decide:

  • whether to continue
  • whether to branch
  • whether to attach or reuse a baseline
  • whether to launch an experiment
  • whether to launch an analysis campaign
  • whether to move to writing
  • whether to finalize
  • whether to reset
  • whether to stop
  • whether to ask the user for a structured decision

Use when

  • the next stage is not obvious
  • the evidence is mixed
  • the current line may need to stop
  • the quest needs a branch or reset
  • a user preference-sensitive choice remains
  • a blocker needs an explicit route

Required decision record

Every consequential decision should make clear:

  • verdict
  • action
  • reason
  • evidence paths
  • next stage or next direction

Recommended verdicts

  • `good`
  • `bad`
  • `neutral`
  • `blocked`

Allowed actions

Use the following canonical actions:

  • `continue`
  • `launch_experiment`
  • `launch_analysis_campaign`
  • `branch`
  • `prepare_branch`
  • `activate_branch`
  • `reuse_baseline`
  • `attach_baseline`
  • `publish_baseline`
  • `write`
  • `finalize`
  • `iterate`
  • `reset`
  • `stop`
  • `request_user_decision`

Choose the smallest action that genuinely resolves the current state.

In the current runtime, prefer these concrete flow actions:

  • record a candidate brief before branch promotion -> `artifact.submit_idea(mode='create', submission_mode='candidate', ...)`
  • accepted idea -> `artifact.submit_idea(mode='create', lineage_intent='continue_line'|'branch_alternative', ...)`
  • promote a candidate brief into a durable optimization line -> `artifact.submit_idea(mode='create', submission_mode='line', source_candidate_id=..., lineage_intent='continue_line'|'branch_alternative', ...)`
  • maintenance-only in-place cleanup of the same branch -> `artifact.submit_idea(mode='revise', ...)`
  • compare branch foundations before a new round -> `artifact.list_research_branches(...)`
  • return to an older durable branch without creating a new node -> `artifact.activate_branch(...)`
  • materialize the concrete main-result node when a real main experiment line is about to be or was just durably recorded -> dedicated child `run/*` branch/worktree
  • start the next optimization round from a measured result -> `artifact.record(payload={'kind': 'decision', 'action': 'iterate', ...})`
  • launch analysis campaign -> `artifact.create_analysis_campaign(...)`
  • finish one analysis slice -> `artifact.record_analysis_slice(...)`
  • select a paper outline -> `artifact.submit_paper_outline(mode='select', ...)`
  • revise the selected paper outline -> `artifact.submit_paper_outline(mode='revise', ...)`
  • close writing into a durable bundle -> `artifact.submit_paper_bundle(...)`

If the chosen action is baseline reuse, the decision is not complete until one of these is durably true:

  • the reuse landed on `artifact.attach_baseline(...)` plus `artifact.confirm_baseline(...)`
  • or the quest recorded an explicit blocker or waiver explaining why reuse could not be completed safely

Treat `prepare_branch` as a compatibility or recovery action, not the normal path. Treat `activate_branch` as the correct recovery or revisit action when the quest should resume on an existing older durable branch while preserving the newer research head. Treat each accepted branch as one durable research round. Treat candidate briefs as branchless pre-promotion objects; they are not yet durable optimization lines. If a branch already has a durable main-experiment result, a genuinely new optimization round should normally create a child branch from a chosen foundation rather than keep revising that old branch in place. Tre

Read more
Ships withdr-claw

A Super AI Lab with massive AI Doctors as Assistants. Best IDE for Research via AI Power.

Get the whole plugin

Other skills on dr-claw.