# Moxpp Check

> Checks the integrity of CLAUDE.md against the actual project structure. Use when CLAUDE.md may be out of sync with mox.lua, conanfile.py, build.lua files, README.md, or LICENSE.

- Skill: `moxibyte/moxpp-check` (Agent Skill)
- Install (CLI): `npx skillmds@latest add moxibyte/moxpp-check`
- Raw SKILL.md: https://api.skillmd.com/api/skills/moxibyte/moxpp-check/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Moxibyte (https://skillmd.com/u/moxibyte)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/moxibyte/moxpp-check

---


# MoxPP CLAUDE.md Integrity Check

Audit `CLAUDE.md` against the actual project files and propose any corrections. Work through each check below, then present a consolidated diff of all proposed changes for the user to confirm before editing anything.

## Steps

### 0. Check for unconfigured template state

Read `CLAUDE.md` and check if the top section still contains the unconfigured placeholder (i.e. the line `> This is an unconfigured MoxPP template`). If it does, **stop immediately** and tell the user:

> This repo hasn't been configured yet. Run `/moxpp-setup` first, then re-run `/moxpp-check` once the project is set up.

Do not proceed with any further checks.

### 1. Read all source-of-truth files

Read the following files in parallel:
- `CLAUDE.md` — current documented state
- `mox.lua` — ground truth for project name, C++ version, architecture, macro prefix, configurations, unit test setting
- `conanfile.py` — ground truth for Conan dependencies and options
- `README.md` — project description and overview
- `LICENSE` (if it exists) — license type

Then discover and read all `build.lua` files in the project:
- **single**: `src/build.lua`
- **flat**: `src/*/build.lua`
- **hierarchical**: `src/*/*/build.lua`
- **manual**: search recursively under `src/` for any `build.lua`
- Always also check `test/build.lua` if `cmox_unit_test_src` is set

### 2. Check project name

Compare the `# <Heading>` at the top of `CLAUDE.md` against `cmox_product_name` in `mox.lua`. Flag if they differ.

### 3. Check project description

Compare the description paragraph(s) below the top heading in `CLAUDE.md` against the content of `README.md`. Flag if `CLAUDE.md` is missing a description or if it appears significantly out of date relative to `README.md`. Do not require word-for-word matches — flag only meaningful divergences in purpose, audience, or scope.

### 4. Check Conan dependencies

Parse all `self.requires("name/version")` calls from `conanfile.py`. Compare the resulting list against the `## Conan Dependencies` section in `CLAUDE.md`:
- Flag any package present in `conanfile.py` but missing from `CLAUDE.md`
- Flag any package listed in `CLAUDE.md` but absent from `conanfile.py`
- Flag any version mismatches

### 5. Check unit test setting

Read `cmox_unit_test_src` from `mox.lua`:
- If `nil`: verify the `test/` directory does not exist. If it does, warn the user — it should be deleted.
- If set to a folder name: verify that folder exists at the repo root.

### 6. Check build.lua projects

For each discovered `build.lua`, extract the project name from `mox_project(...)`. Check:
- No two projects share the same UUID — flag any duplicates.
- Each project's source directory contains at least one `.cpp` file. For `sharedlib`/`staticlib` projects, verify `dummy.cpp` is present.

### 7. Check license

If a `LICENSE` file exists, check whether `CLAUDE.md` mentions the license. If not, note it as a minor gap (non-blocking).

### 8. Present findings and propose edits

Summarise all findings grouped by severity:
- **Error** — factual mismatch that will mislead Claude (wrong name, missing/wrong dependency, duplicate UUID)
- **Warning** — gap that reduces Claude's effectiveness (missing description, missing dependency note)
- **Info** — minor or cosmetic gap (license mention, stale wording)

For each Error and Warning, show the exact proposed change to `CLAUDE.md`. Ask the user to confirm before applying any edits.

