Skip to content
Back to skills

Pytest Optimizer 03 Execute

ASecurity

Use when applying an approved pytest optimization plan as separate verified commits with resumable progress.

  • 3 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 19, 2026
ai-agentsgobashgit

Works with

  • claude code

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 19, 2026

npx -y skills add tony/skills --skill pytest-optimizer-03-execute --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pytest Optimizer 03 Execute?

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

Security grade badge for Pytest Optimizer 03 Execute
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tony-pytest-optimizer-03-execute/badge)](https://www.skillsdirectory.com/skills/tony-pytest-optimizer-03-execute)

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: pytest-optimizer-03-execute
description: >-
  Use when applying an approved pytest optimization plan as separate
  verified commits with resumable progress.
disable-model-invocation: true
allowed-tools: ["Bash", "Read", "Grep", "Glob", "Write", "Edit", "AskUserQuestion"]
metadata:
  argument-hint: "[--from=<index>] [--dry-run] [--memory-dir=<path>]"
  source: "plugins/pytest-optimizer/skills/03-execute/SKILL.md"
---

# 03-execute

Land the plan as separate, verified commits. This is the **only** phase that edits
the suite and writes history.

`$ARGUMENTS` may pass `--from=<index>` to start at a specific plan item,
`--dry-run` to apply and verify without committing (reverting after each), and
`--memory-dir` to override the memory location.

## Step 1: Preconditions

Read `plan.json`, `baseline.json`, and the project quality-check + test commands.
Refuse to run unless:

- the working tree is **clean** (one commit per speedup needs a clean base), and
- `plan.json` exists and was approved in the `pytest-optimizer-02-plan` skill.

Read `execution-log.json` if present and resume from `last_applied_index + 1`
(or `--from`). Never re-apply an item that already has a `commit_sha`.

## Step 2: Apply each item in order

For each plan item not yet applied:

1. **Apply** the single change (the heuristic's action). Touch only the files the
   plan lists for this item.
2. **Verify green.** Run the project quality checks (formatter, linter, type
   checker) and the test suite, as declared in the project's `AGENTS.md`/
   `CLAUDE.md` — substitute that command wherever this file writes `pytest`:

   ```bash
   pytest -p no:cacheprovider -q
   ```

   For a typing/parametrize item (goals 9, 10), the type checker must cover
   `tests/` and pass.
3. **On success** — commit this change **alone** with the drafted why/what
   message (`templates/commit-message.tmpl`, adapted to
   the target project's convention). Record the `commit_sha`.
4. **On failure** — revert the change (`git checkout -- <files>` / discard), mark
   the item `skipped` with the reason. Do not let one failure block the rest.
5. **Checkpoint** — append the item's outcome to `execution-log.json` immediately
   and update `state.json` (`phase=execute`, `last_applied_index`). This makes the
   loop crash-safe: a re-run continues from the last durable checkpoint.

Under `--dry-run`, perform 1–2 then revert and log the verify result without
committing.

## Step 3: Re-measure and report

After the plan is exhausted, re-run the baseline measurement (serial, cache
disabled, N runs) and compare total wall-time to `baseline.json`. Emit the
`03-execute` sections from `references/output-contract.md`:
hero block, then `## Applied` (commit SHAs + measured verify), `## Skipped`
(revert reasons), `## Result` (post-suite wall-time vs baseline, total recovered).

## Step 4: Offer another pass

Close with an `ask-user-choice` panel: re-scan for a second pass (the suite is now
leaner, so new candidates may surface), scaffold the opt-in cache/timing plugin,
or stop. Re-scanning restarts the loop at the `pytest-optimizer-00-scan` skill with a fresh
baseline.


## Portability notes

- `ask-user-choice` — present the listed options and wait for the user to pick one. Hosts with a structured multiple-choice tool (Claude Code's `AskUserQuestion`) should use it; otherwise print a numbered list and wait for a numbered reply. Never proceed on an assumed answer.
- `$ARGUMENTS` — the text the user passed when invoking this skill. If your host does not substitute it, read it as the user's request in the current turn, and ask when there is none.
- Bundled files — every relative path in this skill points at a file shipped inside this skill directory. Read them from here, not from the host's plugin tree.

Files in this skill

  • SKILL.md3.7 KB
  • references/output-contract.md2.7 KB
  • templates/commit-message.tmpl798 B

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…