Skip to content
Back to skills

Mdp Escalate

ASecurity

L2+ rounds of the MDP pipeline (hp / gym / arch levers) after mdp-solve's L1 gate shows a gap with a healthy build — playbook-consulted, ledger-addressed, within the run plan's budget. Use when an L1 leaderboard row underperforms. Full pipeline: mdp-solver.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 9, 2026
businesspythongobashapi

Works with

  • claude code
  • api

Security analysis

A100/100

Scanned October 9, 2026

npx -y skills add tong-wang/auto-mdp-solver --skill mdp-escalate --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Mdp Escalate?

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

Security grade badge for Mdp Escalate
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tong-wang-mdp-escalate/badge)](https://www.skillsdirectory.com/skills/tong-wang-mdp-escalate)

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: mdp-escalate
description: >
  L2+ rounds of the MDP pipeline (hp / gym / arch levers) after mdp-solve's
  L1 gate shows a gap with a healthy build — playbook-consulted,
  ledger-addressed, within the run plan's budget. Use when an L1 leaderboard
  row underperforms. Full pipeline: mdp-solver.
---

# mdp-escalate — L2+ rounds (hp / gym / arch)

One op of the split MDP pipeline; `mdp-solver` is the conductor. The governing
docs are at `${CLAUDE_SKILL_DIR}/../mdp-solver/` — the `mdp-solver` sibling
of this skill's own directory (`${CLAUDE_SKILL_DIR}` is substituted by Claude
Code at load; on Codex it is the path printed beside this skill in the skills
list) — read them from that path, never from a filesystem search (a dev
checkout on disk would silently substitute unreleased content). Read `CONTRACTS.md` there first: it maps the
ops and says what each reads. **This op needs:** spec `MDP_PROJECT_SPEC.md`
§8.4, §8.6 and §13, `ESCALATION_LOG_GUIDE.md` (whole — the campaign-log
format; its §-numbers are cited from case logs and never renumber),
`PLAYBOOK.md` and the example playbook entries it matches — not spec §1–§7,
not the IR sample. Everything else in that directory is consulted only when a
step below names it. Venv and run discipline per `ENVIRONMENT.md` (1 repair
attempt per failing design axis, the >30-minute ask, background runs).

**Entry gate — run first, exit 0 required:**

```bash
<python> -m mdp_stage {domain} --for escalate
```


Then read `{domain}/CLAUDE.md`, the folder's operating brief: Claude Code
pushes it when work touches the folder, other hosts do not, and its hard
rules bind this op either way.

It re-derives the freeze check plus solve's exit artifacts (run plan,
baselines, an RL row) and requires `{domain}/ESCALATION.md` — the guide's
no-run-without-an-address rule made mechanical: rounds live at MAP addresses
and runs are cited from the §LEDGER, so the log exists *before* the first
L2+ launch, seeded per `ESCALATION_LOG_GUIDE.md`. Also confirm the premise,
not just the artifacts: escalation is only licensed by `mdp-solve`'s exit
diagnosis — a gap **with a healthy build**. If L1 sits at or below random,
that verdict is a build bug; go back instead of escalating.

## Rounds

A round is: diagnose the symptom from cheap evidence → choose the lever(s) —
**hp** (tuning), **gym** (obs/action/reward reshaping), **arch**
(`policy_kwargs`) — → run within budget → evaluate under the *same* Stage-4
protocol and `mdp_gates` gate as every other arm → record. A tuned result is
always L2: level ≥ L2 ⟺ more than one training config was tried (spec §8.6).
Tag each leaderboard row by the layers that actually moved (`L2(hp)`,
`L3(hp+arch)`, …), and label every row clearly against L0/L1.

Before designing any L2+ escalation, consult the shipped playbook:
`PLAYBOOK.md` in the `mdp-solver` skill directory (path above) is the
curated index, linking into
`examples/*/PLAYBOOK.md` — each a campaign's distilled experiences. Match on
*symptom*, read the matched entry **with its context**, and analogize —
entries are experiences, not rules; their scope conditions decide whether one
applies here. An entry's `#E` citations resolve in that example's
`ESCALATION.md`; drill down only when the entry's story needs chasing.

- Tuning — the escalation opened only when the L1 gate shows a
  gap (or on request): `{domain}_ppo_tune.py` thin wrapper over `mdp_tuning`
  pre-filling `--metric <metric>_mean` (and `--beta`/`--episode-len` from
  the IR). The driver warm-starts trial 0 from the script defaults (the L1
  center) and tunes the `core` knob tier by default — `--knobs breadth`
  needs ≥ ~40 trials, and is also where the two normalization priors
  (`norm_obs`, `normalize_advantage`) get checked, since §8.6's rows for
  them are settled by a run and by nothing earlier. **Tag the round by what
  moved, not by the fact that a study produced it:** the tiers cross layer
  lines (`core` reaches the extractor knobs, `breadth` reaches `norm_obs`),
  so a winner can be `L3(hp+arch)` or `L3(hp+gym)` — `--show-space` says
  which layers a study can reach before it runs, `--fix` closes one.
  (The diagnosis that *licenses* opening a study at all is `mdp-solve`'s
  exit, quoted at the entry gate above.)
  **Selection-bias rule:** the study winner was selected on its tuning
  seeds — always re-evaluate the winning artifact with the full protocol
  before comparing or shipping, and expect the score to drop. A config
  tuned at a small budget does not necessarily improve when retrained
  longer; prefer shipping the tuned artifact itself. If you do retrain a
  winner, read its config off the trial's own args log: a trial command is
  the **derivation plus the delta the study searched** (spec §8.6), so
  "the script's defaults plus the winning cfg" is a different configuration
  wherever a default has moved off the derivation.


Gym-layer rounds carry the one upstream hazard: an obs/reward feature that
needs information `_mdp` does not publish is not a gym edit — it re-opens
`mdp-build` (info amendment → differential re-run) or the IR itself (new
information → `mdp-formalize`). Say so and route it; never patch it in the
wrapper.

## Stopping

Two exits, both honest: **competitive** — the escalated arm clears the
`mdp_gates` gate after full-protocol re-evaluation (selection-bias rule
above) — or **budget exhausted** per the run plan. Budget exhaustion without
clearing the bar is a real result: record it in the log (failed experiments
are §LEDGER content too) and report it plainly — do not quietly extend the
budget. Either way, update `ESCALATION.md` per the guide, put the final rows
on the leaderboard, and hand the winning artifact (which may still be L1) to
`mdp-interpret` — or back to the conductor.

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.