vigiles 3.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.
Files changed (53) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/README.md +35 -22
  4. package/action.yml +4 -4
  5. package/dist/adapters/claude-code/adapter.js +1 -1
  6. package/dist/claude-code.d.ts +1 -1
  7. package/dist/claude-code.js +1 -1
  8. package/dist/cli.d.ts +1 -1
  9. package/dist/cli.js +387 -162
  10. package/dist/e2e.d.ts +1 -1
  11. package/dist/e2e.js +1 -1
  12. package/dist/{adapters/claude-code/eval-cache.d.ts → eval-cache.d.ts} +1 -1
  13. package/dist/{adapters/claude-code/eval-cache.js → eval-cache.js} +1 -1
  14. package/dist/{adapters/claude-code/eval.js → eval.js} +2 -2
  15. package/dist/harness-assert.d.ts +8 -8
  16. package/dist/harness-assert.js +5 -5
  17. package/dist/{adapters/claude-code/harness-test.d.ts → harness-test.d.ts} +4 -4
  18. package/dist/{adapters/claude-code/harness-test.js → harness-test.js} +4 -4
  19. package/dist/integration.d.ts +3 -3
  20. package/dist/integration.js +2 -3
  21. package/dist/{adapters/claude-code/mock-model.d.ts → mock-model.d.ts} +2 -2
  22. package/dist/{adapters/claude-code/run-hook.d.ts → run-hook.d.ts} +1 -1
  23. package/dist/{adapters/claude-code/run-hook.js → run-hook.js} +1 -1
  24. package/dist/{adapters/claude-code/sandbox.js → sandbox.js} +1 -1
  25. package/dist/setup-plan.d.ts +47 -7
  26. package/dist/setup-plan.js +104 -29
  27. package/dist/testing.d.ts +8 -3
  28. package/dist/testing.js +8 -3
  29. package/dist/unit.d.ts +2 -2
  30. package/dist/unit.js +1 -1
  31. package/hooks/session-start.sh +3 -3
  32. package/package.json +6 -6
  33. package/skills/audit-feedback-loop/SKILL.md +0 -76
  34. package/skills/enforce-rules-format/SKILL.md +0 -71
  35. package/skills/generate-logo/SKILL.md +0 -103
  36. package/skills/pr-to-lint-rule/SKILL.md +0 -97
  37. /package/dist/{adapters/claude-code/egress-entry.d.ts → egress-entry.d.ts} +0 -0
  38. /package/dist/{adapters/claude-code/egress-entry.js → egress-entry.js} +0 -0
  39. /package/dist/{adapters/claude-code/egress-proxy.d.ts → egress-proxy.d.ts} +0 -0
  40. /package/dist/{adapters/claude-code/egress-proxy.js → egress-proxy.js} +0 -0
  41. /package/dist/{adapters/claude-code/egress.d.ts → egress.d.ts} +0 -0
  42. /package/dist/{adapters/claude-code/egress.js → egress.js} +0 -0
  43. /package/dist/{adapters/claude-code/eval-baseline.d.ts → eval-baseline.d.ts} +0 -0
  44. /package/dist/{adapters/claude-code/eval-baseline.js → eval-baseline.js} +0 -0
  45. /package/dist/{adapters/claude-code/eval.d.ts → eval.d.ts} +0 -0
  46. /package/dist/{adapters/claude-code/judge.d.ts → judge.d.ts} +0 -0
  47. /package/dist/{adapters/claude-code/judge.js → judge.js} +0 -0
  48. /package/dist/{adapters/claude-code/mock-entry.d.ts → mock-entry.d.ts} +0 -0
  49. /package/dist/{adapters/claude-code/mock-entry.js → mock-entry.js} +0 -0
  50. /package/dist/{adapters/claude-code/mock-model.js → mock-model.js} +0 -0
  51. /package/dist/{adapters/claude-code/sandbox.d.ts → sandbox.d.ts} +0 -0
  52. /package/dist/{adapters/claude-code/stats.d.ts → stats.d.ts} +0 -0
  53. /package/dist/{adapters/claude-code/stats.js → stats.js} +0 -0
