A small set of custom Claude Code agent skills built on a lean orchestration philosophy: the agent acts as a conductor that keeps its own context small and delegates expensive work (broad reading, web research, long-form authoring) to fresh-context subagents. The goal is to stay well under ~100k tokens of working context while still doing large jobs, by exchanging briefs, pointers, and file paths instead of raw bulk.
Four of the skills wrap a Notion "hub" so work can be grounded in, and persisted
back to, a shared workspace. They form a read -> execute -> write loop around
the lean engine.
The engine. Turns the agent into a conductor rather than a laborer: it decomposes a task, writes sharp briefs, dispatches subagents in parallel, forces distilled returns (structured results, tight summaries, or the disk-pointer pattern where bulk is written to a file and only the path comes back), and reviews/verifies before accepting. Use it for any task large enough that doing it inline would bloat context, or whenever you want delegation discipline.
Grounds work in a Notion Project Hub. It resolves a project, reads its linked
Documents and Bugs via subagents (so page bodies never enter your context),
surfaces what it found plus a short list of candidate tasks, and asks which task
to complete. Only once you choose does it fully scope the task and hand off to
lean to execute. Use it for "work on <project>", "pull <project> from the
hub", or any task tied to a project.
The write mirror of lean-read-project. It figures out what should be persisted
(a new Document, a Bug status change, a Project update), proposes a concrete
write plan, confirms it with you (writes are outward-facing), then delegates the
authoring and page creation to subagents that return only page URLs. Use it for
"write this up to the hub", "save this to Notion", or "update the bug/project
status".
Grounds work in a Notion Skills Hub. It resolves a skill entry, reads its
body via a subagent, surfaces the skill plus candidate tasks (recreate locally as
a SKILL.md, extend it, rebuild from its recipe, reconcile with on-disk), and
asks which to do before handing off to lean. Use it for "read the skills hub",
"pull a skill from notion", "rebuild a skill", or "what does <skill> do".
The write mirror of lean-read-skills. It decides whether to create a new Skill
entry or update an existing one, proposes and confirms a write plan, then
delegates authoring of the standard eight-section entry to subagents that return
only page URLs. Use it for "save this skill to notion", "document this skill in
the skills hub", "update the skill entry", or "deprecate the skill".
A standalone interrogation skill (independent of the lean family). It
interviews you relentlessly about a plan until you reach shared understanding,
walking down each branch of the design tree and resolving dependencies between
decisions one at a time. It asks one question at a time and offers a recommended
answer for each, and prefers exploring the codebase over asking when a question
can be answered from the code. Use it for "grill me", "interview me about this
plan", "interrogate the design", or "poke holes in my plan".
Each skill is a single SKILL.md in its own folder. Copy the folders you want
into your Claude Code skills directory:
cp -r lean lean-read-project lean-write-project lean-read-skills lean-write-skills grill-me ~/.claude/skills/lean is generic and works as-is. The four Notion-backed hub skills
(lean-read-project, lean-write-project, lean-read-skills,
lean-write-skills) ship with placeholder IDs (e.g. <PROJECT_HUB_PAGE_ID>,
<SKILLS_HUB_PAGE_ID>). Before using them, replace those placeholders with your
own workspace's Project Hub / Skills Hub page and database IDs. Each hub skill
also includes a notion-search fallback that re-derives the IDs at runtime if a
placeholder is left unresolved, so they will still bootstrap from a hub name.