fix(scaffolding): rename create-ssp to create-frontend, fix 2 bugs it surfaced

Renamed scripts/create-ssp.mjs -> create-frontend.mjs (+ its WP-45 doc, npm
script, and every prose/command reference) since "ssp" reads as an acronym
where "create-frontend" says what it does.

Also fixes two real bugs found while running it for real during WP-61:
scripts/ci-local.sh was missing from RENAME_CONTENT_FILES (any --name'd
clone that keeps a backend would break `npm run ci`, still hardcoding
BigRegister.slnx), and plopfile.mjs's `gen:context` insertion into
.dependency-cruiser.js anchored on the `showcase: null,` line, which
create-ssp/create-frontend has already stripped by the time gen:context
runs in the same invocation — silently leaving a freshly scaffolded
context with no CONTEXT_ALLOWED fence entry at all. Re-anchored on the
`const CONTEXT_ALLOWED = {` line instead, which never moves.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
eho
2026-07-31 23:26:28 +02:00
co-authored by Claude Sonnet 5
parent ba24784586
commit 920ce138cb
7 changed files with 21 additions and 17 deletions
+7 -4
View File
@@ -107,12 +107,15 @@ export default function (plop) {
template: '"paths": {\n "@{{kebabCase name}}/*": ["src/app/{{kebabCase name}}/*"],\n',
},
{
// Boundary entry (WP-38's single source of truth) — inserted right before the
// `showcase: null` line, which never moves.
// Boundary entry (WP-38's single source of truth) — inserted right after the
// `const CONTEXT_ALLOWED = {` opening line, which never moves. (Previously anchored
// on the `showcase: null,` line, but create-frontend.mjs strips that entry before running
// this generator, so the modify silently no-op'd and the new context got no fence at
// all — dep:check stayed green with the boundary rule simply missing.)
type: 'modify',
path: '.dependency-cruiser.js',
pattern: /(\s*)showcase: null,/,
template: "$1'{{kebabCase name}}': [],$1showcase: null,",
pattern: /const CONTEXT_ALLOWED = \{\n/,
template: 'const CONTEXT_ALLOWED = {\n {{kebabCase name}}: [],\n',
},
{
// Lazy route — inserted right before the catch-all, which never moves.