@@ -7,8 +7,8 @@
7
7
  {
8
8
  "name": "vigiles",
9
9
  "source": "./",
10
- "description": "Validate CLAUDE.md, audit feedback loops, and generate lint rules from PR comments",
11
- "version": "1.0.0"
10
+ "description": "Verify CLAUDE.md/AGENTS.md references, compile typed specs, and test the agent harness",
11
+ "version": "3.0.0"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vigiles",
3
- "version": "1.0.0",
4
- "description": "Validate CLAUDE.md, audit feedback loops, and generate lint rules from PR comments",
3
+ "version": "3.0.0",
4
+ "description": "Verify CLAUDE.md/AGENTS.md references, compile typed specs, and test the agent harness",
5
5
  "author": {
6
6
  "name": "zernie"
7
7
  },
package/README.md CHANGED
@@ -27,16 +27,16 @@ deterministic layer for the harness: it **lints** the references your instructio
27
27
  files make and **tests** that your hooks and skills actually fire. Two independent
28
28
  pillars — adopt either, or both:
29
29
 
30
- | | Pillar | What it does |
31
- | ----- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
32
- | **①** | **Verify your instruction files** | Every linter rule, file path, script, and code symbol your CLAUDE.md cites is checked against reality, so stale references can't silently mislead the agent. → [guide](docs/verifying-instruction-files.md) |
33
- | **②** | **Test your harness** | Your hooks and skills are code — vigiles tests they actually fire, **deterministically and free** (no model, no API key) before you pay for an eval. → [guide](docs/harness-testing.md) |
30
+ | | Pillar | What it does |
31
+ | ----- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
32
+ | **①** | **Lint your instruction files** | Every linter rule, file path, script, and code symbol your CLAUDE.md cites is checked against reality, so stale references can't silently mislead the agent. → [guide](docs/verifying-instruction-files.md) |
33
+ | **②** | **Test your harness** | Your hooks and skills are code — vigiles tests they actually fire, **deterministically and free** (no model, no API key) before you pay for an eval. → [guide](docs/harness-testing.md) |
34
34
 
35
35
  Neither pillar depends on the other — pick the one that hurts today. **Works with
36
36
  Claude Code and Codex** ([`vigiles/codex`](docs/harnesses.md)) behind a five-port
37
37
  adapter; [custom adapters welcome](docs/authoring-an-adapter.md).
38
38
 
39
- ## ① Verify — your CLAUDE.md lies to your agent
39
+ ## ① Lint — your CLAUDE.md lies to your agent
40
40
 
41
41
  Your CLAUDE.md says _"enforce `eslint/no-console`."_ But it was switched off
42
42
  months ago — and the agent trusts the claim. (Same story for the file path it
@@ -44,7 +44,7 @@ cites that got renamed, and the script that was deleted.)
44
44
 
45
45
  **Without vigiles:** nobody checks. The agent acts on fiction.
46
46
 
47
- **With vigiles:** `npx vigiles audit` resolves every reference against reality —
47
+ **With vigiles:** `npx vigiles lint` resolves every reference against reality —
48
48
 
49
49
  ```text
50
50
  CLAUDE.md (inline mode):
@@ -100,13 +100,15 @@ hijacking unrelated ones (precision). **[Full guide →](docs/harness-testing.md
100
100
 
101
101
  ## Quick start
102
102
 
103
- > **Paste into Claude Code or Codex:**
104
- >
105
- > > Install vigiles in this repo and run it. Verify my CLAUDE.md / AGENTS.md
106
- > > references and show me what's stale, then write and run a harness test for one
107
- > > of my hooks or skills. Use good defaults (both pillars, non-interactive), but
108
- > > **ask me first** whether to gate it in CI, whether to add a real-model eval,
109
- > > and whether to enforce strictly (`--strict`).
103
+ **Paste into Claude Code or Codex:**
104
+
105
+ ```text
106
+ Install vigiles in this repo and run it. Verify my CLAUDE.md / AGENTS.md
107
+ references and show me what's stale, then write and run a harness test for one
108
+ of my hooks or skills. Use good defaults (both pillars, non-interactive), but
109
+ ask me first whether to gate it in CI, whether to add a real-model eval, and
110
+ whether to enforce strictly (--strict).
111
+ ```
110
112
 
111
113
  Or do it yourself:
112
114
 
@@ -118,19 +120,30 @@ It's interactive in a terminal and non-interactive for agents/CI (or with
118
120
  `--yes`), so "set up vigiles" from a Claude Code / Codex prompt Just Works — and
119
121
  it installs a model-invocable **`test-harness` skill**, so afterward you can just
120
122
  tell your agent _"test my skills"_ and it picks the tier and writes the test.
121
- Scope `init` with `--pillars=verify|test|both`. Or write harness tests yourself in
122
- JS **or** TS (`*.harness.{mjs,ts}`) and run `npx vigiles test`. `init` wires CI as
123
- a `zernie/vigiles@v1` workflow — a composite over the same CLI:
124
123
 
125
- ```yaml
126
- - uses: actions/checkout@v4
127
- - uses: zernie/vigiles@v1 # audits by default; posts a sticky PR comment + a `valid` output
128
- ```
124
+ <details>
125
+ <summary>What <code>init</code> sets up</summary>
126
+
127
+ - **Both pillars** by default; scope with `--lint` / `--test` (one or both).
128
+ - Adds `vigiles` to your `devDependencies`.
129
+ - Installs the Claude Code plugin (skills + hooks) via the marketplace —
130
+ globally, never vendored into your repo.
131
+ - Wires CI as a `zernie/vigiles@v1` workflow (a composite over the same CLI):
132
+
133
+ ```yaml
134
+ - uses: actions/checkout@v4
135
+ - uses: zernie/vigiles@v1 # lints by default; posts a sticky PR comment + a `valid` output
136
+ ```
137
+
138
+ Prefer to write tests yourself? They can be JS **or** TS
139
+ (`*.harness.{mjs,ts}`) — run them with `npx vigiles test`.
140
+
141
+ </details>
129
142
 
130
143
  ## More
131
144
 
132
- - **[CLI & GitHub Action →](docs/cli.md)** — every command, the Action (inputs / output / versioning), the Claude Code plugin, and the five `audit` rules.
133
- - **[Skills →](docs/skills.md)** — 8 skills (`strengthen`, `migrate-to-spec`, `test-harness`, …) via `npx skills add zernie/vigiles`.
145
+ - **[CLI & GitHub Action →](docs/cli.md)** — every command, the Action (inputs / output / versioning), the Claude Code plugin, and the five `lint` rules.
146
+ - **[Skills →](docs/skills.md)** — consumer skills (`strengthen`, `migrate-to-spec`, `test-harness`, `edit-spec`, …) installed as a Claude Code plugin: `/plugin marketplace add zernie/vigiles` then `/plugin install vigiles@vigiles` (or let `vigiles init` do it).
134
147
  - **[Docs index →](docs/README.md)** · **[Research →](research/README.md)** · **[Related tools →](docs/related-tools.md)** (ast-grep, Dependency Cruiser, Ruler, rulesync).
135
148
  - Companion to [Feedback Loop Is All You Need](https://zernie.com/blog/feedback-loop-is-all-you-need).
136
149
 
package/action.yml CHANGED
@@ -7,11 +7,11 @@ branding:
7
7
 
8
8
  inputs:
9
9
  command:
10
- description: "Which vigiles command to run: 'audit' (verify references + integrity + coverage) or 'compile' (specs → markdown)."
10
+ description: "Which vigiles command to run: 'lint' (verify references + integrity + coverage) or 'compile' (specs → markdown)."
11
11
  required: false
12
- default: "audit"
12
+ default: "lint"
13
13
  paths:
14
- description: "Comma- or space-separated paths to operate on (.md files for audit, .spec.ts files for compile). Auto-discovers when empty."
14
+ description: "Comma- or space-separated paths to operate on (.md files for lint, .spec.ts files for compile). Auto-discovers when empty."
15
15
  required: false
16
16
  default: ""
17
17
  version:
@@ -64,7 +64,7 @@ runs:
64
64
  run: |
65
65
  set -euo pipefail
66
66
 
67
- cmd="${VIGILES_COMMAND:-audit}"
67
+ cmd="${VIGILES_COMMAND:-lint}"
68
68
  args=("$cmd")
69
69
 
70
70
  # paths: split on commas and whitespace into positional args.
@@ -14,7 +14,7 @@ const layout_js_1 = require("./layout.js");
14
14
  const runtime_js_1 = require("./runtime.js");
15
15
  const hook_protocol_js_1 = require("./hook-protocol.js");
16
16
  const model_mock_js_1 = require("./model-mock.js");
17
- const harness_test_js_1 = require("./harness-test.js");
17
+ const harness_test_js_1 = require("../../harness-test.js");
18
18
  exports.claudeCodeAdapter = {
19
19
  name: "claude-code",
20
20
  // The reference harness: every tier. Mockable transport (Anthropic SSE) and
@@ -6,7 +6,7 @@
6
6
  * is the adapter, so a future `vigiles/<other-harness>` can sit beside it.
7
7
  */
8
8
  export * from "./adapters/claude-code/plugin-loader.js";
9
- export * from "./adapters/claude-code/mock-model.js";
9
+ export * from "./mock-model.js";
10
10
  export * from "./adapters/claude-code/dialect.js";
11
11
  export * from "./adapters/claude-code/layout.js";
12
12
  export * from "./adapters/claude-code/runtime.js";
@@ -22,7 +22,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
22
22
  * is the adapter, so a future `vigiles/<other-harness>` can sit beside it.
23
23
  */
24
24
  __exportStar(require("./adapters/claude-code/plugin-loader.js"), exports);
25
- __exportStar(require("./adapters/claude-code/mock-model.js"), exports);
25
+ __exportStar(require("./mock-model.js"), exports);
26
26
  __exportStar(require("./adapters/claude-code/dialect.js"), exports);
27
27
  __exportStar(require("./adapters/claude-code/layout.js"), exports);
28
28
  __exportStar(require("./adapters/claude-code/runtime.js"), exports);
package/dist/cli.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * Commands:
6
6
  * vigiles init — scaffold a spec from scratch
7
7
  * vigiles compile — compile .spec.ts → .md with linter verification
8
- * vigiles audit — verify hashes, report coverage, detect duplicates
8
+ * vigiles lint — verify hashes, report coverage, detect duplicates
9
9
  * vigiles generate-types — emit .d.ts with types from project state
10
10
  */
11
11
  export {};