Codex

validate-component

Validate a single AIWG component (skill, agent, or command) for completeness and correctness

104 stars

Best use case

validate-component is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

It is a strong fit for teams already working in Codex.

Validate a single AIWG component (skill, agent, or command) for completeness and correctness

Teams using validate-component should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/validate-component/SKILL.md --create-dirs "https://raw.githubusercontent.com/jmagly/aiwg/main/.agents/skills/validate-component/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/validate-component/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How validate-component Compares

Feature / Agentvalidate-componentStandard Approach
Platform SupportCodexLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Validate a single AIWG component (skill, agent, or command) for completeness and correctness

Which AI agents support this skill?

This skill is designed for Codex.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Validate Component

You check a single AIWG component — a skill, agent, or CLI command — for completeness and correctness, then produce a structured pass/fail report with specific gaps listed.

## Triggers

- "validate this skill" → check the skill in the current directory or named path
- "is this component complete" → run completeness check
- "check this agent" → validate agent frontmatter and manifest registration
- "validate component at <path>" → validate the named path
- "is this command wired up correctly" → check CLI command completeness
- "pre-PR check on this skill" → run validate-component

## Trigger Patterns Reference

| Pattern | Example | Action |
|---------|---------|--------|
| Validate skill | "validate this skill" | Run skill completeness checks |
| Validate agent | "check this agent definition" | Run agent completeness checks |
| Validate command | "is this command wired up" | Run command completeness checks |
| Path-specific | "validate component at agentic/code/addons/my-addon/skills/my-skill" | Validate at given path |
| Pre-PR | "pre-PR check on this component" | Run all applicable checks |

## Process

1. **Identify component type and path**:
   - If no path is given, check the current working directory or the most recently edited file
   - Detect type from directory structure:
     - Path contains `skills/<name>/SKILL.md` → skill
     - Path contains `agents/<name>.md` or `agents/<name>/` → agent
     - Component name appears in `src/extensions/commands/definitions.ts` → command

2. **Run type-appropriate checks**:

   **For a Skill**:
   - Read the `SKILL.md` file
   - Check: `description:` field present in YAML frontmatter
   - Check: `# Title` section present
   - Check: `## Behavior` or `## Process` section present
   - Check: At least one `## Examples` entry
   - Find the parent addon's `manifest.json` (walk up directory tree)
   - Check: Skill name listed in `manifest.json` `skills` array
   - Check: File lives in `agentic/code/` (not in a provider deployment directory)
   - If SKILL.md contains `executedViaSkillRunner: true` reference: check for circular CLI call pattern
   - **Full link classification check** (see Link Classification below)

   **For an Agent**:
   - Read the agent `.md` file
   - Check: YAML frontmatter block present
   - Check: `name:` field in frontmatter
   - Check: `description:` field in frontmatter
   - Check: `model:` field in frontmatter
   - Check: `tools:` field in frontmatter
   - Find parent addon's `manifest.json`
   - Check: Agent listed in `manifest.json` `agents` array
   - Check: File lives in `agentic/code/`
   - **Full link classification check** (see Link Classification below)

   **Link Classification** (applies to all component types):

   Extract every `@<path>` reference from the file and classify:

   | Pattern | Result | Message |
   |---------|--------|---------|
   | `@$AIWG_ROOT/<path>` | PASS | AIWG core ref (install-relative) |
   | `@$TOKEN/<path>` — TOKEN set in env | PASS | Registered corpus token |
   | `@$TOKEN/<path>` — TOKEN NOT in env | WARN | `env var TOKEN not set; add to .env or export` |
   | `@.aiwg/<path>` — path in Tier 1/2 allowlist | PASS | Normalized project memory |
   | `@.aiwg/<path>` — not in any `memory.creates` | FAIL | `non-normalized .aiwg/ path — repo-local only` |
   | `@.claude/<path>` | FAIL | `deployment target — forbidden in distributable source` |
   | `@agentic/code/<path>` | WARN | `legacy bare ref — migrate to @$AIWG_ROOT/agentic/code/` |
   | `@src/<path>` | WARN | `legacy bare ref — migrate to @$AIWG_ROOT/src/` |
   | `@docs/<path>` | WARN | `legacy bare ref — migrate to @$AIWG_ROOT/docs/` |
   | `@tools/<path>` | WARN | `legacy bare ref — migrate to @$AIWG_ROOT/tools/` |
   | Relative path within component | PASS | Local ref |

   Build the Tier 2 allowlist by reading all `manifest.json` files in `agentic/code/` and collecting `memory.creates[*].path` values. Combine with Tier 1 (`.aiwg/AIWG.md`, `.aiwg/frameworks/`).

   **For a CLI Command**:
   - Read `src/extensions/commands/definitions.ts`
   - Check: Command entry exists in definitions
   - Check: Command has either `executedViaSkillRunner: true` OR a handler entry
   - If `executedViaSkillRunner: true`: find the associated SKILL.md and verify it does not contain `aiwg <command-name>` in any bash block
   - If handler expected: check `src/cli/handlers/` for the handler file and registration in `allHandlers`

