Skip to content

Releases: timessuman/jig

Jig 0.25.0

Choose a tag to compare

@timessuman timessuman released this 09 Oct 03:07
8a7e267

Link previews, code and tables that reflow on an editorial phone, and the
gate's rules stated before a session stops.

Added

  • The render probe measures a box that scrolls sideways. editorial
    allows no scrolling region on a phone (M-01), and the probe only measured
    a page wider than the screen. In a control run on this release's reflow
    text, a spec said the code would wrap and the built page scrolled it in a
    box, and nothing caught it. The probe now records each box that scrolls
    sideways, and on an editorial surface at phone width each is a measured
    failure: a critique reports it, ship counts it, and the gate holds make and
    tweak until the page reflows.
  • J-164: an indexable page a link preview cannot read. A page pasted into a
    message or a post is met as a card before anyone opens it, and the card is
    built from og:title and og:description. Section J said it covered the link
    preview, and no rule asked for one, so seo and check passed a site with no
    preview on any page. check reports it in a file that writes its own
    <head>, and in a head fragment (<svelte:head>, Astro, next/head) that
    writes the page's own description and no og:description, which no layout
    can supply; elsewhere a layout may write it, and the render decides: the probe
    now reads og:description, and a served page missing either tag is a
    finding on the page. An image and og:url need the page's full address, so
    the rule asks for them once a site has one. 160 rules, 40 of them decided by
    a machine.

Changed

  • editorial on a phone says what replaces a scrolling box. L-01 sent a
    wide code block or table to scroll inside itself, and the same sentence said
    editorial allows no scrolling region on mobile, naming nothing in its
    place. L-01, D-115 and M-01 now say it: a code block keeps its line
    breaks and indents and wraps its long lines, a table too wide for the screen
    stacks its rows with each cell's column name in front and stays a <table>,
    and a long identifier breaks where it must.
  • E-51's near-universal glyphs are a test, not a list. Close, search and
    menu were read as the only icon-only controls allowed. The rule now asks
    whether most readers would name the glyph the same way without its label,
    with examples that pass (a theme's sun and moon, a well-known service's mark)
    and that do not.
  • E-28 says what a browser's own tab stop on an <iframe> gets. One that
    only shows something is taken out of the tab order rather than given states;
    one the reader uses keeps its stop and shows focus.
  • spec, mockup and tweak each end with what the gate holds them to. A short
    "Before you stop" list names the checks the Stop hook makes on what that
    command records, beyond the shape its steps already teach: where it may write, whose words a quotation is, the check record's
    format, what counts as the owner's confirmation or approval, and what
    tweak.json holds. Sessions learned these from refusals, and each refusal
    cost a round of fixing, re-checking and committing. A test pairs each check
    with its line in the list, so a check added without one fails.
  • jig check exits non-zero on a mechanical error, with or without --ci.
    It used to exit 0 whatever it found, so a pre-commit hook, a CI step or a
    script running it as a linter read a run full of errors as a pass. Judgment
    findings are still reported without failing the run. --ci now only limits
    the run to the mechanical rules.

