Skip to content
Agentmart
Submit a tool

harness-decision-mode

Switch or set a harness project's decision / escalation MODE — Mode 1 (human decides every judgment call), Mode 2 (the AI decides per the PRESET rubric…

Skill by Alan-IFT

IndexedMIT
Write a review

Install

Works with Claude Code. Read the repository before you give any tool access to your data.

npx agentmarket install skill/alan-ift-harness-decision-mode

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Switch or set a harness project's decision / escalation MODE — Mode 1 (human decides every judgment call), Mode 2 (the AI decides per the PRESET rubric, escalating only the red lines), or Mode 3 (the AI decides per your own custom rubric). Use to change HOW MUCH the AI decides on its own versus asks you first — "switch decision mode", "let the AI decide on its own", "make it ask me first", "切换决策模式", "让 AI 自己拿主意", "改成人工决策", "用我自己的决策规则". NOT for editing the rubric's CONTENT only (edit .harness/decision-rubric.md directly), NOT for output-language (/harness-language), NOT for layout upgrades (/harness-upgrade).

Use cases: writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/harness-decision-mode

Tools it pre-approves 8

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Read,
  • Write,
  • Edit,
  • Glob,
  • Grep,
  • Bash,
  • AskUserQuestion,
  • TodoWrite

What's inside

Skill name
harness-decision-mode
Description
Switch or set a harness project's decision / escalation MODE — Mode 1 (human decides every judgment call), Mode 2 (the AI decides per the PRESET rubric, escalating only the red lines), or Mode 3 (the AI decides per your own custom rubric). Use to change HOW MUCH the AI decides on its own versus asks you first — "switch decision mode", "let the AI decide on its own", "make it ask me first", "切换决策模式", "让 AI 自己拿主意", "改成人工决策", "用我自己的决策规则". NOT for editing the rubric's CONTENT only (edit .harness/decision-rubric.md directly), NOT for output-language (/harness-language), NOT for layout upgrades (/harness-upgrade).
License
MIT
Allowed tools
Read,, Write,, Edit,, Glob,, Grep,, Bash,, AskUserQuestion,, TodoWrite
Instructions
157 lines in SKILL.md · view on GitHub

Before installing

  • Pre-approves some shell commands

Files (1)

  • SKILL.md

SKILL.md (first lines)

# /harness-decision-mode

Set or switch a harness project's **decision & escalation mode** — the project-wide control over
how a judgment call is resolved when the AI hits a choice it would otherwise put to you. The full
policy lives in `.harness/rules/25-decision-policy.md`; the principles the AI decides by live in
`.harness/decision-rubric.md`. This skill flips the **Active mode** line of the policy (and, for a
first Mode-3 switch, seeds the Custom rubric).

The three modes (from `25-decision-policy.md`):

- **Mode 1 — human decides** (the safe default for new projects). The AI escalates every judgment
  call it cannot resolve from the request, the code, or an unambiguous default.
- **Mode 2 — preset-rubric autonomy.** The AI decides anything the **Preset rubric** covers,
  escalates only the red lines + uncovered/irreversible calls, and logs each autonomous decision.
- **Mode 3 — custom-rubric autonomy.** Same mechanism as Mode 2, but the AI decides by YOUR
  **Custom rubric** instead of the Preset. The red lines and the audit trail still apply.

The command rewrites **only** the single `Active mode:` line of
`.harness/rules/25-decision-policy.md` (plus, for a first Mode-3 switch with an empty Custom rubric,
the `## Custom rubric (Mode 3)` section of `.harness/decision-rubric.md`). Every other byte of every
file is preserved. It is non-destructive (a `.bak` precedes each edit; a clean git tree is required
so `git reset` is a full rollback) and idempotent (re-picking the already-active mode is a clean
no-op — no write, no `.bak`).

> This skill is the **judgment layer**, and the edit is small enough to do directly: a single-line
> replace via the `Edit` tool plus (Mode-3 only) a section-body replace. There is **no helper
> script** — unlike `/harness-language`, no heading-anchored section slicing or byte-identical
> cross-shell round-trip is needed here, so adding a `.sh` pair would be machinery that does
> not earn its place (`.harness/rules/15-skill-authoring.md` P6).

## When to invoke

