learn-habits
Rebuild a person's Grilling profile from the Habits in their past grilling sessions.
Skill by michielvandermeer
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/michielvandermeer-learn-habits
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
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-habits
What's inside
- Skill name
learn-habits- Description
- Rebuild a person's Grilling profile from the Habits in their past grilling sessions.
- License
- MIT
- Instructions
- 54 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
A **Grilling profile** holds one person's **Habits** in this repo, at `.agents/refs/profiles/<name>.md`, so grilling can predict which option each person would pick. It learns only from that person's grilling sessions in this repo; the same person may choose differently elsewhere. See [ADR-0063](../../docs/adr/0063-grilling-profiles-live-in-the-repo-per-person.md). ## Whose profile The person is whoever runs this session: `git config user.email`. When that is empty, stop and say that no profile can be found or written without it. One person may commit under a different email on each machine, so a profile's `Email:` line lists every one of them. Their profile is the file in `.agents/refs/profiles/` whose `Email:` line lists their email. None lists it → their profile is the file named after `git config user.name` in kebab case (`ana-silva.md`): add the email to its `Email:` line, or create it when it does not exist. Write only this person's profile; a teammate's file is theirs to write from their own sessions. ## Rebuild Typed by the user, never loaded by a grilling skill. Rebuild the profile from scratch over a window: the last 100 grilling sessions in this repo, or the window the argument names. A rebuild replaces the whole file except its `Email:` line. 1. **Find the sessions.** Read the session logs of every host on this machine, not only this one. Look up where each keeps them; today Claude Code keeps `~/.claude/projects/<cwd with / as ->/<session>.jsonl` (skip `/subagents/`), and Grok keeps `~/.grok/sessions/<url-encoded cwd>/<session>/`, where only a session whose `prompt_context.json` says `"audience": "primary"` is top-level. A worktree's sessions belong to its repo. A grilling session is one where an assistant message holds a `## Round N` heading and an option marked `← recommended`, whichever skill ran it; that text inside a file the session merely read is not a Round. 2. **Read them in batches.** Dispatch `skills:explorer` sub-agents, about 15 sessions each, in parallel. Each returns one record per answered Question: session date, the kind of question in a few plain words, the options, which one was recommended, what the person picked or wrote, any `*Your habit:*` line and the Habit it named, and the person's stated reason, paraphrased. Carry their records, never the logs. 3. **Build** the profile from the records under [Habit rules](#habit-rules). ## Habit rules An **override** is an answer other than the recommended option, the person's own words included. An answer that corrects a fact about the domain, or what the person meant, is a missing fact rather than a Habit — leave it to the glossary and the ADRs. - **A pattern** is overrides that go the same way on the same kind of question. State it as a rule that names that kind of question: "include every related area when asked where a change should stop", never a bare direction such as "prefers wider scope" — two Habits going opposite ways on different kinds of question are both true. - **A Habit** is a pattern seen in at least 3 sessions. A pattern seen in 1 or 2 stays under `## Patterns` until a third session shows it. - **Its record** is every question it applied to, last 10 kept, oldest first: `✓` when the person picked what the Habit points to, `✗` when they went the other way. A question where a `*Your habit:*` line moved the recommendation counts, accepted or not. - **Drop** a Habit when its last 10 hold more `✗` than `✓`. - Merge Habits that overlap. Every grilling session reads every profile, so keep the file short. Paraphrase; quote nothing. Before writing, read [`technical-writing/SKILL.md`](../technical-writing/SKILL.md) and follow it — `/technical-writing` does not load as a skill. Teammates read the profile too. ## Profile shape ```md # Grilling profile: Ana Silva Email: ana@example.com, ana.silva@client.example Sessions: 27, from 2026-08-28 to 2026-10-09 Picked the recommendation: 131 of 180 answers (73%) ## Habits - **Include every related area when asked where a change should stop.** 9 sessions, last 2026-10-09. Last 10: ✓✓✗✓✓✓✓✓✗✓ - **Leave out a safeguard for a case that has no users or data yet.** 6 sessions, last 2026-10-07. Last 10: ✓✓✓✓✓✓ ## Patterns - Name a new setting the way the nearest existing one is named. 2 sessions, last 2026-10-02. ``` ## Commit Stage the profile by name and commit it on its own — `learn-habits: <first name>'s Grilling profile`, naming the window it rebuilt from. **Done** when that commit is made.
From michielvandermeer/skills, MIT.
More from michielvandermeer/skills
- 0.628score
hillclimb
michielvandermeer
Hillclimb one measured number — test-suite time, build time, memory, bundle size — keeping only the changes that measurably help.
SkillAFreshness: A★ 9Claude Code +9 - 0.628score
technical-writing
michielvandermeer
The house standard for every sentence a person reads.
SkillAFreshness: A★ 9Claude Code +9 - 0.628score
implement
michielvandermeer
Implement a spec by slicing it into steps, then a loop of implement, review, and verify, each in its own sub-agent.
SkillAFreshness: A★ 9Claude Code +9 - 0.628score
verify
michielvandermeer
Drive this checkout's skills the way a user does — load the working tree as the plugin in a headless Claude Code session inside a scratch repo, type the slash…
SkillAFreshness: A★ 9Claude Code +9 - 0.627score
pr
michielvandermeer
Pull request descriptions.
SkillAFreshness: A★ 9Claude Code +9 - 0.625score
doctor
michielvandermeer
Moves documents into this project's canonical layout, closes local Issues the code already implements, and brings every ADR to state the decision in force.
SkillAFreshness: A★ 9Claude Code +9 - 0.625score
explain
michielvandermeer
Explain anything as a written walkthrough, a diagram in the chat, an HTML page, or a narrated video, picking the format that fits.
SkillAFreshness: A★ 9Claude Code +9 - 0.625score
retro
michielvandermeer
Look at a finished session, apply high-priority changes this repository owns, file the structural ones as Issues, and summarise the rest.
SkillAFreshness: A★ 9Claude Code +9 - 0.625score
setup
michielvandermeer
Set up or update the repo's Tracker ref, where its Issues live; its Verify skill, which drives the app the way a user does; or its Models ref, the model and…
SkillAFreshness: A★ 9Claude Code +9 - 0.622score
triage
michielvandermeer
Sort incoming reports into Specs and parked Issues — one Issue per distinct problem.
SkillAFreshness: A★ 9Claude Code +9 - 0.622score
brainstorm
michielvandermeer
Explore a vague problem as very different Directions, side by side, and file the ones you keep as Issues.
SkillAFreshness: A★ 9Claude Code +9 - 0.620score
grill-with-docs
michielvandermeer
A relentless round-by-round interview to sharpen a plan or design, which also creates docs (ADRs and glossary) as we go.
SkillAFreshness: A★ 9Claude Code +9
Signals
- Stars
- 9
- Forks
- 0
- Open issues
- 8
- Last commit (this folder)
- Oct 16, 2026 (13 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/michielvandermeer/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from michielvandermeer
- 0.628score
hillclimb
michielvandermeer
Hillclimb one measured number — test-suite time, build time, memory, bundle size — keeping only the changes that measurably help.
SkillAFreshness: A★ 9Claude Code +9 - 0.628score
implement
michielvandermeer
Implement a spec by slicing it into steps, then a loop of implement, review, and verify, each in its own sub-agent.
SkillAFreshness: A★ 9Claude Code +9 - 0.628score
verify
michielvandermeer
Drive this checkout's skills the way a user does — load the working tree as the plugin in a headless Claude Code session inside a scratch repo, type the slash…
SkillAFreshness: A★ 9Claude Code +9 - 0.628score
technical-writing
michielvandermeer
The house standard for every sentence a person reads.
SkillAFreshness: A★ 9Claude Code +9 - 0.627score
pr
michielvandermeer
Pull request descriptions.
SkillAFreshness: A★ 9Claude Code +9 - 0.625score
doctor
michielvandermeer
Moves documents into this project's canonical layout, closes local Issues the code already implements, and brings every ADR to state the decision in force.
SkillAFreshness: A★ 9Claude Code +9
Cite this page
learn-habits skill. Agent Mart. https://agentmart.dev/skills/michielvandermeer-learn-habits (last updated 2026-10-24)