Repository navigation
Jig 0.24.0
The owner's word held to one rule, Jig's instructions in your project's AGENTS.md,
and Jig tested on Linux, macOS and Windows.
Added
jig checksum <spec>prints a spec's checksum, the value its
.checked.jsonrecords. It had been left to agents to compute from the
procedure's description, and a hand-computed value was easily wrong.route:is a spec field, for a page whose surface name does not say where
it is served.- Your project's
AGENTS.mdcarries Jig's instructions for your agent.
init,installandupdatecreate the file if it is missing, or add Jig's
block to the one you have: load the skill before UI work, how the loop runs,
the owner's-word rule, and what each of Jig's files is for. With Claude Code,
a block inCLAUDE.mdimports it, so every session loads it. Jig owns only
what is between its markers.checkreports the block missing or edited,
shipis not ready without it, the Stop hook holds a session that removed it,
andjig updateputs it back.
Changed
- The owner's word is held to one rule, everywhere Jig records it. A spec
confirmed, a drawing approved or skipped, a re-judge left for later, a tweak's
change and a decision's reason are each the owner's own words, and words that
say that thing: a remark about the layout is not a skip of the mockup, and a
yes to one question is not a yes to the spec. One check now covers all of
them. Three had no check before:confirmed: trueneeds the owner's yes to
being asked, a tweak'schangemust be words they said, anddecide's quoted
reasons must be too. The skill states the rule. - A field Jig does not read is refused where it would be written. When the
procedure named no place for something, agents invented one: front-matter
keys, verdict ids, JSON fields that nothing reads, so what they said reached
no check. A spec key a session adds, a verdict-file field holding a list or an
object, and an unknown tweak.json field are now refused, each pointing at the
place that exists. Keys a spec already had are not held against it. - A spec is drafted where Jig reads it, and checked as itself. It is written
at.jig/specs/<name>.spec.mdfrom the first draft, and its shape is checked
before the owner is asked to confirm it. Asking to confirm a spec that is not
there is refused, and so is finishing a spec session without writing it. A
named spec is never checked in place of another page's. - A critique files one problem once. A difference goes under
differences
only when no rule or decision already holds it, so the countsshipreports
count problems, not entries. - The gate asks for the probe files it re-takes to be committed. It renders
a changed page again as a session stops, after the last commit; like the
lock, it now stops once to have those files committed on their own. jig gaterun by hand reports and renders nothing. Without a transcript
it cannot tell which pages are in play, and it had re-rendered every one.motion: nonecan say why, as innone — this page adds no movement.- A file a session never wrote is taken as it found it, committed or not,
so a session is not answerable for a draft it found.
Fixed
-
Jig works the same on Linux, macOS and Windows, and is tested on all three.
Every change now runs the full suite on each, on Node 22 and 24. The first run
found that rendering a page needed a WebSocket Node 20 does not have, so Jig
now needs Node 22 or later (Node 20 is end-of-life) and says so if it is run
on an older one; and that on Windows no browser was ever found to render with:
Edge, Chrome installed per user, and commands on PATH are now found. -
A project checked out on Windows reads the same as anywhere else. Git on
Windows gives files CRLF line endings. Jig parsed a spec with them as having
no regions at all, a spec's check no longer matched it, and every comparison
with a file's committed copy read as a change. Every text file Jig parses or
compares is now read with its line endings normalised. -
Two Jig runs at once no longer fail on Windows. Windows refuses to replace
a file another process has open, where Linux and macOS allow it; writing a
file Jig records (the install manifest among them) now retries briefly there,
and the manifest's lock treats a lock file Windows is still deleting as held
for a moment, not as an error. -
The docs say what the code does. The README said
checkreports a
pre-0.4.0 install's leftovers (onlyinitdoes); the procedure named five
reasonsshipowes a page (there are six, one a re-probe) and described the
spec checksum as leaving out one line where the code leaves out two. Tests
now fail when the procedure stops naming a stateshipreports, a line the
checksum leaves out, or a command the CLI registers. -
The README no longer counts the rules
checkdecides by hand. It named
"the seven mechanical rules" from 0.1.0; it now points atrules.index.json. -
An
exemptpath works the way you write it../src/card.tsx,
src\\card.tsxand an absolute path inside the project all mean
src/card.tsx. A path outside the project was dropped without a word; it is
now named in the report with what to write instead, and a bare file name that
matches nothing is answered with where that file is. -
A fact's
sourcethat holds a sentence is told to put it innote. -
The README says what Jig does. It said
initwas the only command that
writes into your repo and that nothing of Jig's is kept in it (a project-scope
install writes the skill and rules into your repo's agent folder); pointed
agents atAGENTS.md, which users do not receive; counted 95 rules the CLI
cannot decide (it is 120), two critique readers (three) and four per-page
commands; describedcheck --cias errors only; said the token layer changes
nothing on the page, beside acolor-schemeline that does; and claimed Jig
knows every page that changed, which it does not for a page rendered on
request. Itsexemptexample named one project's files as if they were a
pattern; it now explains how to choose your own: a file that renders outside
your stylesheets, or a page you will not revisit, sincecheck --alland
shipread every file. The slash-command table
listsverdicts,probeandchecksum.