Quick protocol recommendation from recent sessions, or quest-based learning through scenario, trial, and quiz.
67%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./epistemic-cooperative/skills/onboard/SKILL.mdStart with a quick recommendation based on recent sessions, then optionally continue to guided learning — so users experience value first, learn second.
Invoke directly with /onboard when the user wants onboarding or protocol discovery.
Invoke this skill when:
Skip when:
Quick Proof: ENTRY → QUICKSCAN → PICK → EVIDENCE → TRIAL → INSIGHT → NEXT
Targeted: ENTRY → QUICKSCAN → MAP → SCENARIO → TRIAL → QUIZ → GUIDE
Targeted + std: ENTRY → SCENARIO → TRIAL → QUIZ → GUIDE| Phase | Owner | Tool | Purpose |
|---|---|---|---|
| 0. Entry | Main | Gate | Path selection: quick/targeted |
| 1. Quick Scan | Main | Glob, bounded head read | User Context Profile extraction |
| 2a. Pick | Main | — | Quick path: recommendation |
| 2b. Evidence | Main | — | Quick path: evidence card |
| 2. Map | Main | — | Targeted path: Profile → Protocol matching |
| 3. Scenario | Main | Gate | Targeted path: context-personalized intervention point |
| 4. Trial | Main | Gate | Real protocol execution (quick: mini trial, targeted: full trial) |
| 4→Q. Insight | Main | — | Quick path: post-trial insight card |
| 4→Q. Next | Main | Gate | Quick path: simplified navigation |
| 4→5 LOOP | Main | Gate | Targeted path: post-trial navigation |
| 5. Quiz | Main | Gate | Targeted path: Socratic protocol recognition quiz |
| 6. Guide | Main | Gate | Targeted path: summary + next protocol suggestion |
Compact mapping for inline use.
| Protocol | When to Use | Key Patterns |
|---|---|---|
Aitesis /inquire | A task rests on missing context or unchecked assumptions — collect what the AI can reach on its own, hand back what it cannot as the user's own unknown | Hand-off or execution about to start on context nobody gathered; implicit requirements, environment dependencies, prior decisions (for prior-session recall → use /recollect) |
Euporia /elicit | Intent articulated but the decisions it turns on not yet named | Multi-axis intent without single axis-specific protocol fit; coordinates surface from the user's material, words, and the domain's usual decisions |
Heuresis /ideate | Object-level candidate field is empty or has prematurely converged — widen it before any selection is made | Zero entry questions (blank, seeded, or resumed, inferred without asking — for a bare /ideate, from the conversation before it), frame-first while the field holds no candidate, no elimination or ranking during generation, every candidate tagged with where it came from (the user, the AI, or the tag named material came with, else the turn it was read from) |
Proplasma /preview | Right before a direction commitment when the candidates cannot be judged from descriptions — contrast cheap discard-committed placeholder probes on AI-drafted axes relayed with their basis | Principle-delegation at direction gates ("go with the recommended direction"), option-set reconstruction instead of choosing, "I'd have to see it" decision stalls |
Hypotyposis /sketch | A form has to be made, intent cannot yet be settled from descriptions, and the user would recognize it on sight — relay what the next versions try, show each version before the standing, revise from the versions the user's words point to, end when they recognize one they met | "I'd know it when I see it", a plan stalled at its first draft, a description rewritten repeatedly instead of made |
Analogia /ground | Auditing what a mapping being relied on licenses about a case, reading any account it can reach as evidence | Intended conclusions whose structural evidence or limits remain uncertain |
Periagoge /induce | Concrete cases sharing something not yet named, or a name being reconsidered from its cases — crystallize the abstraction they share | 2+ concrete cases sharing something whose name, rule, or reach is unsettled, a named abstraction being reconsidered from its cases included — the question is what abstraction the given cases share, where /ground asks what carrying a given structure to a target supports, or tests an abstraction against its own cases |
Merismos /apportion | An autonomous goal is stated but its unit plan is uncompiled — cut it into coarse units at cited seams and close each unit before the run begins — a derived completion condition where one compiles, a recorded acceptance or a recorded reservation where none does — then hand the taken plan to the run | An unattended-run directive ("work through", "go through all", "run until done"), a goal that plainly exceeds one execution horizon, or a stop-hook being configured — each only shows an autonomous interval is intended, so the deciding check is whether the goal already carries units whose completion conditions are settled — closed by a determinate predicate, by a recorded acceptance, or by a recorded reservation; where one already does, /apportion shows that plan on its first sheet with that reading as a contrary ground |
Epharmoge /contextualize | A result — this session's or another's — is correct but may not fit where it lands or may leave out an intent the conversation stated | Misfits and omissions against everywhere the result lands and the session-built constraints, shown on one sheet |
Horismos /bound | Deciding what to delegate to AI | Provisional whole map, progressive examination, source-bound settlement and residual |
Anamnesis /recollect | Resolving vague recall of prior sessions or discussions — one session, or a line of work, topic, or settled concept spread across several | Cross-session state recovery via narrative recognition (Recognition over Retrieval); a unit above one session is composed from its deposits at read time |
Katalepsis /grasp | Something in play you can't follow yet, or nod along to unsure — a map of understanding over your purpose, each aspect saying what it rests on | User-intent grasp for a target present in context and quotable, whoever produced it — reviews, plans, papers, docs, or code changes |
Hyphegesis /conduct | Conducting the method of a multi-move work prospect before object-level cognition — order, independence, combination, stopping, where results go | Multi-move work with non-trivial conduct (migrations, staged investigations, entangled adversarial/parallel/synthesis); "how should I approach this whole thing?" meta-questions |
Paths below written {config_dir}/… take {config_dir} = CLAUDE_CONFIG_DIR when set, else ~/.claude. Resolve it ONCE per invocation with Bash printf '%s\n' "${CLAUDE_CONFIG_DIR-$HOME/.claude}" and substitute the absolute result before any Read/Glob/Grep call.
Begin with a concise welcome and path selection, reserving the full catalog for the Browse-all path.
Gate #1:
If Quick recommendation: set path = quick, proceed to Phase 1.
If Browse all: Present the protocol catalog (check installation status via Glob {config_dir}/plugins/cache/epistemic-protocols/*/, then render all core protocols from Data Sources as a numbered list with name + "When to Use" + installation badge). After catalog, present:
Then proceed based on selection.
If Targeted + Other contains protocol name: proceed directly to session source question.
If Targeted + no protocol specified:
Present a condensed catalog as text output: render the Data Sources table as a numbered list, each protocol as /command — When to Use description.
Then Gate #2:
/elicit, /inquire), each as /command — When to Use; any other protocol is chosen by name or number in OtherGate #3 (Targeted only, session source):
State after Phase 0:
path: quick | targetedtarget_protocol: (targeted only) selected protocol namesession_source: (targeted only) scan | standard — Quick path always runs Quick ScanSkip rule: If targeted + standard → skip Phases 1-2, jump to Phase 3 with preset scenarios from references/scenarios.md.
Build a User Context Profile from the person's own opening turns in their recent Claude Code conversations. Runs inline (no subagent delegation). Both Quick and Targeted paths share this phase.
Step 1: Collect recent opening turns
{config_dir}/projects/*/*.jsonl — a session record sits directly inside a project partition; anything nested deeper is a subordinate capture and is excluded by depth. Exclude partitions whose name contains -worktrees-, which hold delegated work rather than the person's own sessions. Take the ~10 most recently modified records.head -c 262144 <record>), never the whole file. Skip a line that does not parse — the last one may be cut by the bound.type is user, isMeta and isCompactSummary are both absent, and its text (message.content as a string, or the text parts of a content list — tool results are not text parts) neither opens with < nor is a bare control marker such as [Request interrupted by user]. Hook output, command wrappers, and injected envelopes arrive in the same user stream and are excluded by this rule.Step 2: Infer User Context Profile
From the collected turns, infer:
If no person turns were collected — a fresh install, or a host that keeps no such records: Quick path proceeds to Pick with fallback (/elicit); Targeted path falls back to Onboarding Pool (/elicit, /inquire).
Output for Phase 2: User Context Profile (work domains, conversation patterns, task types). Quick Scan infers user context for protocol matching and scenario personalization.
Quick path only. Recommend from the auto-recommend pool.
Onboarding Pool: /elicit (Euporia), /inquire (Aitesis). These two are chosen because users can quickly experience their value. Protocols like /grasp are user-initiated by nature and should not be proactively suggested in the first encounter.
Recommendation rules (applied to Quick Scan Profile):
| Protocol | Signal patterns | Priority |
|---|---|---|
/elicit | Vague first prompts ("improve", "optimize", "make it better", "help me plan"); intent articulated but the decisions it turns on not yet named. An ideation ask ("ideas for", "brainstorm") routes to /ideate (Heuresis), which is user-initiated and therefore outside this proactive pool | Highest (also fallback) |
/inquire | Hand-off or finalization language ("go ahead", "just do it", "ready", "ship", "merge") — the AI is about to execute on the context it has; tasks with implicit requirements or environment dependencies in summary. It checks what the imminent execution rests on (assumptions, missing facts, environment dependencies); it does not audit the decision for unconsidered trade-offs, alternatives, or omitted steps | Medium |
Decision logic:
/ideate (user-initiated: named as the route for that ask, not presented as the onboarding recommendation), then continue via the Fallback rule; the Phase 2b evidence card follows its fallback form, since the recommendation rests on the default, not on a matched signal/elicit > /inquire/elicitOutput: Present each recommendation as a single sentence stating how that protocol would help right now.
Quick path only. Present an evidence card for each recommendation, explaining why it was made.
Evidence generation (per protocol, referencing Data Sources table):
Fallback (no session data, or no matched signal): State that no pattern matched this protocol, then cite the protocol's core value proposition from Data Sources "When to Use."
Rules:
After presenting evidence, present:
Branch: Try /X now → Phase 4 (quick trial) with that protocol, Learn more about a recommendation → show the Data Sources row for each recommendation on screen then re-ask, See a different recommendation → pick next from pool and present it alone from Phase 2a's Output, Go to full learning path → set path = targeted and go to Phase 0 targeted flow.
Targeted path only. Apply User Context Profile to match protocols to the user's context.
/elicit, /inquire)./elicit, /inquire). Proceed immediately without blocking the onboarding flow.Targeted path only. Present a concrete scenario showing where the protocol would have helped.
Scenario construction (2-tier fallback):
references/scenarios.md using Profile data.references/scenarios.md.Present scenarios for each of the top 2-3 protocols sequentially.
Scenario format:
Scenario: /X (Protocol Name)
[Situation]: [Concrete situation grounded in user's work context — or preset from scenarios.md]
[Intervention]: If you had called /X at this point:
- [what the protocol would have done — step 1]
- [step 2]
Expected outcome: [e.g., reduced rework, clearer direction]Clarity rule: Scenarios must present clear-cut protocol fits where the mapping is unambiguous. If a situation could plausibly map to multiple protocols (e.g., "exploration" could be /elicit or /ideate), reserve it for Phase 5 quiz material instead of using it as a scenario. The scenario phase builds confidence through recognition; the quiz phase builds discrimination through ambiguity.
Anti-pattern: Scenarios must be self-contained (situation + intervention) with unambiguous protocol fit. Ambiguous patterns belong in Phase 5 quiz.
Present each scenario as regular text output (Tier 1/2 format above). Then present for navigation only:
Gate (per scenario):
Guide the user through a real, abbreviated protocol experience.
Mini practice prompt: Present a single realistic request (one sentence) that naturally triggers the selected protocol's deficit. When User Context Profile is available, adapt the domain to match the user's work context. Source from references/scenarios.md Trial prompt field, or generate from Data Sources context. Follow with gate interaction:
Execution: The user invokes the actual protocol (e.g., type /elicit). The protocol runs in the same session with the mini prompt as context. Trial ends when the invoked protocol reaches its natural termination or the user ends it. After the trial ends, proceed to Quick Post-Trial below.
Quick Post-Trial Insight (2 lines max):
Generate from the protocol just experienced:
references/scenarios.md Philosophy field)Quick Post-Trial Navigation:
Present via gate interaction:
Branch: That's enough for today → end session with brief closing, Try a different protocol → check pool exhaustion: if protocols not yet tried remain in Onboarding Pool, pick the next untried one and present it alone from Phase 2a's Output; if pool exhausted (every pool protocol tried in session), present You've experienced all core recommendations and offer Targeted transition, Continue to full onboarding → set path = targeted and go to Phase 2 MAP with Quick Scan results.
"Try it" selection from Phase 3 already signals intent — enter trial directly without additional confirmation.
Mini practice prompts (scoped for 2-3 exchanges): Use the Trial prompt field from references/scenarios.md for the target protocol. Present the trial guidance as regular text output.
Execution: Prompt the user to invoke the actual protocol (e.g., type /inquire). The protocol runs in the same session with the mini prompt as context. Trial ends when the invoked protocol reaches its natural termination or the user ends it. After the trial ends, present Post-Trial Insight and LOOP.
Offer trial for the top-recommended protocol first. When that trial ends, optionally offer trial for the second recommendation.
Post-Trial Insight (presented after the trial ends):
After each trial, present a brief insight card sourced from the Philosophy field in references/scenarios.md. Structure:
Protocol Insight: /X (Greek name)
[Core principle — one sentence]
[Workflow position — where this protocol sits and why]
[Game feel — the experiential pattern you just went through]Post-Trial LOOP:
After the Post-Trial Insight, present:
Branch: Quiz → Phase 5, Another scenario → Phase 3, Different protocol → Phase 3 with next MAP protocol or Phase 0 with cached MAP, Guide → Phase 6.
Test protocol recognition through situation-based questions. Question format differs by path.
Question sourcing (in priority order):
/elicit or /ideate)references/scenarios.mdType 1 — Binary recognition (2-3 questions):
Present via gate interaction for each:
/X situation?"Type 2 — Reverse recognition (1 question):
Present via gate interaction:
/X situations?"Type 3 — Design thinking (1 question):
Present via gate interaction:
Applies when the targeted flow was entered from the Quick path ("Continue to full onboarding", or the pool-exhausted transition) without a single target protocol, so MAP selected 2-3 protocols.
Type 1 — Situation recognition (3-4 questions):
Present via gate interaction for each:
Type 2 — Design thinking (1 question):
Same format as Targeted Path Type 3.
Immediate feedback after each question:
Correct: Reinforce with the core principle + why the distinction matters. "Correct — /inquire collects what the AI can reach on its own and hands back what remains as the user's own unknown (what can I reach, and what is yours?), while /apportion cuts an autonomous goal into coarse units at cited seams, closes each unit before the run begins, and hands the plan the user takes to the run. /inquire exhausts the context the AI can reach and names what only the user holds (context sufficiency), /apportion gives the run a closed unit each — a checkable finish line where one compiles, a recorded acceptance or a recorded reservation where none does (execution structure)."
Incorrect (reasoning inquiry → targeted correction):
/inquire works before a result exists, on what the AI lacks — collecting what it can reach and handing back the user's unknowns — while /contextualize works after, on whether the result fits its context."Reasoning inquiry cap: Apply reasoning inquiry for the first 2 incorrect answers per quiz session. Subsequent incorrect answers receive direct targeted correction (step 2 only) without the reasoning inquiry step.
Distinction depth: Quiz feedback should go beyond "A, not B" to explain the design dimension that separates confused pairs. Reference the distractor pairs from Quiz Design section. The goal is that even wrong answers teach — the user leaves understanding why two protocols that sound similar serve different purposes.
Summarize the learning experience, connect it to the rest of the protocol catalog, and provide actionable next steps.
Learning summary:
/X formalizes this"Epistemic Map (connect the dots):
Present the Data Sources catalog, each protocol as /command — When to Use, highlighting the protocols the user experienced with emphasis (e.g., bold or ★). State that the protocols are not a fixed sequence or grouping: each is reached for when its deficit is the one in play, and they combine as the situation calls for.
Next protocol suggestion: Based on quiz results and MAP data, suggest the next protocol to explore — preferring one whose deficit, in the user's own sessions, arises next to the one just practised.
Advanced Usage (bonus tips after main guide):
Present 3-5 tips from references/advanced-usage.md (multi-protocol sessions, invocation techniques, etc.), prioritizing tips related to protocols from TRIAL and QUIZ.
Continue exploring (when MAP results contain unexplored protocols):
Present via gate interaction:
If "Yes" → return to Phase 3, using the next recommended protocol from MAP results.
Difficulty progression: Start with high-contrast pairs (e.g., /elicit vs /apportion), progress to subtle distinctions (e.g., /elicit vs /inquire, /inquire vs /contextualize).
Distractor selection: Choose protocols that share surface similarity with the correct answer:
/elicit ↔ /inquire: both about "unclear starting point" but different layers — Aitesis collects the facts the AI can reach and hands back what only the user holds (information layer), Euporia surfaces the decisions the user's intent turns on (coordinate-explication layer)/inquire ↔ /apportion: both run right before the AI acts, but /inquire collects the context the action rests on as far as the AI can reach and names the rest as the user's unknown, /apportion cuts an autonomous goal into coarse units and closes each one — on a compiled completion predicate, on an acceptance you recorded when none compiles, or on a reservation where a judgment rather than a check settles it — and hands the plan the user takes to the autonomous run/inquire ↔ /contextualize: both about "context" but different timing (pre vs. post execution)/bound ↔ /inquire: both pre-execution and AI-directed, but different targets (ownership boundaries vs. missing context)Path-specific question counts:
Quick path targets 3-4 calls. Targeted path targets 6-12 calls.
| Phase | Calls (Quick) | Calls (Targeted) | Purpose |
|---|---|---|---|
| 0. Entry | 1-2 | 2-3 | Path + protocol + session source |
| 2b. Evidence | 1 | — | Trial confirmation |
| 3. Scenario | — | 1-2 | Navigation after scenario text |
| 4. Trial | 1 | 0 | Quick: situation choice. Targeted: direct entry |
| 4→Q. Next | 1 | — | Quick: post-trial navigation |
| 4→5 LOOP | — | 1 | Targeted: post-trial navigation |
| 5. Quiz | — | 4-7 | MC/design or binary/reverse/design + reasoning inquiry |
| 6. Guide | — | 0-1 | Optional continue exploring |
/elicit, /inquire are the unified recommendation set for both Quick path auto-recommend and Targeted path fallback. User-initiated protocols (/grasp, /apportion) and specialized protocols (/contextualize) are excluded. When pool is exhausted in Quick path, transition to Targeted path.references/scenarios.md ensures every user gets a complete experience regardless of session history availability.jongwony/epistemic-protocols
dbf192b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.