learn
Present Effect, Alchemy, XState, and application-design concepts during real work when the operator enables learn mode.
Skill by joelhooks
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/joelhooks-learn-4590c8
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/learn
What's inside
- Skill name
learn- Description
- Present Effect, Alchemy, XState, and application-design concepts during real work when the operator enables learn mode. Use for adaptive explanations and local learning progress.
- License
- MIT
- Instructions
- 163 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (1)
- SKILL.md
SKILL.md (first lines)
# Learn during real work Teach the technology and principles in play. Use the project as a worked example. Keep the current task moving. ## Start and stop - Start only when the operator enables learn mode. - When the operator turns learn mode on, act at once. Read `learnPreferences`, call `learnNext` with no arguments, and present the returned concept. - If the tools are not ready, say in one line how to ask: "Say _next concept_ any time, or keep working and I will explain ideas as they appear." - Keep questions off unless the operator explicitly enables them. - Stop tool calls and explanations when the operator turns learn mode off. - Keep existing progress when stopping. Turning the mode off does not erase history. - Record `dismissed` when the operator asks to stop presenting one concept. - Do not promise a reset or signed-in sync. Those tools are not available. ## Use the local tools The local tools need a rat-stack checkout whose CLI has the learn commands. Check before you build or pull: ```sh git -C <checkout> status --porcelain node <checkout>/apps/cli/dist/cli.js --help ``` - The help output must list `learnNext`, `learnRecord`, `learnPreferences`, and `learnSetPreferences`. - Never pull, reset, or stash in a checkout with local changes. Clone a separate copy for the learn tools instead. - Do not use the operator's working checkout when it is behind or dirty. A fresh clone keeps their work untouched. Clone, then build the CLI: ```sh git clone --depth 1 https://github.com/joelhooks/rat-stack.git rat-stack-learn cd rat-stack-learn pnpm install pnpm turbo run build --filter=@rat-stack/cli ``` Configure the agent's stdio MCP client to run this command from that checkout: ```sh node apps/cli/dist/cli.js mcp ``` Add `--devtools` when checking recorded calls. The local tool descriptions say they use the local event log. Public MCP and HTTP progress tools use supplied progress and store no progress. Feedback is a separate signed-in operation. It does not synchronize learning progress. The default local store is `~/.rat-learn/`. `RAT_LEARN_DIRECTORY` selects another local directory. `RAT_LEARN_ORIGIN` selects the public deck origin. ## Display preferences `~/.rat-learn/preferences.json` holds three display choices. It stays on the machine. - **`width`**: - Values: `narrow`, `wide` - Default: `narrow` - **`visual`**: - Values: `inline-text`, `rich` - Default: `inline-text` - **`snippet`**: - Values: `full`, `terse` - Default: `full` - Read it with `learnPreferences`. A missing file means the defaults. - Change it with `learnSetPreferences` only when the operator asks. - `narrow`: keep the snippet and diagram one after the other, as plain text in the reply. - `wide`: the diagram may sit beside the snippet when the display allows it. - `rich`: the agent's own display may render the diagram, but uses only the card's fields. - `terse`: show the service declaration and the line that uses or provides it. `full`: show the whole snippet. ## Select and present 1. Read `learnDeck` and match public terms to the ideas in the work. 2. Keep that matching step local. Select only real concept ids from the deck. 3. Call local `learnNext` when an Effect, Alchemy, or XState idea appears in the work. 4. Set `context.ids` to those concept ids and `context.at` to the current Unix time in milliseconds. 5. You may use `context.terms` instead of ids. Pass only public terms from the deck. 6. The tool resolves a term's owner and offers an unmet prerequisite first. 7. Omit context to follow the ordered learning path. Dismissed prerequisites do not block it. 8. Set `context.asked` only when the operator asks for an explanation. 9. Omit `progress`. Omitted progress means none yet, and the local tools read their own log. 10. Follow the returned depth. Present one relevant concept at a time. - **walkthrough**: Show the `plain` line first, then the claim. Show the card's `snippet` as a TypeScript fence and its `diagram` as a text fence. Link the page. - **paragraph**: Give the source summary as a short paragraph. Link the page for more detail. - **line**: Give one source-grounded sentence. - **none**: Say nothing. The tool omits concepts that need no presentation. Use the card's `snippet` and `diagram` exactly as served. The content build compiles every snippet against the pinned versions. Never write your own snippet or diagram for a card. A card without a snippet uses its page's pinned excerpt and immutable revision. Never substitute current source for the pin. State when that card has no suitable excerpt. Call local `learnRecord` only after presenting. Use a `shown` event with the concept id, actual depth, current timestamp, and version 1. Selection alone does not record a presentation. ## Record what happened - Record `used` when the operator applies the idea in their own code. - Agent-written code alone does not establish operator use. - Record `got-it` or `skipped` only from the operator's words. - Do not infer understanding from silence, elapsed time, or reading a page. - Never send the observed code or the operator's words with the event. - If recording fails, say that progress was not confirmed. Preserve the log and follow the typed error. ## Keep it quiet - Never quiz unless the operator opts in to questions. - With questions enabled, ask at most one short check-in per long session. - Use a due concept for that check-in. Accept skipping it immediately. - Do not ask permission again after the operator has enabled the mode. - Stop check-ins when the operator disables questions. - Do not introduce unrelated concepts to fill a learning quota. ## Without MCP Read the public deck through either surface: ```sh curl -fsS https://ratstack.sh/_content/learn.json curl -fsS https://ratstack.sh/api/learnDeck \
From joelhooks/rat-stack, MIT.
More from joelhooks/rat-stack
- 0.684score
rat-stack-mode
joelhooks
Route non-trivial rat-stack code, data, design, investigation, and documentation tasks to every matching playbook and principle.
SkillAFreshness: A★ 129Claude Code +9 - 0.682score
uncomplect
joelhooks
Find responsibilities that a rat-stack design combines, separate them into capabilities, cartridges, machines, features, and clients, and enforce that…
SkillAFreshness: A★ 129Claude Code +9 - 0.682score
profile-a-worker
joelhooks
Capture a CPU or heap profile of a deployed Cloudflare Worker or Durable Object and read it with pprof.
SkillAFreshness: A★ 129Claude Code +9 - 0.682score
query-design
joelhooks
Design or review SQL reads, writes, scans, backfills, and slow database paths.
SkillAFreshness: A★ 129Claude Code +9 - 0.682score
investigate-a-failure
joelhooks
Find the cause of a crash, wrong output, flaky test, or slow run with evidence, fix it at its source, and leave a notebook a person can learn from.
SkillAFreshness: A★ 129Claude Code +9 - 0.681score
ship
joelhooks
Learn how to ship a change through merge, CI, release, stage deployment, rollout, verification, rollback and flags.
SkillAFreshness: A★ 129Claude Code +9 - 0.679score
find-peers
joelhooks
Refresh public peers, exact stack versions, and usefulness tiers every week or two and after each shared dependency update.
SkillAFreshness: A★ 129Claude Code +9 - 0.679score
gardener
joelhooks
Keep rat-stack current and clean.
SkillAFreshness: A★ 129Claude Code +9 - 0.679score
add-a-store
joelhooks
Add persistence through a service named for an application job, with validation, vendor Layers, migrations, bounded reads, and shared backend tests.
SkillAFreshness: A★ 129Claude Code +9 - 0.676score
add-a-capability
joelhooks
Learn how one contract and its handler become a command, HTTP route, MCP tool, browser RPC, and sandbox call.
SkillAFreshness: A★ 129Claude Code +9 - 0.676score
add-a-lifecycle-machine
joelhooks
Learn how XState owns a lifecycle while Effect owns its work, errors, and services.
SkillAFreshness: A★ 129Claude Code +9 - 0.676score
learn-alchemy
joelhooks
Learn how Alchemy 2 turns an Effect program into a planned Cloudflare deployment.
SkillAFreshness: A★ 129Claude Code +9
Signals
- Stars
- 129
- Forks
- 8
- Open issues
- 2
- Last commit (this folder)
- Oct 24, 2026 (4 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/joelhooks/rat-stack
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.337score
learn
ChindanaiNaKub
Present Effect, Alchemy, XState, and application-design concepts during real work when the operator enables learn mode.
SkillAFreshness: AClaude Code +9 - 0.324score
learn
joelhooks
Present Effect, Alchemy, XState, and application-design concepts during real work when the operator enables learn mode.
SkillAFreshness: A★ 6Claude Code +9
More from joelhooks
- 0.684score
rat-stack-mode
joelhooks
Route non-trivial rat-stack code, data, design, investigation, and documentation tasks to every matching playbook and principle.
SkillAFreshness: A★ 129Claude Code +9 - 0.682score
uncomplect
joelhooks
Find responsibilities that a rat-stack design combines, separate them into capabilities, cartridges, machines, features, and clients, and enforce that…
SkillAFreshness: A★ 129Claude Code +9 - 0.682score
investigate-a-failure
joelhooks
Find the cause of a crash, wrong output, flaky test, or slow run with evidence, fix it at its source, and leave a notebook a person can learn from.
SkillAFreshness: A★ 129Claude Code +9 - 0.682score
query-design
joelhooks
Design or review SQL reads, writes, scans, backfills, and slow database paths.
SkillAFreshness: A★ 129Claude Code +9 - 0.682score
profile-a-worker
joelhooks
Capture a CPU or heap profile of a deployed Cloudflare Worker or Durable Object and read it with pprof.
SkillAFreshness: A★ 129Claude Code +9 - 0.681score
ship
joelhooks
Learn how to ship a change through merge, CI, release, stage deployment, rollout, verification, rollback and flags.
SkillAFreshness: A★ 129Claude Code +9
Cite this page
learn skill. Agent Mart. https://agentmart.dev/skills/joelhooks-learn-4590c8 (last updated 2026-10-24)