Skip to content
Development
Skill

/checkpoint

Validate an Arcgram diagram as a logic spec: is the flow well-formed and coherent? Reads node/edge structure (id/f/t/kind/role/type), never geometry. Typed findings - dangling edge, orphan node, missing branch, disconnected island, duplicate id, missing schema, plus optional

From plugin
arcgram
133 skills

Claude Code

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

SKILL.md

checkpoint.SKILL.md
name: checkpoint
description: >-
  Validate an Arcgram diagram as a logic spec: is the flow well-formed and coherent?
  Reads node/edge structure (id/f/t/kind/role/type), never geometry. Typed findings -
  dangling edge, orphan node, missing branch, disconnected island, duplicate id, missing
  schema, plus optional coherence (every action traces to a goal). Marks, never blocks.
  Run after authoring or editing a diagram. Agent-neutral. Sibling to Reconcile
  (Checkpoint = structure; Reconcile = values).

Checkpoint - Arcgram logic self-check validator

One input: a **diagram** (treated as a spec). One question: **is the flow logic well-formed and coherent?** Returns typed findings; marks, never blocks.

Sibling to Reconcile: Checkpoint checks **structure** from the diagram alone; Reconcile checks **values** across diagram + code. Run both -> the diagram is a faithful, current spec.

It checks the graph's logic structure - **not** drawing quality (the engine auto-handles overlaps/spacing/routing) and **not** semantic correctness (whether the logic is *right* - a human call).

**Red line:** reads only the semantic field values `id`, `f`, `t`, `kind`, `role`, `type` (plus optional `status`, `flag`). Never a coordinate, color, size, or spacing. The judge: am I reading a semantic string, or a rendered visual quantity?

Findings

**Tier A - structural integrity (always on).** Domain-agnostic graph theory.

| finding | means | |---|---| | `dangling-edge` | an edge points at an id that is not a node | | `orphan-node` | a node has no edge (chain broken) - except a declared `type:'open'` | | `missing-branch` | a decision (`kind:'diamond'`) lacks its Y or N branch | | `disconnected-island` | a cluster with no edge to the main flow | | `duplicate-id` | a node id used more than once | | `missing-field` | a node has no id, or an edge no `f`/`t` | | `missing-meta-version` | `ARCGRAM_META.version` absent | | `empty-diagram` | no nodes - reported uncovered, never falsely "clean" |

**Tier B - justification coherence (auto-on for a thinking flow).** Does it read as reasoning: every `action` traces back to a `goal`, every `goal` reaches an `action`, every `decision` sits on a justification path. Auto-on when the diagram has a decision diamond (`kind:'diamond'`, = the engine's `_isThinkflow`); no-diamond diagrams skip it. Override `--tier-b` / `--no-tier-b`. Roles: `goal`/`action`/`decision` (coherence-bearing) + `constraint`/`evidence`/`state`/`output` (recognized). No resolvable role -> `[?]` uncovered, never guessed. `cat` is not read.

Each finding is `{ id, type, severity, note }`; severity = `defect` or `uncovered`.

Output (same contract as Reconcile)

{ findings:[{id,type,severity,note}], summary, attestation, clean }
self-check ran HH:MM:SS | N findings | M unchecked

**clean only when N=0 AND M=0** - "checked & clean" never looks like "never checked". Human reads the marker; agent reads the `type`.

Use

node checkpoint.mjs diagram.html [--tier-b | --no-tier-b] [--json]
cat diagram.json | node checkpoint.mjs
import { checkpoint } from './checkpoint.mjs';
checkpoint({ nodes, edges, meta });

Exit 1 on any defect (advisory - never blocks). Verify: `node checkpoint-selftest.mjs` (19 checks). Render-time: the engine exposes the same check via `window.__arcgramInspect()` (the `checkpoint` field of its result) + the on-canvas `[?]` badge and attestation stamp.

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.

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
validate

validate

Run both Arcgram self-checks in one call. A thin wrapper over Checkpoint (structure) and Reconcile (values):…

@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.

skills2w309k
@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,…

ecc2w293k
@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…

react5d252k
@facebook@facebookInstall Skill

Questions about checkpoint.

Which coding agents can use checkpoint?
checkpoint 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.