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.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +2 -2
- package/README.md +35 -22
- package/action.yml +4 -4
- package/dist/adapters/claude-code/adapter.js +1 -1
- package/dist/claude-code.d.ts +1 -1
- package/dist/claude-code.js +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +387 -162
- package/dist/e2e.d.ts +1 -1
- package/dist/e2e.js +1 -1
- package/dist/{adapters/claude-code/eval-cache.d.ts → eval-cache.d.ts} +1 -1
- package/dist/{adapters/claude-code/eval-cache.js → eval-cache.js} +1 -1
- package/dist/{adapters/claude-code/eval.js → eval.js} +2 -2
- package/dist/harness-assert.d.ts +8 -8
- package/dist/harness-assert.js +5 -5
- package/dist/{adapters/claude-code/harness-test.d.ts → harness-test.d.ts} +4 -4
- package/dist/{adapters/claude-code/harness-test.js → harness-test.js} +4 -4
- package/dist/integration.d.ts +3 -3
- package/dist/integration.js +2 -3
- package/dist/{adapters/claude-code/mock-model.d.ts → mock-model.d.ts} +2 -2
- package/dist/{adapters/claude-code/run-hook.d.ts → run-hook.d.ts} +1 -1
- package/dist/{adapters/claude-code/run-hook.js → run-hook.js} +1 -1
- package/dist/{adapters/claude-code/sandbox.js → sandbox.js} +1 -1
- package/dist/setup-plan.d.ts +47 -7
- package/dist/setup-plan.js +104 -29
- package/dist/testing.d.ts +8 -3
- package/dist/testing.js +8 -3
- package/dist/unit.d.ts +2 -2
- package/dist/unit.js +1 -1
- package/hooks/session-start.sh +3 -3
- package/package.json +6 -6
- package/skills/audit-feedback-loop/SKILL.md +0 -76
- package/skills/enforce-rules-format/SKILL.md +0 -71
- package/skills/generate-logo/SKILL.md +0 -103
- package/skills/pr-to-lint-rule/SKILL.md +0 -97
- /package/dist/{adapters/claude-code/egress-entry.d.ts → egress-entry.d.ts} +0 -0
- /package/dist/{adapters/claude-code/egress-entry.js → egress-entry.js} +0 -0
- /package/dist/{adapters/claude-code/egress-proxy.d.ts → egress-proxy.d.ts} +0 -0
- /package/dist/{adapters/claude-code/egress-proxy.js → egress-proxy.js} +0 -0
- /package/dist/{adapters/claude-code/egress.d.ts → egress.d.ts} +0 -0
- /package/dist/{adapters/claude-code/egress.js → egress.js} +0 -0
- /package/dist/{adapters/claude-code/eval-baseline.d.ts → eval-baseline.d.ts} +0 -0
- /package/dist/{adapters/claude-code/eval-baseline.js → eval-baseline.js} +0 -0
- /package/dist/{adapters/claude-code/eval.d.ts → eval.d.ts} +0 -0
- /package/dist/{adapters/claude-code/judge.d.ts → judge.d.ts} +0 -0
- /package/dist/{adapters/claude-code/judge.js → judge.js} +0 -0
- /package/dist/{adapters/claude-code/mock-entry.d.ts → mock-entry.d.ts} +0 -0
- /package/dist/{adapters/claude-code/mock-entry.js → mock-entry.js} +0 -0
- /package/dist/{adapters/claude-code/mock-model.js → mock-model.js} +0 -0
- /package/dist/{adapters/claude-code/sandbox.d.ts → sandbox.d.ts} +0 -0
- /package/dist/{adapters/claude-code/stats.d.ts → stats.d.ts} +0 -0
- /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": "
|
|
11
|
-
"version": "
|
|
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": "
|
|
4
|
-
"description": "
|
|
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
|
|
31
|
-
| ----- |
|
|
32
|
-
| **①** | **
|
|
33
|
-
| **②** | **Test your harness**
|
|
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
|
-
## ①
|
|
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
|
|
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
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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 `
|
|
133
|
-
- **[Skills →](docs/skills.md)** —
|
|
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: '
|
|
10
|
+
description: "Which vigiles command to run: 'lint' (verify references + integrity + coverage) or 'compile' (specs → markdown)."
|
|
11
11
|
required: false
|
|
12
|
-
default: "
|
|
12
|
+
default: "lint"
|
|
13
13
|
paths:
|
|
14
|
-
description: "Comma- or space-separated paths to operate on (.md files for
|
|
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:-
|
|
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("
|
|
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
|
package/dist/claude-code.d.ts
CHANGED
|
@@ -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 "./
|
|
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";
|
package/dist/claude-code.js
CHANGED
|
@@ -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("./
|
|
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
|
|
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 {};
|