Skip to content
Back to skills

Fr Execute

ASecurity

Execute an agentic phase from a plan. Use when implementing assigned work from a plan file. Agent-facing skill.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 19, 2026
ai-agentsgobashgitperformance

Works with

  • claude code
  • cli

Security analysis

A100/100

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

Scanned October 19, 2026

npx -y skills add derio-net/super-fr --skill fr-execute --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fr Execute?

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

Security grade badge for Fr Execute
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/derio-net-fr-execute/badge)](https://www.skillsdirectory.com/skills/derio-net-fr-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: fr-execute
description: >
  Execute an agentic phase from a plan. Use when implementing
  assigned work from a plan file. Agent-facing skill.
---

# fr-execute

Implements a single phase from a plan. **Announce at start:** "I'm using
fr-execute to implement this phase."

## Mode selection

| Input | Mode |
|---|---|
| Issue URL/number (dispatch repo) | Dispatched: read assignment from Issue body — it embeds the spec link, plan `_prose.md`, and phase `NN.yaml` inline (repo checkout stays the source of truth) |
| (plan_dir, phase number) | Local: direct arguments |

## PR format (unified) — for an agentic phase's PR

- **Title:** `[{owner}/{repo}] {slug} · Phase {n}/{total} · {phase_title}` —
  matches the Issue title shape so VK / GH / PR surfaces align; the
  `fr pickup` output below is the canonical template.
- **Body:** first content block is the tracking block copied verbatim from
  the Issue body (the `📦 Repo:` / `📋 Plan:` / … lines plus the
  `**Goal (from plan):**` paragraph). Then proceed with your PR summary.

## Label lifecycle (no manual transition verbs in v2)

The Issue moves `fr:ready → fr:in-progress → fr:pr-ready → closed`; every flip
is derived from what the renderer observes on the Issue plus its linked PRs:

- **`fr:ready`:** a `tracking_issue`, no assignee, no open draft or non-draft PR.
- **`fr:in-progress`:** the Issue has an assignee OR a draft linked PR.
- **`fr:pr-ready`:** an open non-draft, non-merged linked PR exists.
- **closed:** `state.completion.at` set AND a merged PR observed AND no open
  linked PR remains (per `_phase_complete` in `render.py`).

`fr apply` at the end of the phase pushes whichever transitions the renderer
projects from current GitHub state. Assign yourself to the Issue (or open a
draft PR) for `fr:in-progress`; take the PR out of draft for `fr:pr-ready`.

## Procedure

1. **Get phase scope:**
   ```bash
   fr pickup <plan-dir> --phase N
   ```
   Markdown: title, `Depends on:` (not yet `Complete` → stop, report), tasks + steps, `_prose.md`. In
   an fr-goal run it ends with a `## Step record`: keep THAT (ticks, `refactor:`, journal) instead of
   steps 4–5's verbs — the orchestrator's `fr run resolve --record` applies it in one commit.

2. **Implement** (`superpowers:executing-plans`, parallel phases: `subagent-driven-development`):
   end every task red → green → refactor or record `no-refactor-because: P<n>.T<m>` in the journal — `fr journal add --scope plan` requires `--phase N` or `--global`, so tag it explicitly; `--complete-phase` refuses a phase with a task that has neither. **Context discipline:** don't re-derive from the code what the handoff already states, read the narrowest thing that answers the question, and never paste verbatim tool output into your return — cache reads accumulate as context size summed over turns, so your own re-reads dominate the cost (super-fr#464).

3. **Browser check** — when the phase's row carries `visual`: capture every named state and interaction, limits included, preferring a capture script (re-run it, don't re-drive by hand); open every screenshot with an image read — a script's exit code is never the evidence; fill the record's `visual:` section. Write shots where both `fr run resolve` (on the host) and the reading agent see them: a git-ignored directory of the worktree (devcontainer mode's bind mount reaches it) or a scratch dir outside the repo — never the container's own `/tmp`, where take 9's screenshots were lost, and never `<run>.records/`. **Harness — image read:** on Claude Code that is the file-read tool, recorded in the transcript; OpenCode and Hermes read it with their own tool, unobserved until their readers recognise one.

4. **Tick steps as you complete them:**
   ```bash
   fr plan edit <plan-dir> --tick P<n>.T<n>.S<n> --state x
   # or, to record a deliberate skip:
   fr plan edit <plan-dir> --tick P<n>.T<n>.S<n> --state - --note "<reason>"
   ```

   **Harness — dispatch:** the executor is a leaf everywhere — Claude Code
   grants it **no `Agent` tool**, OpenCode's agent sets `task: deny`, and on
   Hermes only this contract stops a further `delegate_task`. A tick claims
   performance, so a step telling you to dispatch, delegate to, spawn or hand
   off to a subagent is a **BLOCKER**, not a deviation and not a `--state -`
   skip: report it, leave the step **unticked**, and do not complete the
   phase. Never do that work inline instead: the dispatch existed to put it in
   a context blind to this one, so doing it here destroys that (#428).

5. **Mark the phase complete (after every step is ticked):**
   ```bash
   fr plan edit <plan-dir> --complete-phase N
   # manual phases require --note describing what was done
   fr plan edit <plan-dir> --complete-phase N --note "<runbook ref>"
   ```
   A phase carrying `acceptance: [row-ids]` — flip those matrix rows now (`not-implemented` → `unwired`/`walk-owed`/`ci`), citing the test refs; the CLI warns on unflipped rows (see `fr-acceptance`). Discovered edges may ADD rows (`fr acceptance add`) — defended at PR time, never silent scope drift.

6. **Open the PR** via `superpowers:finishing-a-development-branch`, with the
   `fr pickup` title and the body shape above. **Caveat — under fr-goal LOCAL
   mode, do NOT open a per-phase PR:** push the branch only; the single PR is
   fr-goal's step 8, opened as a draft by the orchestrator *after* its review
   pass — opening here reorders deliver ahead of review and reintroduces the
   #320 merge-race; with no PR here there is nothing to relay. Per-phase PRs are the standalone
   **dispatched** (Issue/VK) flow only — there, once the PR opens, relay `closeout: fr pickup --branch
   <phase-branch>` verbatim (a non-final phase's brief holds the plan until the last phase lands).

7. **Reconcile GitHub state:**
   ```bash
   fr apply <plan-dir>           # preview the projected mutations
   fr apply <plan-dir> --yes     # push label / state changes
   ```
   `fr apply` is idempotent and **safe before your PR merges** — the renderer
   needs BOTH `completion.at` AND a merged PR observed before projecting
   CLOSED, so this only sets `pr-ready`. Re-run after merge (or let the
   runner) to close.

## Constraints

- Don't touch other phases. One phase = one PR, except fr-goal LOCAL mode
  (step 6's caveat) — never open a per-phase PR there.
- Stop if blocked — report what's missing.
- A dispatch instruction is a BLOCKER, never a tick or a skip (step 4).
- Step IDs: `P<n>.T<n>.S<n>`.

## v1 plan migration

A `.md` plan file (not a folder) is a v1 plan; migrate before executing:

```bash
fr migrate v1-to-v2           # preview (default)
fr migrate v1-to-v2 --yes     # apply: creates <slug>/ folders, moves .md to .md.v1-archive
```

Migration is repo-wide (converts every v1 plan, rewrites spec tables); commit
as its own PR. "Legacy layout detected" → `fr migrate dirs --yes`.

Files in this skill

  • .source122 B
  • SKILL.md6.8 KB

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.