- "Switch to Mode 2 / let the AI decide on its own" → pick Mode 2.
- "Make it ask me before deciding / 改成人工决策" → pick Mode 1.
- "Use my own decision rules / 用我自己的决策规则" → pick Mode 3 (you'll author the Custom rubric).
- "切换决策模式 / 让 AI 自己拿主意" → run it, pick the mode interactively.

## When NOT to invoke

- To change WHAT the Preset or Custom rubric SAYS without changing the mode → edit
  `.harness/decision-rubric.md` directly; this skill only flips the active mode (and seeds an empty
  Custom rubric on a first Mode-3 switch).
- To change the project's output language → `/harness-language`.
- To upgrade an old project's layout / scripts / version → `/harness-upgrade`.
- On a brand-new project that has no `.harness/rules/25-decision-policy.md` yet → run `/harness-init`
  (new projects start at Mode 1 by default), or `/harness-upgrade` to bring an old project up to the
  current layout. This skill does NOT bootstrap a missing policy file.
- On this kit's own dogfood repo casually — it targets *generated* projects (though it works here
  too; the dogfood Active mode is deliberately 2).

## Procedure

Use `TodoWrite` to track. The apply step is gated: never write without an explicit user "yes".

### 1. Precondition gate

The current working directory is the target project.

- Confirm `.git/` exists. If not → **halt**, no changes ("not a git repository").
- Refuse on a **dirty working tree** (`git status --porcelain` non-empty) with "commit or stash your
  changes first" — this preserves the `git reset` rollback path.
- Confirm `.harness/rules/25-decision-policy.md` exists. If **not** → **halt**: "this project has no
  decision-policy to switch; run `/harness-init` (new project) or `/harness-upgrade` (old project)."

### 2. Read the current Active mode

Read `.harness/rules/25-decision-policy.md` and find the single line matching
`Active mode: <N>` (the canonical line is bold: `**Active mode: 2 (preset-rubric autonomy …).**`).

- If exactly one such line is found → `current = N` (1, 2, or 3). Display it ("current = Mode N").
- If **no** recognizable `Active mode:` line, or **more than one** → **halt** with a conflict
  message ("could not find a single 'Active mode' line in 25-decision-policy.md; it may be
  hand-mangled — fix it by hand or restore from backup"). NEVER guess or write into an
  unrecognized structure.

### 3. Pick the target mode

`AskUserQuestion`: present Mode 1 / Mode 2 / Mode 3 as options, each with a one-line description of
what it does (text from "The three modes" above). **Pre-select the current mode.** The user picks one.

### 4. Idempotency

If `target == current` → report "already Mode N — nothing to do" and **stop** (no write, no `.bak`).

### 5. Confirm and apply the Active-mode line

1. Compute the new Active-mode line by replacing only the mode digit + its short parenthetical label,
   preserving the rest of the line's prose. The canonical labels:
   - Mode 1: `**Active mode: 1 (human decides — the safe default).**`
   - Mode 2: `**Active mode: 2 (preset-rubric autonomy, "balanced" calibration).**`
   - Mode 3: `**Active mode: 3 (custom-rubric autonomy).**`
   (Keep the surrounding lines — the "New projects … default to Mode 1 … Switch with
   `/harness-decision-mode`" sentence below it — unchanged.)
2. Show the single-line diff (old → new). `AskUserQuestion`: "Apply this change? [yes / no]".
3. On **"yes"**: write a timestamped `.bak` of `25-decision-policy.md`, then `Edit` the one
   `Active mode:` line (exact old-string → new-string). On **"no"** → stop, change nothing.

### 6. Mode-3 Custom-rubric capture (only when switching TO Mode 3)

If `target == 3`:

1. Read `.harness/decision-rubric.md` and locate the `## Custom rubric (Mode 3)` section body.
2. **If the body is empty** (only the instruction blockquote + the `_(empty …)_` placeholder, no
   authored bullets):
   - `AskUserQuestion` (use the free-text **"Other"** option) collecting the user's custom decision
     prompts — the principles they want the AI to decide by. Offer to gather several (e.g. "add
     another?" loop) and let them finish.
   - Write a `.bak` of `decision-rubric.md`, then `Edit` the Custom-section body: replace the
     `_(empty …)_` placeholder with the user's bullets (keep the instruction blockquote above it).
3. **If the body is already non-empty** → leave it untouched; just report that Mode 3 now reads the
   existing Custom rubric. (To change its content, the user edits `decision-rubric.md` directly.)

### 7. Final report

```
Set decision mode: Mode <M> -> Mode <N>
25-decision-policy.md:  Active-mode line rewritten
decision-rubric.md:     <Custom rubric seeded with N prompts | unchanged>
Backups:                <.bak paths>

From Alan-IFT/harness-kit, MIT.

More from Alan-IFT/harness-kit

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Aug 8, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Alan-IFT

Cite this page

harness-decision-mode skill. Agent Mart. https://agentmart.dev/skills/alan-ift-harness-decision-mode (last updated 2026-10-24)