@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.
Files changed (57) hide show
  1. package/CHANGELOG.md +126 -4
  2. package/README.md +503 -509
  3. package/dist/cites.d.ts.map +1 -1
  4. package/dist/cites.js +5 -1
  5. package/dist/cites.js.map +1 -1
  6. package/dist/cli.d.ts +3 -2
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +8 -4
  9. package/dist/cli.js.map +1 -1
  10. package/dist/glob.d.ts +25 -16
  11. package/dist/glob.d.ts.map +1 -1
  12. package/dist/glob.js +199 -138
  13. package/dist/glob.js.map +1 -1
  14. package/dist/impact.d.ts.map +1 -1
  15. package/dist/impact.js +12 -2
  16. package/dist/impact.js.map +1 -1
  17. package/dist/mcp.d.ts.map +1 -1
  18. package/dist/mcp.js +5 -3
  19. package/dist/mcp.js.map +1 -1
  20. package/dist/parser.d.ts +11 -9
  21. package/dist/parser.d.ts.map +1 -1
  22. package/dist/parser.js +250 -43
  23. package/dist/parser.js.map +1 -1
  24. package/dist/prove.d.ts.map +1 -1
  25. package/dist/prove.js +2 -1
  26. package/dist/prove.js.map +1 -1
  27. package/dist/reporter.d.ts +12 -4
  28. package/dist/reporter.d.ts.map +1 -1
  29. package/dist/reporter.js +200 -48
  30. package/dist/reporter.js.map +1 -1
  31. package/dist/runner.d.ts +12 -2
  32. package/dist/runner.d.ts.map +1 -1
  33. package/dist/runner.js +13 -4
  34. package/dist/runner.js.map +1 -1
  35. package/dist/types.d.ts +24 -2
  36. package/dist/types.d.ts.map +1 -1
  37. package/dist/vendor/spec-core/markdown/frontmatter.d.ts +11 -1
  38. package/dist/vendor/spec-core/markdown/frontmatter.d.ts.map +1 -1
  39. package/dist/vendor/spec-core/markdown/frontmatter.js +20 -3
  40. package/dist/vendor/spec-core/markdown/frontmatter.js.map +1 -1
  41. package/dist/vendor/spec-core/pattern/glob.d.ts +88 -2
  42. package/dist/vendor/spec-core/pattern/glob.d.ts.map +1 -1
  43. package/dist/vendor/spec-core/pattern/glob.js +234 -32
  44. package/dist/vendor/spec-core/pattern/glob.js.map +1 -1
  45. package/dist/vendor/spec-core/pattern/index.d.ts +2 -2
  46. package/dist/vendor/spec-core/pattern/index.d.ts.map +1 -1
  47. package/dist/vendor/spec-core/pattern/index.js +1 -1
  48. package/dist/vendor/spec-core/pattern/index.js.map +1 -1
  49. package/dist/vendor/spec-core/text/index.d.ts +1 -0
  50. package/dist/vendor/spec-core/text/index.d.ts.map +1 -1
  51. package/dist/vendor/spec-core/text/index.js +1 -0
  52. package/dist/vendor/spec-core/text/index.js.map +1 -1
  53. package/dist/vendor/spec-core/text/width.d.ts +31 -0
  54. package/dist/vendor/spec-core/text/width.d.ts.map +1 -0
  55. package/dist/vendor/spec-core/text/width.js +113 -0
  56. package/dist/vendor/spec-core/text/width.js.map +1 -0
  57. 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. Versions follow
4
- [semantic versioning](https://semver.org), with the 0.x caveat that behaviour
5
- may change in a minor release — each such change is listed under **Changed**
6
- with the flag that restores the previous behaviour.
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