maestro-card — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited maestro-card (Agent Skill) and scored it 92/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 2 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 2 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Maestro uses three work levels: High = Card, Mid = CardKind / workflow kind, and Low = Task. Feature, Bug, Chore, Custom, Decision, Idea, and Progress are CardKinds, not separate high-level objects. Progress is a lightweight CardKind that stores many low Tasks in progress.yml; legacy type: task cards remain readable for compatibility. This skill covers the active-work cluster: the task work loop, card/feature lifecycle, proof, and QA gates. Design (maestro-design), audit (maestro-audit), and setup (maestro-setup) have their own skills.
Activate with a known session id: maestro hook record --event skill_activation --skill maestro-card --session <session_id>
First step in a session: run maestro active (pull-only) to see what other live sessions are working on before you claim. If a peer is on a related card, connect yours with maestro link add <your-card> <their-card>; maestro never auto-links. Once linked, coordinate through the channel: maestro msg send <their-card> "<text>" and maestro msg read. An [inbox] N new (...) -> maestro msg read line on STDERR before any command means a linked peer is waiting -- clear it with maestro msg read (see reference/work.md). Inbox messages are advisory coordination only: they can suggest an ordering relationship, but they do not block work. Record an explicit Task blocker when execution order matters. Reply when the message poses a question or needs a decision; an FYI needs no reply. When any other session is live as you start implementing, follow the conflict-handoff protocol in HARNESS.md: worktree-isolate, link + maestro conflict on a file you will share, merge back then --clear. The full dance (including a conflicted merge-back) is maestro loop show conflict-handoff.
Read the reference for the job at hand; they share the ground rules below.
reference/work.md. Its implement step is test-first (red-green-refactor) whenever the task's --check names observable behavior: reference/tdd.md.
task add -> `taskstart -> task done, no separate todo namespace): this creates or reuses a Progress card and stores low Tasks in progress.yml`; see the "Simple Task Board" section of reference/work.md.
reference/simplify.md. On a test-first card this is the red-green-refactor step, not a second pass.
compile into Maestro records while the user is away or asleep: reference/loop.md
feature accept:feature close:exposes them. The host-loaded tool schema is authoritative. Use CLI commands when MCP is unavailable, for verbs not yet exposed as MCP tools, or when debugging unsupported behavior.
generated from the binary. A verb or flag not listed there does not exist; read it instead of probing --help. CLI remains the compatibility and human-facing contract; MCP is the agent ergonomic contract.
maestro task list, maestro task next, andmaestro card list for card-container context. Progress-backed low Tasks appear in task views; the Progress card itself appears in card views. Take and annotate tasks with maestro task start/maestro task claim, maestro task update, and maestro task note.
card-<hash>; features keep their creationslug). The dotted alias show prints is display-only; never address a card with it.
--id-only, task list, card list, card show`). When a lookup misses, re-list and read the real id; do not retry spelling variations.
card.yaml or the verb-guarded sidecars (qa.md,state history). Use verbs so gates and audit trails stay intact.
closed/cancelled, taskverified/rejected/abandoned/superseded, decision locked/superseded, and Bug/Chore/Custom card containers closed after owned tasks verify — and all of them read as coarse closed on the board. maestro card close fits only legacy task cards or task-owning Bug/Chore/Custom containers whose owned tasks are verified. When the user says "close" a feature, branch on its state: a live feature means feature close or feature cancel; a feature already terminal (closed/cancelled) means archive it — run maestro card archive <id> directly, do not re-ask. maestro card archive moves a terminal feature's records to .maestro/archive/; the user's word "close" on a terminal card is the explicit intent to archive, but archive is never an automatic side effect of close/cancel, and a non-terminal feature is never archived.
corrected you. If the correction is clear, record it with maestro event intervention --note "<what changed>" [--topic <slug>] and apply it. If it is unclear but low-risk, state the assumption, record it, and continue. Ask only when the ambiguity can change scope, contract, schema, lifecycle, release behavior, or other hard-to-reverse work. Full routing lives in reference/work.md.
When the user brings a spec, plan, or PRD authored elsewhere, route open forks through maestro-design first. This skill consumes the approved contract and drives the active lifecycle; there is no CLI parser for external documents.
maestro-design to create the feature, preserve the source text, decideopen forks, and author observable acceptance criteria.
.maestro/cards/<id>/handoff.md first. If it is missing or stale, runmaestro feature finalize <id>.
qa-baseline, feature accept, feature prepare, work, verify,qa-slice, and feature close.
request.md travels with the card through archive and unarchive.
maestro-design -> feature finalize -> [maestro-card: qa-baseline -> feature accept -> prepare -> work -> verify -> qa-slice -> feature close]
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.