@fro.bot/systematic 2.9.0 → 2.9.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/README.md CHANGED
@@ -305,7 +305,7 @@ Configuration is loaded from multiple locations and merged (later sources overri
305
305
  },
306
306
  "agents": {
307
307
  "security-sentinel": {
308
- "model": "anthropic/claude-sonnet-4-5"
308
+ "variant": "thinking"
309
309
  },
310
310
  "workflow/systematic-implementer": {
311
311
  "steps": 20
@@ -326,11 +326,11 @@ Configuration is loaded from multiple locations and merged (later sources overri
326
326
  | `bootstrap.enabled` | `boolean` | `true` | Inject the `using-systematic` guide into system prompts |
327
327
  | `bootstrap.file` | `string` | — | Custom bootstrap file path (overrides default) |
328
328
 
329
- Agent overlays support `model`, `variant`, `temperature`, `top_p`, `permission`, `mode`, `color`, `steps`, `hidden`, exact-agent-only `disable`, and managed `skills`. `skills` uses bundled skill frontmatter names like `ce:review`; it is a shortcut that writes OpenCode `permission.skill` rules, not a native OpenCode agent field. Because `permission` and `skills` control tool access, they are only accepted from user config or `$OPENCODE_CONFIG_DIR/systematic.json`; project config may tune behavior but cannot loosen a user's permission policy.
329
+ Agent overlays support `model`, `variant`, `temperature`, `top_p`, `permission`, `mode`, `color`, `steps`, `hidden`, exact-agent-only `disable`, and managed `skills`. `color` accepts `#RGB`, `#RRGGBB`, or OpenCode named color tokens matching `[a-zA-Z][a-zA-Z0-9-]*`; whitespace/freeform numeric strings are rejected. `skills` uses bundled skill frontmatter names like `ce:review`; it is a shortcut that writes OpenCode `permission.skill` rules, not a native OpenCode agent field. Because `model` controls provider routing/cost/privacy and `permission`/`skills` control tool access, those fields are only accepted from user config or `$OPENCODE_CONFIG_DIR/systematic.json`. Project config may tune non-sensitive presentation and runtime fields such as `variant`, `temperature`, `top_p`, `mode`, `color`, `steps`, `hidden`, or exact-agent `disable`, but it cannot choose model/provider routing or loosen permission/capability policy.
330
330
 
331
- Systematic separates config-source precedence from overlay precedence. Config files merge in this order: user config, project config, then `$OPENCODE_CONFIG_DIR/systematic.json` if set. Higher-priority `agents.<key>` and `categories.<id>` entries replace lower-priority entries wholesale, while unrelated keys survive. Project overlays are the exception for security fields: same-key project overlays preserve user-level `permission` and `skills` fields instead of erasing them. After the effective config is built, exact `agents` overlays beat category overlays, which beat built-in policy defaults, bundled markdown defaults, and OpenCode inherited defaults.
331
+ Systematic separates config-source precedence from overlay precedence. Config files merge in this order: user config, project config, then `$OPENCODE_CONFIG_DIR/systematic.json` if set. Higher-priority `agents.<key>` and `categories.<id>` entries replace lower-priority entries wholesale, while unrelated keys survive. Project overlays are the exception for trust-sensitive fields: same-key project overlays preserve user-level `model`, `permission`, and `skills` fields instead of erasing them. After the effective config is built, exact `agents` overlays beat category overlays, which beat built-in policy defaults, bundled markdown defaults, and OpenCode inherited defaults.
332
332
 
333
- Bundled agents omit `model` by default so OpenCode model inheritance keeps working. Systematic emits a `model` only when you configure one explicitly; provider-specific zero-config model defaults are intentionally deferred.
333
+ Bundled agents omit `model` by default so OpenCode model inheritance keeps working. Systematic emits a `model` only when you configure one explicitly in user or custom config; provider-specific zero-config model defaults are intentionally deferred.
334
334
 
335
335
  Native OpenCode agents with the same emitted key are full replacements. An exact Systematic overlay for that key conflicts, while category overlays skip native replacements and continue applying to other bundled agents. Use one canonical agent key form across config sources (`security-sentinel` or `review/security-sentinel`) because alias collisions fail duplicate-target validation.
336
336
 
package/dist/cli.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  findCommandsInDir,
7
7
  findSkillsInDir,
8
8
  getConfigPaths
9
- } from "./index-488txzkn.js";
9
+ } from "./index-d5ewqz8w.js";
10
10
 
11
11
  // src/cli.ts
12
12
  import fs from "fs";
@@ -856,7 +856,7 @@ var DEFAULT_CONFIG = {
856
856
  agents: {},
857
857
  categories: {}
858
858
  };
859
- var SECURITY_OVERLAY_FIELDS = new Set(["permission", "skills"]);
859
+ var SECURITY_OVERLAY_FIELDS = new Set(["model", "permission", "skills"]);
860
860
  function isErrorWithCode(error) {
861
861
  return error instanceof Error && "code" in error;
862
862
  }
package/dist/index.js CHANGED
@@ -12,7 +12,7 @@ import {
12
12
  loadConfig,
13
13
  loadConfigWithSources,
14
14
  parseFrontmatter
15
- } from "./index-488txzkn.js";
15
+ } from "./index-d5ewqz8w.js";
16
16
 
17
17
  // src/index.ts
18
18
  import fs4 from "fs";
@@ -287,7 +287,7 @@ function validateTopP(sourcePath, keyPath, value) {
287
287
  }
288
288
  }
289
289
  function validatePositiveInteger(sourcePath, keyPath, value) {
290
- if (!Number.isInteger(value) || value < 1) {
290
+ if (typeof value !== "number" || !Number.isInteger(value) || value < 1) {
291
291
  throwConfigError(sourcePath, keyPath, "must be a positive integer");
292
292
  }
293
293
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fro.bot/systematic",
3
- "version": "2.9.0",
3
+ "version": "2.9.1",
4
4
  "description": "Structured engineering workflows for OpenCode",
5
5
  "type": "module",
6
6
  "homepage": "https://fro.bot/systematic",