Skip to content

Commit 4f56ac7

Browse files
committed
feat(scaffold): strip apps/docs from scaffolded products; make docs checks 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.
1 parent 3b0d309 commit 4f56ac7

2 files changed

Lines changed: 17 additions & 4 deletions

File tree

.tsforge/scaffold-manifest.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,8 @@
255255
"healthUrls": [
256256
"http://localhost:7331/",
257257
"http://localhost:7330/swagger/json"
258-
]
258+
],
259+
"strip": ["apps/docs"]
259260
},
260261
"astro": {
261262
"subPath": "apps/docs",

scripts/stack-check.sh

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,15 @@ run_check() {
2121

2222
require_dir "api" "$BORINGSTACK_API_DIR"
2323
require_dir "ui" "$BORINGSTACK_UI_DIR"
24-
require_dir "docs" "$BORINGSTACK_DOCS_DIR"
24+
25+
# `docs` is TEMPLATE-ONLY. The boringstack repo ships apps/docs (its own docs site)
26+
# and checks it here; a product scaffolded FROM boringstack strips apps/docs (see
27+
# .tsforge/scaffold-manifest.json `strip`), so its docs checks are skipped rather
28+
# than hard-failing. Present ⇒ run them (the template); absent ⇒ this is a product.
29+
HAS_DOCS=0
30+
if [[ -d "$BORINGSTACK_DOCS_DIR" ]]; then
31+
HAS_DOCS=1
32+
fi
2533

2634
run_check "ACL drift" bash -c "cd \"$BORINGSTACK_API_DIR\" && bun run generate:acl-types:check"
2735
run_check "api lint-meta docs" bash -c "cd \"$BORINGSTACK_API_DIR\" && bun run check:lint-meta-docs"
@@ -36,12 +44,16 @@ fi
3644
run_check "ui lint-meta docs" bash -c "cd \"$BORINGSTACK_UI_DIR\" && bun run check:lint-meta-docs"
3745
run_check "ui scripts docs" bash -c "cd \"$BORINGSTACK_UI_DIR\" && bun run check:scripts-docs"
3846

39-
run_check "docs data" bash -c "cd \"$BORINGSTACK_DOCS_DIR\" && BORINGSTACK_API_DIR=\"$BORINGSTACK_API_DIR\" BORINGSTACK_UI_DIR=\"$BORINGSTACK_UI_DIR\" bun run check:docs-data"
47+
if [[ "$HAS_DOCS" == "1" ]]; then
48+
run_check "docs data" bash -c "cd \"$BORINGSTACK_DOCS_DIR\" && BORINGSTACK_API_DIR=\"$BORINGSTACK_API_DIR\" BORINGSTACK_UI_DIR=\"$BORINGSTACK_UI_DIR\" bun run check:docs-data"
49+
fi
4050

4151
if [[ "$FULL" == "--full" ]]; then
4252
run_check "api validate" bash -c "cd \"$BORINGSTACK_API_DIR\" && bun run validate"
4353
run_check "ui validate" bash -c "cd \"$BORINGSTACK_UI_DIR\" && bun run validate"
44-
run_check "docs build:ci" bash -c "cd \"$BORINGSTACK_DOCS_DIR\" && BORINGSTACK_API_DIR=\"$BORINGSTACK_API_DIR\" BORINGSTACK_UI_DIR=\"$BORINGSTACK_UI_DIR\" bun run build:ci"
54+
if [[ "$HAS_DOCS" == "1" ]]; then
55+
run_check "docs build:ci" bash -c "cd \"$BORINGSTACK_DOCS_DIR\" && BORINGSTACK_API_DIR=\"$BORINGSTACK_API_DIR\" BORINGSTACK_UI_DIR=\"$BORINGSTACK_UI_DIR\" bun run build:ci"
56+
fi
4557
fi
4658

4759
printf '\n'

0 commit comments

Comments
 (0)