etymd 0.14.0 → 0.15.0
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/CHANGELOG.md +14 -0
- package/README.md +30 -19
- package/dist/{approve-QDOH2E7V.js → approve-MA4Z3TBT.js} +2 -2
- package/dist/{audit-42OHF7ON.js → audit-YSALDC2L.js} +5 -4
- package/dist/{brief-ZUQK3CFL.js → brief-DPZYSAMC.js} +2 -2
- package/dist/{chunk-LT7JMVV3.js → chunk-2RNQ6OLV.js} +43 -730
- package/dist/{chunk-PAMWS665.js → chunk-CEO3BXQB.js} +2 -1
- package/dist/{chunk-623W6KVC.js → chunk-DBWDMIYO.js} +1 -1
- package/dist/chunk-IWG77WV3.js +758 -0
- package/dist/{chunk-HWC6PKJM.js → chunk-Y6RZRED3.js} +1 -1
- package/dist/cli.js +35 -14
- package/dist/{doctor-CE5SD4JW.js → doctor-Y3DWDEBT.js} +5 -4
- package/dist/{fleet-F3XDEDCV.js → fleet-4FYZ3GBK.js} +5 -4
- package/dist/{gates-F4YPKWJR.js → gates-IBQ7HCAN.js} +2 -2
- package/dist/index.d.ts +164 -1
- package/dist/index.js +498 -166
- package/dist/{init-AHA7VRRI.js → init-H57H2JBE.js} +2 -2
- package/dist/premise-VMC3UUIB.js +333 -0
- package/dist/scan-W4US23MU.js +5 -0
- package/dist/{scan-TVX3FKK4.js → scan-XBOHDXAH.js} +2 -2
- package/package.json +2 -2
- package/dist/scan-QRTH6HAP.js +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# etymd
|
|
2
2
|
|
|
3
|
+
## 0.15.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 6f40a7d: `etymd premise "<task>"` — the task you hand an agent is an instruction too. Every path, script,
|
|
8
|
+
well-known doc and decision id the task names is verified against the repo (a missing thing the
|
|
9
|
+
task is _about_ ranks as risk), and a brief hands the agent the premises only it can verify.
|
|
10
|
+
`--file <path>` (`-` reads stdin), `--json` (schema `premise/1`), `--no-brief`, `--fail-on <tier>`.
|
|
11
|
+
Zero trace in a repo that never opted in; no ledger. Prose is read with stricter rules than a code
|
|
12
|
+
span (a script needs the `run` form, a directory claim needs a first segment that exists, a host
|
|
13
|
+
name is a URL) and every class left as prose is disclosed. The command/path/doc-reference/
|
|
14
|
+
decision-reference truth checks are now one shared implementation used by `instruction-truth` and
|
|
15
|
+
`premise` alike — ids, tiers and disclosures of existing findings are unchanged.
|
|
16
|
+
|
|
3
17
|
## 0.14.0
|
|
4
18
|
|
|
5
19
|
Knowledge pack **v8 → v12**: every generated hook and script is regenerated by `etymd gates`.
|
package/README.md
CHANGED
|
@@ -15,7 +15,8 @@ You wrote rules for your AI months ago. Since then a script got renamed, a folde
|
|
|
15
15
|
changed — and the AI still trusts every word. The file never complains when it goes stale; it just
|
|
16
16
|
keeps instructing, confidently, and you live with the results.
|
|
17
17
|
|
|
18
|
-
Etymd reads those instruction files and
|
|
18
|
+
Etymd reads those instruction files — and, when you ask, the task you are about to hand an agent —
|
|
19
|
+
and checks every claim against your actual project.
|
|
19
20
|
|
|
20
21
|
One command, run in your project's folder (needs Node ≥ 18.17, nothing else): `npx etymd audit`.
|
|
21
22
|
Here it is on a small demo project whose AGENTS.md still tells the AI to run `npm run start` and
|
|
@@ -110,6 +111,7 @@ cd your-project
|
|
|
110
111
|
npx etymd audit # verify every instruction claim against the repo
|
|
111
112
|
npx etymd init # opt in to drift: approve the baseline (+ scaffold AGENTS.md only if you have none)
|
|
112
113
|
npx etymd audit --fail-on risk # the CI gate
|
|
114
|
+
npx etymd premise "fix the flaky test in src/legacy/foo.test.ts" # is this the right task?
|
|
113
115
|
```
|
|
114
116
|
|
|
115
117
|
`audit` needs no setup — without `init` you get the full findings report and lose only drift
|
|
@@ -132,6 +134,14 @@ gate into a pipeline, see [In CI](#in-ci).
|
|
|
132
134
|
- **Drift vs baseline** — documented commands/artifacts/layout that existed at approval and are
|
|
133
135
|
now gone.
|
|
134
136
|
|
|
137
|
+
**`premise`** (via `etymd premise`) — the task itself is an instruction. Before an agent acts on
|
|
138
|
+
it, every path, script, well-known doc and decision id the task names is checked with the same
|
|
139
|
+
rules instruction files get. A path the task is _about_ and that does not exist ranks as **risk**:
|
|
140
|
+
the task would solve the wrong problem precisely. What cannot be read from files — that the named
|
|
141
|
+
things are the ones meant, that the mechanism the task assumes actually runs, that the state it
|
|
142
|
+
assumes holds — is handed to the agent in a brief, never guessed at. Nothing is remembered between
|
|
143
|
+
runs.
|
|
144
|
+
|
|
135
145
|
**`gate-integrity`** — a CI config is a claim too: checks enforced only in CI (failures surface a
|
|
136
146
|
slow pipeline after the agent finished — `etymd gates` generates the local mirror), checks only in
|
|
137
147
|
skippable local hooks, latent gaps (coverage collected but nothing gates on it; commitlint
|
|
@@ -161,24 +171,25 @@ personal and employer repos. See [the fleet manifest](#the-fleet-manifest-experi
|
|
|
161
171
|
|
|
162
172
|
## Commands
|
|
163
173
|
|
|
164
|
-
| Command | What it does
|
|
165
|
-
| -------------------------------- |
|
|
166
|
-
| `etymd audit` | Verify every claim; ranked findings (risk → gap → polish) + ledger diff. `--lens`, `--truth`, `--json`, `--no-ledger`, `--fail-on <tier>`.
|
|
167
|
-
| `etymd init` | Onboard: approve the committed baseline; scaffold a minimal AGENTS.md **only if missing**. Never overwrites.
|
|
168
|
-
| `etymd doctor` | Alias for `audit --truth`.
|
|
169
|
-
| `etymd context` | The economy view: per-file always-loaded footprint + extraction candidates.
|
|
170
|
-
| `etymd gates` | Install local git-hook gates (pre-commit / commit-msg / pre-push, plus a publish screen where something ships) built from your own check scripts — and from the repo's shell surface, where it has one.
|
|
171
|
-
| `etymd screen` | Content screen: find text that must never be published. Four scopes — `--staged`, `--message`, `--tree`, `--dir`. Bring your own patterns; etymd ships none.
|
|
172
|
-
| `etymd scan` | The deterministic reckoning behind everything. `--json`.
|
|
173
|
-
| `etymd brief` | A grounded briefing your in-repo agent completes to author the semantic layer.
|
|
174
|
-
| `etymd
|
|
175
|
-
| `etymd
|
|
176
|
-
| `etymd
|
|
177
|
-
| `etymd
|
|
178
|
-
| `etymd
|
|
179
|
-
| `etymd fleet
|
|
180
|
-
| `etymd fleet
|
|
181
|
-
| `etymd fleet
|
|
174
|
+
| Command | What it does |
|
|
175
|
+
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
176
|
+
| `etymd audit` | Verify every claim; ranked findings (risk → gap → polish) + ledger diff. `--lens`, `--truth`, `--json`, `--no-ledger`, `--fail-on <tier>`. |
|
|
177
|
+
| `etymd init` | Onboard: approve the committed baseline; scaffold a minimal AGENTS.md **only if missing**. Never overwrites. |
|
|
178
|
+
| `etymd doctor` | Alias for `audit --truth`. |
|
|
179
|
+
| `etymd context` | The economy view: per-file always-loaded footprint + extraction candidates. |
|
|
180
|
+
| `etymd gates` | Install local git-hook gates (pre-commit / commit-msg / pre-push, plus a publish screen where something ships) built from your own check scripts — and from the repo's shell surface, where it has one. |
|
|
181
|
+
| `etymd screen` | Content screen: find text that must never be published. Four scopes — `--staged`, `--message`, `--tree`, `--dir`. Bring your own patterns; etymd ships none. |
|
|
182
|
+
| `etymd scan` | The deterministic reckoning behind everything. `--json`. |
|
|
183
|
+
| `etymd brief` | A grounded briefing your in-repo agent completes to author the semantic layer. |
|
|
184
|
+
| `etymd premise` | `premise "<task>"` — is this the right task? What it names, verified against the repo; a brief for what only the agent can verify. `--file` (`-` = stdin), `--json`, `--no-brief`, `--fail-on <tier>`. No ledger. |
|
|
185
|
+
| `etymd approve` | Refresh the committed baseline non-interactively after intentional structural changes. |
|
|
186
|
+
| `etymd ledger` | The findings memory: every tracked finding with status and history. |
|
|
187
|
+
| `etymd dismiss` | `dismiss <id> --reason <text>` — a dismissed finding never resurfaces without regressing. |
|
|
188
|
+
| `etymd accept` | `accept <id>` — record a finding as accepted reality; visible in the ledger, out of the report. |
|
|
189
|
+
| `etymd fleet` | Sweep every project in a fleet manifest: read-only per-repo audits + manifest/wall checks. `--manifest`, `--only`, `--profile`, `--truth`, `--persist-ledgers`, `--json`, `--fail-on`. |
|
|
190
|
+
| `etymd fleet check` | Validate the manifest pair alone (no lenses): dangling mappings, duplicate names, privacy leaks, undeclared trust, machine paths. Non-zero exit on any finding. |
|
|
191
|
+
| `etymd fleet add` | `add <dir>` — register a project: scans it, asks for what no scan can derive, and refuses to write an entry missing a mandatory field. `--name`, `--kind`, `--profile`, `--trust`, `-y`. |
|
|
192
|
+
| `etymd fleet dismiss` / `accept` | `<name> <id>` — resolve a project's finding from any cwd; corp findings persist beside the manifest, never in the corp worktree. |
|
|
182
193
|
|
|
183
194
|
`--cwd <dir>` targets another directory. Read-only probing of any repo leaves **zero trace**
|
|
184
195
|
(`audit --no-ledger` writes nothing).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { section, theme, print, renderBaselineDrift, glyph } from './chunk-HI7NWPRA.js';
|
|
3
|
-
import { scanProject } from './chunk-
|
|
4
|
-
import { VERSION } from './chunk-
|
|
3
|
+
import { scanProject } from './chunk-Y6RZRED3.js';
|
|
4
|
+
import { VERSION } from './chunk-DBWDMIYO.js';
|
|
5
5
|
import { readBaseline, summarizeBaselineDrift, isDriftEmpty, writeBaseline, deriveProfile } from './chunk-P6ATKV2R.js';
|
|
6
6
|
import { PACK_VERSION } from './chunk-YQZDYDAK.js';
|
|
7
7
|
import './chunk-4VPBP6K6.js';
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
export { run } from './chunk-
|
|
3
|
-
import './chunk-
|
|
2
|
+
export { run } from './chunk-CEO3BXQB.js';
|
|
3
|
+
import './chunk-2RNQ6OLV.js';
|
|
4
|
+
import './chunk-IWG77WV3.js';
|
|
4
5
|
import './chunk-3E2IPCRY.js';
|
|
5
6
|
import './chunk-HI7NWPRA.js';
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-Y6RZRED3.js';
|
|
8
|
+
import './chunk-DBWDMIYO.js';
|
|
8
9
|
import './chunk-P6ATKV2R.js';
|
|
9
10
|
import './chunk-YQZDYDAK.js';
|
|
10
11
|
import './chunk-4VPBP6K6.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { print, theme } from './chunk-HI7NWPRA.js';
|
|
3
|
-
import { scanProject } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
import { scanProject } from './chunk-Y6RZRED3.js';
|
|
4
|
+
import './chunk-DBWDMIYO.js';
|
|
5
5
|
import { ETYMD_DIR } from './chunk-P6ATKV2R.js';
|
|
6
6
|
import './chunk-YQZDYDAK.js';
|
|
7
7
|
import './chunk-4VPBP6K6.js';
|