skills/grok-codebase/SKILL.md
Build lasting understanding of an unfamiliar codebase via a four-pillar model (Building Blocks, Entry Points, Infrastructure, Egress) plus an adaptive Socratic quiz, orchestrating code-review-graph, Serena, tilth, and Context7. Use when the user says "help me understand this codebase", "grok this repo", "onboard me", "learn this project", "memorize this codebase", "study this code", "walk me through this code", or "quiz me on this repo". Do NOT use for single-file scripts, repos under 500 LOC, or editing tasks — understanding only.
npx skillsauth add paulnsorensen/dotfiles grok-codebaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are about to help the user grok this codebase: not just read it, but
internalize it well enough to explain it on a whiteboard in five minutes and
answer "what breaks if I change X" without re-checking. You will work the
four-pillar model in order, persist artifacts under .cheese/grok/<repo>/,
and finish with an adaptive Socratic quiz.
Focus area (optional): $ARGUMENTS
mcp__code-review-graph__get_minimal_context_tool FIRST on any new repo
(~100 tokens). Then prefer mcp__serena__get_symbols_overview,
mcp__tilth__tilth_read (outline mode), and mcp__tilth__tilth_grok over
reading whole files. Whole-file Read is a last resort for non-code files
(README, manifests, CI YAML, env templates) — the user's CLAUDE.md
explicitly routes code search through tilth.Write an artifact to
.cheese/grok/<repo-name>/<pillar-slug>.md. Pillar slugs:
01-building-blocks, 02-entry-points, 03-infrastructure, 04-egress,
05-trace.md, summary.md, quiz-results.md. The user can review
artifacts later and re-runs read them first.GUIDE.md §6 (Stack-specific cheatsheets) when you hit a
stack you don't recognize.QUIZ.md — don't improvise the question selection.TodoWrite to maintain a checklist of the seven
phases so the user can see where you are.Goal: enough context to confirm scope with the user.
Run in parallel where possible:
git log --oneline -10 && git status — recent activity, branch state.mcp__code-review-graph__get_minimal_context_tool(task="initial onboarding")
if the graph exists. If not, ask the user to run code-review-graph build
then re-invoke. Don't proceed without the graph for repos >500 files —
you'll burn tokens.Read of README.md, the primary manifest (package.json /
pyproject.toml / go.mod / Cargo.toml / pom.xml), and any
CLAUDE.md / AGENTS.md at the repo root.tokei for a rough LOC-per-language breakdown.Output a 5-bullet "first impressions" summary and ask the user:
"Scope looks like X. Proceed with full four-pillar grok, or focus on
<area>?" Wait for confirmation. If they already passed a focus area in
$ARGUMENTS, confirm that area covers it.
Question to answer: "If I had to draw this system on a whiteboard in 5 minutes, which boxes would I draw?"
Workflow:
mcp__code-review-graph__get_architecture_overview_tool and
mcp__code-review-graph__list_communities_tool — Leiden-clustered modules
are the closest thing to an automated C4 Component diagram.mcp__serena__get_symbols_overview(relative_path=<dir>).package.json workspaces, exports, and
tsconfig.json paths/baseUrl. These define the intended module
boundaries — compare them against the graph's de facto communities. When
they diverge, that's a smell worth surfacing.User, Order, Tenant, …) and call
mcp__tilth__tilth_grok(target=<symbol>) on each — that returns
def + body + sig + callees + callers + siblings + tests in one shot.mcp__code-review-graph__find_large_functions_tool and
mcp__code-review-graph__get_hub_nodes_tool. Flag any function >150 LOC
or any module with >25 inbound edges.Write .cheese/grok/<repo>/01-building-blocks.md with a table:
Block | Path | Public API | Key types | God-nodes?. See GUIDE.md §2 for
the full pillar-1 checklist if you get stuck.
Question to answer: "Every way control flow can begin." If no entry point leads to a piece of code, that code is dead.
Workflow (TS/JS-first; other stacks in GUIDE.md §6):
package.json → main, module, bin, scripts.start, scripts.dev.
Each is an entry point.mcp__tilth__tilth_files(patterns=["**/app/**/route.ts", "**/app/**/page.tsx", "**/pages/api/**"]).mcp__tilth__tilth_search(query="app.get,app.post,router.get,router.post", kind="content").mcp__tilth__tilth_search(query="@Controller,@Get,@Post,@Put,@Delete,@Patch", kind="content").mcp__tilth__tilth_search(query="fastify.get,fastify.post,fastify.register", kind="content").process.argv usages, commander / yargs / oclif
registrations.node-cron, BullMQ Worker, AWS Lambda handlers
(exports.handler), Inngest functions, Cloudflare Workers
addEventListener('fetch'.socket.io, tRPC routers, gRPC services.mcp__code-review-graph__get_affected_flows_tool(target=<entry>) to trace
the downstream flow.Write .cheese/grok/<repo>/02-entry-points.md with one line per entry
point: <method> <path> → <handler file:line>. For each, also note SLA?
and who calls this? — if either can't be answered, that's a doc gap.
Questions to answer: "What does it take to run this locally?" and "What does it take to ship a change to production?" If you can answer both in <2 minutes after the grok, the grok was good.
Workflow:
engines.node, .nvmrc, Dockerfile FROM.tsc, swc, esbuild, vite, webpack,
turbopack, rollup, nx, turbo. package.json scripts.build is the
source of truth.vitest.config.*, jest.config.*, playwright.config.*,
.spec.ts / .test.ts count..eslintrc*, eslint.config.*, biome.json,
.prettierrc*.Read .github/workflows/*.yml, .gitlab-ci.yml,
.circleci/config.yml.Dockerfile, docker-compose.yml, k8s/, helm/,
terraform/, vercel.json, netlify.toml, serverless.yml,
sst.config.*.mcp__tilth__tilth_files(patterns=["**/.env*"]) and
mcp__tilth__tilth_search(query="process.env", kind="content"). List
every env var referenced — missing-on-boot validation is a common bug.mcp__code-review-graph__query_graph_tool(action="importers_of", target=<pkg>). For the top 3, use mcp__context7__query-docs for
current docs (don't trust your training data for framework specifics).Write .cheese/grok/<repo>/03-infrastructure.md. Also explicitly scan for
arc42 §8 crosscutting concerns: logging, error handling, auth, i18n, feature
flags, observability. Missing these in the grok = surprised later.
Question to answer: "Where does this system reach out or mutate the world?" Egress is the Feathers seam surface — and most production incidents originate here.
Workflow:
mcp__tilth__tilth_search(query="fetch,axios,got,ky,node-fetch", kind="content")..create/.update/.delete/.upsert, Drizzle
db.insert/update/delete, TypeORM repository.save/remove, Knex
.insert/.update/.del, raw INSERT/UPDATE/DELETE.bullmq, kafkajs, amqplib,
@aws-sdk/client-sqs, nats.fs.writeFile, fs.appendFile, @aws-sdk/client-s3
PutObject, @google-cloud/storage.package.json dependencies for stripe,
@sendgrid/mail, resend, @sentry/*, posthog-js, mixpanel,
twilio, auth0, @clerk/*.webhook / signature patterns.Write .cheese/grok/<repo>/04-egress.md as a table:
Egress | Caller | Mechanism (lib) | Seam (where to fake) | Has characterization test?.
Many egresses + no seams = refactoring liability; flag it.
Pick the entry point with the largest get_affected_flows_tool output (or
whatever the user's focus area points at). Walk it end-to-end:
entry → middleware → handler → service → repository → DB → response
Name every file:line. Use mcp__tilth__tilth_grok per hop. This single
exercise tests all four pillars at once and is the strongest grok artifact.
Write .cheese/grok/<repo>/05-trace.md with the path and a one-line
gloss per hop.
Then Write .cheese/grok/<repo>/summary.md containing:
Only start if the user confirms. Ask: "Pillars mapped. Want me to quiz you to lock it in?"
If yes, load QUIZ.md and follow its protocol. Maintain an internal
confidence[pillar] map and update it after every answer per the rules in
QUIZ.md §Confidence rules. Escalate Bloom level on strength, descend on
hedging or partial recall. Mark a pillar "locked" after three consecutive
strong answers. End when all four pillars are locked OR the user says "stop"
OR ~30 minutes have elapsed (then suggest a break).
On end, Write .cheese/grok/<repo>/quiz-results.md — strong areas, weak
areas, suggested next-session focus.
After each pillar phase, post a Markdown section in chat with:
.cheese/grok/<repo>/<file>.mdFor the quiz, post each question as a numbered prompt; on each answer, post the detected confidence change and the next question — don't hide the adaptive state from the user.
The skill is designed to re-run weekly. On re-invocation:
.cheese/grok/<repo>/ artifacts; read them first.mcp__code-review-graph__detect_changes_tool and
mcp__tilth__tilth_diff to find what's changed since the last grok.If the user passed a focus area in $ARGUMENTS (e.g.
/grok-codebase egress), skip pillars 1–3, read their prior summaries, and
jump straight to that pillar + its quiz section.
For methodology depth (why four pillars, why this order, stack-specific
cheatsheets, glossary), see GUIDE.md. For the question banks and adaptive
protocol, see QUIZ.md.
tools
Reconstruct what a past coding-agent session was doing so you can resume it — goal, files touched, last verified state, and the next step — by querying the session logs. Use when the user says "what was I working on", "recover that session", "reconstruct where I left off", "resume my last session", "what did that session change", "rebuild context from logs", or invokes /work-recovery. Report-only — it never scores or judges. Do NOT use for usage scoring (that is /skill-improver, /tool-efficiency, /prompt-analytics) or one-off interactive log queries (that is /session-analytics).
development
Curate this repo's hallouminate wiki (.hallouminate/wiki/, the repo:dotfiles:wiki corpus) — add or update architecture pages, per-harness docs, and gotchas. Use when the user says "update the wiki", "document this in the wiki", "refresh the harness docs", "add a wiki page", "curate the wiki", "the wiki is stale", or invokes /wiki-curator. Also use at session end to write back a non-obvious decision or gotcha worth preserving. Grounds the existing wiki first, follows one-topic-per-file conventions, verifies every external doc URL before writing, and reindexes. Do NOT use for general code search (that is cheez-search) or for editing AGENTS.md command reference.
tools
Audit how a tool, command, or MCP server is actually used across coding-agent sessions and produce calibrated recommendations — tool-vs-task fit, error forensics, fix recommendations, permission friction, MCP health, and token economics. Use when the user says "tool efficiency", "am I using X efficiently", "audit tool usage", "why does X keep failing", "how do I fix this error", "what should I change", "permission friction", "is this MCP worth it", "tool error rate", "fix recommendations", or invokes /tool-efficiency. Do NOT use for auditing a skill or agent definition (that is /skill-improver) or for one-off interactive log queries (that is /session-analytics).
tools
Analyze how prompts and skill routing behave across coding-agent sessions and produce calibrated recommendations — prompt-pattern analysis, routing accuracy, and knowledge gaps. Use when the user says "analyze my prompts", "prompt patterns", "is routing working", "which skill should have fired", "knowledge gaps", "what do I keep asking", or invokes /prompt-analytics. Do NOT use for auditing a single skill/agent definition (that is /skill-improver), tool/MCP efficiency (that is /tool-efficiency), or one-off interactive log queries (that is /session-analytics).