Skip to content

A verdict with no reason is a silent boundary - #54

Merged
junixlabs merged 2 commits into
mainfrom
integrity-says-why
Sep 11, 2026
Merged

junixlabs merged 2 commits into
mainfrom
integrity-says-why

Conversation

@junixlabs

Copy link
Copy Markdown
Owner

Found by installing the package into a clean virtualenv and walking the printed first-run
steps as a stranger would.

The loop works end to end: init scaffolds six files and ships the skills, validate
passes, observe takes integrity to VALID, editing the cited symbol takes it back to
UNCERTAIN. That is the promise, demonstrated from a fresh install rather than asserted.

But the last line a new user reads was:

0 error(s), 0 warning(s)
integrity: UNCERTAIN

Something is wrong, nothing about what, at the moment they have the least context to
guess. That is the silent boundary INV-025 forbids, in the line people remember longest.

Now:

integrity: UNCERTAIN  (1 subject(s) rest on uncertain assertions: example.outcome.
                       An artifact moved under its observation, or nothing has observed it yet)
Verdict The reason names
INVALID how many errors, and which codes
UNCERTAIN the subjects that do not resolve, or rest on uncertain assertions, or the unmapped file count
VALID no errors, every subject resolves, nothing uncertain

integrity() keeps its signature and delegates, so the verdict is unchanged by explaining
it and stays computed rather than decided (INV-001). Written up at §14.2.

A name collision caught in passing: the CLI reused reason for the "no --repo given" note,
so on examples/ecommerce the integrity line printed (no --repo given) as its reason.
Renamed.

42/42 groups, 200/200 assertions. The new group's positive control fails when the
reason is emptied, and a separate check asserts an error verdict names its codes.

@junixlabs
junixlabs merged commit 81a94fb into main Sep 11, 2026
9 checks passed
@junixlabs
junixlabs deleted the integrity-says-why branch September 11, 2026 19:40
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