https://github.com/robinv8/mino-skills
Agent Skills compatible skill pack for task-driven development
https://github.com/robinv8/mino-skills
Last synced: about 2 months ago
JSON representation
Agent Skills compatible skill pack for task-driven development
- Host: GitHub
- URL: https://github.com/robinv8/mino-skills
- Owner: robinv8
- License: mit
- Created: 2026-04-20T07:52:20.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-22T07:04:24.000Z (3 months ago)
- Last Synced: 2026-04-22T07:37:33.083Z (3 months ago)
- Language: Go Template
- Homepage:
- Size: 308 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
> **This repository has moved to [robinv8/mino](https://github.com/robinv8/mino).**
>
> `robinv8/mino-skills` is archived. All future development, releases, and issues
> are now tracked in the unified monorepo at `robinv8/mino`.
>
> New install command: `gh copilot extension install robinv8/mino` (or `npx skills add robinv8/mino ...`)
>
> Migrated: 2026-04-25
**English** | [简体中文](README.zh.md)
# Mino Skills
[](https://github.com/robinv8/mino-skills/releases/tag/v0.6.3)
[](skills/references/iron-tree-protocol.md)
[](reports/phase2-regression-report.md)
[](https://agentskills.io)
[Agent Skills](https://agentskills.io) compatible skill pack for task-driven development.
Turn a Markdown spec into executed, verified code — regardless of which AI agent you use.
## What is this?
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//templates/`, so different agents produce byte-identical output.
## Validated scenarios
`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](reports/phase2-regression-report.md).
## Skills
| 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 |
## Structure
```
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
```
## Install (Plugin Marketplace, recommended)
Supported hosts: Copilot CLI, Claude Code, Cursor.
```bash
/plugin marketplace add robinv8/mino-skills
/plugin install mino@mino-skills
/plugin update mino@mino-skills # later upgrades — finally smooth
```
## Install (Alternative — vercel-labs CLI)
If your agent host doesn't yet support `/plugin marketplace`, use this fallback.
The [`skills`](https://github.com/vercel-labs/skills) CLI installs skills to 45+ AI tools with one command.
Run inside your project directory:
**Claude Code**
```bash
npx skills add robinv8/mino-skills -a claude-code -y
```
**Codex**
```bash
npx skills add robinv8/mino-skills -a codex -y
```
**Cursor**
```bash
npx skills add robinv8/mino-skills -a cursor -y
```
**Other tools**
```bash
# 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 -y
```
**Options**
| 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 |
### Manual install
```bash
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/mino
```
Any [Agent Skills](https://agentskills.io)-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 |
### Direct use (any agent)
No tool required — just copy the prompt:
```bash
cat skills/mino-task/SKILL.md
# Paste into ChatGPT, Claude, Cursor, or any AI chat
```
### Adopt Existing Issues
If your repo predates this protocol and already has open issues, standardize them:
```bash
/task adopt issue-12
```
This 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.
### Comment Policy (v1.10)
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 done` posts **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.
## Update
`mino-skills` follows the standard Agent Skills convention: `main` is always the released branch, and the `skills` CLI pulls the latest content on demand.
```bash
# In your project — refresh ALL installed skills to the latest main
npx skills update -y
# Inspect what is currently installed
npx skills list
```
> Heads-up: the CLI tracks each skill by its **skill name** (`task`, `run`, `verify`, `checkup`), not by its source repo. Running `npx skills update robinv8/mino-skills` therefore reports "no installed skills found" — use the bare `npx skills update -y` form instead.
The update overwrites only the files inside `.claude/skills//` or `.agents/skills//`. 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_done` and `verify_passed` no longer post status comments. New `` argument lets human verifiers feed prose into agent reply decisions. Protocol additions (additive, v1.13 stays): § Comment Classes, § Reply Dispatch, optional event field `reply_posted`.
> v0.6.2 — **Slim-Comment Cleanup + Commit Auto-Link.** Pays off v0.5.2 debt: audible GitHub comments now render exclusively from `comment-*.md.tmpl` files (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-verify` now authors a human-readable evidence report at `.mino/reports/issue-{N}/report.md` and optionally promotes it to `docs/integrations/.md` as a separate commit. `verify_*` events gain optional `report_path` and `promoted_doc` fields. 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 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, no `Local 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-checkup` to avoid palette collisions.
> v0.5.0 — Plugin marketplace support (`/plugin install mino@mino-skills`).
## Usage
### 1. Write a requirement doc
```bash
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
```
### 2. Intake (`task`)
```
/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.
### 3. Execute (`run`)
```
/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.
### 4. Verify (`verify`)
Triggered automatically by `run`, or call directly:
```
/verify issue-8
```
Runs build, tests, linters. Results:
- ✅ **pass** → advances to `checkup`
- ❌ **retryable** → feeds `Failure Context` back to `run` (max 3 retries)
- 🚫 **terminal** → blocks the task
- ⏸️ **manual acceptance** → stops for human review, then continue with `/mino-checkup accept issue-8`
### 5. Reconcile (`checkup`)
```
/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`.
## The Iron Tree Protocol
> **Etymology** — `Iron` for the iron-clad guarantees the protocol enforces (immutable event log, deterministic state machine, idempotent publish, audit-trail by construction); `Tree` for the data structure every workflow takes — a DAG of composite parents and child tasks linked by `depends_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**: `verify` failures feed `Failure Context` back to `run` for 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, `verify` stops at `pending_acceptance` and `checkup accept` records 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 Revision` matches `Approved Revision`
- **Canonical identity**: `Task Key` is the protocol identity; `issue-8` is a user-facing locator after publish
- **Verify Anchor SHA**: every verify result binds to the `HEAD` SHA at start, immune to mid-flight code drift
- **External-event awareness**: if an issue is closed outside the workflow, `checkup reconcile` records an `External Event` section instead of silently syncing to `done`
- **Template-driven artifacts**: all events, briefs, and issue bodies are rendered from `templates/*.tmpl` files — agent-agnostic and diff-stable
## References
- [skills/references/iron-tree-protocol.md](skills/references/iron-tree-protocol.md) — the execution loop
- [skills/references/workflow-state-contract.md](skills/references/workflow-state-contract.md) — stage vocabulary
- [skills/references/brief-contract.md](skills/references/brief-contract.md) — brief format
## Requirements
- Agent Skills compatible agent (Claude Code, Cursor, Copilot, Goose, Gemini CLI, etc.)
- `gh` CLI for GitHub issue creation
- `.mino/briefs/` directory (created automatically on first use, local-only and not committed)
## Related
- [Agent Skills specification](https://agentskills.io/specification)
- [skills CLI](https://github.com/vercel-labs/skills) — install skills to 45+ AI tools
- [Mino](https://github.com/robinv8/Mino) — the macOS GUI app this skill set was extracted from
## Uninstall
### Using `skills` CLI
```bash
# 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
```
### Manual uninstall
```bash
# Project-level
rm -rf .claude/skills/mino
rm -rf .agents/skills/mino
# Or globally
rm -rf ~/.claude/skills/mino
rm -rf ~/.agents/skills/mino
```
## Contributing
Contributions welcome. Workflow:
1. **Fork** this repository
2. **Edit** a `SKILL.md` or add a new skill
3. **Open a PR** describing the motivation and impact
For questions, contact hello@robinren.me.
## License
MIT