tamperward 1.4.5 → 1.4.6

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 (2) hide show
  1. package/README.md +11 -5
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -26,6 +26,9 @@ earlier layers shorten the feedback loop for agents that carry them.
26
26
  > Apache-2.0 · zero runtime model calls · every headline claim below is measured, with
27
27
  > the pre-registered predictions (including the refuted ones) committed to this repo
28
28
 
29
+ **[Docs & guide](https://hexrift.github.io/tamperward/)** ·
30
+ **[The launch post](https://hexrift.github.io/tamperward/blog/what-agents-do-when-you-block-their-shortcuts)** — how these numbers were measured, and which of my own bets lost
31
+
29
32
  ## Install
30
33
 
31
34
  ```bash
@@ -35,12 +38,12 @@ npx tamperward init
35
38
  One idempotent command wires the policy and every enforcement point — it never
36
39
  overwrites anything you wrote, and `--dry-run` shows the plan first:
37
40
 
38
- | point | what it wires |
41
+ | what | wired as |
39
42
  | --- | --- |
43
+ | policy | a commented baseline `.tamperward.yml` — the defaults apply even without it |
40
44
  | agent loop | Claude Code `PreToolUse` deny + `Stop` sweep, merged into `.claude/settings.json` |
41
45
  | pre-commit | husky when present, the plain git hook otherwise |
42
46
  | CI | a PR-gate workflow with out-of-band sign-off (details below) |
43
- | policy | a commented baseline `.tamperward.yml` — the defaults apply even without it |
44
47
 
45
48
  Or run the views directly:
46
49
 
@@ -78,6 +81,7 @@ tamperward: 2 blocking
78
81
  evidence 2 test block(s) removed from test/calc.test.js
79
82
  instead Keep the assertions and fix the code. Removing test blocks to go
80
83
  green is the tamper.
84
+ sign-off tamperward allow test-deletion --file test/calc.test.js --reason "..."
81
85
 
82
86
  A blocking finding clears only with a human sign-off. In CI that sign-off is
83
87
  out-of-band — a PR label applied by a reviewer — never a file committed on the
@@ -89,7 +93,7 @@ Under GitHub Actions each finding also lands as an **inline annotation on the di
89
93
 
90
94
  ## The rules
91
95
 
92
- Nine mechanical rules, deterministic by construction, `block` by default:
96
+ Nine mechanical rules, deterministic by construction — eight `block`, one `warn`:
93
97
  `test-deletion` (AST block-count, rename-out-of-glob, shell mutation), `test-skip`
94
98
  (including `.only`, which narrows the suite), `ts-any-cast`, `lint-suppression`,
95
99
  `coverage-lowering` (Jest and Vitest shapes, all four metrics, `package.json` included),
@@ -97,8 +101,10 @@ Nine mechanical rules, deterministic by construction, `block` by default:
97
101
  (flags and the env-var escape hatches), and `snapshot-rewrite` (`warn` — see the FP study
98
102
  below for why).
99
103
 
100
- Three heuristics ship as `warn` and never block until their precision clears the bar:
101
- `assertion-weakening`, `guard-removal`, `ts-any-launder`.
104
+ Two heuristic rule names `assertion-weakening` and `guard-removal` are **reserved
105
+ in the baseline policy but not yet built**: they get detectors only once a measured
106
+ negatives corpus exists (SPEC §7.A), enter as `warn`, and never block until their
107
+ precision clears the bar.
102
108
 
103
109
  The policy file itself is un-ignorable, CI reads the policy from the **merge-base** (a PR
104
110
  cannot govern its own verdict), and the agent honours no sign-off it can author — the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tamperward",
3
- "version": "1.4.5",
3
+ "version": "1.4.6",
4
4
  "description": "The deterministic agent-integrity gate. One ruleset, evaluated on the actual diff/commands as a verdict, enforced everywhere a change can be made.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "hexrift",