immune-brain 4.0.0 → 4.0.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "immune-brain",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
4
4
  "description": "Immune-Brain agent skill system",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "immune-brain",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
4
4
  "description": "Immune-Brain Claude Code Host: native Enrollment, QA, Review, and Kernel settlement.",
5
5
  "author": {
6
6
  "name": "Immune-Brain Team"
@@ -39,7 +39,7 @@ function probeHost(env = process.env, platform = process.platform, hostVersion)
39
39
  }
40
40
 
41
41
  // plugins/immune-brain/runtime/plugin_version.ts
42
- var PLUGIN_VERSION = "4.0.0";
42
+ var PLUGIN_VERSION = "4.0.1";
43
43
 
44
44
  // plugins/immune-brain/runtime/claude/interaction.ts
45
45
  import { createHash, randomUUID } from "node:crypto";
@@ -71,7 +71,13 @@ Continue while the current projection has a valid action:
71
71
  Normal completion does not require a second user confirmation.
72
72
  5. For rework, follow the projected artifact state before editing. Resolve
73
73
  findings only after fixing and verifying their cause. Changed snapshots
74
- invalidate old evidence; run the newly required obligations.
74
+ invalidate old evidence; run the newly required obligations. On the second
75
+ rework of one acceptance id or anchor, the fix response must either state why
76
+ it covers every known trigger class of the violated invariant — the shared
77
+ guard, not only the reported path — or declare the trigger outside the
78
+ accepted contract and answer with `refute_finding` bound to fresh QA evidence
79
+ for that acceptance. Escalating a local heuristic a third time instead of
80
+ choosing one of those two responses is the loop this step exists to break.
75
81
  6. An unresolved decision pauses only dependent execution. On `awaiting_user`,
76
82
  invoke `request_authorization` directly before ending the turn; use the
77
83
  Decisions and Recovery route for its native-gate handling. End the turn if
@@ -133,6 +133,13 @@ file creation; then it validates the created artifact with
133
133
  continue through Kernel `revise_intent` authority and are not a Planner
134
134
  overwrite path.
135
135
 
136
+ Before authoring a TaskIntent that adds a field or verdict branch to a state
137
+ machine, enumerate every consumer of that value and of the version gates around
138
+ it: the producing side, each branch or switch that reads it, and any migration or
139
+ replay path that carries historical copies. Name all of them in `scope_hint`. An
140
+ authoring pass that traces only the producer is the defect this enumeration
141
+ exists to prevent.
142
+
136
143
  ### Initiative Carrier Preference
137
144
 
138
145
  For a large proposal split across multiple TaskIntents, exactly one planning
@@ -26,6 +26,14 @@ material task-local maintenance risks. Pure naming, length, complexity
26
26
  thresholds, formatting, and design preference are not findings and must not
27
27
  cause style-only rework.
28
28
 
29
+ When a finding repeats an acceptance id or anchor that already produced rework in
30
+ this task, do not file it as a fresh single-trigger defect. Name the invariant
31
+ class it belongs to and state in `evidence.trigger` why the previously accepted
32
+ fix does not cover that class: a second variant of the same trigger is a claim
33
+ about the fix's scope, not a new bug. A trigger the accepted contract explicitly
34
+ excludes is reported as an advisory note against that boundary, never as blocking
35
+ rework.
36
+
29
37
  Return exactly one JSON object with the fields required by the Loop review
30
38
  contract: `contract`, `role`, `task_id`, `snapshot_digest`, `decision` (`pass`
31
39
  or `rework`), and for `pass` include `approval` (`kind`, `authority_role`,
@@ -1,2 +1,2 @@
1
1
  // Generated by scripts/plugin_versioning.ts from the root package.json.
2
- export const PLUGIN_VERSION = "4.0.0" as const;
2
+ export const PLUGIN_VERSION = "4.0.1" as const;
@@ -26,6 +26,14 @@ material task-local maintenance risks. Pure naming, length, complexity
26
26
  thresholds, formatting, and design preference are not findings and must not
27
27
  cause style-only rework.
28
28
 
29
+ When a finding repeats an acceptance id or anchor that already produced rework in
30
+ this task, do not file it as a fresh single-trigger defect. Name the invariant
31
+ class it belongs to and state in `evidence.trigger` why the previously accepted
32
+ fix does not cover that class: a second variant of the same trigger is a claim
33
+ about the fix's scope, not a new bug. A trigger the accepted contract explicitly
34
+ excludes is reported as an advisory note against that boundary, never as blocking
35
+ rework.
36
+
29
37
  Return exactly one JSON object with the fields required by the Loop review
30
38
  contract: `contract`, `role`, `task_id`, `snapshot_digest`, `decision` (`pass`
31
39
  or `rework`), and for `pass` include `approval` (`kind`, `authority_role`,