本文へ移動
cccskills
無料GitHub で公開

site-build

Use when building, testing or previewing site-os — the BUILD_TARGET=stable dist directory, the four verification gates (build, test, env:check, brand:check), the preview servers on :3000 and :3100, and the failure modes that look like bugs but are not.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md3.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Building and verifying

The gates — all four, every time

BUILD_TARGET=stable pnpm build     # production build
pnpm test                          # vitest
pnpm env:check                     # every process.env var has a declared home
pnpm brand:check                   # brand assets, scales, no retired hexes

tsc --noEmit alone is not enough: it cannot see inside a SQL string or a Tailwind class name, and both have produced runtime failures here that compiled cleanly.

BUILD_TARGET=stable writes to .next-stable

next.config.mjs sets distDir from it. Use the same value for build and start, or pnpm start serves a stale or missing directory:

BUILD_TARGET=stable pnpm build
BUILD_TARGET=stable PORT=3100 pnpm start

Rebuilding under a running server breaks it

Rebuilding into .next-stable while a server is serving from it invalidates the chunk hashes its manifest holds, and every page starts throwing. It looks like a code bug; it is not. Restart the server after a rebuild:

pkill -f "next start"; sleep 2
BUILD_TARGET=stable PORT=3100 pnpm start > /tmp/vb-preview.log 2>&1 &

Previewing

PortServes
3000~/projects/site-os — main
3100~/projects/site-os-brand-v4 — the brand-v4 worktree

Both bind to all interfaces, so no tunnel: localhost, Tailscale 100.88.18.114, or LAN 192.168.0.11. Admin routes 307 to /login — that is correct, not a failure.

The Coolify tunnel (scripts/coolify-tunnel.sh, port 8000) is unrelated; it reaches the Coolify dashboard and API, which are loopback-only on the server.

Verify against the rendered page, not the source

A page compiling proves nothing about what it renders. curl it:

curl -s http://localhost:3100/services | grep -oiE "lead generation|demand gen"

For anything visual, say plainly that it was not seen if no browser was opened. Structural checks are not the same as looking at it.

Tailwind: an unknown class fails the build, a wrong one does not

Tailwind v3 cannot apply an alpha modifier (bg-saffron-500/10) to a var() holding a full hex, which is why the saffron and green scales in tailwind.config.ts must stay hex literals. brand:check asserts they still match tokens.css.

To prove a class emits real CSS, grep the built stylesheet — there are several, and the main one is the largest:

grep -o "\.rounded-ui-md{[^}]*}" .next-stable/static/css/*.css

Committing

Branch brand-v4. No push, no merge, no deploy without being asked.

Before committing, check no secret is staged:

git status --porcelain | grep -E '\.env\.local|\.secrets/'   # must be empty
git grep -l '<any token value>'                              # must be 0 files

.env.local and .secrets/ are gitignored (.gitignore:36 and :44).

Related

  • [[site-database]] — migrations and the ownership rule.
  • [[brand]] — what brand:check is enforcing.
  • docs/OPS.md §3 — which store holds which environment value.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

brand

無料

Apply this site's visual identity — colours, type, logo files and fixed brand strings. Use for any page, component, social asset or document that should look like the site.

日本語の概要は準備中です。原文の説明を表示しています。

aryannema/vigyan-site-os22026年10月2日 更新

Use FIRST when someone asks for a new feature or a change to an existing one — before any schema, code or test. Works out what is actually being asked for, whether to build it or integrate a third party (Trustpilot, Stripe, Calendly and the like), where the data lives, who may do what, and what happens when the vendor is down. Produces a decision, then hands to feature-schema.

日本語の概要は準備中です。原文の説明を表示しています。

aryannema/vigyan-site-os22026年10月2日 更新

Use when a new feature needs a table, column or capability — evolving the schema so the new thing joins the permission, audit and RLS contract instead of sitting outside it. Covers the DDL/DML split, the resource/capability wiring, and the self-verifying migration.

日本語の概要は準備中です。原文の説明を表示しています。

aryannema/vigyan-site-os22026年10月2日 更新

Use after building a feature — explore it in a real browser to find what nobody predicted, then turn each finding into a deterministic test that guards it forever. Covers the agentic pass, what to generate vs hand-write, and how to skip honestly when a capability is missing.

日本語の概要は準備中です。原文の説明を表示しています。

aryannema/vigyan-site-os22026年10月2日 更新

Publishing content or deploying site-os — what caches exist, what refreshes them, and how to prove a change is actually live. Use when publishing a post or product, launching a page, deploying, or when someone says a change "isn't showing".

日本語の概要は準備中です。原文の説明を表示しています。

aryannema/vigyan-site-os22026年10月2日 更新

Handling secrets, keys and credentials for site-os — reading vigyan-secrets.md safely, moving keys into app_secrets, rotating, and responding to an exposure. Use whenever a task touches a key, token, password, .env file, app_secrets, encryption, or the secrets document.

日本語の概要は準備中です。原文の説明を表示しています。

aryannema/vigyan-site-os22026年10月2日 更新

aryannema のスキルをすべて見る

このスキルの問題を報告する