etymd 0.4.0 → 0.4.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/CHANGELOG.md +21 -0
- package/dist/{approve-Y6TX4LTN.js → approve-DTYNGGXH.js} +3 -3
- package/dist/{audit-AU4R45TP.js → audit-UJU3336P.js} +5 -5
- package/dist/{brief-TIKPGPFV.js → brief-5UZLZ3CW.js} +3 -3
- package/dist/{chunk-HGSLHNNT.js → chunk-IGHES6AK.js} +1 -1
- package/dist/{chunk-QYHROOMK.js → chunk-KIMFKLJB.js} +1 -1
- package/dist/{chunk-ECY7BLBT.js → chunk-OWNWN2KF.js} +2 -2
- package/dist/{chunk-JTHZVEON.js → chunk-OX3LUOZR.js} +9 -1
- package/dist/{chunk-SXCR6RRM.js → chunk-RH2UAS25.js} +2 -2
- package/dist/{chunk-7K3BDNLW.js → chunk-XER37MLS.js} +1 -1
- package/dist/cli.js +13 -13
- package/dist/{doctor-OE5E36DX.js → doctor-W6DW3OK6.js} +5 -5
- package/dist/{fleet-LSN5XZ5Q.js → fleet-77SSSFZO.js} +6 -6
- package/dist/{gates-IJNAQ7DC.js → gates-LTM5PE7R.js} +4 -4
- package/dist/{generate-JEREMVVO.js → generate-CBMTNN7P.js} +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +10 -2
- package/dist/{init-BYZJOCS6.js → init-7GNB74BE.js} +4 -4
- package/dist/{scan-DPEOA3KZ.js → scan-6YOKI3JW.js} +3 -3
- package/dist/scan-XZH57E4I.js +5 -0
- package/package.json +1 -1
- package/dist/scan-O3SM2ODH.js +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# etymd
|
|
2
2
|
|
|
3
|
+
## 0.4.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 915ae78: Fix: the shell gate now actually prints the sub-warning findings it documented.
|
|
8
|
+
|
|
9
|
+
0.4.0 said "style and info print as advice" and did not do it — the generated hook ran only
|
|
10
|
+
`shellcheck -S warning` and discarded everything below that bar. The generated file made no such
|
|
11
|
+
claim, so no repo was misled about what its own gate does, but the promise was in the release
|
|
12
|
+
notes and not in the code.
|
|
13
|
+
|
|
14
|
+
The hook now runs a second, non-blocking pass after the blocking one and prints what it finds.
|
|
15
|
+
Its result is captured into a variable and explicitly tolerated with `|| true`, so it has no path
|
|
16
|
+
to the exit code: advice that can fail a push is not advice. The blocking bar is unchanged.
|
|
17
|
+
|
|
18
|
+
The test that was supposed to protect this pinned the wrong property — it asserted that style was
|
|
19
|
+
never MENTIONED, which the buggy version satisfied. It now asserts that the warning pass is the
|
|
20
|
+
only one wired to a failure branch, which is the property that actually matters.
|
|
21
|
+
|
|
22
|
+
Pack version 5.
|
|
23
|
+
|
|
3
24
|
## 0.4.0
|
|
4
25
|
|
|
5
26
|
### Minor Changes
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { section, theme, print, renderBaselineDrift, glyph } from './chunk-TADKOW6P.js';
|
|
3
|
-
import { scanProject } from './chunk-
|
|
4
|
-
import { VERSION } from './chunk-
|
|
3
|
+
import { scanProject } from './chunk-RH2UAS25.js';
|
|
4
|
+
import { VERSION } from './chunk-KIMFKLJB.js';
|
|
5
5
|
import { readBaseline, summarizeBaselineDrift, isDriftEmpty, writeBaseline, deriveProfile } from './chunk-R74SJ7HS.js';
|
|
6
|
-
import { PACK_VERSION } from './chunk-
|
|
6
|
+
import { PACK_VERSION } from './chunk-IGHES6AK.js';
|
|
7
7
|
import './chunk-YLNQQZ5F.js';
|
|
8
8
|
|
|
9
9
|
// src/commands/approve.ts
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
export { run } from './chunk-
|
|
3
|
-
import './chunk-
|
|
2
|
+
export { run } from './chunk-XER37MLS.js';
|
|
3
|
+
import './chunk-OWNWN2KF.js';
|
|
4
4
|
import './chunk-LT67FU2Y.js';
|
|
5
5
|
import './chunk-WWBF4Y7K.js';
|
|
6
6
|
import './chunk-NMZ3RHWW.js';
|
|
7
7
|
import './chunk-TADKOW6P.js';
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
8
|
+
import './chunk-RH2UAS25.js';
|
|
9
|
+
import './chunk-KIMFKLJB.js';
|
|
10
10
|
import './chunk-R74SJ7HS.js';
|
|
11
|
-
import './chunk-
|
|
11
|
+
import './chunk-IGHES6AK.js';
|
|
12
12
|
import './chunk-YLNQQZ5F.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { print, theme } from './chunk-TADKOW6P.js';
|
|
3
|
-
import { scanProject } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
import { scanProject } from './chunk-RH2UAS25.js';
|
|
4
|
+
import './chunk-KIMFKLJB.js';
|
|
5
5
|
import { ETYMD_DIR } from './chunk-R74SJ7HS.js';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-IGHES6AK.js';
|
|
7
7
|
import './chunk-YLNQQZ5F.js';
|
|
8
8
|
import { promises } from 'node:fs';
|
|
9
9
|
import path from 'node:path';
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import { measureContext } from './chunk-LT67FU2Y.js';
|
|
3
3
|
import { readLedger, reconcileLedger, writeLedger, visibleFindings } from './chunk-WWBF4Y7K.js';
|
|
4
4
|
import { DEFAULT_CONFIG, readConfig, CONFIG_FILE } from './chunk-NMZ3RHWW.js';
|
|
5
|
-
import { scanProject, expandFileGlobs } from './chunk-
|
|
5
|
+
import { scanProject, expandFileGlobs } from './chunk-RH2UAS25.js';
|
|
6
6
|
import { ETYMD_DIR, writeCachedFacts, readBaseline, deriveProfile, baselineCarriesMachinePath, BASELINE_FILE } from './chunk-R74SJ7HS.js';
|
|
7
|
-
import { PACK_VERSION } from './chunk-
|
|
7
|
+
import { PACK_VERSION } from './chunk-IGHES6AK.js';
|
|
8
8
|
import { pathExists, readJson, git, readText, isDirectory, matchesAnyGlob, isCiEnvironment, normalizeRelPath } from './chunk-YLNQQZ5F.js';
|
|
9
9
|
import path from 'node:path';
|
|
10
10
|
import YAML from 'yaml';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { DEFAULT_CONFIG } from './chunk-NMZ3RHWW.js';
|
|
3
|
-
import { PACK_VERSION } from './chunk-
|
|
3
|
+
import { PACK_VERSION } from './chunk-IGHES6AK.js';
|
|
4
4
|
import { readText, pathExists } from './chunk-YLNQQZ5F.js';
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
|
|
@@ -172,6 +172,14 @@ if command -v shellcheck >/dev/null 2>&1; then
|
|
|
172
172
|
echo " fix, or justify inline with '# shellcheck disable=SCxxxx # why'"
|
|
173
173
|
exit 1
|
|
174
174
|
}
|
|
175
|
+
# Everything below the blocking bar, shown once the push is already cleared. Never affects
|
|
176
|
+
# the exit code \u2014 advice that can fail a push is not advice.
|
|
177
|
+
advice=$(printf '%s\\n' "$scripts" | xargs shellcheck -S style -f gcc 2>/dev/null \\
|
|
178
|
+
| grep -v ': warning:\\|: error:' || true)
|
|
179
|
+
if [ -n "$advice" ]; then
|
|
180
|
+
echo " \xB7 style/info (not blocking):"
|
|
181
|
+
printf '%s\\n' "$advice" | sed 's/^/ /'
|
|
182
|
+
fi
|
|
175
183
|
fi
|
|
176
184
|
else
|
|
177
185
|
echo "\u203A shellcheck skipped (not on PATH) \u2014 install it to gate this repo's shell scripts"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { VERSION } from './chunk-
|
|
3
|
-
import { PACK_VERSION } from './chunk-
|
|
2
|
+
import { VERSION } from './chunk-KIMFKLJB.js';
|
|
3
|
+
import { PACK_VERSION } from './chunk-IGHES6AK.js';
|
|
4
4
|
import { normalizeRelPath, isDirectory, readJson, git, matchesAnyGlob, pathExists, readText } from './chunk-YLNQQZ5F.js';
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
import { promises } from 'node:fs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { parseFailOnTier, runAudit, meetsFailOn } from './chunk-
|
|
2
|
+
import { parseFailOnTier, runAudit, meetsFailOn } from './chunk-OWNWN2KF.js';
|
|
3
3
|
import { print, section, theme, renderLensCoverage, renderFindings, renderLedgerDiff } from './chunk-TADKOW6P.js';
|
|
4
4
|
|
|
5
5
|
// src/commands/audit.ts
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { VERSION } from './chunk-
|
|
2
|
+
import { VERSION } from './chunk-KIMFKLJB.js';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { Command } from 'commander';
|
|
5
5
|
import pc from 'picocolors';
|
|
@@ -31,7 +31,7 @@ program.command("audit").description("Verify every instruction claim against the
|
|
|
31
31
|
"exit non-zero when findings at/above this tier exist (risk|gap|polish)"
|
|
32
32
|
).action(
|
|
33
33
|
(opts, cmd) => action(async () => {
|
|
34
|
-
const { run } = await import('./audit-
|
|
34
|
+
const { run } = await import('./audit-UJU3336P.js');
|
|
35
35
|
await run({
|
|
36
36
|
cwd: resolveCwd(cmd),
|
|
37
37
|
json: opts.json,
|
|
@@ -44,7 +44,7 @@ program.command("audit").description("Verify every instruction claim against the
|
|
|
44
44
|
);
|
|
45
45
|
program.command("init").description("Onboard the truth guard: approve the baseline; scaffold AGENTS.md only if missing").option("-y, --yes", "accept defaults without prompting (never overwrites)").action(
|
|
46
46
|
(opts, cmd) => action(async () => {
|
|
47
|
-
const { run } = await import('./init-
|
|
47
|
+
const { run } = await import('./init-7GNB74BE.js');
|
|
48
48
|
await run({ cwd: resolveCwd(cmd), yes: opts.yes });
|
|
49
49
|
})
|
|
50
50
|
);
|
|
@@ -52,19 +52,19 @@ program.command("approve").description(
|
|
|
52
52
|
"Re-approve the committed baseline after intentional structural changes (non-interactive)"
|
|
53
53
|
).action(
|
|
54
54
|
(_opts, cmd) => action(async () => {
|
|
55
|
-
const { run } = await import('./approve-
|
|
55
|
+
const { run } = await import('./approve-DTYNGGXH.js');
|
|
56
56
|
await run({ cwd: resolveCwd(cmd) });
|
|
57
57
|
})
|
|
58
58
|
);
|
|
59
59
|
program.command("scan").description("Deterministically reckon the project into a facts index").option("--json", "print the raw facts as JSON").option("--no-save", "do not write the .etymd cache").action(
|
|
60
60
|
(opts, cmd) => action(async () => {
|
|
61
|
-
const { run } = await import('./scan-
|
|
61
|
+
const { run } = await import('./scan-6YOKI3JW.js');
|
|
62
62
|
await run({ cwd: resolveCwd(cmd), json: opts.json, save: opts.save });
|
|
63
63
|
})
|
|
64
64
|
);
|
|
65
65
|
program.command("doctor").description('Alias for `audit --truth` \u2014 "are the recorded instructions still true?"').option("--json", "print findings as JSON").action(
|
|
66
66
|
(opts, cmd) => action(async () => {
|
|
67
|
-
const { run } = await import('./doctor-
|
|
67
|
+
const { run } = await import('./doctor-W6DW3OK6.js');
|
|
68
68
|
await run({ cwd: resolveCwd(cmd), json: opts.json });
|
|
69
69
|
})
|
|
70
70
|
);
|
|
@@ -76,7 +76,7 @@ program.command("context").description("Measure the always-loaded context footpr
|
|
|
76
76
|
);
|
|
77
77
|
program.command("brief").description("Emit a grounded briefing for the in-repo agent to complete the semantic layer").option("--human", "write a human onboarding brief instead of the agent briefing").action(
|
|
78
78
|
(opts, cmd) => action(async () => {
|
|
79
|
-
const { run } = await import('./brief-
|
|
79
|
+
const { run } = await import('./brief-5UZLZ3CW.js');
|
|
80
80
|
await run({ cwd: resolveCwd(cmd), human: opts.human });
|
|
81
81
|
})
|
|
82
82
|
);
|
|
@@ -111,7 +111,7 @@ var fleet = program.command("fleet").description(
|
|
|
111
111
|
"exit non-zero when findings at/above this tier exist (risk|gap|polish)"
|
|
112
112
|
).action(
|
|
113
113
|
(opts, cmd) => action(async () => {
|
|
114
|
-
const { sweep } = await import('./fleet-
|
|
114
|
+
const { sweep } = await import('./fleet-77SSSFZO.js');
|
|
115
115
|
await sweep({
|
|
116
116
|
cwd: resolveCwd(cmd),
|
|
117
117
|
manifest: opts.manifest,
|
|
@@ -126,7 +126,7 @@ var fleet = program.command("fleet").description(
|
|
|
126
126
|
);
|
|
127
127
|
fleet.command("check").description("Validate the manifest pair only \u2014 no lenses: dangling mappings, duplicates, leaks").option("--manifest <file>", "the fleet manifest \u2014 required unless the cwd holds registry.json").option("--json", "print the findings as JSON (EXPERIMENTAL through 0.2.x)").action(
|
|
128
128
|
(_opts, cmd) => action(async () => {
|
|
129
|
-
const { check } = await import('./fleet-
|
|
129
|
+
const { check } = await import('./fleet-77SSSFZO.js');
|
|
130
130
|
const opts = cmd.optsWithGlobals();
|
|
131
131
|
await check({ cwd: resolveCwd(cmd), manifest: opts.manifest, json: opts.json });
|
|
132
132
|
})
|
|
@@ -136,7 +136,7 @@ fleet.command("add").argument("<dir>", "directory of the project to register").d
|
|
|
136
136
|
"public-repo | public-bound | private \u2014 mandatory for personal entries"
|
|
137
137
|
).option("-y, --yes", "skip prompts; every mandatory value must be passed as a flag").option("--manifest <file>", "the fleet manifest \u2014 required unless the cwd holds registry.json").action(
|
|
138
138
|
(dir, opts, cmd) => action(async () => {
|
|
139
|
-
const { add } = await import('./fleet-
|
|
139
|
+
const { add } = await import('./fleet-77SSSFZO.js');
|
|
140
140
|
const shared = cmd.optsWithGlobals();
|
|
141
141
|
await add({
|
|
142
142
|
cwd: resolveCwd(cmd),
|
|
@@ -154,7 +154,7 @@ fleet.command("dismiss").argument("<name>", "the registered project name").argum
|
|
|
154
154
|
"Dismiss a project's finding from any cwd \u2014 corp ledgers persist beside the manifest"
|
|
155
155
|
).requiredOption("--reason <text>", "why it is dismissed \u2014 recorded so the decision survives").option("--manifest <file>", "the fleet manifest \u2014 required unless the cwd holds registry.json").action(
|
|
156
156
|
(name, id, _opts, cmd) => action(async () => {
|
|
157
|
-
const { dismiss } = await import('./fleet-
|
|
157
|
+
const { dismiss } = await import('./fleet-77SSSFZO.js');
|
|
158
158
|
const opts = cmd.optsWithGlobals();
|
|
159
159
|
await dismiss({
|
|
160
160
|
cwd: resolveCwd(cmd),
|
|
@@ -169,7 +169,7 @@ fleet.command("accept").argument("<name>", "the registered project name").argume
|
|
|
169
169
|
"Accept a project's finding as a known trade-off \u2014 corp ledgers persist beside the manifest"
|
|
170
170
|
).option("--reason <text>", "optional note on why the trade-off is accepted").option("--manifest <file>", "the fleet manifest \u2014 required unless the cwd holds registry.json").action(
|
|
171
171
|
(name, id, _opts, cmd) => action(async () => {
|
|
172
|
-
const { accept } = await import('./fleet-
|
|
172
|
+
const { accept } = await import('./fleet-77SSSFZO.js');
|
|
173
173
|
const opts = cmd.optsWithGlobals();
|
|
174
174
|
await accept({ cwd: resolveCwd(cmd), manifest: opts.manifest, name, id, reason: opts.reason });
|
|
175
175
|
})
|
|
@@ -191,7 +191,7 @@ program.command("screen").description(
|
|
|
191
191
|
);
|
|
192
192
|
program.command("gates").description("Install the local git-hook gates (process \u2192 pre-commit, correctness \u2192 pre-push)").option("--ci", "note about the CI review gate (ships later; local gates install now)").option("-y, --yes", "skip prompts; never overwrites a hand-edited hook").action(
|
|
193
193
|
(opts, cmd) => action(async () => {
|
|
194
|
-
const { run } = await import('./gates-
|
|
194
|
+
const { run } = await import('./gates-LTM5PE7R.js');
|
|
195
195
|
await run({ cwd: resolveCwd(cmd), ci: opts.ci, yes: opts.yes });
|
|
196
196
|
})
|
|
197
197
|
);
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { run } from './chunk-
|
|
3
|
-
import './chunk-
|
|
2
|
+
import { run } from './chunk-XER37MLS.js';
|
|
3
|
+
import './chunk-OWNWN2KF.js';
|
|
4
4
|
import './chunk-LT67FU2Y.js';
|
|
5
5
|
import './chunk-WWBF4Y7K.js';
|
|
6
6
|
import './chunk-NMZ3RHWW.js';
|
|
7
7
|
import './chunk-TADKOW6P.js';
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
8
|
+
import './chunk-RH2UAS25.js';
|
|
9
|
+
import './chunk-KIMFKLJB.js';
|
|
10
10
|
import './chunk-R74SJ7HS.js';
|
|
11
|
-
import './chunk-
|
|
11
|
+
import './chunk-IGHES6AK.js';
|
|
12
12
|
import './chunk-YLNQQZ5F.js';
|
|
13
13
|
|
|
14
14
|
// src/commands/doctor.ts
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { dismiss, accept } from './chunk-MMPV67FW.js';
|
|
3
|
-
import { parseFailOnTier, meetsFailOn, runAudit } from './chunk-
|
|
3
|
+
import { parseFailOnTier, meetsFailOn, runAudit } from './chunk-OWNWN2KF.js';
|
|
4
4
|
import './chunk-LT67FU2Y.js';
|
|
5
5
|
import { readLedger } from './chunk-WWBF4Y7K.js';
|
|
6
6
|
import { DEFAULT_CONFIG } from './chunk-NMZ3RHWW.js';
|
|
7
7
|
import { print, theme, section, renderFleetRows, renderFleetNotes, renderFindings, TIER_BADGE, glyph } from './chunk-TADKOW6P.js';
|
|
8
|
-
import { scanProject } from './chunk-
|
|
9
|
-
import './chunk-
|
|
8
|
+
import { scanProject } from './chunk-RH2UAS25.js';
|
|
9
|
+
import './chunk-KIMFKLJB.js';
|
|
10
10
|
import { ETYMD_DIR } from './chunk-R74SJ7HS.js';
|
|
11
|
-
import './chunk-
|
|
11
|
+
import './chunk-IGHES6AK.js';
|
|
12
12
|
import { readText, pathExists, git, isDirectory } from './chunk-YLNQQZ5F.js';
|
|
13
13
|
import { promises } from 'node:fs';
|
|
14
14
|
import path from 'node:path';
|
|
@@ -687,8 +687,8 @@ async function checkCorpEmails(manifest, findings, disclosures) {
|
|
|
687
687
|
}
|
|
688
688
|
}
|
|
689
689
|
async function checkGateDrift(manifest, findings, disclosures) {
|
|
690
|
-
const { planWorkflow } = await import('./generate-
|
|
691
|
-
const { scanProject: scanProject2 } = await import('./scan-
|
|
690
|
+
const { planWorkflow } = await import('./generate-CBMTNN7P.js');
|
|
691
|
+
const { scanProject: scanProject2 } = await import('./scan-XZH57E4I.js');
|
|
692
692
|
const { readConfig } = await import('./config-MX7OYI7F.js');
|
|
693
693
|
for (const entry of manifest.entries) {
|
|
694
694
|
const root = entry.resolvedRoot;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { applyFiles } from './chunk-EF6BPBG6.js';
|
|
3
|
-
import { derivedCommands, planWorkflow, runPrefix, isSafeGateCommand } from './chunk-
|
|
3
|
+
import { derivedCommands, planWorkflow, runPrefix, isSafeGateCommand } from './chunk-OX3LUOZR.js';
|
|
4
4
|
import { readConfig, CONFIG_FILE, configPath } from './chunk-NMZ3RHWW.js';
|
|
5
5
|
import { section, print, glyph, theme, renderPlan } from './chunk-TADKOW6P.js';
|
|
6
|
-
import { scanProject } from './chunk-
|
|
7
|
-
import './chunk-
|
|
6
|
+
import { scanProject } from './chunk-RH2UAS25.js';
|
|
7
|
+
import './chunk-KIMFKLJB.js';
|
|
8
8
|
import './chunk-R74SJ7HS.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-IGHES6AK.js';
|
|
10
10
|
import { readText, git } from './chunk-YLNQQZ5F.js';
|
|
11
11
|
import { promises } from 'node:fs';
|
|
12
12
|
import path from 'node:path';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
export { derivedCommands, planWorkflow } from './chunk-
|
|
2
|
+
export { derivedCommands, planWorkflow } from './chunk-OX3LUOZR.js';
|
|
3
3
|
import './chunk-NMZ3RHWW.js';
|
|
4
4
|
import './chunk-R74SJ7HS.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-IGHES6AK.js';
|
|
6
6
|
import './chunk-YLNQQZ5F.js';
|
package/dist/index.d.ts
CHANGED
|
@@ -769,7 +769,7 @@ declare const gateIntegrityLens: Lens;
|
|
|
769
769
|
* change meaning. Stamped into facts, baselines, and generated artifacts so drift against the
|
|
770
770
|
* pack is computable and `harvest` has something to diff.
|
|
771
771
|
*/
|
|
772
|
-
declare const PACK_VERSION = "
|
|
772
|
+
declare const PACK_VERSION = "5";
|
|
773
773
|
|
|
774
774
|
declare const VERSION: string;
|
|
775
775
|
declare const NAME: string;
|
package/dist/index.js
CHANGED
|
@@ -19,7 +19,7 @@ var __export = (target, all) => {
|
|
|
19
19
|
var PACK_VERSION;
|
|
20
20
|
var init_version = __esm({
|
|
21
21
|
"src/pack/version.ts"() {
|
|
22
|
-
PACK_VERSION = "
|
|
22
|
+
PACK_VERSION = "5";
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
|
|
@@ -29,7 +29,7 @@ var init_package = __esm({
|
|
|
29
29
|
"package.json"() {
|
|
30
30
|
package_default = {
|
|
31
31
|
name: "etymd",
|
|
32
|
-
version: "0.4.
|
|
32
|
+
version: "0.4.1",
|
|
33
33
|
description: "Keep your agent instructions true \u2014 verify AGENTS.md, CLAUDE.md, rules & skills against the actual repo, with drift caught over time and a regression ledger.",
|
|
34
34
|
keywords: [
|
|
35
35
|
"cli",
|
|
@@ -1158,6 +1158,14 @@ if command -v shellcheck >/dev/null 2>&1; then
|
|
|
1158
1158
|
echo " fix, or justify inline with '# shellcheck disable=SCxxxx # why'"
|
|
1159
1159
|
exit 1
|
|
1160
1160
|
}
|
|
1161
|
+
# Everything below the blocking bar, shown once the push is already cleared. Never affects
|
|
1162
|
+
# the exit code \u2014 advice that can fail a push is not advice.
|
|
1163
|
+
advice=$(printf '%s\\n' "$scripts" | xargs shellcheck -S style -f gcc 2>/dev/null \\
|
|
1164
|
+
| grep -v ': warning:\\|: error:' || true)
|
|
1165
|
+
if [ -n "$advice" ]; then
|
|
1166
|
+
echo " \xB7 style/info (not blocking):"
|
|
1167
|
+
printf '%s\\n' "$advice" | sed 's/^/ /'
|
|
1168
|
+
fi
|
|
1161
1169
|
fi
|
|
1162
1170
|
else
|
|
1163
1171
|
echo "\u203A shellcheck skipped (not on PATH) \u2014 install it to gate this repo's shell scripts"
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { applyFiles } from './chunk-EF6BPBG6.js';
|
|
3
|
-
import { planWorkflow } from './chunk-
|
|
3
|
+
import { planWorkflow } from './chunk-OX3LUOZR.js';
|
|
4
4
|
import './chunk-NMZ3RHWW.js';
|
|
5
5
|
import { theme, renderFacts, print, renderPlan, section, glyph } from './chunk-TADKOW6P.js';
|
|
6
|
-
import { scanProject } from './chunk-
|
|
7
|
-
import { VERSION } from './chunk-
|
|
6
|
+
import { scanProject } from './chunk-RH2UAS25.js';
|
|
7
|
+
import { VERSION } from './chunk-KIMFKLJB.js';
|
|
8
8
|
import { writeCachedFacts, deriveProfile, writeBaseline, CACHE_DIR } from './chunk-R74SJ7HS.js';
|
|
9
|
-
import { PACK_VERSION } from './chunk-
|
|
9
|
+
import { PACK_VERSION } from './chunk-IGHES6AK.js';
|
|
10
10
|
import { git, readText } from './chunk-YLNQQZ5F.js';
|
|
11
11
|
import { promises } from 'node:fs';
|
|
12
12
|
import path from 'node:path';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { print, renderFacts, theme } from './chunk-TADKOW6P.js';
|
|
3
|
-
import { scanProject } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
import { scanProject } from './chunk-RH2UAS25.js';
|
|
4
|
+
import './chunk-KIMFKLJB.js';
|
|
5
5
|
import { writeCachedFacts } from './chunk-R74SJ7HS.js';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-IGHES6AK.js';
|
|
7
7
|
import './chunk-YLNQQZ5F.js';
|
|
8
8
|
|
|
9
9
|
// src/commands/scan.ts
|
package/package.json
CHANGED