‹ 首页

porch

@cluesmith · 收录于 5 天前 · 上游提交 6 天前

Protocol orchestrator CLI — drives SPIR, ASPIR, AIR, TICK, and BUGFIX protocols via a state machine. ALWAYS check this skill before running any `porch` command. Use when you need to check project status, approve gates, signal phase completion, or manage protocol state. Also use when a builder asks about gate approvals or phase transitions.

适合你,如果需要在项目中执行结构化协议并管理状态

/ 通过 npx 安装 校验哈希
npx oh-my-skill add cluesmith/codev/porch
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- cluesmith/codev/porch
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify cluesmith/codev/porch
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
282GitHub stars
~813上下文体积 · 单文件
索引托管

怎么用

商店整理自技能原文 · 版本 12d42bb · 表述以原文为准
它做什么

装上后,Claude 能通过 porch 命令管理开发协议流程:查看项目状态、标记阶段完成、检查门控、列出待批准项。门控批准需人工操作,Claude 不能自动执行。

什么时候触发

当你询问项目状态、门控批准、阶段推进,或要求运行 porch 命令时触发。

装好后可以这样说
执行 porch status 命令。
执行 porch done 命令。
执行 porch pending 命令。
技能原文 SKILL.md作者撰写 · Apache-2.0 · 12d42bb

porch - Protocol Orchestrator

Porch manages the state machine behind development protocols. It tracks phases, gates, consultations, and transitions.

Commands
porch status [id]              Show current project state and phase
porch run [id]                 Run the protocol loop (strict mode)
porch next [id]                Get next tasks as JSON
porch done [id]                Signal current phase is complete
porch check [id]               Run checks for current phase
porch gate [id]                Request human approval at a gate
porch approve <id> <gate> --a-human-explicitly-approved-this
porch rollback <id> <phase>    Rewind to an earlier phase
porch init <protocol> <id> <name>   Initialize a new project

Project ID auto-detects from worktree path when inside a builder worktree.

Gate approvals

Gates are human-only approval checkpoints. The --a-human-explicitly-approved-this flag is required — it exists to prevent AI agents from auto-approving.

| Gate | Protocol | When | |------|----------|------| | spec-approval | SPIR | After spec is written | | plan-approval | SPIR | After plan is written | | pr | SPIR, TICK, AIR | After PR is created |

porch approve 42 spec-approval --a-human-explicitly-approved-this
porch approve 42 plan-approval --a-human-explicitly-approved-this
porch approve 42 pr --a-human-explicitly-approved-this

ASPIR and BUGFIX have no spec/plan gates — they run autonomously through those phases.

Checking pending gates
porch pending                  # List all gates waiting for approval
Critical rules
  • Builders must NEVER call porch approve — only humans approve gates
  • Never edit status.yaml directly — porch manages all state
  • Builders signal completion with porch done, not porch approve
  • porch run is for strict mode only — soft mode builders follow the protocol document manually
  • When running porch approve from the architect, use a subshell if you need worktree context: (cd /path/to/worktree && porch approve ...)
Language-agnostic checks (porch.checks override)

Protocol check commands default to the npm toolchain (npm run build, npm test, etc.) baked into each protocol.json. A non-Node project (Python/uv, Go, Rust) will BLOCK at the first implement-phase check because npm can never pass there — even when the code is green under its real test runner.

You do NOT need to fork protocol.json. Override check commands per-name in .codev/config.json under porch.checks. Each entry takes command (replace), cwd (replace), and/or skip: true. This covers both phase checks and the phase_completion predicates (build_succeeds / tests_pass).

// .codev/config.json — Python/uv example
{
  "porch": {
    "checks": {
      "build":          { "command": "uv build" },
      "test":           { "command": "uv run pytest" },
      "build_succeeds": { "command": "uv build" },
      "tests_pass":     { "command": "uv run pytest" },
      "e2e_tests":      { "skip": true }
    }
  }
}

Keys are the check names from the protocol: build / test / e2e_tests live in phases; build_succeeds / tests_pass live in phase_completion. An override key that matches no check in the protocol prints a warning. Shipped by Spec #550.

State storage

Project state lives in codev/projects/<id>-<name>/status.yaml, managed automatically by porch. The status file tracks current phase, gate states, consultation results, and timestamps.

按 Apache-2.0 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。