# Alexnodeland Principled Validate

> Validate — Structural Validation

- Skill: `tomevault-io/alexnodeland-principled-validate` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/alexnodeland-principled-validate`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/alexnodeland-principled-validate/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/alexnodeland-principled-validate

---


# Validate — Structural Validation

Check that a module's documentation structure matches the expected standard for its type.

## Command

```
/validate [module-path] --type core|lib|app [--strict] [--json]
/validate --root [--strict] [--json]
```

## Arguments

| Argument        | Required                                           | Description                                                            |
| --------------- | -------------------------------------------------- | ---------------------------------------------------------------------- |
| `[module-path]` | No                                                 | Path to the module to validate. Defaults to current working directory. |
| `--type`        | Yes (unless `--root` or detectable from CLAUDE.md) | Module type: `core`, `lib`, or `app`                                   |
| `--root`        | No                                                 | Validate the repo-level `docs/` structure                              |
| `--strict`      | No                                                 | Treat placeholder-only files as failures instead of warnings           |
| `--json`        | No                                                 | Produce machine-readable JSON output for CI                            |

## Workflow

1. **Parse arguments** from `$ARGUMENTS`.
2. **Determine module path and type.** If no path given, use the current working directory. If no type given, attempt to read from the module's `CLAUDE.md` (under `## Module Type`).
3. **Run the validation engine:**

   ```bash
   bash scripts/validate-structure.sh --module-path <path> --type <type> [--strict] [--json]
   ```

   Or for root validation:

   ```bash
   bash scripts/validate-structure.sh --root [--strict] [--json]
   ```

4. **Present results** to the user.

## Report Format

### Human-Readable (default)

```
Module: packages/auth-service (app)
────────────────────────────────────────
✓ docs/proposals/          exists (2 files)
✓ docs/plans/              exists (1 file)
✓ docs/decisions/          exists (1 file)
✗ docs/architecture/       MISSING
✓ docs/runbooks/           exists (3 files)
✓ docs/integration/        exists (1 file)
~ docs/config/             placeholder only
✓ README.md                exists
✓ CONTRIBUTING.md          exists
✗ CLAUDE.md                MISSING
────────────────────────────────────────
Result: FAIL (2 missing, 1 placeholder)
```

**Legend:**

- `✓` — Component exists with content
- `✗` — Component is MISSING (always a failure)
- `~` — Component exists but contains only placeholder content (failure in `--strict` mode)

### JSON (with `--json`)

Machine-readable output suitable for CI pipelines. Each component is reported with `state`, `label`, and `detail` fields.

## Scripts

- `scripts/validate-structure.sh` — Validation engine (copy of `scaffold/scripts/validate-structure.sh`)

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/alexnodeland) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-13 -->

