check
Check cross-artifact consistency — reference integrity, orphans, contradictions
Sync nlpm's convention overlays with the latest official Claude Code / Codex / Antigravity specs — research upstream docs, diff, apply corrections, propagate, check
> /plugin marketplace add xiaolai/nlpm > /plugin install nlpm@xiaolai
How it fires
How this command gets triggered: by you, by Claude, or both.
/spec-syncContext preview
What this command does when you run it.
Sync nlpm's convention overlays with the latest official Claude Code / Codex / Antigravity specs — research upstream docs, diff, apply corrections, propagate, check
name: spec-sync description: "Sync nlpm's convention overlays with the latest official Claude Code / Codex / Antigravity specs — research upstream docs, diff, apply corrections, propagate, check" argument-hint: "[claude|codex|antigravity|all]" allowed-tools: Read, Write, Edit, Glob, Grep, Bash, Task
$ARGUMENTS
A pipeline that keeps nlpm's tool overlays current with the upstream specs they document. The web research fans out to `spec-researcher` agents (one per tool, in parallel); the high-judgment editing stays here in the reviewable main thread.
This command **never commits, pushes, or touches the marketplace.** It edits overlay skills and reports the remaining release steps.
| Input | Overlays to sync | |-------|------------------| | (empty) or `all` | all three | | `claude` | `skills/nlpm/conventions-claude/SKILL.md` | | `codex` | `skills/nlpm/conventions-codex/SKILL.md` | | `antigravity` | `skills/nlpm/conventions-antigravity/SKILL.md` |
Resolve today's date with `date +%Y-%m-%d` (passed to the agents and used for the "Last refreshed" line). Confirm each selected overlay file exists; if one is missing, report "Overlay not found: {path}" and continue with the rest.
Dispatch one `spec-researcher` agent **per selected overlay, all in a single message** so they run concurrently. Pass each agent:
Each agent fetches the overlay's declared authoritative sources (plus the docs index and, for Codex, GitHub releases), diffs them, and returns a structured gap report tagged `[FIX | REMOVE | ADD | CONFIRM | RESOLVED]` with a confidence section.
Collect every report. If an agent returns nothing, note "Research failed for {tool} — re-run /nlpm:spec-sync {tool}" and continue.
Show the consolidated gap report, grouped by tool, **corrections first** (`FIX` / `REMOVE` / `RESOLVED`), then additive (`ADD`), then a confidence summary. This is the human-reviewable diff before any file changes.
For each overlay, edit the SKILL.md to absorb its report:
**Antigravity caveat:** that overlay is advisory-only against an unsettled spec. Apply only changes the agent confirmed against a first-party source; when sources disagree or the spec is still settling, report the finding instead of editing.
A correction to an overlay can invalidate nlpm's *own* artifacts (e.g. an agent using a now-removed color or tool name). For each `FIX`/`REMOVE` that changed an enum value, field name, or tool name, grep the rest of the repo for the old value with a **fixed-string** search — old values like `[profiles.*]`, `Task(...)`, or `color: magenta` contain regex metacharacters and would misbehave under `grep -E`:
grep -rnF -- "<old-value>" agents/ commands/ skills/ hooks/ scripts/
Exclude the overlay's intentional corrective text from the hits. For each real hit in a working artifact, fix it to a valid current value (or flag it if the right replacement needs a human call). Report these as "self-consistency fixes" — this is the step that catches nlpm contradicting its own refreshed spec.
1. Run `python3 bin/nlpm-check <repo-root>` — must report clean. 2. For each removed/renamed term, grep to confirm no stale occurrence survives outside intentional corrective notes. 3. If `bin/nlpm-check` is unavailable, say so and fall back to the grep checks only.
Report any failure with the exact output; do not claim success on a failed check.
NLPM Spec-Sync Report — {date}
Overlays synced: {list}
Per overlay:
conventions-{tool} v{old} → v{new}
Corrections applied: {N} (FIX {a}, REMOVE {b}, RESOLVED {c})
Additive applied: {N}
Deferred: {N} (verify-tag / not-found — listed below)
Self-consistency fixes:
{file}:{line} — {old} → {new} (or "none")
Verification:
nlpm-check: {clean | FAILED — output}
stale-term grep: {clean | hits listed}
Deferred (need a human / verbatim source before adopting):
[{tool}] {finding} — {why deferred}
Remaining release steps (NOT done by this command):
- Bump plugin.json + marketplace.json versions
- Run /nlpm:score, /nlpm:check, /nlpm:test
- Commit and push, then update the central marketplace**Error handling:**
Natural-Language Programming Manager — score, check, fix, and test NL artifacts across Claude Code, Codex CLI, and Antigravity. Tier-aware scoring with per-tool overlays. Part of the xiaolai plugin marketplace.
Check cross-artifact consistency — reference integrity, orphans, contradictions
Auto-fix fixable findings in NL artifacts — missing fields, heading gaps, field renames
Prepare NLPM for this project — detect artifacts, set strictness, capture baseline trend snapshot
Discover all natural language programming artifacts in a repository
Render a self-contained HTML report — per-file scores, score trend, cross-artifact graph, vocabulary noun-verb map, drift…
Score NL programming artifacts — 100-point quality score per file