Typescript Idioms
irahardianto/awesome-agv
TypeScript strict typing: type narrowing, discriminated unions, Zod runtime validation, generic utility types, and Vitest testing.
How to verify Massing web/viewer UI changes LIVE — full verification works; two historic "stalls" are fixed and neither was the geometry loader.
$ npx skills add ibuilder/massing --skill verify-frontend -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ibuilder/massing verify-frontend --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ibuilder/massing.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/verify-frontend .claude/skills/verify-frontend && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "verify-frontend" agent skill from https://github.com/ibuilder/massing/tree/main/.claude/skills/verify-frontend into .claude/skills/verify-frontend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-frontend", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ibuilder/massing/tree/main/.claude/skills/verify-frontendType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ibuilder/massing --skill verify-frontend -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ibuilder/massing verify-frontend --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ibuilder/massing.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/verify-frontend .agents/skills/verify-frontend && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "verify-frontend" agent skill from https://github.com/ibuilder/massing/tree/main/.claude/skills/verify-frontend into .agents/skills/verify-frontend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-frontend", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ibuilder/massing --skill verify-frontend -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ibuilder/massing verify-frontend --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ibuilder/massing.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/verify-frontend .cursor/skills/verify-frontend && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "verify-frontend" agent skill from https://github.com/ibuilder/massing/tree/main/.claude/skills/verify-frontend into .cursor/skills/verify-frontend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-frontend", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ibuilder/massing.git --path .claude/skills/verify-frontend--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ibuilder/massing --skill verify-frontend -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ibuilder/massing verify-frontend --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ibuilder/massing.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/verify-frontend .gemini/skills/verify-frontend && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "verify-frontend" agent skill from https://github.com/ibuilder/massing/tree/main/.claude/skills/verify-frontend into .gemini/skills/verify-frontend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-frontend", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ibuilder/massing verify-frontendInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ibuilder/massing --skill verify-frontend -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ibuilder/massing.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/verify-frontend .github/skills/verify-frontend && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "verify-frontend" agent skill from https://github.com/ibuilder/massing/tree/main/.claude/skills/verify-frontend into .github/skills/verify-frontend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-frontend", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ibuilder/massing --skill verify-frontend -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ibuilder/massing verify-frontend --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ibuilder/massing.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/verify-frontend .opencode/skills/verify-frontend && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "verify-frontend" agent skill from https://github.com/ibuilder/massing/tree/main/.claude/skills/verify-frontend into .opencode/skills/verify-frontend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-frontend", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
verify-frontendHow to verify Massing web/viewer UI changes LIVE — full verification works; two historic "stalls" are fixed and neither was the geometry loader.
Verify Frontend is an agent skill from ibuilder/massing. How to verify Massing web/viewer UI changes LIVE — full verification works; two historic "stalls" are fixed and neither was the geometry loader. Invoke when you changed apps/web and need to prove it works. Covers typecheck/lint/vitest/build, driving the real app, and honest flagging of flows you genuinely couldn't exercise.
Its SKILL.md is about 1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA, covering Unit testing. It works with Vitest. The repository describes itself as: Open, self-hosted, IFC-native AEC platform: web BIM viewer + modeling, a ~100-module GC portal (RFIs, pay apps, CPM, construction accounting — double-entry GL/WIP → QuickBooks… The licence is MIT.
Read from SKILL.md and the folder at commit 523e5b3. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmnpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Verify Frontend loads about 1k tokens when it runs. Until then it costs about 85 tokens; SKILL.md has 431 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ibuilder/massing at commit 523e5b3, republished under its MIT licence (© ibuilder). 431 words, ~1,021 tokens.
.claude/skills/verify-frontend/SKILL.md (or your agent's skills folder).Standing directions for this repo: docs/roadmap-directions.md. Read those first.
The "preview stall" was diagnosed and FIXED in v0.3.703 — it was never the geometry loader. Five
SSE endpoints polled the database inside async def gen(), blocking the event loop for every other
client; two open tabs left the server wedged and every request timed out, including the app's boot
api.health(). That left projectId unset, so the portal showed "No project open" while a model sat
rendered on screen. Fixed with run_in_threadpool; measured >8s timeouts → ~20 ms. Full live
verification now works — start both servers and drive the real app.
A SECOND "stall" was diagnosed and fixed 2026-08-02, and it was not the loader either — the canvas
had width ZERO. Container 830x572, canvas 0x493, four meshes and 230 triangles built and visible,
.frag 200, worker fine, console clean. The renderer sizes itself once at construction; if the
container is not at final width yet, that first size sticks for ever. A ResizeObserver in
createViewer now tracks it (apps/web/src/viewer/canvasResize.test.ts).
Twice now, "the geometry loader stalls" has meant something else entirely — once a blocked event loop, once a zero-width canvas. Before writing that sentence a third time, ask the page:
const c = document.querySelector('canvas'), k = document.querySelector('#container');
({ canvas: c.width+'x'+c.height, container: k.clientWidth+'x'+k.clientHeight }) // canvas ≈ container × devicePixelRatioand count what is actually in the scene (v.viewer.world._scene.three, not v.world). A caveat
nobody re-tests becomes folklore: this skill asserted the stall in its own frontmatter for weeks
while its body said it was fixed, and the contradiction propagated into eight changelog entries.
cd apps/web && export PATH="/c/Program Files/nodejs:$PATH"
npm run typecheck && npm run lint # Node 24 (Node 18 breaks the build)
npx vitest run <path/if/covered>
npm run build # strongest compile check; ~1 minThe preview server is on :5173. In the running preview (via the browser tools), navigate to a project with a source IFC, then:
window.dispatchEvent(new CustomEvent('aec:persona', { detail: 'all' })); // forces buildToolsPanel + buildClashPanel
// then read #panel-tools — the tool-group sections, buttons, inputs all renderThis verifies: new rail tools/buttons/inputs, the ribbon tabs, the Library palette, the node-canvas launcher, the KEYS shortcut layer (dispatch KeyboardEvents), the Ask/analytical boxes. Exercise handlers by .click()ing buttons and reading the result-overlay / DOM.
panel-tree was unverifiable behind the stall. Both stalls are fixed — verify it live..claude/launch.json has api
(:8093) and web (:5173) configs — use preview_start with {name: "api"} / {name: "web"}. A
previous note here said a stale :8093 process was "the user's call"; there was usually no process
at all, and the config to start one has always been in the repo. Check before assuming.State exactly what was verified live vs. by typecheck/build vs. not exercised. Never claim an interactive viewer flow "verified" if the stall prevented it.
See memory: tools-panel-verify-technique, web-build-needs-node-20, web-eslint-node-pin, dev-api-port.
© ibuilder, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/verify-frontend of ibuilder/massing.
Open the folder on GitHubat commit 523e5b3
Verify Frontend next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Verify Frontend this skillibuilder/massing | 121 | — | ~1k | Automated safety check: Pass | MIT | |
| Typescript Idiomsirahardianto/awesome-agv | 157 | — | ~6.1k | Automated safety check: Pass | MIT | |
| Test GuardamElnagdy/guard-skills | 1.3k | 2 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Add UI Stringopenfootmanager/openfootmanager | 1.1k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Creating A Packagec15t/c15t | 1.9k | — | ~913 | Automated safety check: Pass | Apache-2.0 | |
| Check Visual Changesigrlk/storybook-addon-test-codegen | 154 | 1 repos | ~1.4k | Automated safety check: Pass | MIT |
irahardianto/awesome-agv
TypeScript strict typing: type narrowing, discriminated unions, Zod runtime validation, generic utility types, and Vitest testing.
amElnagdy/guard-skills
Reviews newly written or edited tests against nine rules that cut test bloat, such as mock-heavy checks and near-duplicate cases, before they are committed.
openfootmanager/openfootmanager
Add or change any text a player can see, in every locale the game ships in.
c15t/c15t
Scaffold a new workspace package in the c15t monorepo. An agent skill from c15t/c15t.
igrlk/storybook-addon-test-codegen
Check the visual impact of an edit mid-task with uiverify check — render just the components you're touching on the UI Verify fleet and diff them against the real CI baseline, without opening a PR…
tellahq/opensession
Write idiomatic Effect v4 TypeScript verified against the pinned effect@4.0.0-rc.112 source.
ibuilder/massing
How to run and add Python tests in the Massing API/data services.
ibuilder/massing
Drive a Massing BIM/AEC project from an AI agent over MCP — read a project's status, records, CDE, KPI and model-quality checks; run standards-compliance, schedule-risk, embodied-carbon, permit-…
ibuilder/massing
The Massing release discipline — how to ship a verified, CI-green version-numbered release direct to main.
ibuilder/massing
Reason like a master builder — one mind holding an entire built-asset project from raw land through design, construction, handover, operations, and disposition, anywhere in the world.
ibuilder/massing
How to monitor and fix security issues in Massing — CodeQL alerts, dependency audits, secret scanning, and ReDoS/XXE fixes.
Works with
Categories
How to verify Massing web/viewer UI changes LIVE — full verification works; two historic "stalls" are fixed and neither was the geometry loader. Verify Frontend is an agent skill from ibuilder/massing. How to verify Massing web/viewer UI changes LIVE — full verification works; two historic "stalls" are fixed and neither was the geometry loader.
Verify Frontend fits situations like: tasks that involve Unit testing.
Run `npx skills add ibuilder/massing --skill verify-frontend -a claude-code`. Or copy the skill folder (.claude/skills/verify-frontend in ibuilder/massing) into .claude/skills/verify-frontend in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ibuilder/massing --skill verify-frontend -a codex`. Or copy the skill folder (.claude/skills/verify-frontend in ibuilder/massing) into .agents/skills/verify-frontend in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ibuilder/massing --skill verify-frontend -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/verify-frontend, .gemini/skills/verify-frontend, .github/skills/verify-frontend and .opencode/skills/verify-frontend in your project.
Going by SKILL.md and its folder, Verify Frontend needs the command-line tools its instructions call (npm and npx). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npm and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Verify Frontend is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1k tokens (SKILL.md is roughly 4.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Verify Frontend: Typescript Idioms (irahardianto/awesome-agv, 157 stars), Test Guard (amElnagdy/guard-skills, 1.3k stars), Add UI String (openfootmanager/openfootmanager, 1.1k stars) and Creating A Package (c15t/c15t, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ibuilder (a GitHub user) maintains it in ibuilder/massing, which has 121 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 2, 2026.
Source: ibuilder/massing on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.