# Populate Project Map

> 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.

- Skill: `rocm/populate-project-map` (Agent Skill)
- Install (CLI): `npx skillmds@latest add rocm/populate-project-map`
- Raw SKILL.md: https://api.skillmd.com/api/skills/rocm/populate-project-map/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: rocm (https://skillmd.com/u/rocm)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/rocm/populate-project-map

---


# 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

1. If `.claude/project-map.md` exists, update it. Otherwise, create it.
2. Explore the actual workspace to discover paths. Double-check that every listed path exists.
3. 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
4. Write the map in the format below.
5. Open for user inspection.

## Format

```markdown
# 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)

