explore-wdyk
Deep-dive into a topic using your arsenal evidence, with persona-driven probing questions and concept mapping
What this skill does
<references>
<reference path="references/exploration-framework.md" />
</references>
<purpose>
Conduct a topic-driven deep dive that probes your understanding through conversation, maps what you know against what you've done, and identifies where your knowledge is strong, partial, or missing.
</purpose>
<steps>
<step id="load-configuration" number="1">
<description>Load Configuration</description>
<load-config>
<action>Resolve the user's home directory.</action>
<command language="bash" output="home" tool="Bash">echo $HOME</command>
<constraint>Never pass `~` to the Read tool.</constraint>
<read path="<home>/.things/config.json" output="config" />
<if condition="config-missing">Tell the user: "Run `/things:setup-things` first." Then stop.</if>
<read path="<home>/.things/shared/professional-profile.json" output="profile" />
<read path="<home>/.things/what-do-you-know/preferences.json" output="preferences" />
<if condition="preferences-missing">Tell the user: "Run `/setup-wdyk` first." Then stop.</if>
<substep name="extract-profile-fields">
<action>Extract `building_skills`, `aspirational_skills`, `current_role`, `target_roles` from the professional profile, and `default_depth`, `default_persona`, `session_length` from preferences.</action>
</substep>
</load-config>
</step>
<step id="load-arsenal" number="2">
<description>Load the User's Arsenal</description>
<action>Read all files in `<home>/.things/i-did-a-thing/arsenal/` to understand logged skills and evidence. Read `<home>/.things/i-did-a-thing/index.json` for structured entry data.</action>
<if condition="no-logs-exist">
<output>
You haven't logged any entries yet. Run `/thing-i-did` first so I have your experience to explore with. I can still probe your knowledge, but sessions are much richer when grounded in your actual work.
</output>
</if>
</step>
<step id="select-topic" number="3">
<description>Select Topic</description>
<if condition="topic-provided">
<action>Use the topic from the argument.</action>
</if>
<if condition="no-topic">
<ask-user-question>
<question>What topic do you want to explore?</question>
<option-with-text-input>Free text -- e.g., "distributed systems", "API design", "observability"</option-with-text-input>
</ask-user-question>
</if>
</step>
<step id="search-arsenal" number="4">
<description>Search Arsenal for Topic Evidence</description>
<action>Search `<home>/.things/i-did-a-thing/index.json` for entries matching the topic by:</action>
- Tags that match or relate to the topic
- `skills_used` and `skills_developed` fields
- Entry titles and descriptions containing topic-related terms
<action>Collect all matching entries as context for the session.</action>
</step>
<step id="load-session-history" number="5">
<description>Load Session History</description>
<command language="bash" tool="Bash">bash <plugin_root>/scripts/search-sessions.sh --topic <topic> --recent 5</command>
<constraint>Use previous session data to avoid re-asking the same probing questions and to track progress on this topic.</constraint>
</step>
<step id="select-persona" number="6">
<description>Select Persona</description>
<if condition="persona-provided">
<action>Use the specified persona.</action>
</if>
<if condition="no-persona">
<action>Use the `default_persona` from config.</action>
</if>
<substep name="load-persona">
<action>Load the selected persona from `<home>/.things/shared/roles/<persona>.md`.</action>
</substep>
<constraint>Adopt the persona's voice, evaluation weights, and follow-up patterns -- but adapt them for learning rather than interview coaching. The persona is probing to understand and deepen knowledge, not to evaluate interview readiness.</constraint>
</step>
<step id="select-depth" number="7">
<description>Select Depth</description>
<if condition="depth-provided">
<action>Use the specified depth.</action>
</if>
<if condition="no-depth">
<action>Use `default_depth` from config.</action>
</if>
- exploratory -- Broad overview: "What do you know about X? Walk me through the landscape." Cover breadth, identify strong and weak areas.
- focused -- Targeted deep-dive: "Let's go deep on X. Explain how it works under the hood." Probe internals, edge cases, tradeoffs.
- deep -- Intensive probing: "You've worked with X. Let's stress-test your mental model." Challenge assumptions, explore failure modes, demand precision.
</step>
<step id="begin-probing-dialogue" number="8">
<description>Begin Probing Dialogue</description>
<action>Use the persona's voice to begin exploring the topic. Ground questions in the user's actual experience from their arsenal.</action>
Question patterns:
- Experience-grounded: "You made an architecture decision about [X] in [project from arsenal]. Walk me through your reasoning."
- Scale challenge: "What would break first if you scaled this 10x?"
- Comparison: "How does your approach compare to [standard approach]?"
- Edge cases: "What happens when [edge case]? How would you handle it?"
- Teaching test: "If you had to explain [concept] to a junior engineer, where would you start?"
- Connection probing: "How does [concept A] relate to [concept B from their experience]?"
- Gap detection: "What's the difference between [similar concept A] and [similar concept B]?"
<constraint>
Adapt the probing based on depth level:
- exploratory: 4-6 questions, broad coverage, identify landscape
- focused: 6-8 questions, targeted depth in specific areas
- deep: 8-12 questions, intensive probing, challenge mental models
</constraint>
</step>
<step id="probe-and-adapt" number="9">
<description>Probe Deeper Where Strong, Widen Where Thin</description>
<action>As the user responds, adapt the probing strategy.</action>
<if condition="strong-understanding">Push deeper: "What's happening at the layer below that?" or "What are the tradeoffs of that approach vs. alternatives?"</if>
<if condition="thin-understanding">Widen: "Let's set that aside for now. What about [related concept]?" or "That's a gap worth noting. Let me ask about something adjacent."</if>
<if condition="arsenal-reference">Connect: "You mentioned [entry]. How does that experience inform your understanding of the general principle?"</if>
<constraint>
Use the `session_length` config to pace the conversation:
- short: ~15 min, 4-5 exchanges
- medium: ~30 min, 7-8 exchanges
- deep: ~60 min, 12+ exchanges
</constraint>
</step>
<step id="score-dimensions" number="10">
<description>Score on Learning Dimensions</description>
<action>After the dialogue, score the user on five dimensions (from `references/exploration-framework.md`):</action>
1. Depth (1-5) -- How far below the surface can they explain? Internals vs. buzzwords
2. Accuracy (1-5) -- Are their mental models technically correct?
3. Connections (1-5) -- Can they relate this to adjacent concepts and their own experiences?
4. Application (1-5) -- Can they apply the knowledge to new situations?
5. Articulation (1-5) -- Can they explain it clearly to someone else?
</step>
<step id="produce-concept-map" number="11">
<description>Produce Concept Map</description>
<action>Classify concepts discussed into strong, partial, and gap categories.</action>
- Strong -- demonstrated depth, accuracy, and ability to teach
- Partial -- understands the basics but gaps in depth or precision
- Gap -- couldn't explain or had significant misconceptions
<template name="concept-map">
<output>
Concept Map: [Topic]
Strong:
- [concept] -- [evidence of strength]
PartRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.