update-code-index

Scan codebase exports and generate CODE_INDEX.md organized by capability. Check this index before writing new functions to prevent duplication (no more formatDate2 when formatDate exists).

SKILL.md

GitHub

Update Code Index Skill

Scan source files for all exported functions, classes, hooks, and components. Generate CODE_INDEX.md as a "check before write" safety net.

⚠️ Before writing any new function, check CODE_INDEX.md for existing similar ones. Found a match? Use or extend it instead of creating a duplicate.

Steps

1. Identify Source Directories

ls -d src/ lib/ app/ core/ 2>/dev/null || true

2. Scan for Exports

TypeScript / JavaScript:

grep -rn 'export function\|export const\|export class\|export default' \
  . --include='*.ts' --include='*.tsx' --include='*.js' --include='*.jsx' \
  --exclude-dir=node_modules --exclude-dir=dist --exclude-dir=build \
  --exclude-dir='.next' --exclude-dir=coverage 2>/dev/null | head -200

Python:

grep -rn '^def \|^async def \|^class ' \
  . --include='*.py' \
  --exclude-dir=__pycache__ --exclude-dir=.venv --exclude-dir=venv \
  2>/dev/null | head -200

3. Categorize by Capability

Category Match on name or description
Date / Time date, time, format, parse, duration, timestamp
Validation validate, is*, check, verify, sanitize
API clients fetch, get, post, put, delete, request, client
Auth auth, login, logout, session, token, permission
Database db, query, find, create, update, delete, repo
React Hooks use* exports in .tsx files
Components PascalCase exports in .tsx / .jsx
Utilities helper, util, common (catch-all)

4. Write CODE_INDEX.md

# Code Index
*Auto-generated by /update-code-index — [TIMESTAMP]*
> Check this before writing new code. Find a match? Use or extend it instead.

## [Category]
- `functionName()` — src/path/to/file.ts:LINE — what it does in one line

5. Report Summary

  • Total exports scanned (by language)
  • ⚠️ Potential duplicates — same-purpose functions with different names in different files
  • Functions/classes missing docstrings (warn, don't block)

Close with: "CODE_INDEX.md updated. I'll check it before writing any new code."