understand-codebase
Understand Codebase
Use when navigating code, tracing how functions/classes connect, finding where symbols are defined or called, or answering "how does this work" questions about a codebase.
Tool Selection
| Need | Tool |
|---|---|
| Structural patterns (functions, classes, syntax, call flows) | sg (ast-grep) |
| Text patterns (strings, comments, names) | rg (ripgrep) |
| File discovery by name/extension | fd |
Choose ripgrep (rg) for:
- Text-based searches (strings, comments, variable names)
- Fast, simple pattern matching across many files
- When exact code structure doesn't matter
- Regex searches with context lines
- Searching binary files or non-code text
More from vinta/hal-9000
commit
Use when making any git commit. Always pass a brief description of what changed as the argument.
73update-allowed-tools
Use when creating or editing a skill that uses Bash commands, external tools, or skill invocations and the allowed-tools frontmatter may be incomplete
49sync-skills
(hal-9000) Use when a skill in skills/ has its name or description changed, or is added or removed — syncs README.md, settings.json, and hal_dotfiles.json
46magi
Use when brainstorming ideas, features, or directions for a project where independent perspectives from different model families (Claude/Codex/Gemini) would surface blind spots and spark creative options the user hasn't considered — especially "what cool things can I add", "what should I build next", "give me ideas for X
44second-opinions
Use when wanting independent perspectives from external models (Codex, Gemini) on code, plans, docs, or any task — or when the user asks for a second opinion, codex review, or gemini review
38explore-codebase
Use when navigating unfamiliar code, tracing call flows or symbol definitions, finding files by name or pattern, or locating all references before refactoring
35