3. **Compile report**:

   Format results as a structured report:

   ```
   Component Validation: <component-name> (<type>)
   Path: <absolute-or-relative-path>

   Checks:
     PASS  description frontmatter present
     PASS  title section present
     PASS  behavior section present
     FAIL  no examples section found
     PASS  listed in manifest.json
     FAIL  not in agentic/code/ (found in .claude/skills/ — placement violation)
     WARN  @.aiwg/planning/my-design.md is not a normalized path (repo-local only)

   Result: FAIL — 2 issues found

   Required actions:
     1. Add ## Examples section to SKILL.md
     2. Move SKILL.md to agentic/code/addons/<addon>/skills/<name>/SKILL.md
        then re-deploy with: aiwg use <addon>
   ```

4. **Surface the report** to the user with the result line prominent.

## Examples

### Example 1: Valid skill

**User**: "Validate the doctor skill"

**Action**: Read `agentic/code/addons/aiwg-utils/skills/doctor/SKILL.md`, find parent manifest, run all checks.

**Output**:
```
Component Validation: doctor (skill)
Path: agentic/code/addons/aiwg-utils/skills/doctor/SKILL.md

Checks:
  PASS  description frontmatter present
  PASS  title section present
  PASS  behavior section present
  PASS  examples section present
  PASS  listed in aiwg-utils manifest.json
  PASS  lives in agentic/code/

Result: PASS — all checks passed
```

### Example 2: Incomplete skill with placement violation

**User**: "validate component at .claude/skills/my-new-skill"

**Action**: Read SKILL.md, check for completeness, check placement.

**Output**:
```
Component Validation: my-new-skill (skill)
Path: .claude/skills/my-new-skill/SKILL.md

Checks:
  PASS  description frontmatter present
  FAIL  no ## Behavior or ## Process section
  FAIL  no ## Examples section
  FAIL  placement violation: .claude/skills/ is a deployment target
  FAIL  not found in any manifest.json

Result: FAIL — 4 issues found

Required actions:
  1. Add ## Behavior section to SKILL.md
  2. Add ## Examples section to SKILL.md
  3. Move to agentic/code/addons/<your-addon>/skills/my-new-skill/SKILL.md
  4. Add "my-new-skill" to your addon's manifest.json skills array
  5. Run `aiwg use <addon>` to deploy
```

### Example 3: Circular skill-executed command

**User**: "check the my-command command"

**Action**: Read `definitions.ts`, find `executedViaSkillRunner: true`, read associated SKILL.md, search for `aiwg my-command`.

**Output**:
```
Component Validation: my-command (command)
Path: src/extensions/commands/definitions.ts

Checks:
  PASS  definition entry present in definitions.ts
  PASS  executedViaSkillRunner: true (no TypeScript handler required)
  FAIL  circular call detected: SKILL.md contains "aiwg my-command" in bash block (line 47)

Result: FAIL — 1 issue found

Required actions:
  1. Rewrite SKILL.md to perform work directly via Read/Write/Bash/Task tools
     without calling back into `aiwg my-command`
  See: agentic/code/addons/aiwg-dev/rules/no-circular-skill-calls.md
```

## References

- @$AIWG_ROOT/agentic/code/addons/aiwg-dev/rules/component-completeness.md — Full completeness requirements
- @$AIWG_ROOT/agentic/code/addons/aiwg-dev/rules/skill-placement.md — Placement requirements
- @$AIWG_ROOT/agentic/code/addons/aiwg-dev/rules/no-circular-skill-calls.md — Circular call detection
- @$AIWG_ROOT/agentic/code/addons/aiwg-dev/rules/aiwg-dir-reference-contract.md — Normalized .aiwg/ path contract
- @$AIWG_ROOT/src/extensions/commands/definitions.ts — Command definition registry

Related Skills

validate-metadata

104
from jmagly/aiwg

Validate AIWG extension definitions against the metadata schema and report errors with field names, line numbers, and remediation hints

Codex

validate-addon

104
from jmagly/aiwg

Validate an entire AIWG addon package for completeness and release readiness

Codex

soul-validate

104
from jmagly/aiwg

Validate a SOUL.md file against community best practices and quality criteria

Codex

setup-validate

104
from jmagly/aiwg

Validate a `setup.aiwg.io/v1` SetupManifest file against the schema and run cons

Codex

reproducibility-validate

104
from jmagly/aiwg

Run a workflow multiple times and compare outputs to produce a similarity score and pass/fail verdict

Codex

provenance-validate

104
from jmagly/aiwg

Validate provenance records and chains for completeness and consistency

Codex

prose-validate

104
from jmagly/aiwg

Validate an OpenProse program file against Prose contract grammar without executing it — checks frontmatter, contract structure, service references, and strategy syntax

Codex

mention-validate

104
from jmagly/aiwg

Validate all @-mentions resolve to existing files

Codex

devkit-validate

104
from jmagly/aiwg

Validate addon, framework, or extension structure and manifest

Codex

contract-validate

104
from jmagly/aiwg

Validate that a chain of AIWG skills has all requires: inputs satisfied by upstream ensures: outputs before execution. Catches missing dependencies at wiring time rather than at runtime.

Codex

aiwg-orchestrate

104
from jmagly/aiwg

Route structured artifact work to AIWG workflows via MCP with zero parent context cost

venv-manager

104
from jmagly/aiwg

Create, manage, and validate Python virtual environments. Use for project isolation and dependency management.