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.
Scanned 5/27/2026
Install via CLI
openskills install Moxibyte/MoxPP---
name: moxpp-check
description: 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.
---
# 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.
No comments yet. Be the first to comment!