Skip to content
Back to skills

Fr Progress

ASecurity

Plan / spec progress reporting, and the repo-state preflight for any repo with docs/superpowers/ or fr config. Use when: "what's in progress", "status board", "audit drift", "spec rollup", "is this plan up to date", "is this repo fr-managed", "legacy v1 plans", "before archiving or moving files under docs/superpowers/".

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

Works with

  • api

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-progress --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fr Progress?

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

Security grade badge for Fr Progress
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/derio-net-fr-progress/badge)](https://www.skillsdirectory.com/skills/derio-net-fr-progress)

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-progress
description: >
  Plan / spec progress reporting, and the repo-state preflight for any repo
  with docs/superpowers/ or fr config. Use when: "what's in progress",
  "status board", "audit drift", "spec rollup", "is this plan up to date",
  "is this repo fr-managed", "legacy v1 plans", "before archiving or moving
  files under docs/superpowers/".
---

# fr-progress

In v2 there is no dedicated progress subcommand surface — queries decompose into one of three primitives:

| Operator says | Command |
|---|---|
| "audit drift on this plan" | `fr apply <plan-dir>` (default dry-run lists what gh would change) |
| "status of this spec" | `fr spec status <spec-path>` |
| "status of every spec" | `fr spec status --all` |
| "mark step done" | `fr plan edit <plan-dir> --tick P<n>.T<n>.S<n>` |
| "mark phase done" | `fr plan edit <plan-dir> --complete-phase N [--note ...]` |

**Announce at start:** "I'm using fr-progress for [capability]."

## Repo-state preflight (run before touching docs/superpowers/ by hand)

First time in a repo with `docs/superpowers/` or fr config: **never**
manually create, move, or archive files under it (#378). Run in order —
`fr status`/`fr repair`/`fr migrate v1-to-v2` preview by default, no `--yes`:

```bash
fr --help                       # confirm fr is installed / repo is fr-managed
fr status                       # repo-wide sweep: four buckets, judged against origin/<default>
fr acceptance check             # matrix gate; exit 2 on failing rows
fr repair                       # preview stale-ref rewrites
ls docs/superpowers/plans/*.md 2>/dev/null || true   # hits = legacy v1 plans (v2 is folders)
fr migrate v1-to-v2             # if the ls above found hits
fr spec status --all            # per-spec rollup before deciding what's "done"
fr archive docs/superpowers/plans/<name>   # only now, one per plan the sweep printed it for
```

The sweep fetches, then calls a plan merged only when every agentic phase is
complete on `origin/<default>`; local ticks never count. Buckets: **merged but
not archived** (each with its own `fr archive <plan-dir>` line: run those, one
per plan, never `--all`), **merged, manual phases still open** (tick them
first), **complete locally, not yet on origin/<default>** (waiting for merge,
no command), **in progress**. `merge state unknown` = no remote-tracking
default ref (try `git fetch` / `git remote set-head origin -a`).

`.md.v1-archive` files (from `fr migrate v1-to-v2`) are pre-migration originals
kept for git-history; leave them (`fr archive` does not move them, a known gap).

## How it works (no separate state store)

The plan files (`_meta.yaml` + `NN.yaml`) are the source of truth; every
projection (Issue body / labels / state, spec row) is computed on demand, and
`fr apply` diffs it against observed gh state. There is nothing to "sync".

## Audit drift on a plan

```bash
fr apply <plan-dir>             # default: dry-run; prints what would change
fr apply <plan-dir> --yes       # apply the changes
fr apply --all                  # walk every plan in docs/superpowers/plans/
fr apply <plan-dir> --format json   # machine-readable; empty diff = in sync
```

## Spec rollup

```bash
fr spec status <spec-path>      # one spec
fr spec status --all            # every spec in docs/superpowers/specs/
```

Output is markdown: per-plan state (Not Started / In Progress / Complete /
Missing / Unreachable), step + phase counts, and an aggregate. Cross-repo
plans resolve via the gh contents API; with `--no-gh` (or offline) they
degrade to `Unreachable`. `.github/workflows/fr-spec-status.yml` posts this
as a PR comment when a PR touching plans merges.

`fr status <plan-dir>` is the read-only single-plan report: per-phase table,
completion-guard refusals, drift warnings, archive nudge. Safe to allowlist:
it never mutates the repo or gh (it may `git fetch` remote-tracking refs).

## Acceptance debt

`fr acceptance status` — counts by status + open debt (`unwired` / `walk-owed`
/ `not-implemented` / `failing`) rows (oldest first); `--brief` is the session-start form. `fr status <plan-dir>`
appends the same summary when a matrix exists. See `fr-acceptance`.

## Tick / complete phases

```bash
fr plan edit <plan-dir> --tick P<n>.T<n>.S<n> --state x
fr plan edit <plan-dir> --tick P<n>.T<n>.S<n> --state - --note "<reason>"
fr plan edit <plan-dir> --complete-phase N
fr plan edit <plan-dir> --complete-phase N --note "ran <runbook ref>"  # required for manual phases
```

`--tick` is idempotent; `--complete-phase` refuses agentic phases with
unticked steps (use rework for deferred items — see `fr-plan`).

## Archive-on-complete

When a plan is finished **and merged** (`fr status` lists it as merged but not
archived), archive it with the verb it printed, never a hand-rolled mv:

```bash
fr archive <plan-dir>     # gate-checked git mv to docs/superpowers/implemented/plans/
```

The gate requires every phase complete: a dispatched phase by gh evidence, an
undispatched agentic one fully ticked AND on `origin/<default>`, a manual one
ticked locally. `--force` overrides for a single plan. The owning spec
moves to `implemented/specs/` once all its rows resolve as implemented. The
moves are staged `git mv`s: you commit them. Never fires without intent.

Rows reported Unreachable/Missing mean stale refs — normalize with
`fr repair --yes` (see preflight above). Legacy `archived-plans/` layouts
hard-stop every verb until `fr migrate dirs --yes` runs.

Files in this skill

  • .source123 B
  • SKILL.md5.4 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.