Fixed

  • The skill and spec say L-01 has six steps, and spec names the sixth.
    L-01 gained step 6, how a screen collapses, and both kept telling the agent
    to run "its five steps", so it stopped before the one that gives the phone
    composition. In a control run on this release's reflow text, a spec chose a
    sideways-scrolling code block for an editorial phone. A test now ties the
    count to L-01's own step headings.
  • I-118 exempts quoted output in the rule and in check, as the probe
    already did.
    The rule exempted a quotation in <blockquote> or <q>; the
    render probe also leaves <pre>, <code>, <samp> and <kbd> alone, and
    check exempted none of them. A page quoting a tool's real output was told
    by check to rewrite it, and by the rule to keep the quotation's own
    punctuation. All three now agree.
  • A critique is no longer held on what the page fails. An em dash on the
    rendered page, a missing or overlong title or description, unresolved tokens
    or the browser's default font are failures of the page, not of the review.
    verdicts reported them as a critique left incomplete, so the gate held the
    critique session until they were gone, and the session could clear them only
    by editing the page, which a critique never does. They are now listed apart,
    under !, as measured= on the JIG_VERDICTS line, and once each rather than
    at every width. A critique reports them and finishes; ship counts them as
    findings, and the gate holds make and tweak until the page is fixed. A verdict
    the probe contradicts still means the review re-runs.
  • A quoted mockup: value reads as the value it holds. A spec that wrote
    mockup: "skipped — the owner: \"…\"", valid YAML, read to the gate as the
    word "skipped, so every tweak of the page was refused for having no approved
    drawing, and the check that the owner's words are quoted was silently skipped.
  • An em dash inside tool output no longer counts as the page's own. The
    probe leaves quotations and <pre>, <code>, <samp> and <kbd> out of the
    dash scan, but it cut them out of the page's text one string at a time. An
    inline <code> earlier in the prose, such as a rule id, removed those
    characters from the output block below it, the block no longer matched, and
    its dash was reported. Quotations are now left out of the text as it is read.
  • The README no longer says every command is also a slash command. gate
    has no slash form (only the Stop hook runs it), and six slash commands are
    agent procedures with no command of their own in the CLI. The table under it
    was right; the sentence above it now says what the table does.
  • check no longer says it examined nothing while reporting findings. A
    file styled only with utility classes, such as class="p-[13px]", is read by
    H-47 but was left out of the styled-file count. A change to such a file
    reported H-47 errors and, below them, that no file carried a style region. The
    count now includes markup whose class attributes hold classes.

Jig 0.24.0

Choose a tag to compare

@timessuman timessuman released this 30 Sep 16:58
e617591

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.json records. 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.md carries Jig's instructions for your agent.
    init, install and update create 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 in CLAUDE.md imports it, so every session loads it. Jig owns only
    what is between its markers. check reports the block missing or edited,
    ship is not ready without it, the Stop hook holds a session that removed it,
    and jig update puts 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: true needs the owner's yes to
    being asked, a tweak's change must be words they said, and decide'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.md from 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 counts ship reports
    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 gate run 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: none can say why, as in none — 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 check reports a
    pre-0.4.0 install's leftovers (only init does); the procedure named five
    reasons ship owes 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 state ship reports, a line the
    checksum leaves out, or a command the CLI registers.

  • The README no longer counts the rules check decides by hand. It named
    "the seven mechanical rules" from 0.1.0; it now points at rules.index.json.

  • An exempt path works the way you write it. ./src/card.tsx,
    src\\card.tsx and 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 source that holds a sentence is told to put it in note.

  • The README says what Jig does. It said init was 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 at AGENTS.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; described check --ci as errors only; said the token layer changes
    nothing on the page, beside a color-scheme line that does; and claimed Jig
    knows every page that changed, which it does not for a page rendered on
    request. Its exempt example 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, since check --all and
    ship read every file. The slash-command table
    lists verdicts, probe and checksum.

Jig 0.23.0

Choose a tag to compare

@timessuman timessuman released this 29 Sep 22:12
ab48bdb

Rules for the prose a page ships and for how it moves, a spec that says what
moves and why, and a critique that reads the page against its spec both ways.

