| name | populate-project-map |
| description | Creates or updates a human-readable project map for the cuid workspace. Use when onboarding, when workspace layout changes, or when agents need up-to-date layout info. |
Populate Project Map
Creates or updates .claude/project-map.md — a single source of truth for the cuid project layout. All review agents and skills reference this instead of embedding layout info.
Steps
- If
.claude/project-map.md exists, update it. Otherwise, create it.
- Explore the actual workspace to discover paths. Double-check that every listed path exists.
- Identify:
- Source directories by language (C/C++, Python, Go, Rust, CMake)
- Build artifacts and packaging scripts
- Test directories
- Documentation directories
- Configuration files (pre-commit, formatters, build configs)
- Generated files and their generators
- Critical high-churn files
- Write the map in the format below.
- Open for user inspection.
Format
# Cuid Project Map
> Auto-generated by populate-project-map skill. Single source of truth for project layout.
> Referenced by review agents — update when directory structure changes.
## Source Directories
| Language | Directory | Purpose |
|----------|-----------|---------|
| C/C++ | `lib/src/` | Core library implementation |
| C/C++ headers | `lib/include/` | Public API headers |
## Build & Packaging
| Path | Purpose |
|------|---------|
| `CMakeLists.txt` | Root build configuration |
## Tests
| Path | Purpose |
|------|---------|
| `tests/functional/` | more involved tests |
| `tests/unit/` | unit tests |
## Documentation
| Path | Purpose |
|------|---------|
| `docs/` | Sphinx documentation source |
| `docs/doxygen/` | Doxygen config for C API |
| `docs/how-to/` | How-to guides |
## Critical Files (high churn — review carefully)
| File | Risk |
|------|------|
| `cli/amdcuid_tool.cc` | CLI behavior regressions, output format |
| `daemon/amdcuid_daemon.cc` | Daemon stability, API surface |
| `lib/src/cuid.cc` | Core C library — correctness |
| `lib/include/amd_cuid.h` | Public API — cascades everywhere |
| `CMakeLists.txt` | Build system, packaging, install targets |
## API Cascade Path
Changes to the public C API must propagate through all layers:
`lib/include/amd_cuid.h` → `lib/src/cuid.cc` → `cli/amdcuid_tool.cc` → `daemon/amdcuid_daemon.cc` → `docs/`
## When to Regenerate
- New top-level directories added
- Major restructuring (files moved between directories)
- New language bindings added
- Build system changes (new packaging targets, new CMakeLists.txt files)