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.
npx skills add dleerdefi/claude-code-construction --skill tag-audit-and-takeoffgit clone --depth 1 https://github.com/dleerdefi/claude-code-constructionWrote 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.
[](https://agentmods.dev/skills/dleerdefi/claude-code-construction/tag-audit-and-takeoff)<a href="https://agentmods.dev/skills/dleerdefi/claude-code-construction/tag-audit-and-takeoff"><img src="https://agentmods.dev/badge/skills/dleerdefi/claude-code-construction/tag-audit-and-takeoff/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.
<a href="https://agentmods.dev/skills/dleerdefi/claude-code-construction/tag-audit-and-takeoff"><img src="https://agentmods.dev/badge/skills/dleerdefi/claude-code-construction/tag-audit-and-takeoff.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00054 | $0.03636 |
| Opus 5 | $0.00027 | $0.01818 |
| Sonnet 5 | $0.00011 | $0.00727 |
| Haiku 4.5 | $0.00005 | $0.00364 |
Grade A, and why
tag-audit-and-takeoff scanned grade A with 2 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 10d ago.
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.
Sends data to an external URLlowData exfiltration
A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.
`curl -s -X POST '{api_url}/projects/{project_id}/graph/export' -H 'Content-Type: application/json' -d '{\"rootPath\": \"'$(pwd)'\"}'`" Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
`curl -s -X POST '{api_url}/projects/{project_id}/graph/export' -H 'Content-Type: application/json' -d '{\"rootPath\": \"'$(pwd)'\"}'`" How it starts
The opening of the file, as written. The whole thing — 349 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Tag Audit & Quantity Takeoff
Purpose
Count-based QTO for tagged construction elements — fixtures, devices, doors, equipment, and any element identified by a tag/symbol on drawings. Does NOT do area (sqft) or linear (lf) takeoffs — only discrete counts.
The QTO is a byproduct of the audit. The real value: the completeness engine that finds what's tagged, what's missing, and produces a defensible count with full provenance for every number.
Does NOT: do area/linear takeoffs, create outbound documents autonomously, override user-approved groupings, or assume quantities without provenance.
Step 0: Detect Operating Mode
Check for .construction/ directory at the project root.
AgentCM mode (.construction/ exists):
- Read
.construction/CLAUDE.mdfor project context - Read
.construction/database.yamlforquery_commandandproject_id - Sheet images at
.construction/rasters/{sheet_number}.png
Verify raster images exist: Check .construction/rasters/ for PNG files.
If empty, tell the user: "Raster images not found. Open this project in
AgentCM to trigger the export, or run:
curl -s -X POST '{api_url}/projects/{project_id}/graph/export' -H 'Content-Type: application/json' -d '{\"rootPath\": \"'$(pwd)'\"}'"
You can also rasterize individual sheets on demand using the rasterize_page.py script.
- OCR data queryable via
extracted_itemstable in PostgreSQL - Write results back via API:
POST /api/projects/{id}/tag-detections/ingest
Flat File mode (no .construction/):
- Discover sheet images from CLAUDE.md or user-provided paths
- Vision-only pipeline (Steps 2-3 skipped)
- Write marked-up PNGs and QTO JSON to project directory
Step 1: User Scopes the Task
User provides: (1) tag type — e.g., "plumbing fixtures", "doors",
"light fixtures" (see references/tag-types.md for full list), and
(2) sheet scope — specific sheets, a discipline, or "all sheets".
Confirm scope before proceeding.
Custom tag types: If the user requests a tag type not in
references/tag-types.md (e.g., "keynote legends", "fire dampers",
"seismic bracing"), treat it as a custom type. Use it in the tag_type
field at ingest — the server auto-registers unknown types in the
tag_types table with default styling. The normalized name will be
qto_{type} (e.g., qto_keynote_legend). Custom types appear in the
Group Review gallery and support the full accept/reject/promote workflow.
What ships with it
10 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.
- agents/openai.yaml 300 B
- references/detection-record.schema.json 3.6 KB
- references/grouping-rules.md 4.1 KB
- references/qto-output-format.md 4.5 KB
- references/quantity-model.md 5.5 KB
- references/spatial-params.md 3.3 KB
- references/tag-types.md 3.7 KB
- scripts/markup_tags.py 3.5 KB runs code
- scripts/qto_to_xlsx.py 18 KB runs code
- scripts/shared.py 554 B runs code
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.
- 10d ago First seen · 349 lines · 54 tokens per session scan A 309a2bf58a57
tag-audit-and-takeoff is a skill published in the GitHub repository dleerdefi/claude-code-construction (37 stars, last pushed 4mo ago), licensed MIT. It adds 54 tokens to every session and 3,636 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 2 findings (sends data to an external url, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
adjudication-sheets
Build human adjudication / hand-labeling sheets from LLM-pipeline data without evidence truncation. Use when: (1) preparing a CSV/Excel sheet for a human to rule on cases an LLM classifier or rater panel judged, (2) a labeler reports "there is no information to label from" or cells look empty in Excel, (3) excerpt…
stylework-yunxiao-requirement-sync
A workflow for exporting selected requirements from Yunxiao, a project-management service, into a new sheet in an existing DingTalk online spreadsheet. It formats the result into a fixed set of columns and groups it by iteration.
docs-pipeline-automation
Build repeatable data-to-Docs pipelines from Sheets and Drive sources. Use for automated status reports, template-based document assembly, and scheduled publishing workflows.
storyboard-designer
A tool for turning a narration or story script into a structured storyboard spreadsheet for AI video projects. The spreadsheet includes shot planning, character design, first- and last-frame prompts, narration, and sound effects.
support-metrics
Generate a support metrics summary from Gorgias tickets and optionally push to Google Sheets.
baoyu-youtube-transcript
A tool for downloading the written captions, subtitles, chapter information, speaker labels, and cover image from a YouTube video using its URL or ID.