Skip to content
Development
Skill

/validate

Run both Arcgram self-checks in one call. A thin wrapper over Checkpoint (structure) and Reconcile (values): validate(diagram,{code}) runs Checkpoint always and Reconcile when code is supplied, then merges into one source-tagged result in the same

From plugin
arcgram
133 skills

Claude Code

$ npx -y skills add jovesun-lab/arcgram --skill validate --agent claude-code

SKILL.md

validate.SKILL.md
name: validate
description: >-
  Run both Arcgram self-checks in one call. A thin wrapper over Checkpoint (structure)
  and Reconcile (values): validate(diagram,{code}) runs Checkpoint always and Reconcile
  when code is supplied, then merges into one source-tagged result in the same
  {findings,summary,attestation,clean} contract. clean = checkpoint.clean && reconcile.clean.
  Adds no new check; marks, never blocks. Run after authoring or editing a diagram and its
  code. Agent-neutral. The single door over its two siblings.

Validate - the combined Arcgram self-check entry

One call. Two questions answered between the siblings: **is the flow well-formed and coherent, AND do its `@spec` values still match the code?**

Validate is a **thin wrapper**, not a new check. It imports [Checkpoint](../checkpoint/SKILL.md) and [Reconcile](../reconcile/SKILL.md) **untouched** and composes their pure functions:

  • **Checkpoint** (one input: the diagram) checks **structure** - well-formed, coherent.
  • **Reconcile** (two inputs: diagram + code) checks **values** - `@spec` literals == code constants.

Run both -> the diagram is a faithful, current spec. Every finding still comes from one sibling; Validate only **merges, source-tags, and unions the attestation**.

Code is optional

| input | what runs | clean possible? | |---|---|---| | `validate(diagram, { code })` | Checkpoint **and** Reconcile | yes | | `validate(diagram)` (no code) | Checkpoint only | no - values unchecked |

Without code there is nothing to reconcile, so Reconcile is **not run** (running it would just flag every `@spec` pin as missing). Instead the value half is reported as one `uncovered` `value-check-not-run` finding, so a structure-only run is never falsely "clean" on values - the same anti-silent-pass rule both siblings enforce.

**Locked invariant - `uncovered` is a third state, never a pass.** A diagram-only run (no code) can **never** produce an overall green clean, even when the structure is perfect. The attestation explicitly appends `| code consistency: NOT CHECKED (no code supplied)`, `summary.codeConsistency` reads `"NOT_CHECKED"`, and the CLI verdict is `INCOMPLETE`, never the word CLEAN. This guards the exact silent-pass the family exists to prevent: claiming "checked & clean" while the code half was never checked.

Output (same contract as both siblings, plus `source`)

{ findings:[{id,type,severity,note,source}], summary, attestation, clean }
self-check ran HH:MM:SS | N findings | M unchecked
  • **`source`** is `"checkpoint"` | `"reconcile"` | `"validate"` - so you can route a finding back

to the check that raised it. Everything else (`id`, `type`, `severity`, `note`) is verbatim from the sibling.

  • **`attestation`** is the **union**: N and M are the combined defect / uncovered totals. When the

value half did not run it appends an explicit `| code consistency: NOT CHECKED (no code supplied)`.

  • **`clean === checkpoint.clean && reconcile.clean`** (identically `N=0 && M=0`); `uncovered` is a

third state and is never folded into `clean`, so a skipped value-check is not clean.

  • **`summary`** nests each sibling's own summary under `.checkpoint` / `.reconcile`, plus `ran` and

`codeConsistency` (`"checked"` | `"NOT_CHECKED"`).

  • The full sub-results are returned verbatim on `.checkpoint` / `.reconcile` for a caller that wants

the per-check breakdown.

Human reads the marker; agent reads the `type` (and `source`).

Use

node validate.mjs <diagram.html | diagram.json> [code-file ...] [--tier-b | --no-tier-b] [--json]
import { validate } from './validate.mjs';
validate({ nodes, edges, meta }, { code });   // code: string | string[]; omit -> structure only

`--tier-b` / `--no-tier-b` forward to Checkpoint's justification tier (else auto-detected by a decision diamond). Exit 1 on any defect (advisory - never blocks; an uncovered value-check is not a defect).

Verify: `node validate-selftest.mjs` (36 checks - source tags, union attestation, clean rule, the code-omitted path, and byte parity with running the two siblings separately). Example: `examples/example-workflow.html` vs `example-workflow.config.cs` (clean).

Read more
@jovesun-lab
Ships witharcgram

Arcgram turns your AI agent's plan into a diagram you can check and fix — before anything runs. Your AI agent can hand you something that looks right — an analysis, a workflow, a plan, code — while a broken step or a bad dependency hides underneath.

Stars on GitHub

Momentum

stars in total
13
Star history of jovesun-lab/arcgram on GitHub, a chart by star-history.com

Other skills on arcgram.

checkpoint

checkpoint

Validate an Arcgram diagram as a logic spec: is the flow well-formed and coherent? Reads node/edge structure…

@jovesun-lab@jovesun-labInstall Skill
reconcile

reconcile

Check that an Arcgram diagram's @spec values still match the code that implements it. Reads each node's desc "@spec key=value"…

@jovesun-lab@jovesun-labInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about validate.

Which coding agents can use validate?
validate installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.