CommunityResearch & Data Analysisgithub.com

duongphuhiep/dakubo-skills

Traces the full call chain from a given symbol or code location up to all entry points that can reach it (HTTP controllers, main functions, page components, routes, etc.). Works for any language indexed by CodeGraph. Use for blast-radius analysis before modifying a function, method, or class.

What is dakubo-skills?

dakubo-skills is a Claude Code agent skill that traces the full call chain from a given symbol or code location up to all entry points that can reach it (HTTP controllers, main functions, page components, routes, etc.). Works for any language indexed by CodeGraph. Use for blast-radius analysis before modifying a function, method, or class.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/duongphuhiep/dakubo-skills/tree/HEAD/package/skills/dakubo-find-call-chain

Installed? Explore more Research & Data Analysis skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

This skill needs Bun. The script uses bun:sqlite.

Trace the call chain from the given code location up to all entry points that can reach it.

Languages supported: any language indexed by CodeGraph (C#, Java, Kotlin, Go, TypeScript, JavaScript, Rust, C, C++, Vue, JSX, TSX, Terraform, Helm YAML, …)

Input: A symbol name, file path, or file:line reference. Examples:

  • FindToolNameCollisions
  • ToolsMappingExtensions.cs:145
  • src/services/auth.ts:89
  • CheckCertificate

Requirement: CodeGraph must be indexed in this project (.codegraph/ directory must exist). If it is missing, tell the user to run codegraph init first.


Steps

1. Run the script

The script is scripts/find-call-chain.ts in the base directory of this skill. Run it from the project folder, because it finds .codegraph/ from the current folder:

bun <skill-base-directory>/scripts/find-call-chain.ts "<input>"

Show the full output to the user verbatim.

2. Multiple symbol matches

If the script prints "Multiple symbols matched", list the candidates shown and ask the user to re-run with a file:line reference for the one they want.

3. No symbol found

If the script exits with "No symbol found":

  • Try alternative spellings or a file:line reference
  • Verify CodeGraph is up to date: codegraph index

Terminal node detection (built into the script — no LLM judgment)

The script stops walking a branch when:

ConditionExamples
kind = route (CodeGraph native)Any framework's route node
Language name pattern match*Controller (C#/Java), *Activity (Kotlin), main (Go/Rust/C), *Page/*Route (TS/JS)
No callers foundLeaf node in the call graph
Depth cap (6 hops)Marked ⚠ depth cap in the tree
Cycle detectedMarked ⟳ cycle in the tree

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

duongphuhiep/dakubo-skills

Use when the user wants to respond to a code review remark by adding a clarifying comment to the source code — so the reviewer understands the reasoning and won't raise the same remark again. Triggers on "answer remark #N", "add comment to address reviewer concern", "document why we did X", or any request to resolve a review finding through in-code explanation rather than a code change.

duongphuhiep/dakubo-skills

Use when the user wants to reply to a code review remark on a GitHub pull request and resolve its thread. Triggers on "answer remark #N in the PR", "reply to the reviewer", or "resolve this review comment".

duongphuhiep/dakubo-skills

Use when the user wants to see unresolved PR comments, review remarks, or outstanding feedback on a pull request.

duongphuhiep/dakubo-skills

Consolidates multiple fragmented OpenSpec capability folders under openspec/specs/ into a single main feature spec, through a staged/approved workflow. Use this whenever the user says openspec/specs/ is cluttered, has too many similar or overlapping capability folders, asks to merge/consolidate/combine specs, wants to clean up specs split across several separate change archives (e.g. specs/user-show/, specs/user-detail/ that should really be one specs/user-management/), or asks to check/apply a pending merged spec under openspec/specs/.merged-specs/. Do NOT use this for a normal single /opsx:archive of one change — only for merging several already-archived, already-existing spec folders together.

Related Skills