archlang

archlang is a skill for Claude Code from ChanMeng666/archlang. It costs 105 tokens per session (7,214 once invoked), scanned A, original, MIT.

A small text language for describing building floor plans, which compiles an .arch file into a professional drawing.

In plain words
What is it for?
Use it to design or edit homes, offices, and other building layouts, render them as SVG drawings, inspect them with text descriptions, and fix mechanical errors.
Why use it?
It lets developers create and revise layouts as text, while checking errors and applying some automatic fixes without relying only on visual inspection.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the archlang plugin — 5 skills shipped together

Good fit Use it to design or edit homes, offices, and other building layouts, render them as SVG drawings, inspect them with text descriptions, and fix mechanical errors.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/chanmeng666/archlang/archlang
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add ChanMeng666/archlang --skill archlang
Clone the repo
git clone --depth 1 https://github.com/ChanMeng666/archlang

Made for: Claude Code.

Or install archlang, the plugin that ships this one along with the rest of its 5 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for archlang

README.md
[![agentmods](https://agentmods.dev/badge/skills/chanmeng666/archlang/archlang/github.svg)](https://agentmods.dev/skills/chanmeng666/archlang/archlang)
Your own site
<a href="https://agentmods.dev/skills/chanmeng666/archlang/archlang"><img src="https://agentmods.dev/badge/skills/chanmeng666/archlang/archlang/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for archlang

Your own site · 80×15
<a href="https://agentmods.dev/skills/chanmeng666/archlang/archlang"><img src="https://agentmods.dev/badge/skills/chanmeng666/archlang/archlang.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 105 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 7,214 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00105 $0.07214
Opus 5.5 $0.00042 $0.02886
Sonnet 5.5 $0.00021 $0.01443
Haiku 4.5 $0.00011 $0.00721

Measured today against content hash 81373a89523f, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

archlang scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.

The scan reads SKILL.md. This mod also ships 2 executable files (scripts/changelog-section.mjs, scripts/check-drift.ts), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/archlang/skills/archlang/SKILL.md · 384 lines

How it starts

The opening of the file, as written. The whole thing — 384 lines — stays where its author put it; the contents beside it link to each section on GitHub.

ArchLang — author floor plans as code

ArchLang turns a small .arch text file into a professional floor-plan drawing. It is built for agents: deterministic, self-correcting (errors carry a machine code, a prose fix, and often a machine-applicable fix archlang fix can apply), and verifiable without ever looking at an image (archlang describe).

Setup (zero-install)

The CLI runs straight from npm — no clone, no build:

npx -y @chanmeng666/archlang --help

Or npm i -g @chanmeng666/archlang for a global archlang command. Every call below is written archlang <cmd>; without the global install, write npx -y @chanmeng666/archlang <cmd>. Never run a bare arch: the package installs it as an alias, but on Linux, macOS and Git Bash coreutils owns that name, so the shell runs the wrong program.

The loop (always follow this)

  1. Learn the language first. Run archlang spec and read it — the entire language in one page. (archlang context prints everything: spec + this workflow + CLI reference + error catalog.) Do this before writing any .arch.
  2. Write the plan to a .arch file (or pipe via stdin with -), preferring the placement sugar below so you never hand-compute a coordinate.
  3. Render it: archlang compile plan.arch -o plan.svg --json. The JSON is { ok, diagnostics, summary }.
  4. Auto-fix the mechanical faults: if ok is false, run archlang fix plan.arch --dry-run --json to preview the machine-applicable edits (off-wall opening → attachment form, out-of-range position clamped, …), then re-run without --dry-run to apply. Anything fix can't resolve stays in diagnostics[].fix for you to edit by hand. Exit code 2 means a deterministic user error — fix it, don't blindly retry (1 = IO/internal, 3 = bad usage).
  5. See the plan without an image: archlang compile plan.arch -f txt (or archlang preview plan.arch --ascii) prints a zero-dependency ASCII floor plan you can read straight from stdout.
  6. Verify intent: archlang describe plan.arch --json returns the rooms (areas, adjacency), what each door connects, and totals. Confirm the room count, labels, and areas match what was asked. Each room reports two areas: area_m2 on wall centrelines and net_area_m2, the floor no wall stands on (the room less every wall band inside it, computed exactly, or absent when it cannot be, and then so is the net total); totals sums both. Quote net_area_m2 as floor area, and name which figure you report.
  7. Gate on soundness — don't ship a flagged plan. archlang validate plan.arch --strict --json (parse + resolve + lint). --strict makes every advisory warning fail (exit 2) — the gate a generation pipeline runs before it ships. Add --graph g.json to also assert the intended room-to-room adjacency ({ "living": ["kitchen","hall"], … }); a mismatch fails. Read each diagnostics[].fix, edit, and re-run until it passes — or, if a warning is deliberate, say so.
  8. Check the plan against the brief. Write the user's brief as an intent.json — its checkable expectations as data (room count, per-room concepts with area/window bands, total area, optional adjacency/reachability). Two disciplines keep it brief-grounded: assert an area band only where the brief gives a number ("about/~N" → ±10%; "at least N" → min only; qualitative words → nothing), and assert the top-level room count only when the brief enumerates the rooms. Gate with archlang validate plan.arch --intent intent.json --feedback --json: a gating miss (room count/existence/area/total-area/window) fails (exit 2) with a per-violation correction prompt — iterate on the feedback and re-run. Adjacency/reachability are advisory (reported, never fail the gate). Use archlang score plan.arch --brief intent.json --json as a continuous satisfaction meter (always exit 0) to watch the plan approach the brief across edits. See /intent.schema.json.
  9. Fix furniture geometry: archlang repair plan.arch -o fixed.arch pushes furniture out of walls/doorways/swing arcs (the geometric corrector; distinct from fix). It rewrites a piece in the form you wrote it (an at point, or the inset of an in <room> anchor … placement) — and always read unresolved: a piece it may not rewrite (one for/component statement drawing several pieces, expression coordinates, an against wall anchor) is reported there with the fault and why, never silently skipped. changed: false with a non-empty unresolved means you edit the source.
  10. Finish the drawing: once lint is clean, run archlang finish plan.arch --dry-run --json, then without --dry-run to apply. It first furnishes each rectangular room that holds no furniture, by the room's use (single-storey plans; a furnished room is never touched — a partly furnished one is named in unresolved with the categories it lacks, not topped up), then adds the sheet statements the plan lacks — paper, scale, dims auto, title, schedule rooms, legend — on the smallest sheet the drawing fits. It fills only what is missing and deletes nothing. Read unresolved: a room it left empty or a statement it left out is named there with the reason (--only furnish/--only sheet runs one step; --reissue lets it replace a paper/scale the drawing does not fit).
  11. Show the user: archlang preview plan.arch -o plan.png renders a PNG (--install fetches the optional renderer if missing). To hand the user the plan itself, rendered and with nothing to install, run archlang link plan.arch (or npx -y @chanmeng666/archlang link plan.arch): it prints a playground URL that opens the plan; --json adds the embed URL.

Read the full file on GitHub · 384 lines

Files

What ships with it

60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. today Changed · +7 lines 81373a89523f
  2. yesterday Changed · +27 lines 409adc068351
  3. 2d ago Changed · +8 lines 6f97a7bbd532
  4. 3d ago Changed · +4 lines 3479d45b837e
  5. 10d ago Changed · +11 lines · +1 tokens per session 5329a089a5d7
  6. 14d ago Changed · +20 lines 9b7fee4764f9
  7. 24d ago Changed · -1 lines dedeccd91411
  8. 1mo ago Changed · +9 lines c1305b450274
  9. 1mo ago Changed · +38 lines 6d1d7d6ad667
  10. 1mo ago First seen · 261 lines · 104 tokens per session scan A e15c5d26aed8

Subscribe to this mod's changes

archlang is a skill published in the GitHub repository ChanMeng666/archlang (24 stars, last pushed today), licensed MIT. It adds 105 tokens to every session and 7,214 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

furniture-fit

Assess whether furniture fits in a measured Pascal room or layout. Use this skill for sofa, table, bed, cabinet, appliance, staging, placement, collision, clearance, or rotated-footprint questions. Produce a tool-backed spatial report that distinguishes footprint fit from unsupported height, door-swing, assembly, and…

pascalorg/editor · 80 tokens

pascal-3d

Connect to Pascal and use its MCP tools to create, inspect, edit, validate, save, or hand off editable 3D building scenes. Use this skill whenever a user asks an agent to work in Pascal, make a room or building model, inspect a Pascal project, perform spatial edits, connect Pascal MCP, or return a verified Pascal…

pascalorg/editor · 92 tokens

accessibility

Use when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast, tap-target size. NOT palette or visual intent (that is design), NOT test-runner setup (that is testing-web), NOT LCP/page-speed (that is…

ericrisco/rsc-harness · 86 tokens

brand-identity

Use when a project needs its visual foundation built or consolidated into one system: logo brief, color system in HEX/RGB/CMYK/OKLCH with proven AA contrast, type system, usage rules, and an exported W3C design-tokens.json that later skills consume. NOT the applied UI pixels (that is design), NOT the words or tone…

ericrisco/rsc-harness · 83 tokens

plan

Use when an approved, clarified spec must become a technical blueprint before any code — the SDD phase between clarify and tasks: architecture, contracts, data flow, testing strategy, sequencing and risks, at structure altitude, never framework syntax. NOT the what/why spec (that is specify), NOT the ambiguity sweep…

ericrisco/rsc-harness · 95 tokens

android-compose-patterns

Use when building native Android with Jetpack Compose - stateless composables, state hoisting, ViewModel-owned state, edge-to-edge, predictive back, adaptive layout, atomic components, and Material theming over hardcoded values.

makifbaysal/tasktrooper · 50 tokens