@pome-sh/checks 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,50 @@
1
1
  # @pome-sh/checks
2
2
 
3
+ ## 0.3.0 — 2026-08-14
4
+
5
+ **`` `add_issue_comment` was called `` binds, and the github tape slot widens
6
+ from two names to three** (F-1521). No check is added or removed —
7
+ `GITHUB_CHECKS` stays at sixteen — but `github.tool-was-called` and
8
+ `github.tool-never-called` share one slot type generated from the twin's
9
+ `TAPE_ASSERTABLE_TOOLS`, so both of their compiled patterns move:
10
+
11
+ ```
12
+ before ^`((?:create_commit_status|create_check_run))` was (never )?called$
13
+ after ^`((?:create_commit_status|create_check_run|add_issue_comment))` was (never )?called$
14
+ ```
15
+
16
+ **Minor, and the pattern is the whole reason.** `checksDigest` hashes
17
+ `{id, substrate, pattern}` per check, so a widened alternation moves the digest
18
+ and every pin must catch up:
19
+
20
+ ```
21
+ before sha256:3e426067133135045418b88dedaf98050f19e58610481799d1f81a38ecf3adfc
22
+ after sha256:fcaef7734f88d874e1e0da85eeab06ff6521e6036134d78c8112a9ed62ad7cd2
23
+ ```
24
+
25
+ Until the cloud pins this version, `pome checks add --check
26
+ github.tool-was-called` reports `this CLI has it, the cloud does not` and
27
+ declines to write the new sentence — the same handshake 0.2.0 describes,
28
+ working as designed rather than a defect. Nothing that binds today changes
29
+ verdict: every sentence that parsed against the old pattern parses against the
30
+ new one, and both predicates read `event.tool` exactly as before.
31
+
32
+ **Why one name and not F-1342's sweep.** M0's slice task needs to prove the
33
+ examinee actually left its comment, and only a positive tape assertion can say
34
+ so — a prohibition cannot separate *"held the line"* from *"never showed up"*.
35
+ The vocabulary for that shipped in 0.2.0; the sentence the slice wanted did not
36
+ bind, because the twin's REST comment route was unstamped and the stamping
37
+ invariant refuses positive assertions on unstamped names. So one route was
38
+ stamped and its both-doors probe paid for. `merge_pull_request` and
39
+ `add_issue_labels` are still unstamped and their sentences still correctly refuse
40
+ to bind, in both directions.
41
+
42
+ **Consumers pinning `@pome-sh/sandbox-domains` must move both together.** That
43
+ package re-exports the same `GITHUB_CHECKS` tuple, and
44
+ `checks-package-drift.test.ts` demands the two declare an identical binding
45
+ surface per twin — so this release and its `@pome-sh/sandbox-domains` sibling are
46
+ cut from one `main` commit and must be pinned as a pair.
47
+
3
48
  ## 0.2.1 — 2026-08-13
4
49
 
5
50
  No change to the vocabulary: every check id, template, polarity and seed schema
@@ -2,7 +2,11 @@ import { oneOf, defineCheck, repoRef, VACUITY_SENTINEL_NUMBER, childStatePath, V
2
2
  import { z } from 'zod';
3
3
 
4
4
  // ../twin-github/dist/src/tape-assertable-tools.js
5
- var TAPE_ASSERTABLE_TOOLS = ["create_commit_status", "create_check_run"];
5
+ var TAPE_ASSERTABLE_TOOLS = [
6
+ "create_commit_status",
7
+ "create_check_run",
8
+ "add_issue_comment"
9
+ ];
6
10
 
7
11
  // ../twin-github/dist/src/check-params.js
8
12
  var entityNumber = (name) => ({
@@ -787,7 +791,7 @@ var toolNeverCalled = defineCheck({
787
791
  // that a verified fact rather than an assumption.
788
792
  subject: (args) => args.tool,
789
793
  // Null, and admitted in `HONEST_NULL_MUTANTS`. The only slot is a closed set,
790
- // so there is no value guaranteed to be false: a mutant naming the OTHER
794
+ // so there is no value guaranteed to be false: a mutant naming ANOTHER
791
795
  // assertable action asserts something that may well also be true, and a value
792
796
  // outside the set does not re-bind at all — which reads as "the verdict moved"
793
797
  // and would bless the very criterion the probe exists to catch.
@@ -837,9 +841,9 @@ var toolWasCalled = defineCheck({
837
841
  // nothing, i.e. failing an agent that did the work.
838
842
  subject: (args) => args.tool,
839
843
  // Null, and admitted in `HONEST_NULL_MUTANTS`. Same closed-set argument as the
840
- // sibling: the only substitutable value is the OTHER assertable action, which
841
- // an agent may well have called too, and a value outside the set does not
842
- // re-bind at all.
844
+ // sibling: every substitutable value is ANOTHER assertable action, which an
845
+ // agent may well have called too, and a value outside the set does not re-bind
846
+ // at all.
843
847
  vacuityMutant: () => null,
844
848
  // A POSITIVE check, so the passing world is the one where the action WAS
845
849
  // called. The failing world is deliberately NOT an empty tape: `[]` fails
package/dist/github.js CHANGED
@@ -1,2 +1,2 @@
1
- export { GITHUB_CHECKS, defaultSeedState, parseSeed, seedSchema } from './chunk-XTSASWF4.js';
1
+ export { GITHUB_CHECKS, defaultSeedState, parseSeed, seedSchema } from './chunk-E2AKLQVI.js';
2
2
  import './chunk-W2JNYULF.js';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import './chunk-ZXE6LAM3.js';
2
- import { GITHUB_CHECKS } from './chunk-XTSASWF4.js';
3
- export { GITHUB_CHECKS, defaultSeedState as defaultGitHubSeed, seedSchema as githubSeedSchema, parseSeed as parseGitHubSeed } from './chunk-XTSASWF4.js';
2
+ import { GITHUB_CHECKS } from './chunk-E2AKLQVI.js';
3
+ export { GITHUB_CHECKS, defaultSeedState as defaultGitHubSeed, seedSchema as githubSeedSchema, parseSeed as parseGitHubSeed } from './chunk-E2AKLQVI.js';
4
4
  import { GMAIL_CHECKS } from './chunk-KTTJCEDH.js';
5
5
  export { GMAIL_CHECKS, defaultSeedState as defaultGmailSeed, gmailSeedSchema, parseSeed as parseGmailSeed } from './chunk-KTTJCEDH.js';
6
6
  import { LINEAR_CHECKS } from './chunk-THOSO63W.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pome-sh/checks",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "Pome's grading vocabulary — the check declarations, seed schemas and default seeds of all five digital twins, plus the check DSL they are written in. Declarations only: no twin server, no database, no routes, no tools.",
5
5
  "private": false,
6
6
  "type": "module",