Skip to main content

verify

Build, launch and drive the Solo Leveling portfolio headlessly to verify changes end-to-end.

소스 정보

저장소
codeonym-org/portfolio
최근 소스 활동
2026년 9월 23일 21:04
감지된 SKILL.md 언어
영어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
verify
description
Build, launch and drive the Solo Leveling portfolio headlessly to verify changes end-to-end.
# Verifying the portfolio ## Build & launch ```bash pnpm build pnpm start & # serves the prod build on http://localhost:3000 ``` ## Drive it headlessly Playwright is NOT a project dep and `npx playwright` is blocked by safe-chain; require it from the npx cache instead (find the hash dir with `grep -rl playwright ~/.npm/_npx/*/package.json`): ```js const { chromium } = require("/home/codeonym/.npm/_npx/<hash>/node_modules/playwright"); ``` Any viewport works (v5 supports mobile: test `390x844` with `isMobile`/`hasTouch`). ## Flows & gotchas - **Flow**: loading screen (real asset progress) → title → click the `ARISE` button (`getByRole("button", { name: "ARISE", exact: true })`) → world. Title can take 20–40 s headless while assets stream. - **Pin quality to low + mute** before load, or SwiftShader crawls: ```js await page.addInitScript(() => localStorage.setItem("codeonym-world-v5", JSON.stringify({ state: { quality: "low", visited: [], risen: [], completed: [], xp: 0, muted: true }, version: 0 }))); ``` Headless still runs ~1–3 fps (GPU fill in software; JS is ~90% idle) — that is the environment, not the app. Give `page.screenshot` a 150 s timeout and judge real perf in a real browser. - **Animations are frame-capped**: mixers clamp delta to 0.05 s, so at headless fps a 4 s ARISE takes ~75 s wall time. Poll `system.snapshot().visitor.shadowsRisen` instead of sleeping. - **Chrome extension tab may be hidden** (`document.visibilityState === "hidden"`): rAF pauses, so fps probes hang — ask the user to focus it. - **Agent bridge**: `window.system` exposes the whole control surface — `system.snapshot()` (serializable state), `system.run(name, args)` (command dispatcher), `system.commands` (`open_zone`, `walk_to_zone`, `arise`, `inspect_entity`, `open_cv`…). Driving store-level behavior through it beats synthesizing clicks. - **PDF windows render white in headless** (no PDF viewer plugin in chromium headless shell); confirm the file with `curl -sI localhost:3000/cv.pdf` instead. - **`public/cv.pdf` is committed** (user-approved exception; only the repo-root `cv.pdf` source stays gitignored) — no copy step needed. - **Screenshots capture stale compositor tiles over the WebGL canvas** (whole scene looks black, or a moving vertical boundary of visible content). Not a product bug — force a clean repaint before every screenshot by flashing a full-viewport overlay: ```js await page.evaluate(async () => { const d = document.createElement("div"); d.style.cssText = "position:fixed;inset:0;background:#fff;z-index:99999"; document.body.appendChild(d); await new Promise((r) => setTimeout(r, 150)); d.remove(); }); await page.waitForTimeout(1000); ```
GitHub에서 보기