Skip to content

perf(scaffold): strip template docs from products + cache API eslint#304

Merged
agjs merged 2 commits into
mainfrom
perf/gate-speed
Jul 15, 2026
Merged

perf(scaffold): strip template docs from products + cache API eslint#304
agjs merged 2 commits into
mainfrom
perf/gate-speed

Conversation

@agjs

@agjs agjs commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Two changes that make tsforge-driven builds against a scaffolded product faster and correct:

1. Strip apps/docs from scaffolded products

apps/docs is boringstack's OWN documentation site. A product scaffolded from the template was carrying it AND gating against it — its docs build:ci / generate:og-image fails in a headless build env, blocking the gate on something the product's author can't fix.

  • .tsforge/scaffold-manifest.json: the boringstack (full-stack) archetype declares strip: ["apps/docs"]; tsforge deletes it post-clone. Archetype-scoped — the astro archetype (whose product IS apps/docs) strips nothing.
  • scripts/stack-check.sh: docs checks (docs data, docs build:ci) are now guarded on apps/docs existing. The template repo keeps apps/docs and still checks it fully; a stripped product skips them cleanly.

2. eslint --cache on the API

The UI already caches ESLint; the API didn't, so every gate cycle paid ~23s per lint (twice — once as lint:fix, once as the check lint). Content-based cache invalidation, zero rule changes. Warm lint ~23s → ~2s. .eslintcache + *.tsbuildinfo gitignored.

Config-only; no rules relaxed.

@agjs agjs enabled auto-merge (squash) July 15, 2026 09:45
agjs added 2 commits July 15, 2026 11:54
…loss)

The UI already caches ESLint; the API did not, so every gate cycle paid ~23s per
lint AND another ~23s when lint ran again in the check. Content-based cache
invalidation, no rules changed. .eslintcache + *.tsbuildinfo gitignored.
…hecks template-only

apps/docs is boringstack's OWN docs site — a scaffolded product must not carry or
gate against it. Manifest declares strip:[apps/docs] for the full-stack archetype
(tsforge deletes it post-clone). stack-check.sh now skips the docs checks (data +
build:ci/og-image) when apps/docs is absent, so a product passes cleanly while the
template itself (which keeps apps/docs) still checks it fully.
@agjs agjs force-pushed the perf/gate-speed branch from 4f56ac7 to 66ff0db Compare July 15, 2026 09:54
@agjs agjs merged commit d9bf825 into main Jul 15, 2026
29 checks passed
@agjs agjs deleted the perf/gate-speed branch July 15, 2026 09:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant