From harnish
Decision-forcing skill. Reduces a problem to a binary fork via role decomposition (Decision / Execution / Validation / Recovery), surfaces trade-offs, forces a single choice. Triggers: "결정", "선택", "어느 쪽", "두 길", "갈피", "trade-off", "둘 중 뭐", "이전에 결정한", "다시 결정", "결정 기록", "decide", "decision", "choose between", "fork", "torn between", "past decision", "decided before", "record decision". Scope: any domain. Pre-PRD, pre-implementation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/harnish:forkiThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Pattern: **binary → roles → trade-off → forced choice**.
Pattern: binary → roles → trade-off → forced choice. This is a decision skill, not an explanation skill.
| Category | Steps | LLM authority |
|---|---|---|
| Auto query | 0 (query) | Full |
| Flow gate | 0 (decision) | None — trust / reopen |
| Verdict gate | 1, 3, 6 | None — user states it |
| Confirmation gate | 2, 5 | Propose only |
| Scaffold (skippable) | 4, 7 | Propose, user skip |
| Side effect (opt-out) | 8 | y / n |
LLM proposes; user confirms before next step. No autonomous mode.
Bash convention: each Bash invocation is a fresh subshell. Every bash block in this skill (across
SKILL.mdandreferences/) re-declaresHARNISH_ROOT="${CLAUDE_PLUGIN_ROOT}"inline.
| File | First loaded at | Used for |
|---|---|---|
references/protocol.md | Step 1 (first HITL) | All HITL prompts, response rule parsing, report templates |
references/asset.md | Step 0 entry, or Step 8 entry if Step 0 was skipped | Bash query/record blocks for .harnish/ |
Each reference is loaded at most once per forki invocation and reused across all subsequent steps. See Context Budget below for the exhaustive read/write inventory.
→ Load references/asset.md and execute the Step 0 query block as documented there. The full branching logic (trust / reopen / skip on absent / skip on no match) lives in asset.md.
Exactly 2 options. 3+ → collapse to "do A vs everything else". "It depends" → ask user to constrain.
→ HITL via Step 1 prompt in references/protocol.md. Wait for explicit confirmation. Output: A vs B, one line.
Compress to one sentence: "Who executes X?" / "Who owns X?" / "What changes when X?"
→ HITL via Step 2 prompt in references/protocol.md. Reject → propose alternative. Reject again → back to Step 1 (binary is wrong).
On entry, output first line: Step 3 attempt {n}/3.
{n} starts at 1 on first Step 3 entry; +1 on each back-jump from Step 5/6/7. On attempt 3/3, this is the last allowed run (2 back-jumps total). If forki would back-jump to Step 3 again from this attempt, abort instead: "forki could not converge after 2 back-jumps. Gather more context outside this skill."
Fill all 4 roles per option:
| Role | Question |
|---|---|
| Decision | Who judges? |
| Execution | Who acts? |
| Validation | Who verifies? |
| Recovery | Who fixes when broken? |
→ HITL via Step 3 prompt in references/protocol.md. LLM may draft; user confirms or overrides each cell. Empty ? → re-ask only those cells.
→ HITL via Step 4 prompt in references/protocol.md. Skip when concrete enough or user says skip. Record skip in report.
A: gains {X}, loses {Y}
B: gains {Y}, loses {X}
Axes: flexibility↔stability, speed↔safety, autonomy↔control.
→ HITL via Step 5 prompt in references/protocol.md.
Choice: Option {A|B}. Reason: {one structural reason}.
→ HITL via Step 6 prompt in references/protocol.md. LLM must not answer for the user, must not signal a preference. "You choose" → reply: "forki cannot decide for you."
User truly cannot choose → back-jump to Step 3.
→ HITL via Step 7 prompt in references/protocol.md. Cannot answer all 3 → back-jump to Step 3. Skip on skip.
Trigger: runs only after Step 6 reaches a verdict (and Step 7 if not skipped). If forki aborts at any earlier step (counter 3/3, user Stop, Step 0 trust reuse, etc.), Step 8 does not run.
→ Load references/asset.md for sub-steps 8.0 / 8.1 / 8.2 (pre-check, HITL, write+record).
Side effect, not gate: the Step 6 verdict stands regardless of Step 8 outcome.
forki is a thinking skill, not a reading skill.
Reference loading: see References section above (single source of truth).
Filesystem I/O:
| Operation | When |
|---|---|
Read .harnish/assets/*.jsonl (tag-filtered) | Step 0 only. Skip if directory absent. |
Write /tmp/forki-{ts}.md | Step 8 sub-step 8.2 only, after y confirmation. |
Append .harnish/assets/decision-{date}.jsonl (1 line) | Step 8 sub-step 8.2 only. |
Maximum 2 references in context simultaneously (protocol.md + asset.md).
yes / ok / 응 as confirmation. Always re-ask.Both / depends / later as final choice.harnish/ from forkin. Honor opt-out.references/protocol.mdnpx claudepluginhub jhu900202/plugins --plugin harnishRoutes decision-making requests to the appropriate structured thinking tool: option-mapping, criteria-weighting, premortem-analysis, or reversibility-analysis.
Provides structured decision-making by weighing pros and cons, stakeholders, risks, and alternatives. Useful when evaluating options or planning approach.