block-issue
MANDATORY: Follow the complete shared lifecycle contract in ${CLAUDE_PLUGIN_ROOT}/skills/shared/run-lifecycle.md with declared skill block-issue.
block-issue
MANDATORY: READ ENTIRE FILE before composing user-facing prose: ${CLAUDE_PLUGIN_ROOT}/skills/shared/readability-style.md.
Express a native GitHub blocking relationship: issue ISSUE_A is blocked by issue ISSUE_B.
Arguments
Positional: ISSUE_A ISSUE_B — plain issue numbers (≥1). Optional: --repo owner/name (auto-detected from gh repo view when omitted). Live mutations require --operator-invoked. Optional: --run-id <ID>; shared flag details are in ${CLAUDE_PLUGIN_ROOT}/skills/shared/run-id-flag.md. Example: /block-issue 1842 1827 --operator-invoked marks #1842 as blocked by #1827.
/triage callers also pass --triage-controlled --expected-updated-at <timestamp>. This mode re-reads the target immediately before mutation, requires exact freshness, rejects security-sensitive or protected lifecycle state (including a title-only stale lifecycle prefix), and performs an exact relationship and fresh-timestamp read-back. It does not weaken ordinary argument validation.
Strip --run-id <ID> from $ARGUMENTS before invoking the script (the script does not accept this flag). Command contract: crates/larch-cli/src/issue_dependency_commands.rs.