agentleFS
dleerdefidleerdefi/claude-code-construction/.claude/CLAUDE.md

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
  1. Distinctive:

    Never fabricate dimensions, spec requirements, or code citations

    line 40
  2. Very specific:

    Every skill directory includes agents/openai.yaml for OpenAI Codex agent compatibility

    line 44
  3. Very specific:

    When creating a new skill, copy an existing agents/openai.yaml and update the name/description

    line 45
  4. Very specific:

    All scripts live in the shared scripts/ directory or per-skill scripts/ subdirectories

    line 50
  5. Very specific:

    Every skill has a case in evals/plugin/<case>/.

    line 54

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
CLAUDE.md

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.json lists 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; outside skills/, so the plugin doesn't load them). Anything left under skills/ 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 fails claude 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 via bin/construction-python, never bare python; write intermediate files inside the project, never /tmp; don't commit symlinks (Git on Windows checks them out as plain text files)
  • requirements.txt is the single list of Python dependencies: bin/construction-python creates the venv on first use and re-syncs it whenever this file changes
  • Bump version in .claude-plugin/plugin.json and VERSION for 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/ outside skills/ 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.py fails the gate on any query wrapper, query_command or psql). 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.yaml for OpenAI Codex agent compatibility
  • When creating a new skill, copy an existing agents/openai.yaml and 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; --words gives each word's box, as fractions of the page for crop_region.py --normalized)
  • All scripts live in the shared scripts/ directory or per-skill scripts/ subdirectories
  • Evals grade this: every agentcm-mode case and the three bid cases fail on a .py written 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 in evals/plugin/README.md and the runner is evals/harness/run.py (bin/construction-python evals/harness/run.py --tag smoke --runs 1, see evals/harness/README.md and docs/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)

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.