geonosis 2.10.0 → 2.11.1

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,77 @@
1
1
  # geonosis
2
2
 
3
+ ## 2.11.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [08611c4]
8
+ - @geonosis/cli@2.11.1
9
+
10
+ ## 2.11.0
11
+
12
+ ### Patch Changes
13
+
14
+ - 0f99e26: **The terse-output and comments law is one source, and nine artifacts copy it.** The owner's
15
+ instruction — agent OUTPUT is terse, code carries almost no comments — was already written in
16
+ `plugin/agents/geonosis-engineer.md` and nowhere else, so every other agent and skill the plugin
17
+ ships said nothing about it.
18
+
19
+ `tooling/agent-style.ts` now holds the two paragraphs verbatim. `plugin/agents/geonosis-reviewer.md`
20
+ and `plugin/agents/geonosis-walker.md` gain a `## Report style` section (they write findings, never
21
+ code, so only the output half applies); `geonosis-process` and `geonosis-backend` gain both halves
22
+ (both produce code); `geonosis-review` and `geonosis-walk` gain the output half. The two generated
23
+ `geonosis-code/SKILL.md` copies gain both, through `tooling/generate-skill.ts` rather than by hand —
24
+ `buildAgent()` and the new `STYLE` block interpolate the constants, so the engineer agent and the
25
+ skill can no longer drift from each other.
26
+
27
+ `tooling/agent-style-copies.test.ts` holds every copy byte-identical against the two constants, the
28
+ same way `heavy-slot-copies` and `envelope-writers` hold their copies. Nine copies of one rule is
29
+ how a rule becomes nine rules.
30
+
31
+ No rule, option, preset or counter changed; no consumer-visible behaviour changed.
32
+ - 0f99e26: The kit names no consumer. Docs, doc comments and messages describe the repos a pattern was measured in by their stack (a Medusa storefront, a Workers + D1 app, a Mercur v1 marketplace). Example configs are named the same way: `examples/medusa-storefront.*.json`, `examples/workers-app.*.json`. No behaviour changes.
33
+ - 0f99e26: The MCP preamble and the SessionStart digest count a rule that a config enables only under `overrides[]`. A repo that switched its architecture rules on per glob used to hear that its config "enables no rule", or that 0 of 0 rules ran at error. The MCP README lists `update` among the write tools, and a test now holds that list to the registry. `geonosis-mcp --help` names `--print-config-shape`.
34
+ - 0f99e26: The README's install line no longer pins a 1.x version. It says that `zod` and `better-result` are required peers of review and observability, not dependencies that come along. It names the floor packages as a class that versions apart, where it used to name `@geonosis/events` alone. A test now holds every `REQUIRED_PEERS` entry to a package that still requires it, and every by-name library and optional binary to the README.
35
+ - 0f99e26: A stale bin now recommends a build that takes the tree's lock.
36
+
37
+ `pnpm build` is one at a time per tree: it holds `<root>/.geonosis/build.lock` while turbo runs, so
38
+ a second build waits and says who is holding it. The refusal every bin prints for a stale `dist`
39
+ named `pnpm exec turbo run build --force --filter=<package>`, which goes straight to turbo and takes
40
+ no lock — so a developer following the tool's own instructions reopened the race the lock exists to
41
+ close.
42
+
43
+ The refusals now name `pnpm build --force --filter=<package>`. pnpm 11 passes both flags through to
44
+ the build script, so the same one package is rebuilt, behind the same lock: one door into a build.
45
+ `tooling/one-build-per-tree.bin.test.ts` runs the command the shims print against a held tree and
46
+ requires it to wait.
47
+ - 0f99e26: The plugin's own instructions now run as written.
48
+
49
+ - `/goal`'s proof, tick and handoff steps exited 2: `tick` takes `--plan --commit --proof` and runs
50
+ after the commit, `proof capture` takes the slug positionally, and `handoff` has no `--write`. A
51
+ test holds every fenced ledger command in the plugin's prose to the ledger's own usage lines.
52
+ - The walker agent names all thirteen probes and exactly the nine that need options.
53
+ - The gates rule names all five ratchet outcomes, adopted and unproven included.
54
+ - The write guard refuses an edit to `gate-baseline.identity.json`, the file the fall guard reads
55
+ to decide whether a lower number was earned.
56
+ - A file written by `MultiEdit` is formatted after the edit, as `Edit` and `Write` already were; the
57
+ guard before it covered all three and the formatter after it only two.
58
+ - 0f99e26: The `geonosis-process` skill says a tick's proof has to be a file on disk, and that a directory is refused, matching `tick`.
59
+ - Updated dependencies [0f99e26]
60
+ - Updated dependencies [0f99e26]
61
+ - Updated dependencies [0f99e26]
62
+ - Updated dependencies [0f99e26]
63
+ - Updated dependencies [0f99e26]
64
+ - Updated dependencies [0f99e26]
65
+ - Updated dependencies [0f99e26]
66
+ - Updated dependencies [0f99e26]
67
+ - Updated dependencies [0f99e26]
68
+ - Updated dependencies [0f99e26]
69
+ - Updated dependencies [0f99e26]
70
+ - Updated dependencies [0f99e26]
71
+ - Updated dependencies [0f99e26]
72
+ - Updated dependencies [0f99e26]
73
+ - @geonosis/cli@2.11.0
74
+
3
75
  ## 2.10.0
