Updates docs/technical/CODEMAP.md by scanning the current codebase structure. Run after a significant feature merge, refactor, or when CODEMAP feels stale.
Scanned 5/27/2026
Install via CLI
openskills install tranhieutt/software_development_department---
name: update-codemap
type: workflow
description: "Updates docs/technical/CODEMAP.md by scanning the current codebase structure. Run after a significant feature merge, refactor, or when CODEMAP feels stale."
argument-hint: "[optional: specific module or area to update]"
user-invocable: true
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
effort: 3
when_to_use: "Use after a significant feature merge, refactor, or directory restructure to keep CODEMAP.md accurate, or when the user says the codemap feels stale."
---
Update `docs/technical/CODEMAP.md` to accurately reflect the current state of the codebase.
A stale CODEMAP misleads agents more than having none. Run this skill after any significant feature merge, refactor, or directory restructure.
## Steps
### 1. Determine scope
If `$ARGUMENTS` is provided, update only the section(s) relevant to the named module or area.
If `$ARGUMENTS` is empty, perform a full CODEMAP refresh.
### 2. Read current CODEMAP
Read `docs/technical/CODEMAP.md` to understand what is currently documented.
### 3. Scan the codebase
Run the following to get the current structure:
```bash
# Top-level src/ structure
find src/ -type f -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" -o -name "*.py" -o -name "*.go" 2>/dev/null | sort | head -100
# API routes / handlers
grep -r "router\.\|app\.\|@Get\|@Post\|@Put\|@Delete\|@Patch" src/ --include="*.ts" --include="*.js" --include="*.py" -l 2>/dev/null
# Exported utilities
grep -r "^export function\|^export const\|^def \|^func " src/ --include="*.ts" --include="*.js" --include="*.py" --include="*.go" -l 2>/dev/null | head -30
```
Also read `docs/technical/API.md` and `docs/technical/DATABASE.md` if they exist — they contain authoritative specs for the API and schema sections.
### 4. Update CODEMAP sections
For each section in CODEMAP.md, update the table rows to reflect what actually exists:
- **Application Modules**: One row per top-level module/feature directory in `src/`
- **API Endpoints**: One row per route group (not every individual endpoint — use route prefixes)
- **Shared Utilities**: One row per utility file or helper module
- **Data Models**: One row per major entity/table
- **External Integrations**: One row per third-party service
**Rules:**
- Remove rows for modules/files that no longer exist
- Add rows for new modules/files
- Keep descriptions concise — one sentence max
- If a section has no entries yet, keep the `*(not yet populated)*` placeholder row
- Do not over-document — only include modules that other agents would need to find
### 5. Update Revision History
Append a row to the Revision History table:
```
| [today's date] | @lead-programmer (or @technical-director) | [brief summary: "added X module, removed Y, updated API section"] |
```
### 6. Confirm
Print:
```
CODEMAP updated. [N] modules documented across [M] sections.
Stale entries removed: [list or "none"]
New entries added: [list or "none"]
```
---
## Staleness indicators
CODEMAP should be re-run when:
- A new feature directory is added to `src/`
- An existing module is renamed, moved, or deleted
- New API route groups are added
- New third-party integrations are wired in
- An agent says "I couldn't find X" when X should exist
> **Tip**: After running `/orchestrate` on a large feature, run `/update-codemap` as the final step before closing the feature branch.
No comments yet. Be the first to comment!