This repository has moved to robinv8/mino.
robinv8/mino-skillsis archived. All future development, releases, and issues are now tracked in the unified monorepo atrobinv8/mino.New install command:
gh copilot extension install robinv8/mino(ornpx skills add robinv8/mino ...)Migrated: 2026-04-25
English | 简体中文
Agent Skills compatible skill pack for task-driven development.
Turn a Markdown spec into executed, verified code — regardless of which AI agent you use.
A set of four engineering skills that implement the Iron Tree Protocol: an opinionated workflow for taking a Markdown requirement document all the way through execution, verification, acceptance when needed, composite aggregation, and reconciliation.
Markdown spec → /mino-task → DAG approval → /mino-run → /mino-verify → /mino-checkup → done
No GUI. No runtime. No deposition events. Just prompts that agents follow — every artifact (issue body, brief section, YAML event) is rendered from a fixed template under skills/<skill>/templates/, so different agents produce byte-identical output.
v0.1.0 ships with the following end-to-end coverage on https://github.com/robinv8/mino-skills:
| Phase | Scope | Result |
|---|---|---|
| Phase 1 — Happy path | spec → DAG → run → verify → checkup → done (TC-1.1 / 1.2 / 1.2b) | 14 / 14 ✅ |
| Phase 2 — Imperfect reality | retry, dirty tree, publication failure, manual acceptance, composite aggregate, brief rebuild, sequence-gap reconcile (TC-2.1 ~ 6.2) | 14 / 14 ✅ |
| Phase 3 — Protocol decisions | external close, parallel run, mid-verify code drift (TC-7.1 / 7.2 / 7.3) | resolved & written back to protocol |
Full regression evidence: reports/phase2-regression-report.md.
| Skill | Purpose |
|---|---|
| task | Read a Markdown doc, extract a task DAG, ask for approval, create issues + local briefs |
| run | Execute an approved DAG serially, self-correct from prior verification failures |
| verify | Build, test, lint. Pass/fail with actionable context |
| checkup | Environment check, brief reconciliation, manual acceptance, composite aggregation |
mino-skills/
├── skills/
│ ├── task/
│ │ ├── SKILL.md # Markdown → DAG → issues + briefs
│ │ └── templates/ # brief / issue body / task_published event
│ ├── run/
│ │ ├── SKILL.md # Serial execution + commit + run.lock
│ │ └── templates/ # 3 events + execution-summary section + lock
│ ├── verify/
│ │ ├── SKILL.md # Build/test/lint with Verify Anchor SHA
│ │ └── templates/ # 5 outcome events + 3 brief sections
│ ├── checkup/
│ │ ├── SKILL.md # 7 modes incl. pre-flight & finalize
│ │ └── templates/ # 7 events + 4 brief sections
│ └── references/
│ ├── iron-tree-protocol.md # Execution loop specification (v1.8)
│ ├── workflow-state-contract.md # Stage vocabulary + event whitelist
│ └── brief-contract.md # Brief format (17 sections)
├── reports/
│ └── phase2-regression-report.md # E2E validation evidence
├── README.md
└── LICENSE
Supported hosts: Copilot CLI, Claude Code, Cursor.
/plugin marketplace add robinv8/mino-skills
/plugin install mino@mino-skills
/plugin update mino@mino-skills # later upgrades — finally smoothIf your agent host doesn't yet support /plugin marketplace, use this fallback.
The skills CLI installs skills to 45+ AI tools with one command.
Run inside your project directory:
Claude Code
npx skills add robinv8/mino-skills -a claude-code -yCodex
npx skills add robinv8/mino-skills -a codex -yCursor
npx skills add robinv8/mino-skills -a cursor -yOther tools
# List all supported agents
npx skills add --help
# Install to multiple agents at once
npx skills add robinv8/mino-skills -a claude-code -a codex -yOptions
| Flag | Meaning |
|---|---|
-g, --global |
Install to user directory (available in all projects). Omit for project-level install |
-a, --agent |
Target agent(s). Omit to auto-detect |
-y, --yes |
Skip confirmation prompts |
--copy |
Copy files instead of symlinks |
cd your-project
# Claude Code
mkdir -p .claude/skills
git clone https://github.com/robinv8/mino-skills.git .claude/skills/mino
# Cursor / Codex / OpenCode (shared `.agents/skills/` path)
mkdir -p .agents/skills
git clone https://github.com/robinv8/mino-skills.git .agents/skills/minoAny Agent Skills-compatible agent will auto-discover them:
| Tool | How to use |
|---|---|
| Claude Code | /mino-task feature.md, /mino-run issue-8 |
| Cursor | Mention -task or -run in chat |
| GitHub Copilot | Agent picks skills automatically based on context |
| Goose | Skills loaded automatically from .agents/skills/ |
| Gemini CLI | Loaded from local skills directory |
| OpenCode | Auto-discovered from workspace |
No tool required — just copy the prompt:
cat skills/mino-task/SKILL.md
# Paste into ChatGPT, Claude, Cursor, or any AI chatIf your repo predates this protocol and already has open issues, standardize them:
/task adopt issue-12This produces the same brief, events, and label set as a native task. Composite issues (3+ open checkboxes) are refused with the iron-tree:needs-breakdown label so you can split them first. Closed issues are refused.
Workflow position is mirrored on GitHub via labels:
| Label | Meaning |
|---|---|
iron-tree:adopted |
Under Iron Tree workflow (permanent) |
iron-tree:needs-breakdown |
Composite — split before adopting |
stage:task |
Awaiting approval |
stage:run |
Approved, ready or executing run |
stage:verify |
Run committed, awaiting verify |
stage:done |
Verify passed |
Pull Requests are not adopted; they continue to merge against issues as usual.
Brief quality (v1.11+): the brief generated by adopt is structured, not a verbatim dump. The agent extracts testable acceptance criteria, derived verification steps, and inferred target files from the issue body and qualifying comments — matching the field-filling pattern of briefs produced by /mino-task PRD.md. Issue bodies on GitHub are never modified; standardization lives in .mino/briefs/issue-{N}.md only.
Iron Tree Protocol v1.10 treats local .mino/events/issue-N/*.yml as the single source of truth. GitHub issue comments are a notification channel, not an event log:
- Routine successful transitions (adopt, run, verify pass) are silent — no comment.
- Halts / failures that require human action still post an immediate comment so you see the signal.
- On completion,
/mino-checkup doneposts one short completion notice (heading + Completion Basis + Code Ref + Code Publication State) — no inline event log. The local.mino/events/issue-{N}/directory is the sole authoritative record; back it up yourself if you need durability.
Pre-v1.10 issues (per-event comments) continue to be readable by /mino-checkup reconcile as a fallback source. Issues completed under protocol v1.10–v1.11 still carry the legacy inline-YAML done comment; /mino-checkup reconcile falls back to that signature when the local log is missing. v1.12+ done comments contain no YAML.
mino-skills follows the standard Agent Skills convention: main is always the released branch, and the skills CLI pulls the latest content on demand.
# In your project — refresh ALL installed skills to the latest main
npx skills update -y
# Inspect what is currently installed
npx skills listHeads-up: the CLI tracks each skill by its skill name (
task,run,verify,checkup), not by its source repo. Runningnpx skills update robinv8/mino-skillstherefore reports "no installed skills found" — use the barenpx skills update -yform instead.
The update overwrites only the files inside .claude/skills/<name>/ or .agents/skills/<name>/. Your local workflow data — .mino/briefs/, .mino/run.lock, GitHub issues, and event comments — is untouched.
Protocol upgrades are designed to be backward compatible at minor versions: state machines that are mid-flight when you update keep working without migration. Major-version bumps (e.g., v2.0) will document any required action at the top of this README.
v0.6.3 — Reply Comments + Optional Note Input + Default-Silent Status. GitHub issue comments split into two classes: status (slim, interrupt-only) and reply (conversational, content-bearing).
checkup_doneandverify_passedno longer post status comments. New<note>argument lets human verifiers feed prose into agent reply decisions. Protocol additions (additive, v1.13 stays): § Comment Classes, § Reply Dispatch, optional event fieldreply_posted. v0.6.2 — Slim-Comment Cleanup + Commit Auto-Link. Pays off v0.5.2 debt: audible GitHub comments now render exclusively fromcomment-*.md.tmplfiles (no yaml fences, no.mino/*paths).Commit:auto-link is wired into all audible comments. Protocol gains § Slim Comment Invariant (additive; v1.13 stays). v0.6.1 — Verification Report Artifact.mino-verifynow authors a human-readable evidence report at.mino/reports/issue-{N}/report.mdand optionally promotes it todocs/integrations/<slug>.mdas a separate commit.verify_*events gain optionalreport_pathandpromoted_docfields. Protocol stays at v1.13. v0.6.0 — Loop Mode is now the default for /mino-task. After approval, the orchestrator drives run/verify/checkup automatically until a halt condition fires (approval-required, pending_acceptance, fail_terminal, blocked, reapproval_required, loop_budget_exhausted). New /mino-task resume <loop_id> sub-command for explicit halt resolution. New .mino/loops/ directory holds Loop entity + repo-level lease. Stepwise opt-out: invoke /mino-run, /mino-verify, /mino-checkup directly. BREAKING behavior change. v0.5.2 — GitHub comments slimmed to human-readable notifications (no inline YAML, noLocal events:pointer); commits use[run] #{N}so GitHub auto-links them on the issue timeline. Protocol bumped to v1.12 (policy change, schema unchanged). v0.5.1 — Renamed slash commands to/mino-task,/mino-run,/mino-verify,/mino-checkupto avoid palette collisions. v0.5.0 — Plugin marketplace support (/plugin install mino@mino-skills).
cat > feature.md << 'EOF'
# Add dark mode
## Acceptance Criteria
- [ ] Toggle in settings
- [ ] Persists across launches
- [ ] Respects system preference by default
## Target Files
- SettingsView.swift
- Theme.swift
EOF/task feature.md
task reads the doc, classifies it, extracts a DAG, computes a revisioned task graph, and asks for your approval before creating any issues or briefs. The generated .mino/briefs/ files are local workflow cache and should not be committed.
/run issue-8
run picks the next eligible task from the DAG, resolves the canonical Task Key, increments the attempt counter, makes changes, and hands off to verification.
Triggered automatically by run, or call directly:
/verify issue-8
Runs build, tests, linters. Results:
- ✅ pass → advances to
checkup - ❌ retryable → feeds
Failure Contextback torun(max 3 retries) - 🚫 terminal → blocks the task
- ⏸️ manual acceptance → stops for human review, then continue with
/mino-checkup accept issue-8
/checkup reconcile
/checkup accept issue-8
/checkup aggregate issue-1
checkup handles pre-flight checks, brief reconciliation, recording manual acceptance, aggregating composite parents, and printing a centralized Pending Acceptance list before a task can reach done.
Etymology —
Ironfor the iron-clad guarantees the protocol enforces (immutable event log, deterministic state machine, idempotent publish, audit-trail by construction);Treefor the data structure every workflow takes — a DAG of composite parents and child tasks linked bydepends_on. Not a reference to 铁树开花; the protocol is engineered, not miraculous.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ task │────▶│ run │────▶│ verify │
│ define │ │ execute │ │ validate │
└─────────────┘ └─────────────┘ └──────┬──────┘
│
┌────────────────────┼────────────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ pass │ │ retryable│ │ terminal │
│ checkup │ │ run │ │ blocked │
└──────────┘ └──────────┘ └──────────┘
│
▼
┌──────────┐
│ done │
└──────────┘
- Self-correction:
verifyfailures feedFailure Contextback torunfor a different approach - Serial execution: DAG nodes run one at a time (v1), respecting
depends_on. Enforced by.mino/run.lock(file lock, V3 will revisit parallel runs). - Approval gates: Human must approve the DAG before any execution begins
- Manual acceptance: if automation cannot prove correctness,
verifystops atpending_acceptanceandcheckup acceptrecords the human decision - Shared visibility: detailed manual checklists stay in local briefs, while issue labels/comments make acceptance status visible to collaborators
- Revision-aware approval: published work stays executable only while
Spec RevisionmatchesApproved Revision - Canonical identity:
Task Keyis the protocol identity;issue-8is a user-facing locator after publish - Verify Anchor SHA: every verify result binds to the
HEADSHA at start, immune to mid-flight code drift - External-event awareness: if an issue is closed outside the workflow,
checkup reconcilerecords anExternal Eventsection instead of silently syncing todone - Template-driven artifacts: all events, briefs, and issue bodies are rendered from
templates/*.tmplfiles — agent-agnostic and diff-stable
- skills/references/iron-tree-protocol.md — the execution loop
- skills/references/workflow-state-contract.md — stage vocabulary
- skills/references/brief-contract.md — brief format
- Agent Skills compatible agent (Claude Code, Cursor, Copilot, Goose, Gemini CLI, etc.)
ghCLI for GitHub issue creation.mino/briefs/directory (created automatically on first use, local-only and not committed)
- Agent Skills specification
- skills CLI — install skills to 45+ AI tools
- Mino — the macOS GUI app this skill set was extracted from
# Remove from current project
npx skills remove robinv8/mino-skills
# Remove globally (from all projects)
npx skills remove robinv8/mino-skills -g
# Remove from a specific agent globally
npx skills remove robinv8/mino-skills -a claude-code -g# Project-level
rm -rf .claude/skills/mino
rm -rf .agents/skills/mino
# Or globally
rm -rf ~/.claude/skills/mino
rm -rf ~/.agents/skills/minoContributions welcome. Workflow:
- Fork this repository
- Edit a
SKILL.mdor add a new skill - Open a PR describing the motivation and impact
For questions, contact hello@robinren.me.
MIT