Skip to content
Back to skills

Moxpp Check

ASecurity

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.

  • 23 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
data-aic++

Works with

  • cli

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add Moxibyte/MoxPP --skill moxpp-check --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Moxpp Check?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Moxpp Check
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/moxibyte-moxpp-check/badge)](https://www.skillsdirectory.com/skills/moxibyte-moxpp-check)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.