Skip to content

Follow mossaic 0.5.0, and verify the action rather than only using it - #2

Merged
vyncint merged 1 commit into
mainfrom
update-mossaic-0.5
Aug 22, 2026
Merged

Follow mossaic 0.5.0, and verify the action rather than only using it#2
vyncint merged 1 commit into
mainfrom
update-mossaic-0.5

Conversation

@vyncint

@vyncint vyncint commented Aug 22, 2026

Copy link
Copy Markdown
Owner

The tracker was pinned to the v0.2.0 action while mossaic is at 0.5.0. The input surface is identical between the two, so the upgrade is a ref bump plus the two things mossaic's own track.example.yml grew since this copy was taken.

track.yml

  • vyncint/mossaic/action@v0.2.0@v0.5.0.
  • if: steps.art.outputs.today-short != '0' on the issue comment. Commenting every day, including days that need nothing, turns the tracking issue into a feed you stop reading — the one failure mode a reminder cannot survive.
  • Documents the version input, left on latest deliberately: following the newest published release is the point of this repository.

verify.yml — new

track.yml runs one plan once a day, so it can only ever prove that plan still works. verify.yml runs four (a field and none, a non-default top row, a year with nothing in it) and checks the report against itself:

  • Every one of the thirteen flat outputs is re-derived from the json output with the same jq expression the action uses. Those twenty value: expressions are plumbing that rots quietly when a field is renamed, and nothing in mossaic's own test suite can see it.
  • The documented enumerations (verdict ∈ drawn/reachable/holed, legibility ∈ clear/readable/faint).
  • field-level is an input echoed back, so a mismatch is plumbing by definition; and no field drawn must mean no field days owed.
  • The documented legibility thresholds — "under 20 is faint; 35 and up is plainly two colours" — against the reported separation.

Runs weekly, on dispatch, and on repository_dispatch (tool-published) so a mossaic release can trigger it. Always the published crate from crates.io, uncached.

Both jq paths and thresholds were checked against a real report before writing the assertions, not inferred from the action source.

Also

The standard commit-policy workflow and its two scripts, matching the four tool repos.

The tracker was pinned to the v0.2.0 action while mossaic is at 0.5.0.
The input surface is unchanged between them, so this is a ref bump plus
the two things mossaic's own track.example.yml grew since the copy was
taken: the comment gate, and the documented version input.

The gate matters more than it looks. Commenting on the tracking issue
every day, including days that need nothing, turns it into a feed you
stop reading -- which is the one failure mode a reminder cannot survive.
It now comments only when today is actually short.

Adds verify.yml, which is the part that makes this a testing repository
rather than a consumer. track.yml runs one plan once a day and can only
ever prove that plan still works. verify.yml runs four -- a field and
none, a non-default top row, a year with nothing in it -- and re-derives
every one of the thirteen flat outputs from the same JSON report with the
expression the action itself uses. The twenty output values are plumbing
that rots quietly when a field is renamed, and nothing in mossaic's own
tests can see it. Documented enumerations and the legibility thresholds
are checked too.

Always the published crate from crates.io, never a sibling build, and
uncached: a green run has to mean what a user installs today works.

Signed-off-by: Vyncint Ng <115854244+vyncint@users.noreply.github.com>
@vyncint
vyncint merged commit d440926 into main Aug 22, 2026
6 checks passed
@vyncint
vyncint deleted the update-mossaic-0.5 branch August 22, 2026 06:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant