Install any skill in seconds. Free to start, no credit card required.
Get Started Free →hashgraph-online/mode-selector
Use this skill when performing deterministic mode selection for session-start. Reads Phase A STATE.md recommendations + (future) learnings, sessions, backlog, bootstrap signals and returns {mode, rationale, confidence, alternatives}. Pure-function contract — no side effects, no STATE.md writes. Phase B scaffold (issue #276); full heuristic is follow-up sub-issues.
Passed 21 of 22 test cases with the skill, and 4 of 22 without it.
and 18 more in the full report
17 fixed4 passed either way1 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 17 test cases the skill fixed. Same model, same prompt, with and without the skill.
I'm running a session planning script and need to select the right execution mode. Given a carryover ratio of 0.60, 8 planned items, and cross-cutting repository refactoring scope, determine what mode we should run. Format your response as a JSON object containing keys for the chosen mode, an explanation string, a confidence rating from 0.0 to 1.0, and next-best alternative mode choices.
| Checked | Without skill | With skill |
|---|---|---|
| The JSON output uses the top-level keys mode, rationale, confidence, and alternatives | Missed | Passed |
| The rationale string includes context pressure details when pressure score is medium or high | Missed | Passed |
The instructions your model reads when the skill loads.
Heuristic v1 active (issue #291, shipped 2026-04-25). Wired into session-start Phase 7.5
(issue #292, shipped 2026-04-25). Backlog signal source live (issue #293, shipped 2026-04-25):
signals.backlog is populated by scripts/lib/backlog-scan.mjs::scanBacklog. Accuracy feedback
loop live (issue #294, shipped 2026-04-25): scripts/lib/mode-selector-accuracy.mjs::recordAccuracy
writes a mode-selector-accuracy learning after the user confirms/overrides the Phase 7.5 banner.
Phase B contract is closed. Phase C (#277) /autopilot Loop Command is the next epic and
owns its own PRD.
Mode-Selector centralizes the session-mode decision across all consumers: session-start Phase 1.5
banner, /autopilot (Phase C), and any future caller that needs a structured recommendation rather
than ad-hoc heuristics inline at the call site. Before this skill existed, mode-picking logic was
either implicit (user-typed free text) or embedded directly in session-start with no reuse path.
Phase A (state-md.mjs::parseRecommendations, issue #272) established the recommended-mode
frontmatter field written by session-end Phase 3.7a. Phase B is the skill that reads that field
(plus future signals) and returns a structured recommendation. The key output is a four-field
tuple: {mode, rationale, confidence, alternatives}. mode is the recommended session type.
rationale is a ≤120-char human-readable explanation. confidence is a float (0.0–1.0)
indicating how strongly the selector commits to the recommendation. alternatives is an ordered
list of {mode, confidence} objects representing the next-best choices, enabling callers to offer
override options without re-running the selector.
The selector is a pure function: given the same signals object it always returns the same output.
No file I/O, no network calls, no global state. This makes it trivially testable and safe to call
from any skill without side-effect risk.
signals objectrecommendedMode (string|null) — Phase A frontmatter field; the recommended-mode key from parseRecommendations()topPriorities (number[]|null) — issue numbers from the top-priorities frontmatter fieldcarryoverRatio (number|null) — float 0.0–1.0 from Phase A; fraction of issues carried over from previous sessioncompletionRate (number|null) — float 0.0–1.0 from Phase A; ratio of planned issues completedtest cases passed, vs 4 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.