Install
$ agentstack add skill-benmarte-codemunch-ctags ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
ctags Indexing Skill
Use Universal ctags to build a symbol index when LSP is not available.
Check ctags version
# Universal ctags has --output-format=json — we need this
ctags --version 2>&1 | grep -i universal
# If not universal ctags, basic ctags won't have JSON output
# Fall back to parsing classic ctags format instead
Run ctags
universal-ctags \
--recurse=yes \
--output-format=json \
--fields=+n+e+K+S+Z \
--extras=+q+r \
--exclude=node_modules \
--exclude=.git \
--exclude=target \
--exclude=__pycache__ \
--exclude=.claude/codemunch \
--exclude=dist \
--exclude=build \
--exclude=vendor \
-f - \
. 2>/dev/null
Field reference
n— line numbere— end lineK— kind (long form: "function", "class", etc.)S— signatureZ— scope (container class/module)
Parse output into codemunch format
ctags JSON output per line:
{"_type":"tag","name":"validateToken","path":"src/auth/tokens.ts","pattern":"/^async function validateToken/","kind":"function","line":142,"end":163,"signature":"(token: string): Promise","scope":"AuthService","scopeKind":"class"}
Filter noise kinds: Skip noise kinds: constant, property, variable, enumerator. These inflate the index 15x without adding useful navigation value. Only keep symbols where kind is one of: function, method, class, interface, type, enum, namespace.
Map each kept symbol to codemunch format:
{
"name": "validateToken",
"kind": "function",
"file": "src/auth/tokens.ts",
"start_line": 142,
"end_line": 163,
"signature": "(token: string): Promise",
"container": "AuthService",
"engine": "ctags"
}
Classic ctags fallback (non-universal)
If only basic/exuberant ctags is available (no JSON support):
ctags -R --fields=+iaS --extra=+q -f .claude/codemunch/tags .
Parse the tab-separated .claude/codemunch/tags file:
# format: name TAB file TAB pattern TAB kind TAB extensions...
validateToken src/auth/tokens.ts /^async function validateToken/ f line:142
End line is not available in classic ctags — use the rg-fallback skill's brace-counting heuristic.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: benmarte
- Source: benmarte/codemunch
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.