From hoangsa
Use when the user asks how code works, wants to understand architecture, trace execution flows, or explore unfamiliar parts of the codebase. Examples: "how does X work?", "what calls this function?", "show me the auth flow", "where is the DB logic?".
How this skill is triggered — by the user, by Claude, or both
Slash command
/hoangsa:memory-exploringThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Understand unfamiliar code without reading every file. The hybrid
Understand unfamiliar code without reading every file. The hybrid
retriever (memory_recall) finds entry points by intent; the graph
(memory_symbol_context) walks relationships. For whole-shape questions
the graph answers directly — reach for these INSTEAD of grepping:
memory_graph_communities() — clusters of tightly-coupled symbols (the architecture map).memory_graph_processes() — flows from entry points (::main) down the call graph.memory_graph_paths({from, to}) — shortest dependency path.memory_graph_query({start}) — traverse callers/callees/refs/imports to any depth.memory_taint_paths({sources, sinks}) — source→sink dataflow (index with --pdg).memory_event_trace({topic}) — pub/sub flow the call graph can't connect (decoupled by a broker).A single one of these usually replaces a dozen Greps.
1. resources/read hoangsa-memory://memory/MEMORY.md → durable facts first
2. memory_recall({query: "<concept>"}) → candidate chunks
3. memory_symbol_context({fqn}) → 360° around each
(architecture-wide? → memory_graph_communities / _processes instead of step 2)
4. Walk callers to find entry points → root of flow
(or memory_graph_query/_paths — one call vs many manual hops)
5. Cite chunk ids in the explanation
Before recalling, skim MEMORY.md. Facts there encode architectural
decisions and conventions you'd otherwise miss. If a fact names the
module you're about to explore, it saves a recall.
resources/read { uri: "hoangsa-memory://memory/MEMORY.md" }
resources/read { uri: "hoangsa-memory://memory/LESSONS.md" }
(Or equivalently: memory_show.)
Use the user's own vocabulary. For "how does auth work", try:
memory_recall { query: "authentication login session token" }
Prefer nouns over verbs. The hybrid retriever rewards topical density. If the first query misses, widen with synonyms or narrow with concrete symbols you see in the README.
Pick the top-ranked chunk's FQN. Then:
memory_symbol_context { fqn: "auth::verify_token", limit: 16 }
Sections to read:
callers — who invokes this → likely entry points.callees — what it delegates to → next layer.siblings — other symbols in the same file → adjacent concerns.references — non-call uses (type refs, trait bounds).extends / extended_by — inheritance / impl relationships.The entry point of a flow usually has few callers (it's a request
handler, a CLI command, a main loop). Repeatedly follow callers
until the list collapses to 0–1. That symbol is the flow's root.
Once you have root + N inner symbols, the story writes itself:
Auth starts at
router::handle_login(1 caller:main::serve). It callsauth::verify_credentials→db::users::find_by_email→password::verify_hash. On success,auth::issue_tokensigns a JWT viacrypto::sign. All five symbols live undercrates/auth/.
Every claim about behaviour should cite the chunk id from step 2 or a FQN+line from step 3. Ungrounded claims about "what the code does" are the #1 source of drift in exploratory sessions.
authentication login session. Strip
function words.If memory_recall gives (no matches — did you run memory_index?),
the graph is empty. Run hoangsa-memory index . (CLI) or memory_index (MCP)
and retry. If it still returns nothing, the concept genuinely isn't
indexed — ask the user for a file path to anchor from, or fall back to
Grep for a literal keyword.
npx claudepluginhub unknown-studio-dev/hoangsa --plugin hoangsaExplores unknown codebases by scanning repos, querying execution flows, and tracing symbols with GitNexus.
Uses OntoIndex to explore codebases, understand architecture, trace execution flows, and navigate unfamiliar projects. Query symbols, find callers/callees, and read process traces.
Investigates code structure, usage, architecture, and risks before changes. Routes to explain, trace, pre-generation, or exemplar strategies based on user intent.