skills/agent-flight-recorder/SKILL.md
Always-on flight recorder for agent runs. Recorder-only — does not change task execution, only records. Log append-only YAML entries only when the run deviates (retry, detour, workaround, blocker, missing context, quality rework). Buffer entries and flush at end/abort, before a blocking clarification, on major context switch, or after high severity. One run per file, no file if zero entries. Never mention logging mid-task. At end, output exactly one line only if entries exist. No analysis, no guidance, no recommendations.
npx skillsauth add aivokone/ak-skills-ops agent-flight-recorderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Keep a black-box flight recorder. Whenever you deviate from the straight path during a task (retry, workaround, unexpected setup, missing context, quality rework, blocker), create a concise log entry.
You are the recorder, not the analyst.
Always active. You do not need to be asked.
Record silently. Do not mention logging mid-task.
Logging must not slow you down or change your approach.
At task end (or abort), if entries exist, add exactly one line to your final response:
Flight recorder: N entries logged. See <path>.
If zero entries, say nothing.
If a project wants explicit policy text, add a short note to that project's
agent instruction file (for example AGENTS.md or CLAUDE.md) stating that
agent-flight-recorder is always-on for multi-step work and that only
deviations are logged.
Create a new file per run:
<project-root>/.agents/flight-recorder/flight-YYYY-MM-DD-HHMMSS-TZ.md
UTC as TZ.-1, -2, ... until unique.Repository hygiene default:
/.agents/flight-recorder/ in .gitignore.When creating a new run file, write this header once:
schema: flight-recorder/v2.5
run_started: 2026-02-11T09:10:00Z
task: "Implement auth middleware" # optional, one-liner describing the task
recorder_agent: claude-code # agent product or CLI name
recorder_model: claude-opus-4-6 # exact model ID as reported by runtime
recorder_effort: high # optional, omit if runtime does not expose
Header rules:
recorder_agent: the agent product or CLI that is running (e.g.
claude-code, codex-cli, chatgpt, cursor, aider). Use the canonical
short name, not a marketing name. Use unknown only if not determinable.recorder_model: the exact model identifier as reported by the runtime (e.g.
claude-opus-4-6, gpt-4o-2025-06-01, o3). Prefer the full model ID over
a friendly name. Use unknown only if not exposed.recorder_effort is optional. If the runtime exposes a reasoning effort or
compute budget setting, report its value verbatim. Omit the field entirely if
the runtime has no such concept.task is optional. If set, use one short sentence describing the user-facing
goal of the run. Omit if the task is unclear at run start.If file write is impossible, include the full log inline at the end of your final response under:
## Flight recorder log (inline)
Also state in one sentence that file write failed.
When the run ends (task completion or abort), append a footer block after the last entry:
run_ended: 2026-02-11T09:45:00Z
entries: 4
high_severity: 1
outcome: completed | aborted | interrupted
Footer rules:
outcome is completed when the task finishes normally, aborted when the
agent gives up, and interrupted when the session ends unexpectedly (best
effort).Default: keep entries in memory and write/append to file only:
high severity entry.When you flush, append all accumulated entries in one write.
Write an entry when any of the following occurs and it is a deviation from the expected path:
| trigger | default severity | meaning | | --- | --- | --- | | detour | medium | You changed approach because the expected path failed. | | setup | medium | Unexpected install/config required. | | retry | medium | You repeated a step due to failure or ambiguity. | | missing-context | low | You had to ask for info that should have been in initial context, or needed a blocking clarification. | | quality | high | Output required rework to meet expected standard. | | slow-step | high | A single step was unusually slow (ordinal estimate). | | assumption | low | You proceeded on an assumption that could be wrong. | | blocker | high | You could not proceed without external action. |
Notes:
missing-context is not normal interaction. Log it only when it blocks
progress or reveals missing initial inputs.Each entry is a fenced YAML block for reliable parsing. Keep it concise.
IDs are assigned per run as e1, e2, e3, in the order you flush them.
why must be one short sentence (max 15 words).
Time field:
at in ISO-8601 with timezone, for example
2026-02-12T14:17:09+02:00 or 2026-02-12T12:17:09Z.at should represent when the deviation happened (best known time), not when
the buffered entries were flushed to disk.Formatting invariants:
yaml label lines or partial/unfenced YAML content.repeat_of for
markup repair of the same occurrence.: , #, or backticks), using double quotes.signal, stuck, and workaround because they
often contain shell error text.id: e1
at: 2026-02-12T12:17:09Z
severity: high | medium | low
trigger: detour | setup | retry | missing-context | quality | slow-step | assumption | blocker
situation: One sentence. What you were trying to do.
stuck: One sentence. Where exactly it got stuck.
why: One short sentence. Best hypothesis.
workaround: What you did to get past it (or attempted).
resolved: true | false | partial
# Cost signal (do NOT invent minutes unless measured)
waste: low | medium | high
waste_min: 10 # optional, only if measured or explicitly provided
time_basis: timestamped | command_duration | explicit_user | other # required if waste_min present
retries: 2 # optional integer
# Optional routing/context
scope: env | build | deploy | web | parsing | auth | data | test | config | deps | perf | other
file: path/to/relevant/file
repeat_of: e3
signal: A short symptom or error signature to recognize early
# If value contains `: `, `#`, or backticks, quote it:
# signal: "zsh: command not found: yaml"
Use this for low-severity entries to keep logging cheap. Do not use compact format for medium or high severity entries; always use the standard format for those.
id: e4
at: 2026-02-12T12:23:44Z
severity: low
trigger: assumption | missing-context
situation: One sentence.
stuck: One sentence.
why: One short sentence. Best hypothesis.
resolved: true | false | partial
waste: low | medium | high
signal: Optional short symptom.
resolved and
retries are accurate.repeat_of.repeat_of only when the same signature happens again later in the run,
not for a duplicate of the same occurrence.tools
Create, edit, and debug SwiftBar menu bar plugins for macOS. ALWAYS use this skill when the user wants to put anything in the macOS menu bar — whether they say "menu bar plugin", "status bar widget", "menu bar item", or just want to show live data, counters, status indicators, or monitoring info in the macOS top bar. Also triggers for SwiftBar, BitBar, xbar by name, editing or debugging existing menu bar plugin scripts (.sh/.py with | parameters and --- separators), or any request to build a script that outputs formatted lines for a menu bar app. This is the go-to skill whenever macOS menu bar customization is involved, even if the user doesn't mention SwiftBar specifically — if they want a script-based menu bar item on macOS, this skill applies.
tools
Use this skill FIRST for any Seravo-hosted WordPress task. Trigger when the user mentions Seravo, production/shadow, deploy, Git-based deploys, SSH, DDEV, DB sync/import/export, or Seravo custom wp-* commands (wp-backup*, wp-purge-cache, wp-list-env). Start by identifying the environment (production vs shadow vs local) and enforce safety: agents must not run destructive or state-changing commands on production. When production write is needed, provide exact copy-paste commands for the user. Use Seravo-specific CLI and workflows instead of generic WP guidance to avoid wrong commands and risky prod changes.
development
Systematic PR fix loop — checks feedback from all channels (conversation, inline, reviews), fixes code, posts fix reports, and loops until no new feedback remains. All operations through provided scripts.
development
Local docs cache for the project. Always check docs/reference/ before fetching externally. Use for init (set up cache), update (refresh docs), lookup (local-first search), and save (persist fetched docs). If external docs are fetched (Context7/web), save a tailored topic file to docs/reference/ and add a verbal pointer in AGENTS.md.