Added

  • Rules for the prose a page ships. The copy rules were written for
    interface strings: a label, a button, an error. A docs chapter, a guide or a
    blog post was held only to those, and a paragraph could claim a figure nobody
    measured, open with "In today's rapidly changing world" and restate its
    introduction as its conclusion, and pass. Nine rules now cover prose longer
    than a paragraph (I-148 to I-156): a claim with no source, a sentence
    specific in sound and empty in fact, formula openers and closers, saying it
    twice, a rhetorical shape on repeat, enthusiasm the content has not earned,
    stacked hedges, emoji in headings, and structure imposed on the content.
    Four more cover writing a person puts their name to, a blog post or a case
    study (I-157 to I-160): nothing only the author could say, no point of
    view, an even rhythm, and a feeling named rather than shown.

  • They judge the writing, never the writer. A finding says the copy reads
    as generic; it never says a model wrote it. Nothing is measured: rhythm and
    voice have no number a check could hold, and a score would reward prose that
    games it.

  • check catches two of them. I-150 warns on a short list of formula
    phrases ("it is important to note", "let's dive in", "in conclusion") in the
    text a reader sees, and leaves a quotation alone. I-155 warns on an emoji
    in a Markdown page's heading; in markup, A-05 already reports it.

  • The copy checklist asks three more questions (L-06): whether every
    figure traces to a source, whether prose says something specific once, and
    whether a long-form piece holds something only its author could say.

  • Three motion rules. G-161: a layout change the user caused shows
    where things went (a deleted row's neighbours slide into the gap) rather than
    jumping, and stays instant when the user did not cause it. G-162: animate
    transform and opacity, never layout, and never all; check warns on a
    transition or keyframe that names a layout property or all, and on
    Tailwind's transition-all. G-163: one thing moves at a time. Moving
    within the screen takes --ease-in-out (T-04). No new tokens.

  • A spec says what moves, and why. motion: lists each movement: what
    moves, its trigger, and what it tells the reader. One that cannot say is cut
    before it is built. The owner reads it on the confirmation sheet, make
    builds that motion and no other, and critique judges the page against it.
    A spec confirmed before it has none, and is judged by the rules alone.

Changed

  • A critique reads the page against the spec, not only the spec against the
    page.
    A section, a paragraph or a claim the page carries that no line of the
    spec asks for, and no deviation records, is now a finding. On jig-site a
    chapter carried an accurate paragraph the owner never confirmed, and two
    critiques saw it and filed nothing, because it broke no rule. The fix is a
    tweak that writes it into the spec for the owner to confirm, or removes it.
  • Each critique arm is told the shape of a ruled verdict. An arm wrote
    four that named the owner's decision only in their reason, and verdicts
    refused them all.
  • A CLI run from a checkout reads the checkout's rules. prepack copies the
    rules beside the CLI package for each publish, and the copies stayed behind:
    a clone that had published read the rules as they were then, and Jig's own
    first test run after each rule change failed 14 tests. An installed package
    still reads its own copies.
  • jig ship leaves a replaced spec to the spec that replaced it.
    superseded_by: <spec> in a spec's front matter marks it, and ship reports
    it apart instead of as never critiqued, once it has checked the spec it names
    exists. On jig-site two replaced specs were owed a critique at every ship,
    each marked a different way by the agent that replaced it.
  • A tweak that records a decision applies it to the whole page. The owner
    rules on one instance, and the decision states a kind; the tweak now finds the
    other instances on the page and fixes them in the same change. On jig-site a
    decision to set every quotation mark curly fixed the one named, and four
    straight marks survived to the next critique.
  • A spec's second check covers what changed. The reader gets the earlier
    record and the diff; a quotation or fact on an unchanged line, whose source
    has not changed either, carries over. On jig-site every re-check reopened
    every source, about $10 a round.
  • A critique has a place for what no rule names. A difference between the
    page and its spec, or a source it teaches, goes under differences in the
    arm's verdict file and counts as a finding. On jig-site both arms of one
    critique invented rule ids to carry one, and verdicts refused them. The
    report now says what the page-against-spec pass found, "none" included, and
    verdicts explains that a decision is judged, never ruled.
  • Every page is owed a critique again. A critique judges every rule, so one
    written before these sixteen is incomplete, and jig ship lists each page
    until it is critiqued on this release.

0.22.0

Choose a tag to compare

@timessuman timessuman released this 29 Sep 12:27
5f97bef

A spec and a mockup are checked before the owner says yes, a critique can wait,
and jig ship is where nothing is optional.

Added

  • A spec is checked before you are asked to confirm it. spec checked
    itself against the decisions, and nothing checked it against the owner's
    words or the facts it states: on jig-site a confirmed spec carried seven
    errors to the built page. A reader that did not write the spec now checks
    each quotation given as the owner's and each fact at its source, and writes
    .jig/specs/<name>.checked.json. The owner gets the spec with a sheet to
    check it by, and an agent asked to confirm for them works from the same
    sheet. The README's new "Before you confirm a spec" says what to look for.

  • The gate holds a spec back from the owner while it gives a quotation as
    the owner's that the owner never said, states a fact its reader found false,
    cites a source the project does not have, or has no check of the spec as it
    stands.

  • A mockup is approved against its spec, and skipping one is plain. The
    owner gets the drawing with a sheet, size by size, the spec's line beside what
    the frame shows, and the README's new "Before you approve a mockup" says what
    to look for. An approval or a skip is recorded in the owner's words
    (mockup: approved — "…"), and the gate holds one they did not say. A skip
    can be given to make or at the spec's confirmation, not only to mockup;
    make then builds from the spec alone, and asks rather than finishing on a
    spec nobody has said to draw or skip.

  • A critique can wait, and ship is where it cannot. check still runs on
    every make and tweak; the judgment half can run after a batch of pages or
    only before shipping, and a tweak's re-judge can wait when the owner says so
    (or "critique": "at-ship" in jig.config.json says it once). The lock now
    records the page each critique judged, so nothing that waited is forgotten.
    jig ship runs check --all --ci and seo and names every confirmed page
    that owes a critique; /jig ship critiques each in full and runs until it
    says ready=yes. It deploys nothing, and says what Jig does not check.
    Each page can say for itself when it is critiqued: spec asks, last, and writes
    critique: each or critique: at-ship, which wins over the project's
    default. init asks for that default when it sets the project up; page by
    page, the default, writes nothing.

Fixed

  • init merging into an edited jig.config.json dropped its other keys. It
    rebuilt the file from brand and surfaces, so an exempt list was lost
    without a word. A merge now keeps every key.
  • A /jig command whose words hold a < read as no command at all, so
    the gate judged a tweak as a builder editing verdicts. The session then wrote
    verdicts.lock by hand; the procedure now says the lock is the gate's alone.

v0.21.0

Choose a tag to compare

@timessuman timessuman released this 28 Sep 14:03
891a05f

Dev builds, so a fix is tried on a real project before it ships, and the gate
fixes that trial on jig-site turned up.

Added

  • Dev builds. A version carrying -dev (0.21.0-dev.1) is a local build
    of a fix, tried on a real project before it is released. npm has no such
    version, so its skill, its commands and its Stop hook run the jig on PATH
    rather than npx jig-ui@<version>; a hook that could not run would let every
    agent stop unchecked. scripts/pack-dev.mjs packs one. Installing a release
    afterwards puts the npx hook back in place of the dev one.

Fixed

  • The Stop hook refreshes only the probes it judges. It re-rendered every
    critiqued page on every stop, so a link added to jig-site's header left sixty
    probe files changed on pages no one was working on, and three sessions
    committed them. A page's probes are refreshed when its own critique or tweak
    runs.
  • A mockup is checked before it goes to the owner. The pause for approval
    skipped the drawing check, so on jig-site two mockup sessions put a drawing
    the check refused to the owner, reported the gate's blocks as "waiting on
    owner review", and the owner approved a drawing the gate then refused make
    for.
  • A region label may say its name with spaces. "on this page" now labels the
    spec's on-this-page; hyphens, underscores and spaces compare as one.
  • A comment after a size is a comment. phone: # judged at 360px over a
    full composition was refused as a one-line size.
  • A critique's report names every finding its verdict files hold. jig-site's
    Guide critique held seven and listed six; make reads the report. Checked
    where the project keeps a REPORT.md beside the verdicts.
  • A session cannot change Jig's mode file. A jig-site make round narrowed
    --size-rail in mode.editorial.css to make three columns fit; update
    owns that file, and a project's own values go in its brand file or stylesheet.
  • A decide amendment answers for its own reason. Like a tweak's, only the
    **Why…:** paragraphs it adds must quote the owner; three jig-site amendments
    had to relabel an earlier round's reason before the gate let them stop.
  • A finding is fixed only where the source it cited changed. verdicts
    told jig-site's fourth home critique that seven findings were fixed; four had
    flipped because its readers read the same unchanged lines differently. A
    finding judged ok is now fixed when a line it cited (file:line) changed, or
    its file when it cited no line, or any source when it cited nothing. The rest
    are reported as judged ok though the lines they cited did not change: a
    different reading, or a fix made where the finding did not point.
  • The gate asks for the verdict lock to be committed. It writes
    verdicts.lock when a critique or tweak stops, after the agent has committed,
    so every such session on jig-site left it behind. When the verdicts are
    committed and the lock is not, it stops the session once to commit it.
  • A tweak's decision quotes the owner's recorded words. A jig-site tweak
    shown a screenshot wrote an exception to E-51 "given directly by the owner
    … by reference rather than words". A tweak's new **Why:** now meets
    decide's rule (the owner's words in quotation marks, not given, or
    **Why (inferred):**), and its quotations must be in tweak.json's change.
    A reason decide wrote earlier is not the tweak's to answer for.
  • spec, mockup and critique write under .jig/ only. On jig-site a
    critique swapped the rule its page demonstrates to get past a block, then
    re-judged the page it had changed, and a mockup session wrote the site's
    stylesheet. The gate stops either.
  • An approved drawing changed afterwards goes back to pending. The session
    that recorded a jig-site approval then redrew frames and moved a switch.
  • Quoted tool output is not the page's copy. The probe's em-dash scan skips
    <pre>, <code>, <samp> and <kbd>, as it skips quotations: jig-site's
    home page quotes jig check's real output, whose wording has one. Probe
    version 9.
  • A drawing's size frames are the class frame, not any class containing
    it.
    jig-site's home drawing captioned its rule specimens spec-frame, and
    the gate split every size frame at each one and reported regions missing.

