@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 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 marker is supplied here.
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+stacks\/eleventy-netlify\.md/, label: "(eleventy binding)" },
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.26",
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.26",
34
+ "@piercebarney/whs-core": ">=2026.10.28",
35
35
  "node-html-parser": "^9.0.2"
36
36
  },
37
37
  "devDependencies": {
@@ -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-26 · **Status:** active
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-26 # recommended — enables standard-version drift tracking (#compliance)
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