SuperAPI AI Directory

visual-recap

Coding & development

View repository

Updated 10-16 06:21

About this skill

System recap

When a change is non-trivial (a plan, a PR create or update, or a request for a visual recap), put one marker-delimited block in the PR description. GitHub renders it. It does not replace reading the diff.

When

Run the classifier. Roll up to the highest of adds, then extends, then composes. You still choose composes vs extends from the diff. adds is a new map entry.

Rollup Risk Also
composes low Wiring and call sites only.
extends medium preview-manual-test as the seeded user with data for this change
adds high Update primitives.yaml, npm run primitives:check, and the same preview

Update primitives.yaml when this PR adds, removes, or materially reshapes a primitive (new id, renamed meaning, or ownership roots that must change). Do not edit summary for ordinary feature work. Call out a touched invariant from that map at every risk.

Plan mode uses **Mode:** plan before a PR exists. Recap mode replaces that block from git diff <base>...HEAD.

The block shape is one example: references/block-format.md.

Command

node .agents/skills/visual-recap/scripts/classify-primitives.mjs --base <base> --head HEAD --json
node .agents/skills/visual-recap/scripts/upsert-recap-block.mjs <pr-number> <block-file>

The upsert script checks mermaid, then replaces the marker block or appends it. It does not edit text outside the markers. Re-run both commands after a significant push.

Failure

  • The mermaid check exits non-zero. Fix the diagram. Do not put ; in sequence notes or messages. npm run mermaid:check uses the same parser.
  • The block file must start with <!-- system-recap:start --> and end with <!-- system-recap:end -->.
  • gh pr edit fails with Resource not accessible by integration (updatePullRequest). The script still prints the merged body. Apply that body with Cursor ManagePullRequest. Do not have Kody edit the PR.
  • A health check or login smoke is not the medium or high preview. Do not cat the session cookie into curl or Python.