@piercebarney/whs-eleventy 2026.11.113 → 2026.11.115
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/package.json +2 -2
- package/standard/CHANGELOG.md +84 -0
- package/standard/core.md +23 -12
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@piercebarney/whs-eleventy",
|
|
3
|
-
"version": "2026.11.
|
|
3
|
+
"version": "2026.11.115",
|
|
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"
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"node": ">=22"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@piercebarney/whs-core": ">=2026.11.
|
|
35
|
+
"@piercebarney/whs-core": ">=2026.11.115",
|
|
36
36
|
"node-html-parser": "^9.0.2"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
package/standard/CHANGELOG.md
CHANGED
|
@@ -21,8 +21,92 @@ Everything else — wording fixes, doc corrections that don't change what's
|
|
|
21
21
|
enforced, new *opt-in* chapters/capabilities, tooling-only changes — is
|
|
22
22
|
**non-breaking**. `bin/check` fails if a heading is missing the tag.
|
|
23
23
|
|
|
24
|
+
Every breaking change ships with its `/whs:upgrade` migration (`CHARTER.md` P15).
|
|
25
|
+
|
|
24
26
|
---
|
|
25
27
|
|
|
28
|
+
## 2026-11-01-15 [non-breaking]
|
|
29
|
+
|
|
30
|
+
web-house-style adopts its own charter (`CHARTER.md`) and aligns its docs with
|
|
31
|
+
it: scope tiers, what one-time setup stays with the account holder, a push rule
|
|
32
|
+
for Claude Code sessions, and a lifecycle coverage table.
|
|
33
|
+
|
|
34
|
+
Non-breaking: wording, a new doc, and opt-in capability; nothing a compliant
|
|
35
|
+
project does today becomes non-compliant.
|
|
36
|
+
|
|
37
|
+
**What an adopting project does:** nothing required; `/whs:upgrade` picks up the
|
|
38
|
+
new wording. Optionally set `status: parked` in `.claude/project/index.md` to
|
|
39
|
+
have `bin/fleet` skip the project.
|
|
40
|
+
|
|
41
|
+
`templates/verify.sh` is still red only on the known bandit advisory
|
|
42
|
+
(phoenix-bandit-advisory), unrelated to this release.
|
|
43
|
+
|
|
44
|
+
**Closes:** whs-charter-v1
|
|
45
|
+
|
|
46
|
+
### CHARTER.md
|
|
47
|
+
New: the standard's own charter (idea, audience, success criteria S1–S8, principles P1–P18, out of scope X1–X10).
|
|
48
|
+
|
|
49
|
+
### core: beyond-this-standard
|
|
50
|
+
Scope tiers; apps of any size sit inside the standard (Idea / S7). Drift-guarded — all three stacks rechecked.
|
|
51
|
+
|
|
52
|
+
### core: adopting
|
|
53
|
+
One-time setup: only buying, signing up, and minting credentials stay with the account holder; the rest is tooling, tracked as `verifiedOn` until a tool exists (X9 / P16). P15 pointer added.
|
|
54
|
+
|
|
55
|
+
### core: out-of-scope
|
|
56
|
+
Server logic at the static tier is a tier change, not an extension of the static tier.
|
|
57
|
+
|
|
58
|
+
### stacks/eleventy-netlify.md
|
|
59
|
+
Mirrored wording for the `beyond-this-standard`, `adopting`, and `out-of-scope` changes.
|
|
60
|
+
|
|
61
|
+
### stacks/sveltekit-netlify.md
|
|
62
|
+
Mirrored wording for the `beyond-this-standard`, `adopting`, and `out-of-scope` changes.
|
|
63
|
+
|
|
64
|
+
### stacks/phoenix.md
|
|
65
|
+
Mirrored wording for the `beyond-this-standard`, `adopting`, and `out-of-scope` changes.
|
|
66
|
+
|
|
67
|
+
### PROCESS.md
|
|
68
|
+
The push line points to `CLAUDE-PROJECT.md`; optional `status: parked` documented; P14 pointer.
|
|
69
|
+
|
|
70
|
+
### CLAUDE-PROJECT.md
|
|
71
|
+
Auto-push rule: a Mac Claude Code session may push a group of commits only where a push can't deploy, never force-pushes, and runs a pre-push sensitive check first. That check isn't built yet, so pushing stays with the owner for now. The VM never pushes (P4 / X3).
|
|
72
|
+
|
|
73
|
+
### README.md
|
|
74
|
+
Doc-map row for `CHARTER.md`; lifecycle coverage table (S8); P17 pruning pass with its sweep rule; P13 pointer.
|
|
75
|
+
|
|
76
|
+
### PROJECT-OVERVIEW.md
|
|
77
|
+
Aligned with the charter (X2).
|
|
78
|
+
|
|
79
|
+
### bin/fleet
|
|
80
|
+
Parked rows are shown, skipped, and counted.
|
|
81
|
+
|
|
82
|
+
### BACKLOG.md
|
|
83
|
+
Fleet-upgrade-runner design rewritten; new entries: pre-push-sensitive-check, content-check-vm-mode, shared-record-scripts, ops-automation.
|
|
84
|
+
|
|
85
|
+
## 2026-11-01-14 [non-breaking]
|
|
86
|
+
|
|
87
|
+
`whs doctor`'s repo tier gains a `native-platform` blocker row: an installed
|
|
88
|
+
package whose `package.json` `os`/`cpu` excludes this machine means
|
|
89
|
+
`node_modules` came from another platform (e.g. the desktop app's Linux shell
|
|
90
|
+
over a Mac install). The row names the packages and points at
|
|
91
|
+
`CLAUDE-PROJECT.md` "Shell environment". It also surfaces in deploy preflight
|
|
92
|
+
and eleventy's audit page via `runRepoChecks`.
|
|
93
|
+
|
|
94
|
+
Non-breaking: tooling only; a normal install on its own machine passes.
|
|
95
|
+
|
|
96
|
+
Still unverified: whether `content-check` fails the same way in the desktop
|
|
97
|
+
app's Linux shell.
|
|
98
|
+
|
|
99
|
+
**What an adopting project does:** `npm update` the whs packages.
|
|
100
|
+
|
|
101
|
+
**Closes:** doctor-platform-mismatch
|
|
102
|
+
|
|
103
|
+
### packages/whs-core
|
|
104
|
+
|
|
105
|
+
`runRepoChecks` gains the `native-platform` blocker check (last in the repo
|
|
106
|
+
tier) and exports a new `foreignNativePackages(root, { platform, arch })`
|
|
107
|
+
helper. The check reads only top-level and `@scope` `package.json` files and
|
|
108
|
+
follows npm's `os`/`cpu` allow/negation semantics.
|
|
109
|
+
|
|
26
110
|
## 2026-11-01-13 [non-breaking]
|
|
27
111
|
|
|
28
112
|
The charter template's Audience section gains an Ownership line: the owner's
|
package/standard/core.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Web project house style — CORE (stack-agnostic)
|
|
2
2
|
|
|
3
|
-
**Version:** 2026-11-01-
|
|
3
|
+
**Version:** 2026-11-01-15 · **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
|
|
@@ -1397,10 +1397,14 @@ the audit page reflects it after a rebuild.
|
|
|
1397
1397
|
|
|
1398
1398
|
**Implementation.** See your stack's impl doc, same slug.
|
|
1399
1399
|
|
|
1400
|
-
## beyond-this-standard —
|
|
1400
|
+
## beyond-this-standard — Scope tiers: beyond the static envelope
|
|
1401
1401
|
|
|
1402
|
-
**Contract.** This standard covers
|
|
1403
|
-
|
|
1402
|
+
**Contract.** This standard covers websites and web apps of any size
|
|
1403
|
+
(`CHARTER.md` Idea, S7), in tiers. `static+forms` is the default: content
|
|
1404
|
+
sites, tool sites, and their forms, inside the static envelope. The app tier
|
|
1405
|
+
(`+db` / `+auth` / `+ssr`) is also inside the standard, bound by
|
|
1406
|
+
`stacks/phoenix.md`. Crossing from the static tier to the app tier is a
|
|
1407
|
+
deliberate, recorded step (the `scope:` key), not a drift.
|
|
1404
1408
|
|
|
1405
1409
|
**Specs.**
|
|
1406
1410
|
- **Signals you are past the static envelope:** a database; user accounts /
|
|
@@ -1550,9 +1554,14 @@ scaffold it reports the partial result honestly and points at that stack's
|
|
|
1550
1554
|
own `TEMPLATE.md`.
|
|
1551
1555
|
|
|
1552
1556
|
**One-time setup.** Adopting, converting, or upgrading against the standard
|
|
1553
|
-
often leaves a project owing **one-time human setup
|
|
1554
|
-
|
|
1555
|
-
|
|
1557
|
+
often leaves a project owing **one-time human setup**. Only buying, signing up
|
|
1558
|
+
and granting access stay with the account holder (the owner, or the client for
|
|
1559
|
+
a client's site): registering domains, paying, creating hosting or service
|
|
1560
|
+
accounts, minting credentials (`#secrets`). Everything after an account
|
|
1561
|
+
exists — site/hosting setup, build settings, DNS records, headers, wiring
|
|
1562
|
+
secrets in, monitoring — is done by a tool (`CHARTER.md` P16, X9). Where no
|
|
1563
|
+
tool exists yet, the step is tracked the same way `#compliance` already tracks
|
|
1564
|
+
a `MANUAL` row until tooling replaces it: a committed
|
|
1556
1565
|
item carrying a dated `verifiedOn` confirmation, not a message printed once
|
|
1557
1566
|
to a terminal and forgotten. A session-start check flags any item still
|
|
1558
1567
|
unconfirmed so it can't go silently stale — **not a gate**; per
|
|
@@ -1609,7 +1618,7 @@ governs it and follow that chapter — the slugs are the index (a `<script>` →
|
|
|
1609
1618
|
- content-type: tool # tool | article (article => feeds)
|
|
1610
1619
|
- add-ons: none # or: comma list of modules/ packs no field above implies (calculator, glossary, pages) — see modules/README.md
|
|
1611
1620
|
- publishing-rate: ~5 pages/week
|
|
1612
|
-
- standard-version: 2026-11-01-
|
|
1621
|
+
- standard-version: 2026-11-01-15 # recommended — enables standard-version drift tracking (#compliance)
|
|
1613
1622
|
|
|
1614
1623
|
<!-- optional, present only while a filed need is unresolved -->
|
|
1615
1624
|
### Waiting on the standard
|
|
@@ -1659,7 +1668,9 @@ wire in, runs an initial compliance pass. It **produces** the initial
|
|
|
1659
1668
|
migration backlog; it does not work it — working the backlog stays
|
|
1660
1669
|
incremental, by hand or later via `/whs:upgrade` once the project is
|
|
1661
1670
|
version-pinned and catching up to a newer standard release. `/whs:adopt` and
|
|
1662
|
-
`/whs:upgrade` are deliberately different commands with different scopes.
|
|
1671
|
+
`/whs:upgrade` are deliberately different commands with different scopes. A
|
|
1672
|
+
release that would break a pinned project ships with the `/whs:upgrade` step
|
|
1673
|
+
that fixes it (`CHARTER.md` P15).
|
|
1663
1674
|
|
|
1664
1675
|
**Feedback to the standard.** Adopting the house style is what surfaces its
|
|
1665
1676
|
bugs — a check that misfires, a `core.md` ↔ impl-doc contradiction, a Contract
|
|
@@ -1876,9 +1887,9 @@ project actually needs it.
|
|
|
1876
1887
|
recorded in `CLAUDE.md`, not specified here.
|
|
1877
1888
|
- **A design-token pipeline** (Style Dictionary et al.) — `#brand-source` as one
|
|
1878
1889
|
file is the small-project version; graduate only when tokens outgrow it.
|
|
1879
|
-
- **Server-side application logic
|
|
1880
|
-
`#beyond-this-standard
|
|
1881
|
-
(`#third-parties`).
|
|
1890
|
+
- **Server-side application logic in a project recorded at the static tier** —
|
|
1891
|
+
that is a tier change (`#beyond-this-standard`), not an addition; a thin
|
|
1892
|
+
key-hiding proxy is the one static-tier carve-out (`#third-parties`).
|
|
1882
1893
|
- **ML infrastructure** — model fine-tuning or training pipelines, a
|
|
1883
1894
|
vector-store / RAG retrieval layer, an evals harness, a prompt-versioning
|
|
1884
1895
|
system. `#llm-integration` covers *calling* a model API; building the
|