v0.20.1

Choose a tag to compare

@timessuman timessuman released this 27 Sep 04:13
dc53cab

jig gate run by hand no longer tells an agent that a passing tweak failed.

Fixed

  • jig gate run by hand says what it cannot see. With no session
    transcript it cannot tell which command ran, so a tweak's re-judged verdicts
    read as a builder's edits. On jig-site an agent ran it three times mid-tweak,
    was told its attempts were spent, and reported a tweak the Stop hook passed
    as failing. A hand run now says so, blocks nothing and counts no attempt.

v0.20.0

Choose a tag to compare

@timessuman timessuman released this 27 Sep 03:55
d4a3387

Critiques count owner rulings apart and say what the last round fixed; the gate
keeps decisions the owner's, and tweak works on its first real pages.

Added

  • A ruled verdict. A finding the owner has already decided is judged
    ruled, citing the decision's heading in ruling, and counted apart
    (ruled=). On jig-site five of a header critique's 15 findings were the
    owner's rulings, counted as findings and sent back to make.
  • What happened to the last round's findings. jig verdicts compares a
    critique with the one before it in git and prints how many were fixed, are
    still open, were ruled, and are new, with the ids. The report carries it.
  • jig verdicts --reprobe re-takes probes taken on an older page. The
    gate and --reprobe now find the page from the probes themselves, so a spec
    whose surface: is a sentence no longer leaves stale probes blocking.
  • The probe names text drawn in a weight or style no loaded face covers,
    which the browser fakes from the nearest face. It is an error, like a page in
    the default font. Probe version 8.
  • jig update names the tokens each refreshed mode file gained or lost,
    and those an edited one did not get, since anything aliasing tokens (a
    Tailwind @theme) needs the same change.

