@pome-sh/checks 0.4.0 → 0.4.2

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.
Files changed (3) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +33 -64
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @pome-sh/checks
2
2
 
3
+ ## 0.4.2 — 2026-09-15
4
+
5
+ Version-only release: publish-relevant paths changed and no `## Unreleased`
6
+ entry was supplied, so this heading is the whole record. `@pome-sh/checks`'s bytes
7
+ moved under `packages/checks/`.
8
+
9
+ - 0cc9708 Simplify user-facing documentation (#537)
10
+
11
+ ## 0.4.1 — 2026-09-01
12
+
13
+ Doc-only: a build-config comment no longer references the removed
14
+ `@pome-sh/adapter-claude-sdk` package. No API or behaviour change.
15
+
3
16
  ## 0.4.0 — 2026-08-29
4
17
 
5
18
  **Every twin's `parseSeed` refuses a key no seed field matches** (F-1689). The
package/README.md CHANGED
@@ -1,88 +1,57 @@
1
1
  # `@pome-sh/checks`
2
2
 
3
- The grading vocabulary of Pome's five digital twins: the **check declarations**,
4
- the **seed schemas** and the **default seeds**, plus the **check DSL** they are
5
- written in.
3
+ `@pome-sh/checks` contains the check declarations and seed contracts for Pome digital twins. It also exports the check DSL.
6
4
 
7
- Declarations only. No twin server, no database, no HTTP routes, no tool
8
- dispatch. If you want to *run* a twin, install
9
- [`@pome-sh/cli`](https://www.npmjs.com/package/@pome-sh/cli) (`npx @pome-sh/cli
10
- twin start github`) or pull the twin's container image — this package cannot
11
- start one and does not try to.
5
+ This package does not contain a twin server, database, HTTP route, or MCP dispatcher. Use [`@pome-sh/cli`](https://www.npmjs.com/package/@pome-sh/cli) to run a twin.
6
+
7
+ ## Install
12
8
 
13
9
  ```bash
14
10
  npm install @pome-sh/checks zod
15
11
  ```
16
12
 
17
- `zod` is a **peer dependency**, and installing your own copy is the point: the
18
- seed schemas are zod values, and two copies of zod in one process means two
19
- schema identities — `instanceof` fails and parsed results stop being
20
- interchangeable. One zod, one identity.
21
-
22
- ## What it is for
23
-
24
- A Pome task scores an agent with criteria. A `[code]` criterion is graded by a
25
- **check**: a declared, templated assertion over the twin's final state, its seed
26
- compared against its final state, or the recorded tape of tool calls. This
27
- package is where those declarations live, so the thing that grades a run and the
28
- twin that produced it agree on the vocabulary rather than each keeping its own
29
- copy of it.
13
+ Node.js 24 or later is required. `zod` is a peer dependency and is not bundled.
30
14
 
31
15
  ## Use
32
16
 
33
- Everything under one specifier, with the seed helpers prefixed by twin:
17
+ Import all twin declarations from the package root:
34
18
 
35
19
  ```ts
36
20
  import { GITHUB_CHECKS, TWIN_CHECKS, parseGitHubSeed, renderCheck } from "@pome-sh/checks";
37
21
 
38
- const check = GITHUB_CHECKS.find((c) => c.id === "github.issue-closed");
22
+ const check = GITHUB_CHECKS.find((candidate) => candidate.id === "github.issue-state");
39
23
  ```
40
24
 
41
- Or one twin at a time, keeping that twin's own names:
25
+ Import one twin through its subpath when you need its unprefixed seed exports:
42
26
 
43
27
  ```ts
44
28
  import { GITHUB_CHECKS, parseSeed, seedSchema } from "@pome-sh/checks/github";
45
29
  ```
46
30
 
47
- Subpaths: `./github`, `./slack`, `./stripe`, `./gmail`, `./linear`, and `./dsl`
48
- for the DSL alone.
31
+ Available subpaths are `./github`, `./gmail`, `./linear`, `./slack`, `./stripe`, and `./dsl`.
49
32
 
50
- | Export | What |
33
+ ## Main exports
34
+
35
+ | Export | Purpose |
51
36
  | --- | --- |
52
- | `GITHUB_CHECKS`, `SLACK_CHECKS`, `STRIPE_CHECKS`, `GMAIL_CHECKS`, `LINEAR_CHECKS` | Each twin's declarations, in authoring order |
53
- | `TWIN_CHECKS` | The five arrays keyed by twin id |
54
- | `CHECKS_TWIN_NAMES`, `ChecksTwinName` | The five twin ids, and the type derived from them |
55
- | `parse<Twin>Seed`, `<twin>SeedSchema`, `default<Twin>Seed` | Seed contract per twin |
56
- | `defineCheck`, `parseCheck`, `renderCheck`, `checkPattern`, `checksDigest`, `templateSlots`, `statePath`, `childStatePath` | The DSL |
57
- | `GitHubCheck`, `GmailCheck`, `LinearCheck`, `SlackCheck`, `StripeCheck` | Each twin's check element type. Every twin declares its own `Check<TArgs>` over its own state, so the barrel prefixes them; the per-twin subpaths keep the plain name `Check` |
58
- | `CheckDefinition`, `Check…State` types | The generic declaration type, and each twin's state shape — what you want when the twin is a parameter rather than known |
59
- | `VACUITY_SENTINEL`, `VACUITY_SENTINEL_NUMBER`, `VACUITY_SENTINEL_SNAKE` | The values that mark an assertion no state can satisfy |
60
-
61
- `applySeed` and `loadSeedFromEnv` are **not** exported. The first writes rows
62
- into a live SQLite database and the second reads `process.env`; both are twin
63
- runtime behaviour, not declarations.
64
-
65
- ## Versioning
66
-
67
- Pre-1.0, so `^0.x` caret semantics apply and **minor plays the major role**:
68
-
69
- - **Minor (`0.N+1.0`)** — anything a consumer must act on: a check id renamed or
70
- removed, a template changed, a polarity flipped, a seed schema tightened, an
71
- `engines` floor bump.
72
- - **Patch (`0.N.x`)** — additive checks or exports, wording that does not change
73
- a pattern, internal implementation swaps behind an unchanged surface.
74
-
75
- A grading vocabulary is a contract in a stricter sense than a normal library: a
76
- renamed check id does not break a build, it silently stops binding, and a
77
- criterion that stops binding scores nothing. Treat every id as public.
78
-
79
- ## Where the source lives
80
-
81
- Nowhere in this package. Every declaration is re-exported from the twin that
82
- owns it (`packages/twin-*/src/check-*.ts`) and the DSL from
83
- `packages/sdk/src/checks.ts`, all in
84
- [pome-sh/digital-twins](https://github.com/pome-sh/digital-twins). Their
85
- compiled output is inlined here at build time, so this package declares no
86
- `@pome-sh/*` dependency and there is no second copy to drift.
87
-
88
- Licence: Apache-2.0.
37
+ | `GITHUB_CHECKS`, `GMAIL_CHECKS`, `LINEAR_CHECKS`, `SLACK_CHECKS`, `STRIPE_CHECKS` | Check declarations for each twin |
38
+ | `TWIN_CHECKS` | Check arrays keyed by twin ID |
39
+ | `CHECKS_TWIN_NAMES`, `ChecksTwinName` | Supported twin IDs and their type |
40
+ | `parse<Twin>Seed`, `<twin>SeedSchema`, `default<Twin>Seed` | Prefixed seed exports |
41
+ | `defineCheck`, `parseCheck`, `renderCheck`, `checkPattern`, `checksDigest` | Core check DSL |
42
+ | `statePath`, `childStatePath`, `templateSlots` | DSL helpers |
43
+ | `GitHubCheck`, `GmailCheck`, `LinearCheck`, `SlackCheck`, `StripeCheck` | Twin-specific check types |
44
+ | `CheckDefinition`, `Check...State` | Generic check and state types |
45
+ | `VACUITY_SENTINEL`, `VACUITY_SENTINEL_NUMBER`, `VACUITY_SENTINEL_SNAKE` | Values that no state can satisfy |
46
+
47
+ `applySeed` and `loadSeedFromEnv` are not exported. They modify runtime state or read process configuration.
48
+
49
+ ## Source and packaging
50
+
51
+ The source declarations remain with their owning twins in `packages/twin-*/src/check*.ts`. The DSL source is in [`packages/sdk/src/checks.ts`](../sdk/src/checks.ts).
52
+
53
+ The build bundles those declarations into this package. The published manifest has no runtime `@pome-sh/*` dependencies.
54
+
55
+ Check IDs are public contract values. A renamed ID can stop a criterion from binding without a type error.
56
+
57
+ License: Apache-2.0.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pome-sh/checks",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
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",