Skip to content
Back to skills

Plan

ASecurity

Choose an operating point on the speed↔quality frontier, fix the training-step budget, and turn findings into an ordered, gated change plan — with a quality floor, named non-negotiables, revert triggers, a measurement contract, and a stop rule. Use for `/tml:plan`, "which of these should I actually do", "I have N GPU-hours and need quality Q", "how long should I train for", "how much accuracy can I trade for speed", "what order should I make these changes in", or after `/tml:audit`. Writes ./...

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 24, 2026
ai-agentsgobash

Works with

  • cli

Security analysis

A100/100

Scanned October 4, 2026

npx -y skills add emaballarin/ccplugins --skill plan --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Plan?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Plan
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/emaballarin-plan/badge)](https://www.skillsdirectory.com/skills/emaballarin-plan)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: plan
description: 'Choose an operating point on the speed↔quality frontier, fix the training-step budget, and turn findings into an ordered, gated change plan — with a quality floor, named non-negotiables, revert triggers, a measurement contract, and a stop rule. Use for `/tml:plan`, "which of these should I actually do", "I have N GPU-hours and need quality Q", "how long should I train for", "how much accuracy can I trade for speed", "what order should I make these changes in", or after `/tml:audit`. Writes ./.tml/frontier.md; hands off to /tml:round for a designed comparison and to /ar:start for many measured iterations under a locked harness. The operating point is the operator''s decision, not the agent''s — this skill frames it and asks. Do NOT use to discover opportunities (that is /tml:audit) or to check a change already made (that is /tml:review).'
allowed-tools: [Read, Write, Glob, Grep, Bash, AskUserQuestion]
license: MIT
---

# /tml:plan — decide where to sit, and how long to train

Two decisions, both the operator's: **where on the frontier** this project sits,
and **how long each run gets**. This skill frames them, prices the options, and
asks. It does not choose.

## First action, always

```bash
ls -la ./.tml/ 2>/dev/null
```

Read `findings.md` if present. If it is absent, say so and either run
`/tml:audit` first or proceed from what the operator states — but never invent
findings to plan against.

## Hard rules

1. **The operating point is not the agent's to choose.** Present the options with
   honest upsides _and_ downsides and ask. Silence is not consent.
2. **A quality floor is mandatory before any `spending` change is ordered.** No
   floor, no spending.
3. **Non-negotiables are vetoes.** A hard constraint touched by an `unknown` or
   `spending` exposure stops that change regardless of effect size.
4. **Every ordered change carries a revert trigger** — the observation that means
   undo it — written before it is made, not after it fails.
5. **Writes only `./.tml/frontier.md`.** No project code.

## Procedure

### 1. Establish the regime

`${CLAUDE_PLUGIN_ROOT}/references/regime.md` §1 and §3: concurrent trials, local or remote execution.
This is not optional and it is not inferable — a plan calling for 60-trial
studies on a machine that runs two at a time is not a plan. Record what was
sacrificed if the regime is low (`study-design.md` §4).

### 2. Fix the step budget

`${CLAUDE_PLUGIN_ROOT}/references/step-budget.md`. Determine compute-bound or not, then:

- **Not compute-bound** — pick `max_train_steps` (§2, including the constant-LR
  sweep procedure and its self-deception failure mode) and fix it across all
  trials. Never tune it inside a study.
- **Compute-bound** — plan rounds of increasing per-trial length (§3), and carry
  the transfer ladder (§4) so it is clear which round-1 conclusions are expected
  to survive: warmup and initialisation very likely, the decay schedule unlikely.

### 3. Name the non-negotiables

Ask for them; do not infer. Each is `hard` or `soft`, and named on a dimension —
mean, calibration, worst-group, robustness under shift, tails, determinism,
latency, memory. A dimension nobody names is a dimension nobody is protecting.

### 4. Frame the operating point

Present two or three concrete points, each with what it buys, what it spends, and
what it forecloses. Then **ask**. Use `AskUserQuestion` when the options are
genuinely comparable; give a recommendation and its reason first.

### 5. Order the work

Ordering rules, in priority:

1. **Defects before optimisations.** Instability (`instability.md`) and invalid
   evaluation come first — everything measured under them is conditioned on them.
2. **Measurement before changes.** If the harness cannot detect the effect, fix
   the harness first (`tier-c-protocol.md`).
3. **`none`-radius before `numeric` before `distribution`.** Verification gets
   more expensive down that list, so bank the cheap-to-verify wins first.
4. **Batch size early or not at all** (`tier-b-systems.md` B14) — it forces
   re-tuning of the optimiser and regularisation hyperparameters, so it is a
   once-early decision, not a mid-project knob.
5. **Cheap reverts before structural ones** at equal expected value.

Each entry gets: the change, the expected effect and its grade, the verification
method implied by its radius, the revert trigger, and the gate that must pass
before the next change starts.

### 6. Measurement contract and stop rule

State once, concretely: what is measured, at what `n`, against what baseline,
with what noise floor, and what counts as a real improvement. Then the **stop
rule** — the condition under which this work ends rather than continuing by
default. Time-boxed, target-based, or diminishing-returns; anything but "keep
going".

### 7. Emit

Write `./.tml/frontier.md` from `${CLAUDE_PLUGIN_ROOT}/templates/frontier.md`, after showing the plan.

## Handoffs

- The next step is a **designed comparison** — a scientific question with
  nuisance parameters to optimise away → **`/tml:round`**.
- The next step is **many measured iterations under a locked harness**, gated on
  a noise floor → **`/ar:start`**. Shared vocabulary, no translation needed; say
  what it will cost before offering it.
- A change was made → **`/tml:review`**.

## Completion status

`DONE` (plan written, operating point chosen **by the operator**, stop rule
stated), `DONE_WITH_CONCERNS`, `BLOCKED`, or `NEEDS_CONTEXT`. If the operator
declined to choose an operating point, that is `NEEDS_CONTEXT`, not a default.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.