@piercebarney/whs-eleventy 2026.10.26 → 2026.10.28
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/lib/compliance.js +3 -5
- package/lib/status.js +16 -2
- package/package.json +2 -2
- package/standard/CHANGELOG.md +38 -0
- package/standard/core.md +2 -2
package/lib/compliance.js
CHANGED
|
@@ -35,6 +35,7 @@ const {
|
|
|
35
35
|
const coreStatus = require("@piercebarney/whs-core/lib/status.js");
|
|
36
36
|
const { runRepoChecks } = require("./doctor.js");
|
|
37
37
|
const { ROOT, resolveStandard, tryProjectRequire } = require("./_project.js");
|
|
38
|
+
const { BINDING_MARKERS } = require("./status.js");
|
|
38
39
|
|
|
39
40
|
const CACHE = path.join(ROOT, ".cache", "compliance.json");
|
|
40
41
|
// The standard's text — WHS_STANDARD, the bundled copy (@piercebarney/whs-core's),
|
|
@@ -810,11 +811,8 @@ const CHECKS = {
|
|
|
810
811
|
|
|
811
812
|
// ---- standard-version drift -----------------------------------------
|
|
812
813
|
// Pure slug/severity parsing is @piercebarney/whs-core's lib/status.js; the
|
|
813
|
-
// eleventy binding
|
|
814
|
-
|
|
815
|
-
const BINDING_MARKERS = [
|
|
816
|
-
{ pattern: /^###\s+stacks\/eleventy-netlify\.md/, label: "(eleventy binding)" },
|
|
817
|
-
];
|
|
814
|
+
// eleventy binding markers live in ./status.js (the single definition both
|
|
815
|
+
// `status` and `compliance` share).
|
|
818
816
|
|
|
819
817
|
function changelogEntries(changelog, pin) {
|
|
820
818
|
return coreStatus.changelogEntries(changelog, pin, { bindingMarkers: BINDING_MARKERS });
|
package/lib/status.js
CHANGED
|
@@ -27,8 +27,22 @@ const path = require("node:path");
|
|
|
27
27
|
const { runStatus, versionsBehind } = require("@piercebarney/whs-core/lib/status.js");
|
|
28
28
|
const { tryProjectRequire } = require("./_project.js");
|
|
29
29
|
|
|
30
|
+
// Every CHANGELOG heading form this stack's chapters have carried:
|
|
31
|
+
// `stacks/eleventy-netlify.md` (current), `templates/eleventy-netlify` (its
|
|
32
|
+
// own subpaths too), and the two tooling packages themselves
|
|
33
|
+
// (`packages/whs-eleventy`, `packages/whs-core`) — a date block touching only
|
|
34
|
+
// one of those two produces no `### core:`/stack-binding heading at all, so
|
|
35
|
+
// without a marker here it would silently surface zero rows and
|
|
36
|
+
// `.claude/commands/whs/upgrade.md`'s step 3 (which works from `status`'s
|
|
37
|
+
// rows) would skip it entirely. `\b` after the slug matches whichever comes
|
|
38
|
+
// next in the real heading text — `.md`, `,`, `/`, `:`, or end of line — so
|
|
39
|
+
// one pattern covers combined headings too (e.g.
|
|
40
|
+
// `### templates/eleventy-netlify / stacks/eleventy-netlify.md`).
|
|
30
41
|
const BINDING_MARKERS = [
|
|
31
|
-
{ pattern: /^###\s
|
|
42
|
+
{ pattern: /^###\s+.*\bstacks\/eleventy-netlify\b/, label: "(eleventy binding)" },
|
|
43
|
+
{ pattern: /^###\s+.*\btemplates\/eleventy-netlify\b/, label: "(eleventy template)" },
|
|
44
|
+
{ pattern: /^###\s+.*\bpackages\/whs-eleventy\b/, label: "(eleventy tooling)" },
|
|
45
|
+
{ pattern: /^###\s+.*\bpackages\/whs-core\b/, label: "(shared tooling)" },
|
|
32
46
|
];
|
|
33
47
|
|
|
34
48
|
// "N requested feature(s) delivered — run /whs:upgrade to adopt" and the
|
|
@@ -60,4 +74,4 @@ function main() {
|
|
|
60
74
|
|
|
61
75
|
if (require.main === module) main();
|
|
62
76
|
|
|
63
|
-
module.exports = { versionsBehind };
|
|
77
|
+
module.exports = { versionsBehind, BINDING_MARKERS };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@piercebarney/whs-eleventy",
|
|
3
|
-
"version": "2026.10.
|
|
3
|
+
"version": "2026.10.28",
|
|
4
4
|
"description": "The web house style's Eleventy + Netlify tooling — the compliance sweep, the infra doctor, the link/CSP integrity check, and the a11y scan, shared by every project on the stack.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"whs": "cli.js"
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"node": ">=22"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@piercebarney/whs-core": ">=2026.10.
|
|
34
|
+
"@piercebarney/whs-core": ">=2026.10.28",
|
|
35
35
|
"node-html-parser": "^9.0.2"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
package/standard/CHANGELOG.md
CHANGED
|
@@ -23,6 +23,44 @@ enforced, new *opt-in* chapters/capabilities, tooling-only changes — is
|
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
26
|
+
## 2026-10-28 [non-breaking]
|
|
27
|
+
|
|
28
|
+
### packages/whs-eleventy
|
|
29
|
+
|
|
30
|
+
`BINDING_MARKERS` now recognizes `templates/eleventy-netlify`,
|
|
31
|
+
`packages/whs-eleventy`, and `packages/whs-core` headings anywhere in a
|
|
32
|
+
`###` line (not just `stacks/eleventy-netlify.md` at the start of the
|
|
33
|
+
line), so a package-only or template-only CHANGELOG block now produces a
|
|
34
|
+
`whs status` / `whs compliance` row instead of none. `compliance.js` no
|
|
35
|
+
longer keeps its own copy of the marker list — both read the single
|
|
36
|
+
definition exported from `status.js`. Eleventy projects: `npm update`
|
|
37
|
+
`@piercebarney/whs-eleventy` to pick up the fix.
|
|
38
|
+
|
|
39
|
+
### templates/eleventy-netlify
|
|
40
|
+
|
|
41
|
+
`.claude/commands/whs/upgrade.md` step 3 gains a paragraph explaining that
|
|
42
|
+
`status`/`compliance` are a helper, not the ground truth of what's in
|
|
43
|
+
scope — listing which headings the markers recognize and noting that
|
|
44
|
+
`### module: <name>` has no marker of its own, so a module's own
|
|
45
|
+
CHANGELOG entries need a manual check against `add-ons/`. Eleventy
|
|
46
|
+
projects: pull the new upgrade.md paragraph on next `/whs:upgrade`.
|
|
47
|
+
|
|
48
|
+
**Closes:** eleventy-status-package-markers
|
|
49
|
+
|
|
50
|
+
## 2026-10-27 [non-breaking]
|
|
51
|
+
|
|
52
|
+
### CLAUDE-PROJECT.md
|
|
53
|
+
|
|
54
|
+
The `COWORK.md` redirect stub is deleted, now that every Claude Project's
|
|
55
|
+
instructions point at `CLAUDE-PROJECT.md`.
|
|
56
|
+
|
|
57
|
+
### CLAUDE.md, .claude/agents/infra.md
|
|
58
|
+
|
|
59
|
+
Both agents'-territory lists drop the "(+ its temporary `COWORK.md` stub)"
|
|
60
|
+
pairing — each now lists just `CLAUDE-PROJECT.md`.
|
|
61
|
+
|
|
62
|
+
**Closes:** remove-cowork-stub
|
|
63
|
+
|
|
26
64
|
## 2026-10-26 [non-breaking]
|
|
27
65
|
|
|
28
66
|
### CLAUDE-PROJECT.md
|
package/standard/core.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Web project house style — CORE (stack-agnostic)
|
|
2
2
|
|
|
3
|
-
**Version:** 2026-10-
|
|
3
|
+
**Version:** 2026-10-28 · **Status:** active
|
|
4
4
|
|
|
5
5
|
This is the stack-agnostic contract every web project follows, regardless of
|
|
6
6
|
framework, host, or CSS system. It says **what** must be true, with concrete
|
|
@@ -1554,7 +1554,7 @@ governs it and follow that chapter — the slugs are the index (a `<script>` →
|
|
|
1554
1554
|
- content-type: tool # tool | article (article => feeds)
|
|
1555
1555
|
- add-ons: none # or: comma list of modules/ packs no field above implies (calculator, glossary, pages) — see modules/README.md
|
|
1556
1556
|
- publishing-rate: ~5 pages/week
|
|
1557
|
-
- standard-version: 2026-10-
|
|
1557
|
+
- standard-version: 2026-10-28 # recommended — enables standard-version drift tracking (#compliance)
|
|
1558
1558
|
|
|
1559
1559
|
<!-- optional, present only while a filed need is unresolved -->
|
|
1560
1560
|
### Waiting on the standard
|