moooon-B-V/motir-skills
moooon-B-V/motir-skills · 0 stars · 1 plugin
Marketplace
Install
/plugin marketplace add moooon-B-V/motir-skillsRun inside Claude Code, then install plugins from it. Check the repo's README before you run it.
Plugins 1
After adding the marketplace, install one with /plugin install <name>@motir-skills.
- 1motirRun the next Motir card end to end, repair a card's red pull requests, carry on a dead run on the branch it left, log a verified bug, clear the Bugs folder, close a manual card, and be guided through one step by step. Connects the Motir MCP (signed into in the browser) and carries the `motir` CLI runner.
/plugin install motir@motir-skills
Files
Motir skills
Skills that let the coding agent you already use work a Motir project: take the
next card from To Do to a linked pull request, log a verified bug where it belongs, clear the Bugs
folder one pull request per bug, be walked through a human card one checked step at a time, and
close a manual card with a record of who confirmed it — all through Motir's MCP server.
They are plain Agent Skills — one folder per skill with a SKILL.md — so
any agent that reads that format can use them, and the repository is also a Claude Code plugin
marketplace.
Install in Claude Code
/plugin marketplace add moooon-B-V/motir-skills
/plugin install motir@motir-skills
From a local clone, use the path instead: git clone https://github.com/moooon-B-V/motir-skills.git,
then /plugin marketplace add ./motir-skills and the same /plugin install.
One install brings three things:
- The seven skills in the table below.
- The
motirMCP server athttps://app.motir.co/api/mcp. Claude Code signs into it in the browser the first time it is used — run/mcp, pickmotir, choose Authenticate — and on Motir's consent screen you pick the workspace and approve. There is no token to create or paste. - The
motirCLI, through the plugin'sscripts/motirrunner. It runs one pinned@motir/cliversion withnpx, so nothing is installed globally, and it needs Node.js 22 or newer. The CLI signs in on its own (motir login); it does not share the MCP's sign-in.
Claude Code lists the skills once the plugin is installed, and /mcp shows motir. An organisation
on claude.ai can also add the same plugin for all its members from its plugin settings — see
Anthropic's plugin admin guide.
What you need first
-
A Motir account and a project.
-
In Claude Code, nothing else — the plugin connects Motir (above).
-
For any other agent, for CI, or for a client without OAuth, connect the MCP by hand with a personal access token: create one in Motir under Settings → Account → Tokens, and point the client at
https://app.motir.co/api/mcpwith the token as a bearer header. In Claude Code that would be:claude mcp add --transport http motir https://app.motir.co/api/mcp \ --header "Authorization: Bearer <your-token>"
The setup for each agent is at https://motir.co/docs/mcp. A token created with the default permissions holds everything these skills call; the full list of tools and the permission each one needs is at https://app.motir.co/docs/mcp/tools.
-
git, and the GitHub CLI (gh) where a skill reads pull requests. -
Node.js 22 or newer, only for the
motirCLI runner.
Nothing else: no other credential, and no access to anything but your own project.
The skills
| Skill | Say | What it does |
|---|---|---|
motir-run |
motir run · motir run <key> · motir next |
Closes out merged work, claims the card, builds it on its own branch, opens ONE pull request linked to the card, moves it to Implemented and publishes How to test. A card that cannot be built as written is handed to Motir's planner with the correction, not built. |
motir-log-bug |
motir log bug <what is wrong> |
Root-causes the defect first, looks for the card someone already filed, then files ONE bug — under the story it blocks, or in the project's Bugs folder — linked to the card it was found on. |
motir-fix |
motir fix <KEY> |
Repairs ONE card's red pull requests after the run that opened them has ended — failing checks, a merge-queue ejection, or an acceptance video sent back with Re-run. Claims the repair so nobody pushes over it, fixes on each pull request's OWN branch (never a new one), up to five attempts, re-records the acceptance video once CI is green and gets it re-published — by CI where the repository's lane publishes, over MCP otherwise — and closes the repair with how it ended. Never moves the card's status or merges. Not motir fix bugs — that is motir-fix-bugs, the row below. |
motir-continue |
motir continue <KEY> |
Carries on ONE card whose run DIED — a laptop closed, a sandbox lost, a process killed — on the branch that run left. Claims the continue so nobody else works the same branch, checks out the dead run's OWN branch in every repository the card spans (never a new one, never resetting a worktree), reads the CONTINUE prompt, keeps the continue alive, and delivers exactly as motir-run does: one pull request per repository, Implemented, How to test, and the acceptance receipt published by CI where the repository's lane does it, over MCP otherwise. Not a card whose pull request is open — that is motir-fix. |
motir-fix-bugs |
motir fix bugs · motir fix bugs <limit> |
Works through the project's Bugs folder one bug at a time, oldest first. Each bug gets exactly one outcome: ONE pull request fixing only that bug, a blocked_by edge to the card it genuinely waits on, or a comment with the evidence when it is already fixed, cannot be reproduced or needs a person. Ends by itself and reports every bug. |
motir-guide |
motir guide <key> · motir guide |
Walks you through a human card — executor: human, whatever its type — one step at a time: claims it, gives ONE step with its notes and the command to copy, checks what it can with read-only means (dig, a URL, a CLI status) before ticking the step on the card, resumes where an interrupted walk stopped, and closes the card to Done (or leaves it to its pull request's merge) with a summary of what was done and checked. A card with no steps gets proposed steps, written to the card only with your OK. It corrects a wrong or misplaced unticked step, or the card's text, on your yes, and re-plans only when the card's target is wrong. |
motir-mark |
motir mark <key> done |
Closes a card no pull request can close (a manual card: an account, a secret, a setting), walking its status to Done with a comment. A card that has a pull request is closed by its merge, and the skill says so instead. |
Install in any other agent
The guide with every agent's steps will live at https://motir.co/docs/skills. Until then, copy the
skill folders you want (plugins/motir/skills/<name>/) into the directory your agent loads skills from (for example
a project's .claude/skills/ or .agents/skills/), each folder keeping its SKILL.md and
SYNC.json together, and connect the MCP with a token as described under What you need first.
Contributing
Each skill is ONE copy with TWO modes, and every new skill follows the same shape.
Layout — the plugin is a folder of its own
.claude-plugin/marketplace.json the marketplace: offers `motir` from ./plugins/motir
plugins/motir/ THE PLUGIN — exactly what Claude Code installs
.claude-plugin/plugin.json its manifest (version, skills, the `motir` MCP server, listing fields)
.claude-plugin/icon.png the listing icon
skills/<name>/SKILL.md, SYNC.json the seven skills
scripts/motir the pinned CLI runner
README.md, LICENSE
scripts/ this repository's tooling: the validator, its tests, the install transcript
Claude's plugin directory scans everything inside the plugin folder as code a user may run, and holds
a plugin for review over what it finds there, tests included. So nothing goes into plugins/motir/
except what a user runs: scripts/validate.py fails on any other file there.
The two-mode SKILL.md
- Frontmatter —
nameequal to the folder name, and adescriptioncarrying the phrases a user says to trigger it (at most 1024 characters). ## Runbook mode— Motir's own team keeps the full procedures in a private runbook (motir-meta). The section opens with the lookup block every skill shares:$MOTIR_META, else amotir-metacheckout at or above the working directory. When it finds one, the skill routes into the runbook's files — freshenorigin/main, read the namedprompts/…files in order — and ignores everything below, so the runbook stays the only home of the rules for that team.## Standalone mode— for everyone else: a short procedure that talks to Motir only through MCP tools a default project token holds (plusgit/gh), named exactly as the server names them. It opens by naming the runbook sections it condenses.
A standalone procedure is a condensation, not a port: it keeps every rule whose absence breaks the
workflow and leaves the team-specific history behind. Repository-specific rules (architecture, test
commands) belong to the target repository's own CLAUDE.md / AGENTS.md, not here.
SYNC.json — what each procedure was written against
Every skill carries plugins/motir/skills/<name>/SYNC.json, one entry per runbook section its standalone procedure
condenses:
[{ "corpusPath": "prompts/log-bug.md", "heading": "Procedure", "sha256": "<64 hex>" }]
The hash is of that section's text on the runbook's origin/main when the procedure was last brought
up to date. scripts/section-hash.py is the single definition of "a section's text" — a heading
and everything up to the next heading of the same or a higher level, fenced code excluded, trailing
whitespace ignored — and both this repository and the runbook use it:
python3 scripts/section-hash.py --verify <runbook-checkout> plugins/motir/skills/*/SYNC.json # does each still match? python3 scripts/section-hash.py --update <runbook-checkout> plugins/motir/skills/<name>/SYNC.json
Run --update only after re-reading the drifted sections and bringing the procedure up to date: the
hash says what the procedure was written against, not merely what exists today. The runbook side
checks these hashes against its own origin/main and fails when a condensed section moves.
Checks
python3 scripts/validate.py # skills, SYNC.json, secrets, manifests, the MCP entry,
# the directory's shape, the runner's npm pin, the listing's
# icon, privacy and terms URLs, no credential-named variables or
# functions, and nothing in the plugin but what ships
python3 scripts/test_validate.py # validate.py's checks, each against a planted defect
python3 scripts/test_motir.py # the CLI runner, with stub node / npx
python3 scripts/test_integration.py # the seams between them, against npm and Claude Code
python3 scripts/test_section_hash.py # the section definition
claude plugin validate . --strict # Claude Code accepts the marketplace, warnings included
claude plugin validate plugins/motir --strict # ... and the plugin
sh scripts/install-e2e.sh # a clean Claude Code installs the plugin (writes install-transcript.txt)
The validate workflow runs all of them on every push and pull request, the tests under coverage
with a 90% line-and-branch floor on scripts/validate.py. A new skill is added to
plugins/motir/.claude-plugin/plugin.json's skills list in the same pull request — the validator refuses a
folder the manifest does not list.
Releasing
main is protected: every change is a reviewed pull request. A release is cut from what has merged:
- A pull request bumps
versioninplugins/motir/.claude-plugin/plugin.json(semantic versioning — a new skill is a minor bump, a procedure fix a patch) and merges. - Tag that merge commit
v<version>and push the tag. - Publish a GitHub release from the tag, listing the skills it carries and what changed.
- Install from the tag as a consumer would, and check the skills load.
Licence
MIT — © moooon B.V.
{
"name": "motir-skills",
"owner": {
"name": "moooon B.V.",
"url": "https://motir.co"
},
"metadata": {
"description": "The Motir plugin: skills that let a coding agent work a Motir project, the Motir MCP server they reach it through (signed into in the browser), and a runner for the pinned `motir` CLI."
},
"plugins": [
{
"name": "motir",
"source": "./plugins/motir",
"description": "Run the next Motir card end to end, repair a card's red pull requests, carry on a dead run on the branch it left, log a verified bug, clear the Bugs folder, close a manual card, and be guided through one step by step. Connects the Motir MCP (signed into in the browser) and carries the `motir` CLI runner."
}
]
}Facts
- Kind
- Marketplace
- Repo
- moooon-B-V/motir-skills
- Group
- Uncategorized
- Stars
- 0
- Marketplace name
- motir-skills
- Owner
- moooon B.V.
- License
- MIT
- Language
- Python
- Created
- 2026-09-28
- Last push
- 2026-10-07
- Plugins
- 1
- 1obra/superpowersobra/superpowersAn agentic skills framework & software development methodology that works.297.9k
- 2affaan-m/everything-claude-codeaffaan-m/ECCThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.277.5k
- 3anthropics/skillsanthropics/skillsPublic repository for Agent Skills180.6k
- 4f/prompts.chatf/prompts.chatf.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.172.7k
- 5anthropics/claude-codeanthropics/claude-codeClaude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.150.3k
- 6nextlevelbuilder/ui-ux-pro-max-skillnextlevelbuilder/ui-ux-pro-max-skillAn AI skill that provides design intelligence for building professional UI/UX across multiple platforms.135k