LangBot Plugin Development
langbot-app/LangBot
Guides building, debugging and testing LangBot plugins: components, SDK calls, README and locale rules, SDK pitfalls and WebSocket-based testing.
How to run and add Python tests in the Massing API/data services.
$ npx skills add ibuilder/massing --skill backend-tests -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ibuilder/massing backend-tests --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/backend-tests .claude/skills/backend-tests && 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 "backend-tests" agent skill from https://github.com/ibuilder/massing/tree/main/.claude/skills/backend-tests into .claude/skills/backend-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backend-tests", 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/backend-testsType 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 backend-tests -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ibuilder/massing backend-tests --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/backend-tests .agents/skills/backend-tests && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "backend-tests" agent skill from https://github.com/ibuilder/massing/tree/main/.claude/skills/backend-tests into .agents/skills/backend-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backend-tests", 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 backend-tests -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ibuilder/massing backend-tests --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/backend-tests .cursor/skills/backend-tests && 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 "backend-tests" agent skill from https://github.com/ibuilder/massing/tree/main/.claude/skills/backend-tests into .cursor/skills/backend-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backend-tests", 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/backend-tests--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 backend-tests -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ibuilder/massing backend-tests --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/backend-tests .gemini/skills/backend-tests && 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 "backend-tests" agent skill from https://github.com/ibuilder/massing/tree/main/.claude/skills/backend-tests into .gemini/skills/backend-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backend-tests", 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 backend-testsInstalls 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 backend-tests -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/backend-tests .github/skills/backend-tests && 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 "backend-tests" agent skill from https://github.com/ibuilder/massing/tree/main/.claude/skills/backend-tests into .github/skills/backend-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backend-tests", 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 backend-tests -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 backend-tests --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/backend-tests .opencode/skills/backend-tests && 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 "backend-tests" agent skill from https://github.com/ibuilder/massing/tree/main/.claude/skills/backend-tests into .opencode/skills/backend-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backend-tests", 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.
backend-testsHow to run and add Python tests in the Massing API/data services.
Backend Tests is an agent skill from ibuilder/massing. How to run and add Python tests in the Massing API/data services. Invoke when writing or running backend tests, or debugging a CI test-gate failure. Covers the runtests.py runner, the manifest guard, per-test env isolation, DB-lock cleanup, and the two idioms (DB-backed vs engine/IFC).
Its SKILL.md is about 840 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 Development. It works with Python. 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.
3 steps, taken from the first numbered list in SKILL.md.
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.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Backend Tests loads about 836 tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 374 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). 374 words, ~836 tokens.
.claude/skills/backend-tests/SKILL.md (or your agent's skills folder).Standing directions for this repo: docs/roadmap-directions.md. Read those first.
There is no pytest. Tests are self-contained test_*.py scripts in services/api/ that spin up their own TestClient, assert, print a one-line summary, and exit non-zero on failure.
cd services/api
PYTHONPATH="src;../data/src" ./.venv/Scripts/python.exe -X utf8 run_tests.py # whole suite (~40 min)
PYTHONPATH="src;../data/src" ./.venv/Scripts/python.exe -X utf8 test_<name>.py # one testUse -X utf8 — some tests print →/²/³ and crash on the default Windows cp1252 console (a false failure; CI uses utf-8).
run_tests.py has a hand-maintained TESTS list and a manifest_problems() guard that fails the whole run before any suite starts if the list and the test_*.py files on disk are not a 1:1 map. It enforces three rules:
After adding test_foo.py, add "test_foo" to the TESTS list or CI fails before running anything. test_manifest.py asserts the live manifest is clean and drives each rule with a synthetic violation to prove the guard can still go red — keep those synthetic cases if you touch the guard.
os.environ["DATABASE_URL"], STORAGE_DIR, and (if it uploads a source IFC) IFC_DIR — all to ./test_*-prefixed local paths (gitignored). os.environ.pop("AEC_RBAC", None). Use TestClient(app) + X-User header. Upload a model via POST /projects/{pid}/source-ifc?publish=false.../data/src to sys.path, build a model with aec_data.massing.generate_blank_ifc + aec_data.edit.*, and assert on aec_data/aec_api engine functions directly (no DB needed).test_*.db locked ("Device or resource busy"). Clean rm -f ./test_<name>.db; rm -rf ./test_storage_<name> ./test_ifc_<name> before re-running; if truly stuck, run a throwaway copy with a different db name to verify logic (CI runs clean).edit_history sidecar: tests that author edits leave state under STORAGE_DIR; clean it between local runs (run_tests.py does this per-test).c.stream + iter_lines never returns). Test the payload/signature logic, not the live stream.app.routes introspection is unreliable for included-router paths — assert via a real TestClient call instead.services/api with its ruff.toml (isort). See the ship-release skill.See memory: backend-test-runner, ruff-ci-config-gotcha.
© 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/backend-tests of ibuilder/massing.
Open the folder on GitHubat commit 523e5b3
Backend Tests 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 |
|---|---|---|---|---|---|---|
| Backend Tests this skillibuilder/massing | 121 | — | ~836 | Automated safety check: Pass | MIT | |
| LangBot Plugin Developmentlangbot-app/LangBot | 18k | — | ~3.9k | Automated safety check: Pass | Apache-2.0 | |
| LangBot Core Developmentlangbot-app/LangBot | 18k | — | ~1.4k | Automated safety check: Notes | Apache-2.0 | |
| Keybase RPC Log Analysiskeybase/client | 9.3k | — | ~3k | Automated safety check: Pass | BSD-3-Clause | |
| DDNS Provider DevelopmentNewFuture/DDNS | 4.7k | — | ~558 | Automated safety check: Pass | MIT | |
| Releasezmievsa/cadwyn | 309 | — | ~522 | Automated safety check: Pass | MIT |
langbot-app/LangBot
Guides building, debugging and testing LangBot plugins: components, SDK calls, README and locale rules, SDK pitfalls and WebSocket-based testing.
langbot-app/LangBot
Covers developing the LangBot core backend and web UI: dev setup, repo layout, API auth types, adding endpoints, migrations and keeping the MCP server in step.
keybase/client
Captures a clean Keybase service log and analyzes it for redundant, duplicated or looping RPCs, then checks whether a caching fix reduced the calls.
NewFuture/DDNS
Adds or changes a DNS provider in the DDNS project while keeping its code, schemas, tests and Chinese and English docs consistent.
zmievsa/cadwyn
Prepare and publish Cadwyn releases. An agent skill from zmievsa/cadwyn.
saleor/saleor
Forward-ports or backports a single PR or branch onto the currently checked-out Saleor branch, handling GraphQL version markers and migration numbering along the way.
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
How to verify Massing web/viewer UI changes LIVE — full verification works; two historic "stalls" are fixed and neither was the geometry loader.
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
How to run and add Python tests in the Massing API/data services. Backend Tests is an agent skill from ibuilder/massing. How to run and add Python tests in the Massing API/data services.
Backend Tests fits situations like: development work in your project.
Run `npx skills add ibuilder/massing --skill backend-tests -a claude-code`. Or copy the skill folder (.claude/skills/backend-tests in ibuilder/massing) into .claude/skills/backend-tests in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ibuilder/massing --skill backend-tests -a codex`. Or copy the skill folder (.claude/skills/backend-tests in ibuilder/massing) into .agents/skills/backend-tests 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 backend-tests -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/backend-tests, .gemini/skills/backend-tests, .github/skills/backend-tests and .opencode/skills/backend-tests in your project.
SKILL.md names no scripts, command-line tools or credentials: Backend Tests is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Backend Tests is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 836 tokens (SKILL.md is roughly 3.3k 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 Backend Tests: LangBot Plugin Development (langbot-app/LangBot, 18k stars), LangBot Core Development (langbot-app/LangBot, 18k stars), Keybase RPC Log Analysis (keybase/client, 9.3k stars) and DDNS Provider Development (NewFuture/DDNS, 4.7k 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.