4
76
 
5
77
  ### Patch Changes
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  One manifest line pins the toolchain.
4
4
 
5
5
  ```bash
6
- pnpm add -D geonosis@1.4.0 # or: bun add -d geonosis@1.4.0
6
+ pnpm add -D geonosis # or: bun add -d geonosis
7
7
  npx geonosis --help
8
8
  ```
9
9
 
@@ -28,15 +28,17 @@ for everyone, whatever it is called.
28
28
  | `posthog-node` | `@geonosis/observability` | `pnpm add -D posthog-node` · `bun add -d posthog-node` |
29
29
  | `squawk-cli` | `@geonosis/release` (postgres, mikro-orm-ts) | `pnpm add -D squawk-cli@2.63.0` |
30
30
 
31
- The one peer everybody does pay for is `oxlint`: every gate lints, and oxlint is what loads the
32
- plugin. `zod` and `better-result` come with the packages whose public types are built out of them.
31
+ The peers everybody does pay for are `oxlint`, because every gate lints and oxlint is what loads the
32
+ plugin, and `zod` and `better-result`, because `@geonosis/review` and `@geonosis/observability`
33
+ put them in their public types. A consumer cannot call those packages without its own copy.
33
34
 
34
35
  Libraries a repo imports from its own source are added by name, on the same version:
35
36
  `@geonosis/policy`, `@geonosis/integrations`, `@geonosis/themekit`, `@geonosis/rails`,
36
37
  `@geonosis/evals`, `@geonosis/mcp`, and `create-geonosis` for a new repo.
37
38
 
38
- `@geonosis/events` is a FOUNDATION and versions on a line of its own, so this number says nothing
39
- about which one to install — ask npm for its latest.
39
+ The floor packages under `foundations/` and `domains/` (`@geonosis/events`, `@geonosis/db` and the
40
+ rest) each version on a line of their own, so this number says nothing about which one to install.
41
+ Ask npm for its latest.
40
42
 
41
43
  The lists above are exported as data (`TOOLCHAIN`, `BY_NAME`, `OPTIONAL_BINARIES`) and checked
42
44
  against the workspace by this package's own test, so a package added to the group cannot go missing
package/dist/index.d.ts CHANGED
@@ -35,9 +35,9 @@ type OptionalBinary = {
35
35
  };
36
36
  /**
37
37
  * #73 — `@geonosis/release` brought a pinned `squawk-cli` with platform binaries for three
38
- * architectures, and dielime's lockfile grew 395 lines for a Postgres linter it had no dialect for.
39
- * One manifest line multiplies that by the whole group, so every binary that only some consumers
40
- * need is an OPTIONAL peer here and the command that wants it prints this line.
38
+ * architectures, and a Medusa storefront's lockfile grew 395 lines for a Postgres linter it had no
39
+ * dialect for. One manifest line multiplies that by the whole group, so every binary that only some
40
+ * consumers need is an OPTIONAL peer here and the command that wants it prints this line.
41
41
  */
42
42
  declare const OPTIONAL_BINARIES: OptionalBinary[];
43
43
  /** The line to print when a command refuses for want of a binary nobody was made to install. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geonosis",
3
- "version": "2.10.0",
3
+ "version": "2.11.1",
4
4
  "types": "./dist/index.d.ts",
5
5
  "description": "One manifest line pins the whole toolchain: the geonosis CLI and every gate it runs, on one version.",
6
6
  "keywords": [
@@ -32,7 +32,7 @@
32
32
  "dist"
33
33
  ],
34
34
  "dependencies": {
35
- "@geonosis/cli": "2.10.0"
35
+ "@geonosis/cli": "2.11.1"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "oxlint": ">=1.77",
@@ -58,7 +58,7 @@
58
58
  "access": "public"
59
59
  },
60
60
  "scripts": {
61
- "build": "tsup",
61
+ "build": "tsx ../../tooling/build-step.ts tsup",
62
62
  "typecheck": "tsc --noEmit",
63
63
  "lint": "oxlint --config ../../.oxlintrc.json .",
64
64
  "test:unit": "vitest run --project unit --root ../.. --passWithNoTests \"$PWD\"",