Changed

  • decide keeps the owner's reasons apart from its own. A Why: is the
    owner's words in quotation marks or not given; anything the agent adds goes
    under **Why (inferred):**. The gate checks each decision the session wrote
    or changed.
  • make does not edit DECISIONS.md. The gate stops a make session that
    changed it; decisions go through decide or tweak.
  • A spec that no longer matches its approved drawing is not approved. In
    spec and make, each region the spec lists must be labelled in its size's
    frame. Region names are read as the spec means them: a parenthetical
    qualifies, "(… only)" is conditional, and a list names several regions.
  • Critique's reader arms do not read the page's history: no earlier
    critiques, no git log. Which findings were fixed is the CLI's question.
  • P-14 says how a menu in a fixed header behaves: it lies over the page, a
    tap outside closes it and does nothing else, controls in the header row work
    on the first tap, and a long list scrolls inside itself.
  • M-01's script budget is "none by default", not an absolute zero: a
    feature may have script, named in a comment and as small as it allows.

Fixed

  • tweak's gate blocked both of its first real uses, on jig-site. Three
    causes, all in the gate:

    • It took the session's command from any line that mentioned /jig, so the
      command file Jig loads into the session, and tool results quoting it, read
      as /jig critique. Only what the user sent counts now.
    • It looked for the critique under the spec's surface: field, which on
      jig-site is a sentence. A critique lives under the spec's file name, as
      the command file says.
    • It held the page to its structure at the commit that first approved the
      mockup, before five confirmed, critiqued rounds. It now holds the page to
      its structure at its last critique.

    The gate also works on the spec the command names (/jig tweak site-header),
    not whichever spec was written last.

  • jig verdicts refuses reasons that judge nothing. On jig-site a render
    arm stopped with 33 of 34 verdicts reading "DRAFT, being refined", and the
    review passed with full counts. A placeholder reason is now an error, and so
    is one reason given word for word by four or more ok or finding verdicts
    in a file. n/a verdicts may still share a reason, since one absence can
    clear many rules.

