@descent-vtt/spec-guard 0.15.0 → 0.17.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 +126 -4
- package/README.md +503 -509
- package/dist/cites.d.ts.map +1 -1
- package/dist/cites.js +5 -1
- package/dist/cites.js.map +1 -1
- package/dist/cli.d.ts +3 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +8 -4
- package/dist/cli.js.map +1 -1
- package/dist/glob.d.ts +25 -16
- package/dist/glob.d.ts.map +1 -1
- package/dist/glob.js +199 -138
- package/dist/glob.js.map +1 -1
- package/dist/impact.d.ts.map +1 -1
- package/dist/impact.js +12 -2
- package/dist/impact.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +5 -3
- package/dist/mcp.js.map +1 -1
- package/dist/parser.d.ts +11 -9
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +250 -43
- package/dist/parser.js.map +1 -1
- package/dist/prove.d.ts.map +1 -1
- package/dist/prove.js +2 -1
- package/dist/prove.js.map +1 -1
- package/dist/reporter.d.ts +12 -4
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +200 -48
- package/dist/reporter.js.map +1 -1
- package/dist/runner.d.ts +12 -2
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +13 -4
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +24 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/vendor/spec-core/markdown/frontmatter.d.ts +11 -1
- package/dist/vendor/spec-core/markdown/frontmatter.d.ts.map +1 -1
- package/dist/vendor/spec-core/markdown/frontmatter.js +20 -3
- package/dist/vendor/spec-core/markdown/frontmatter.js.map +1 -1
- package/dist/vendor/spec-core/pattern/glob.d.ts +88 -2
- package/dist/vendor/spec-core/pattern/glob.d.ts.map +1 -1
- package/dist/vendor/spec-core/pattern/glob.js +234 -32
- package/dist/vendor/spec-core/pattern/glob.js.map +1 -1
- package/dist/vendor/spec-core/pattern/index.d.ts +2 -2
- package/dist/vendor/spec-core/pattern/index.d.ts.map +1 -1
- package/dist/vendor/spec-core/pattern/index.js +1 -1
- package/dist/vendor/spec-core/pattern/index.js.map +1 -1
- package/dist/vendor/spec-core/text/index.d.ts +1 -0
- package/dist/vendor/spec-core/text/index.d.ts.map +1 -1
- package/dist/vendor/spec-core/text/index.js +1 -0
- package/dist/vendor/spec-core/text/index.js.map +1 -1
- package/dist/vendor/spec-core/text/width.d.ts +31 -0
- package/dist/vendor/spec-core/text/width.d.ts.map +1 -0
- package/dist/vendor/spec-core/text/width.js +113 -0
- package/dist/vendor/spec-core/text/width.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,131 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
All notable changes to this project are documented here.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
All notable changes to this project are documented here. Before 1.0 a minor
|
|
4
|
+
release (0.16.x to 0.17.0) carries anything that can turn a passing run red or
|
|
5
|
+
change what a script reads - a finding or a failure that was not there, a
|
|
6
|
+
changed exit code or JSON field, input refused that was accepted - and a patch
|
|
7
|
+
only what reports less, crashes, performance and documentation, so `^0.17.0`
|
|
8
|
+
takes no release that can turn a run red. Each entry under **Changed** says
|
|
9
|
+
what to do when upgrading; the family's policy, including how a flag or field
|
|
10
|
+
is deprecated before it goes, is spec-core's
|
|
11
|
+
[ADR-0009](https://github.com/DescentVTT/spec-core/blob/main/docs/adr/0009-versions-before-1-0.md).
|
|
12
|
+
|
|
13
|
+
## 0.17.0
|
|
14
|
+
|
|
15
|
+
Chinese statuses and status tables are read, `--strict` refuses a run that
|
|
16
|
+
verified nothing, a hint travels with every finding to GitLab and GitHub,
|
|
17
|
+
fingerprints no longer follow a message's wording, and spec-core is at
|
|
18
|
+
5666c96.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- A status written in Chinese is read as the English word it translates
|
|
23
|
+
(`已取代` superseded, `草稿` draft, `延後` deferred), from a heading, a
|
|
24
|
+
label with `:` or `:`, a table, or front matter (`狀態:`); only the six
|
|
25
|
+
English words withhold a document ([ADR-0010](https://github.com/DescentVTT/spec-guard/blob/main/docs/adr/0010-spec-status.md)).
|
|
26
|
+
Upgrading: a Chinese ADR marked superseded, deprecated, rejected, archived,
|
|
27
|
+
draft or proposed stops running its rules; write its status in English or
|
|
28
|
+
run with `--ignore-status` to keep them.
|
|
29
|
+
- A two-column table before the first section whose left cell is `Status`,
|
|
30
|
+
`State`, `狀態` or `状态` gives the status, after a `## Status` section.
|
|
31
|
+
Upgrading: as above.
|
|
32
|
+
- A `## Status` section or label that cannot be read keeps its document in
|
|
33
|
+
force with a warning, where it fell through to a later label. Upgrading:
|
|
34
|
+
write the status in the section.
|
|
35
|
+
- Under `--strict`, a run or `prove` that executed no assertion exits 1, with
|
|
36
|
+
a `nothing-verified` finding in every format; a selection that picks no
|
|
37
|
+
rule still passes (ADR-0010). Upgrading: put a rule in force, fix the spec
|
|
38
|
+
patterns, or pass `--no-strict`.
|
|
39
|
+
- `cites --strict` that read no source file writes a `nothing-read` finding
|
|
40
|
+
in every format; its exit code is unchanged
|
|
41
|
+
([ADR-0017](https://github.com/DescentVTT/spec-guard/blob/main/docs/adr/0017-citations-in-comments.md)).
|
|
42
|
+
Upgrading: a code-scanning or GitLab report shows one finding where it
|
|
43
|
+
showed none.
|
|
44
|
+
- GitLab descriptions and GitHub messages carry the hint after the message.
|
|
45
|
+
Upgrading: nothing, unless a script compares a description whole.
|
|
46
|
+
- The GitLab and SARIF fingerprints of a directive that cannot be read are
|
|
47
|
+
built from the directive as written, never its message. Upgrading: each
|
|
48
|
+
such issue or alert closes and reopens once.
|
|
49
|
+
- spec-core at 5666c96: `.//f.ts` is `f.ts` at any depth, as `./f.ts` is,
|
|
50
|
+
in every pattern and under both engines, where it meant the root
|
|
51
|
+
([ADR-0015](https://github.com/DescentVTT/spec-guard/blob/main/docs/adr/0015-globs-from-spec-core.md),
|
|
52
|
+
[ADR-0013](https://github.com/DescentVTT/spec-guard/blob/main/docs/adr/0013-structure-assertions.md)).
|
|
53
|
+
Upgrading: write `/f.ts` for the root.
|
|
54
|
+
|
|
55
|
+
### Fixed
|
|
56
|
+
|
|
57
|
+
- `glob="./!a"` and the spec pattern `./!*.md` name files called `!a` and
|
|
58
|
+
`!*.md`, where they were refused as negations.
|
|
59
|
+
- `impact` lines up paths in Chinese, Japanese or Korean.
|
|
60
|
+
- The README describes the GitLab fingerprint as the code builds it, lists
|
|
61
|
+
the `spec-warning` severity, says how to install ripgrep on GitLab runners
|
|
62
|
+
and Windows, and uploads SARIF with `upload-sarif@v4`.
|
|
63
|
+
|
|
64
|
+
### Documentation
|
|
65
|
+
|
|
66
|
+
- The README is reorganised: the directive reference sits under Directives,
|
|
67
|
+
Design decisions is an index of the ADRs, and development, mutation testing
|
|
68
|
+
and releasing moved to CONTRIBUTING.md, with the release flow in
|
|
69
|
+
[ADR-0019](https://github.com/DescentVTT/spec-guard/blob/main/docs/adr/0019-releases-are-staged-by-ci.md);
|
|
70
|
+
SECURITY.md says how to report a vulnerability privately.
|
|
71
|
+
|
|
72
|
+
## 0.16.0
|
|
73
|
+
|
|
74
|
+
spec-core is at 7e41240: a leading `/` on a brace alternative anchors it, at
|
|
75
|
+
every door, as one on the whole pattern does, in both engines; a glob that
|
|
76
|
+
starts with `/` is judged with its slash, so `glob="/!a"` reads the root's
|
|
77
|
+
`!a` and the advice for a rooted glob keeps the root.
|
|
78
|
+
|
|
79
|
+
### Changed
|
|
80
|
+
|
|
81
|
+
- **A leading `/` on a brace alternative anchors that alternative at the
|
|
82
|
+
root, as one on the whole pattern does.** spec-core, copied again from
|
|
83
|
+
`7e41240`, reads the slash on an alternative as it reads one on the
|
|
84
|
+
pattern, where it read it as nothing, and every pattern here follows.
|
|
85
|
+
`glob="{/f.ts}"` found `f.ts` at any depth, and now finds it at the root
|
|
86
|
+
only, as `glob="/f.ts"` does; so does `{/f.ts,x}` given whole to
|
|
87
|
+
`createGlobMatcher`, beside `x` at any depth. `{/build,x}` in the
|
|
88
|
+
configuration's `exclude`, and `{/build}` in `exclude=`, `--exclude`,
|
|
89
|
+
`module=` or a layer, left out every `build`, and now the one at the root,
|
|
90
|
+
as `/build` does, under both engines. A spec pattern `{/a.md,README.md}` -
|
|
91
|
+
on the command line, `--spec` or in `specs` - found every `a.md`, and now
|
|
92
|
+
the root's. `dirs="{/a/,d}"` chose `a` and `d`, and now chooses `d`, as
|
|
93
|
+
`dirs="/a"` chooses nothing. `{/src/*.ts,*.md}` and `/{a,/src}/a.ts` as
|
|
94
|
+
globs, a spec pattern `docs/{/adr/*.md,a.md}`, whose slash follows the
|
|
95
|
+
base as spec-core reads the whole pattern, and `a/{/b,c}`, whose slash
|
|
96
|
+
follows a segment, find what they found. `glob="././/f.ts"`, which found
|
|
97
|
+
nothing, finds the root's `f.ts`, as `.//f.ts` does. A directive's list
|
|
98
|
+
attribute and `--exclude` split on commas, so a group written there has
|
|
99
|
+
one alternative. Nothing restores the old reading: the alternative without
|
|
100
|
+
its slash, `{f.ts,x}` or `{build,x}`, says what it said. A run, `prove`,
|
|
101
|
+
`cites`, `query` and `impact` of the five spec-* repositories answer as
|
|
102
|
+
they did.
|
|
103
|
+
[ADR-0015](https://github.com/DescentVTT/spec-guard/blob/main/docs/adr/0015-globs-from-spec-core.md)'s
|
|
104
|
+
and [ADR-0013](https://github.com/DescentVTT/spec-guard/blob/main/docs/adr/0013-structure-assertions.md)'s
|
|
105
|
+
amendments of 2026-09-29.
|
|
106
|
+
|
|
107
|
+
### Fixed
|
|
108
|
+
|
|
109
|
+
- **A glob that starts with `/` is judged with its slash, as spec-core
|
|
110
|
+
reads it.** The slash was taken off before spec-core was asked whether the
|
|
111
|
+
glob could be read, so what it said was about the rest. `glob="/!a"` was
|
|
112
|
+
an invalid directive, `a negated pattern is a list entry, not a glob`,
|
|
113
|
+
where `{/!a,x}` read the name `!a` at the root; it now reads that name, as
|
|
114
|
+
spec-core does. `glob="/**.md"` was told to write `**/*.md` or `*.md`,
|
|
115
|
+
the second a name at any depth; it is now told `/**/*.md` or `/*.md`. A
|
|
116
|
+
spec pattern whose base is the root - `/**.md`, `/{a,b}/**.md`, `/!*.md`,
|
|
117
|
+
on the command line, `--spec` or in `specs` - was judged by what is below
|
|
118
|
+
the root alone, and is now judged whole and read from the root: `/!*.md`
|
|
119
|
+
finds the names `!*.md` at the root, where it was exit 2, and `/**.md` is
|
|
120
|
+
told `/**/*.md` or `/*.md`. `exclude`, `module`, a layer, `dirs` and a
|
|
121
|
+
spec pattern below a named directory kept the root already. A glob
|
|
122
|
+
beginning `/./` before braces that name no path, `/./{./,docs}`, is told
|
|
123
|
+
`the braces expand to "././"`, spec-core's words for it, where it was told
|
|
124
|
+
`"./"`, and a rooted glob of 65,535 characters after the slash is refused
|
|
125
|
+
for its size, as spec-core refuses it. `!a`, `**.md` and `docs/**.md` read
|
|
126
|
+
and are refused as they were.
|
|
127
|
+
[ADR-0015](https://github.com/DescentVTT/spec-guard/blob/main/docs/adr/0015-globs-from-spec-core.md)'s
|
|
128
|
+
amendment of 2026-09-29.
|
|
7
129
|
|
|
8
130
|
## 0.15.0
|
|
9
131
|
|