{"id":50669163,"url":"https://github.com/robinv8/mino-skills","last_synced_at":"2026-06-08T09:04:03.063Z","repository":{"id":353028613,"uuid":"1215736428","full_name":"robinv8/mino-skills","owner":"robinv8","description":"Agent Skills compatible skill pack for task-driven development","archived":false,"fork":false,"pushed_at":"2026-04-22T07:04:24.000Z","size":315,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-22T07:37:33.083Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go Template","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robinv8.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-20T07:52:20.000Z","updated_at":"2026-04-22T07:04:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/robinv8/mino-skills","commit_stats":null,"previous_names":["robinv8/mino-skills"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/robinv8/mino-skills","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinv8%2Fmino-skills","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinv8%2Fmino-skills/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinv8%2Fmino-skills/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinv8%2Fmino-skills/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robinv8","download_url":"https://codeload.github.com/robinv8/mino-skills/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinv8%2Fmino-skills/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34055278,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-08T09:04:02.156Z","updated_at":"2026-06-08T09:04:03.051Z","avatar_url":"https://github.com/robinv8.png","language":"Go Template","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e **This repository has moved to [robinv8/mino](https://github.com/robinv8/mino).**\n\u003e\n\u003e `robinv8/mino-skills` is archived. All future development, releases, and issues\n\u003e are now tracked in the unified monorepo at `robinv8/mino`.\n\u003e\n\u003e New install command: `gh copilot extension install robinv8/mino` (or `npx skills add robinv8/mino ...`)\n\u003e\n\u003e Migrated: 2026-04-25\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/public/logo.png\" alt=\"Mino Skills\" width=\"240\"\u003e\n\u003c/p\u003e\n\n**English** | [简体中文](README.zh.md)\n\n# Mino Skills\n\n[![Version](https://img.shields.io/badge/release-v0.6.3-brightgreen)](https://github.com/robinv8/mino-skills/releases/tag/v0.6.3)\n[![Protocol](https://img.shields.io/badge/Iron%20Tree%20Protocol-v1.13-blue)](skills/references/iron-tree-protocol.md)\n[![Validated](https://img.shields.io/badge/E2E-28%2F28-brightgreen)](reports/phase2-regression-report.md)\n[![Agent Skills](https://img.shields.io/badge/Agent%20Skills-Compatible-blue)](https://agentskills.io)\n\n[Agent Skills](https://agentskills.io) compatible skill pack for task-driven development.\n\nTurn a Markdown spec into executed, verified code — regardless of which AI agent you use.\n\n## What is this?\n\nA 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.\n\n```\nMarkdown spec → /mino-task → DAG approval → /mino-run → /mino-verify → /mino-checkup → done\n```\n\nNo 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/\u003cskill\u003e/templates/`, so different agents produce byte-identical output.\n\n## Validated scenarios\n\n`v0.1.0` ships with the following end-to-end coverage on `https://github.com/robinv8/mino-skills`:\n\n| Phase | Scope | Result |\n|-------|-------|--------|\n| **Phase 1 — Happy path** | spec → DAG → run → verify → checkup → done (TC-1.1 / 1.2 / 1.2b) | 14 / 14 ✅ |\n| **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 ✅ |\n| **Phase 3 — Protocol decisions** | external close, parallel run, mid-verify code drift (TC-7.1 / 7.2 / 7.3) | resolved \u0026 written back to protocol |\n\nFull regression evidence: [reports/phase2-regression-report.md](reports/phase2-regression-report.md).\n\n## Skills\n\n| Skill | Purpose |\n|-------|---------|\n| **task** | Read a Markdown doc, extract a task DAG, ask for approval, create issues + local briefs |\n| **run** | Execute an approved DAG serially, self-correct from prior verification failures |\n| **verify** | Build, test, lint. Pass/fail with actionable context |\n| **checkup** | Environment check, brief reconciliation, manual acceptance, composite aggregation |\n\n## Structure\n\n```\nmino-skills/\n├── skills/\n│   ├── task/\n│   │   ├── SKILL.md                     # Markdown → DAG → issues + briefs\n│   │   └── templates/                   # brief / issue body / task_published event\n│   ├── run/\n│   │   ├── SKILL.md                     # Serial execution + commit + run.lock\n│   │   └── templates/                   # 3 events + execution-summary section + lock\n│   ├── verify/\n│   │   ├── SKILL.md                     # Build/test/lint with Verify Anchor SHA\n│   │   └── templates/                   # 5 outcome events + 3 brief sections\n│   ├── checkup/\n│   │   ├── SKILL.md                     # 7 modes incl. pre-flight \u0026 finalize\n│   │   └── templates/                   # 7 events + 4 brief sections\n│   └── references/\n│       ├── iron-tree-protocol.md        # Execution loop specification (v1.8)\n│       ├── workflow-state-contract.md   # Stage vocabulary + event whitelist\n│       └── brief-contract.md            # Brief format (17 sections)\n├── reports/\n│   └── phase2-regression-report.md      # E2E validation evidence\n├── README.md\n└── LICENSE\n```\n\n## Install (Plugin Marketplace, recommended)\n\nSupported hosts: Copilot CLI, Claude Code, Cursor.\n\n```bash\n/plugin marketplace add robinv8/mino-skills\n/plugin install mino@mino-skills\n/plugin update mino@mino-skills    # later upgrades — finally smooth\n```\n\n## Install (Alternative — vercel-labs CLI)\n\nIf your agent host doesn't yet support `/plugin marketplace`, use this fallback.\n\nThe [`skills`](https://github.com/vercel-labs/skills) CLI installs skills to 45+ AI tools with one command.\n\nRun inside your project directory:\n\n**Claude Code**\n\n```bash\nnpx skills add robinv8/mino-skills -a claude-code -y\n```\n\n**Codex**\n\n```bash\nnpx skills add robinv8/mino-skills -a codex -y\n```\n\n**Cursor**\n\n```bash\nnpx skills add robinv8/mino-skills -a cursor -y\n```\n\n**Other tools**\n\n```bash\n# List all supported agents\nnpx skills add --help\n\n# Install to multiple agents at once\nnpx skills add robinv8/mino-skills -a claude-code -a codex -y\n```\n\n**Options**\n\n| Flag | Meaning |\n|------|---------|\n| `-g, --global` | Install to user directory (available in all projects). Omit for project-level install |\n| `-a, --agent` | Target agent(s). Omit to auto-detect |\n| `-y, --yes` | Skip confirmation prompts |\n| `--copy` | Copy files instead of symlinks |\n\n### Manual install\n\n```bash\ncd your-project\n\n# Claude Code\nmkdir -p .claude/skills\ngit clone https://github.com/robinv8/mino-skills.git .claude/skills/mino\n\n# Cursor / Codex / OpenCode (shared `.agents/skills/` path)\nmkdir -p .agents/skills\ngit clone https://github.com/robinv8/mino-skills.git .agents/skills/mino\n```\n\nAny [Agent Skills](https://agentskills.io)-compatible agent will auto-discover them:\n\n| Tool | How to use |\n|------|-----------|\n| **Claude Code** | `/mino-task feature.md`, `/mino-run issue-8` |\n| **Cursor** | Mention `-task` or `-run` in chat |\n| **GitHub Copilot** | Agent picks skills automatically based on context |\n| **Goose** | Skills loaded automatically from `.agents/skills/` |\n| **Gemini CLI** | Loaded from local skills directory |\n| **OpenCode** | Auto-discovered from workspace |\n\n### Direct use (any agent)\n\nNo tool required — just copy the prompt:\n\n```bash\ncat skills/mino-task/SKILL.md\n# Paste into ChatGPT, Claude, Cursor, or any AI chat\n```\n\n### Adopt Existing Issues\n\nIf your repo predates this protocol and already has open issues, standardize them:\n\n```bash\n/task adopt issue-12\n```\n\nThis 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.\n\nWorkflow position is mirrored on GitHub via labels:\n\n| Label | Meaning |\n|---|---|\n| `iron-tree:adopted` | Under Iron Tree workflow (permanent) |\n| `iron-tree:needs-breakdown` | Composite — split before adopting |\n| `stage:task` | Awaiting approval |\n| `stage:run` | Approved, ready or executing run |\n| `stage:verify` | Run committed, awaiting verify |\n| `stage:done` | Verify passed |\n\nPull Requests are not adopted; they continue to merge against issues as usual.\n\n**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.\n\n### Comment Policy (v1.10)\n\nIron 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:\n\n- Routine successful transitions (adopt, run, verify pass) are **silent** — no comment.\n- Halts / failures that require human action still post an immediate comment so you see the signal.\n- 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.\n\nPre-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.\n\n## Update\n\n`mino-skills` follows the standard Agent Skills convention: `main` is always the released branch, and the `skills` CLI pulls the latest content on demand.\n\n```bash\n# In your project — refresh ALL installed skills to the latest main\nnpx skills update -y\n\n# Inspect what is currently installed\nnpx skills list\n```\n\n\u003e 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.\n\nThe update overwrites only the files inside `.claude/skills/\u003cname\u003e/` or `.agents/skills/\u003cname\u003e/`. Your local workflow data — `.mino/briefs/`, `.mino/run.lock`, GitHub issues, and event comments — is untouched.\n\nProtocol 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.\n\n\u003e 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 `\u003cnote\u003e` 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`.\n\u003e 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).\n\u003e 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/\u003cslug\u003e.md` as a separate commit. `verify_*` events gain optional `report_path` and `promoted_doc` fields. Protocol stays at v1.13.\n\u003e 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 \u003cloop_id\u003e 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.\n\u003e 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).\n\u003e v0.5.1 — Renamed slash commands to `/mino-task`, `/mino-run`, `/mino-verify`, `/mino-checkup` to avoid palette collisions.\n\u003e v0.5.0 — Plugin marketplace support (`/plugin install mino@mino-skills`).\n\n## Usage\n\n### 1. Write a requirement doc\n\n```bash\ncat \u003e feature.md \u003c\u003c 'EOF'\n# Add dark mode\n\n## Acceptance Criteria\n- [ ] Toggle in settings\n- [ ] Persists across launches\n- [ ] Respects system preference by default\n\n## Target Files\n- SettingsView.swift\n- Theme.swift\nEOF\n```\n\n### 2. Intake (`task`)\n\n```\n/task feature.md\n```\n\n`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.\n\n### 3. Execute (`run`)\n\n```\n/run issue-8\n```\n\n`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.\n\n### 4. Verify (`verify`)\n\nTriggered automatically by `run`, or call directly:\n\n```\n/verify issue-8\n```\n\nRuns build, tests, linters. Results:\n- ✅ **pass** → advances to `checkup`\n- ❌ **retryable** → feeds `Failure Context` back to `run` (max 3 retries)\n- 🚫 **terminal** → blocks the task\n- ⏸️ **manual acceptance** → stops for human review, then continue with `/mino-checkup accept issue-8`\n\n### 5. Reconcile (`checkup`)\n\n```\n/checkup reconcile\n/checkup accept issue-8\n/checkup aggregate issue-1\n```\n\n`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`.\n\n## The Iron Tree Protocol\n\n\u003e **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.\n\n```\n┌─────────────┐     ┌─────────────┐     ┌─────────────┐\n│   task      │────▶│    run      │────▶│   verify    │\n│  define     │     │  execute    │     │   validate  │\n└─────────────┘     └─────────────┘     └──────┬──────┘\n                                               │\n                          ┌────────────────────┼────────────────────┐\n                          │                    │                    │\n                          ▼                    ▼                    ▼\n                    ┌──────────┐       ┌──────────┐       ┌──────────┐\n                    │   pass   │       │ retryable│       │ terminal │\n                    │  checkup │       │   run    │       │  blocked │\n                    └──────────┘       └──────────┘       └──────────┘\n                          │\n                          ▼\n                    ┌──────────┐\n                    │   done   │\n                    └──────────┘\n```\n\n- **Self-correction**: `verify` failures feed `Failure Context` back to `run` for a different approach\n- **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).\n- **Approval gates**: Human must approve the DAG before any execution begins\n- **Manual acceptance**: if automation cannot prove correctness, `verify` stops at `pending_acceptance` and `checkup accept` records the human decision\n- **Shared visibility**: detailed manual checklists stay in local briefs, while issue labels/comments make acceptance status visible to collaborators\n- **Revision-aware approval**: published work stays executable only while `Spec Revision` matches `Approved Revision`\n- **Canonical identity**: `Task Key` is the protocol identity; `issue-8` is a user-facing locator after publish\n- **Verify Anchor SHA**: every verify result binds to the `HEAD` SHA at start, immune to mid-flight code drift\n- **External-event awareness**: if an issue is closed outside the workflow, `checkup reconcile` records an `External Event` section instead of silently syncing to `done`\n- **Template-driven artifacts**: all events, briefs, and issue bodies are rendered from `templates/*.tmpl` files — agent-agnostic and diff-stable\n\n## References\n\n- [skills/references/iron-tree-protocol.md](skills/references/iron-tree-protocol.md) — the execution loop\n- [skills/references/workflow-state-contract.md](skills/references/workflow-state-contract.md) — stage vocabulary\n- [skills/references/brief-contract.md](skills/references/brief-contract.md) — brief format\n\n## Requirements\n\n- Agent Skills compatible agent (Claude Code, Cursor, Copilot, Goose, Gemini CLI, etc.)\n- `gh` CLI for GitHub issue creation\n- `.mino/briefs/` directory (created automatically on first use, local-only and not committed)\n\n## Related\n\n- [Agent Skills specification](https://agentskills.io/specification)\n- [skills CLI](https://github.com/vercel-labs/skills) — install skills to 45+ AI tools\n- [Mino](https://github.com/robinv8/Mino) — the macOS GUI app this skill set was extracted from\n\n## Uninstall\n\n### Using `skills` CLI\n\n```bash\n# Remove from current project\nnpx skills remove robinv8/mino-skills\n\n# Remove globally (from all projects)\nnpx skills remove robinv8/mino-skills -g\n\n# Remove from a specific agent globally\nnpx skills remove robinv8/mino-skills -a claude-code -g\n```\n\n### Manual uninstall\n\n```bash\n# Project-level\nrm -rf .claude/skills/mino\nrm -rf .agents/skills/mino\n\n# Or globally\nrm -rf ~/.claude/skills/mino\nrm -rf ~/.agents/skills/mino\n```\n\n## Contributing\n\nContributions welcome. Workflow:\n\n1. **Fork** this repository\n2. **Edit** a `SKILL.md` or add a new skill\n3. **Open a PR** describing the motivation and impact\n\nFor questions, contact hello@robinren.me.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobinv8%2Fmino-skills","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobinv8%2Fmino-skills","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobinv8%2Fmino-skills/lists"}