machinist

GitHub

用于管理基于GitHub Issue的软件任务全生命周期,支持创建任务、分配执行(本地或托管模式)、监控状态及恢复工作,确保代码独立审查与验证。

skills/machinist/SKILL.md owainlewis/machinist

Trigger Scenarios

需要创建新的软件开发任务 启动或提交代码实现任务 检查任务执行状态或标签 恢复中断的正在进行的任务

Install

npx skills add owainlewis/machinist --skill machinist -g -y
More Options

Use without installing

npx skills use owainlewis/machinist@machinist

指定 Agent (Claude Code)

npx skills add owainlewis/machinist --skill machinist -a claude-code -g -y

安装 repo 全部 skill

npx skills add owainlewis/machinist --all -g -y

预览 repo 内 skill

npx skills add owainlewis/machinist --list

SKILL.md

Frontmatter
{
    "name": "machinist",
    "description": "Use Machinist to create, assign, monitor, and resume software tasks. Use when a coding agent needs to work with Machinist, its GitHub issue workflow, lifecycle labels, direct runs, or managed queue."
}

Machinist

Machinist turns one open GitHub issue into a planned, implemented, independently reviewed, and checked pull request. It never merges the pull request.

Core model

  • A task is one open GitHub issue in the target repository.
  • Assigning a task means starting machinist run or queuing machinist submit.
  • Labels report workflow state. They do not assign or start work.
  • Reassign the same issue to resume existing work. The foreman recovers its branch, worktree, pull request, checks, and repair count.
  • When MACHINIST_RUN_ID is set, the agent is already inside a Machinist run. Follow the assigned role and do not start or submit another run.

Create a task

Reuse a supplied issue when it is open and belongs to the current repository. Otherwise create one issue with gh issue create. Keep it focused on one observable outcome and preserve the user's constraints. Do not invent implementation details that the request does not decide.

gh issue create --title "<short outcome>" --body "<problem, outcome, constraints, and acceptance evidence>"

Use the issue URL returned by GitHub for every later command.

Assign a task

Use direct mode for immediate local work. Pass an absolute Git worktree path:

machinist run \
  --agent=foreman \
  --repo=/absolute/path/to/repository \
  --prompt="Complete https://github.com/owner/repository/issues/123"

Use managed mode when the control plane and worker are already running. Pass the logical repository name from worker.toml:

machinist submit \
  --agent=foreman \
  --repo=repository-name \
  --prompt="Complete https://github.com/owner/repository/issues/123"

submit prints a job ID. Follow managed work in the local control-plane UI. Do not treat adding a label as submission. Label-based delegation is not implemented.

Lifecycle labels

Keep exactly one lifecycle or exception label on the issue:

Label Meaning Agent action
machinist:planning The issue is being refined into a clear task. Wait for planning or answer a question if asked.
machinist:building A worker is implementing or repairing the change. Do not start overlapping work.
machinist:verifying Independent review, CI, or automated review is running. Wait for the current head to finish verification.
machinist:ready-for-review The pull request is verified and ready for a person. Hand the pull request to a person. Do not merge it.
machinist:needs-human A product or technical decision is missing. Answer the precise issue question, then assign the same issue again.
machinist:blocked Tooling, credentials, infrastructure, or the repair limit stopped work. Read the evidence, remove the external blocker, then assign the same issue again.

The foreman creates and transitions these labels. If a label is missing during manual recovery, create it with GitHub CLI, then add it to the issue:

gh label create "machinist:planning" --color 1d76db --description "Machinist is planning this task"
gh issue edit https://github.com/owner/repository/issues/123 --add-label "machinist:planning"

Use the same pattern for the label named in the table. Remove the previous lifecycle label before adding another. Do not change a label merely to make progress appear further along.

Manage and resume work

Inspect the issue labels, the <!-- machinist:foreman-state --> issue comment, the linked pull request, and current checks. Verify the recorded branch, worktree, SHAs, pull request, checks, and repair count against current Git and GitHub state before using them.

  • For machinist:needs-human, answer the issue question and reassign the same issue.
  • For machinist:blocked, fix the reported external cause and reassign the same issue.
  • For interrupted or stale work, reassign the same issue. Do not create a second branch or pull request.
  • For machinist:ready-for-review, hand the pull request to a person. Never merge unless that person explicitly decides to do so outside the shipped foreman workflow.

When reporting status, include the issue URL, job ID when managed, pull request URL when created, current label, checks, review verdict, and blocker or next human action.

Version History

  • 47d43d5 Current 2026-08-27 22:41

Metadata

Files
0
Version
47d43d5
Hash
28b7c080
Indexed
2026-08-27 22:41

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-28 21:56
浙ICP备14020137号-1 $Carte des visiteurs$