claude-code-construction
CLAUDE.md53 starsChanged 17 days agoMITView on GitHub
This repo is a Claude Code plugin (construction) of skills for construction document management. Install steps, the skill table and validation are in README.md, docs/QUICKSTART.md and docs/VALIDATING.md. Skills are invoked as /construction:<skill>.
We split this CLAUDE.md into the rules it gives an agent
5 rules. About 0 are common, 1 is distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 40
Never fabricate dimensions, spec requirements, or code citations
- Very specific: line 44
Every skill directory includes agents/openai.yaml for OpenAI Codex agent compatibility
- Very specific: line 45
When creating a new skill, copy an existing agents/openai.yaml and update the name/description
- Very specific: line 50
All scripts live in the shared scripts/ directory or per-skill scripts/ subdirectories
- Very specific: line 54
Every skill has a case in evals/plugin/<case>/.
≈ “Common” is an estimate: at least 1 in 5 of the 25,680 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Construction Skills — Development
This repo is a Claude Code plugin (construction) of skills for construction document management.
For Users
Install steps, the skill table and validation are in README.md, docs/QUICKSTART.md and docs/VALIDATING.md. Skills are invoked as /construction:<skill>.
For Contributors
- The plugin manifest is
.claude-plugin/plugin.json;.claude-plugin/marketplace.jsonlists the plugin for/plugin marketplace add - Production skills live in
skills/<name>/SKILL.md— edit directly skills/construction-guide/is the operating guide (data-access rules, drawing conventions, document precedence). It replaced the shared CLAUDE.md, which a plugin can't ship- Dev/experimental skills live in
.claude/skills/_dev/<name>/(gitignored, not shipped, never loaded by the plugin) - Deprecated skills move to
.claude/skills/_deprecated_<name>/(gitignored; outsideskills/, so the plugin doesn't load them). Anything left underskills/is loaded, whatever its name:--plugin-dir .showed a_deprecated_folder as a 15th skill - This contributor guide lives at
.claude/CLAUDE.md: a CLAUDE.md at the plugin root is not loaded by plugins and failsclaude plugin validate --strict
Dev Workflow
claude --plugin-dir . # Load this checkout live (any OS); run /reload-plugins after edits
dev/link # Or symlink ~/.claude/skills/construction here (macOS/Linux)
dev/unlink # Remove that symlink
claude plugin validate --strict .claude-plugin/plugin.json # Check manifest + skills
bin/construction-python -m unittest discover -s tests # Unit tests for the toolkit's scripts
bash dev/gate && git commit ... # The commit gate: validate, both unit-test suites, VERSION = plugin.json,
# no writes under .construction/ outside skills/, no database queries;
# stops at the first failure
bin/construction-python dev/readme_diagrams.py # Redraw the README diagrams in docs/images/ (edit the script, never the SVGs)Key Rules
- Each commit = one logical change
- SKILL.md files are the canonical source — edit directly
- Shared tooling is referenced from the plugin root:
${CLAUDE_PLUGIN_ROOT}/reference/,${CLAUDE_PLUGIN_ROOT}/scripts/,${CLAUDE_PLUGIN_ROOT}/bin/construction-python. Skill-local files use${CLAUDE_SKILL_DIR}/scripts/and${CLAUDE_SKILL_DIR}/references/. Claude Code substitutes both in SKILL.md bodies only, not in supporting files - Skills run on Windows, macOS and Linux: double-quote every path in skill commands (
"${CLAUDE_PLUGIN_ROOT}/...") and run Python viabin/construction-python, never barepython; write intermediate files inside the project, never/tmp; don't commit symlinks (Git on Windows checks them out as plain text files) requirements.txtis the single list of Python dependencies:bin/construction-pythoncreates the venv on first use and re-syncs it whenever this file changes- Bump
versionin.claude-plugin/plugin.jsonandVERSIONfor each release; marketplace installs only update when it changes - Where skills write: deliverables in visible project folders, never in
.construction/(hidden on macOS/Linux); working data, findings included (.construction/skills/<skill>/findings/, both modes), in.construction/skills/; AgentCM's data only through its write endpoints, and only when AgentCM is present, detected by.construction/project.yaml— never by the.construction/folder alone. Nothing under.construction/outsideskills/is a skill's to write - How skills read AgentCM: its files only (INDEX.md,
sheets/,tags.tsv,xrefs.tsv,schedules/,specs/), never its database (dev/check_no_queries.pyfails the gate on any query wrapper,query_commandorpsql). The API is read only where a write needs it (reference/agentcm-mode.md). A write that finds AgentCM closed waits in.construction/skills/<skill>/outbox/ - Never fabricate dimensions, spec requirements, or code citations
- Skills must pass eval before moving from
_dev/to production
Codex Compatibility
- Every skill directory includes
agents/openai.yamlfor OpenAI Codex agent compatibility - When creating a new skill, copy an existing
agents/openai.yamland update the name/description
Script Allowlist
- Skills must declare an exhaustive list of allowed scripts in their SKILL.md (a skill that runs no scripts says so, as project-setup does)
- Skills must NOT create custom Python scripts during execution, including inline
python -c. The reason, stated once here: deliverables come only from the versioned exporters, so every run's output has the same shape and can be audited; working files stay inside the project; the skill's own JSON and YAML are written with the Write tool. When a run writes its own script, read it as a gap in the toolkit (a missing reader, a check an exporter should make) and fix the toolkit, not the rule. Shared readers:scripts/pdf/pdf_text.py(PDF text, TEXT/VISION per page),scripts/docx_text.py(Word),scripts/pdf/extract_text_region.py(pdfplumber tables;--wordsgives each word's box, as fractions of the page forcrop_region.py --normalized) - All scripts live in the shared
scripts/directory or per-skillscripts/subdirectories - Evals grade this: every agentcm-mode case and the three bid cases fail on a
.pywritten by the model, on inline Python (python -c, Python fed on stdin), or on a script written through a shell redirect or heredoc; the other regular cases list it report-only, as the mode refactor's baseline (evals/plugin/<case>/graders/no-helper-scripts.md,no-inline-python.md)
Evals
- Every skill has a case in
evals/plugin/<case>/; the case conventions are inevals/plugin/README.mdand the runner isevals/harness/run.py(bin/construction-python evals/harness/run.py --tag smoke --runs 1, seeevals/harness/README.mdanddocs/RUNNING_EVALS.md) - A new or changed skill gets its case run through the harness before it merges
Authoritative SOP
- The comprehensive skill architecture SOP is at
docs/CM_SKILLS_SOP.md - Covers: three-tier progressive disclosure, YAML front matter spec, 500-line limit, refactoring lifecycle, evals framework, skill categories (Builder, Extraction, Generation, Research)
In this repository14 other files it gives its agents.
- bid-evaluatorSkill
- bid-tabulatorSkill
- code-researcherSkill
- construction-guideSkill
- pe-reviewSkill
- project-setupSkill
- rfi-drafterSkill
- schedule-extractorSkill
- sheet-splitterSkill
- spec-splitterSkill
- subcontract-writerSkill
- submittal-log-generatorSkill
- submittal-reviewSkill
- tag-audit-and-takeoffSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