0.19.0

Choose a tag to compare

@timessuman timessuman released this 27 Sep 02:03
f83cd20

A new command, tweak, for a small change to a built page that its approved
mockup does not show.

Added

  • /jig tweak: a small change to a built page, in one pass. On jig-site
    half a day's rounds were changes the approved mockup does not show: a word
    that wrapped, a mark's colour, how a version is written. Each went through
    decide, spec, make and a full critique of every page it touched, or
    would have been an edit by hand, which is the drift Jig exists to catch.
    tweak records the decision if the change is one, brings the spec in line if
    it disagrees, builds the change, and has a reader that did not make it
    re-judge only the verdicts the change could affect. The gate bounds it: the
    regions under the spec's sizes: must match the ones approved with the
    mockup, the drawing must be unchanged since its approval, and the tweak may
    change only the verdicts it names in tweak.json, each re-judged and stamped.
    A change to structure is refused and routed through spec and mockup.
  • A critique's lock records each verdict. verdicts.lock now holds a digest
    per verdict as well as the whole-file checksum, so the gate can tell which
    verdicts a tweak changed. A lock written before this release is trusted once
    by the first tweak and rewritten.

0.18.10

Choose a tag to compare

@timessuman timessuman released this 26 Sep 01:15
5dec42b

The rule against a stranded word holds in every browser, and the probe checks
it where text-wrap: pretty is not supported.

Fixed

  • B-106 holds in every browser, and the probe checks it there. The rule's
    correction was text-wrap: balance and pretty, which Firefox and Safari
    before 26 ignore. jig-site's Versions page did exactly that, passed its
    critique in Chromium, and stranded "back." under 0.6.0 on the owner's phone.
    The correction now adds a fallback: join each block's last two words with a
    non-breaking space, in one function in the template layer. The render probe
    (version 7) also lays the page out without text-wrap: pretty and records
    every block that ends on one word, and jig verdicts refuses a B-106 "ok"
    that it contradicts.

0.18.9

Choose a tag to compare

@timessuman timessuman released this 25 Sep 23:57
8cde972

Each theme names its colour scheme, and no release summary names a rule by its
id.

Changed

  • No release summary names a rule by its id. jig-site's Versions page shows
    each summary, and the site keeps rule ids out of its interface. Three named a
    rule as A-05, I-118 or H-47; they now name it in words. A test keeps ids
    out of summaries.

Fixed

  • Each theme names its color-scheme. The default brand file's :root
    said color-scheme: light dark, which follows the device, and its dark blocks
    set tokens only. jig-site added a theme toggle and a reader who chose the
    other theme got the right page inside the device's scrollbars and form
    controls. Both dark blocks now set color-scheme: dark, [data-theme="light"]
    sets light, and T-09 says why. A project whose brand file predates this
    adds the same three declarations.