dleerdefi/claude-code-construction/submittal-log-generator

Claude Code and agent skill by dleerdefi/claude-code-construction

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Extract all submittal requirements from specification sections and generate a comprehensive submittal register in Excel. Triggers: 'submittal log', 'extract submittals', 'submittal register'. Requires /spec-splitter output.

Install

npx vskill@latest install dleerdefi/claude-code-construction/submittal-log-generator

Semi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard

SKILL.md

Submittal Log Generator

Long-running skill that processes every specification section to extract submittal requirements and produces a professional submittal register in Excel. Designed to handle full project manuals (200+ spec sections) with state persistence.

Prerequisite: This skill reads one .txt file per spec section. In an AgentCM project (.construction/project.yaml exists) AgentCM provides them in .construction/specs/. Otherwise /spec-splitter provisions them at .construction/skills/spec_text/, and it does so in an AgentCM project too for a manual AgentCM could not read. The provider owns text quality — extraction, repair, and quality assessment. This skill reads those .txt files and focuses on identifying submittal items.

Design Philosophy: Scripts for Structure, Claude for Judgment

This skill uses a three-tier approach:

  • RIGID (scripted, deterministic): File I/O, Excel output schema, directory structure, naming conventions. Follow these exactly. Do not improvise.
  • GUIDED (decision tree, Claude picks the branch): Confidence scoring, output location discovery. Follow the decision logic; adapt thresholds to what you observe.
  • FLEXIBLE (domain knowledge, Claude thinks): Identifying what is actually a submittal item, distinguishing submittals from boilerplate, resolving ambiguity, handling non-standard spec formats. Use your understanding of construction documents and the domain knowledge below.

Allowed scripts — exhaustive list. Only execute these scripts during this skill:

  • export_submittal_log.py — Excel output from assembled JSON (Step 4)
  • write_finding.py — a finding in .construction/skills/submittal-log-generator/findings/ (Step 5)
  • ${CLAUDE_PLUGIN_ROOT}/scripts/issue_manager.py — log a submittal requirement with no matching spec product to the Issue Registry (command and severity mapping in construction-guide)

Do not create, generate, or write any .py, .sh, or other script files. All data assembly is Claude writing JSON directly.

Current Submittal State

!cat .construction/skills/submittal-log-generator/submittal_extraction_state.yaml 2>/dev/null || echo "No prior extraction — starting fresh"


Output Schema — RIGID

The Excel submittal log MUST contain these columns in this order. Do not rename, reorder, or omit columns.

ColumnDescriptionExample
Spec SectionCSI section number03 30 00
Spec TitleSection titleCast-in-Place Concrete
Submittal No.Sequential ID: [Section]-[###]03 30 00-001
Submittal TypeCategorized type (see taxonomy below)Product Data
Submittal DescriptionThe actual submittal requirement, cleanedSubmit product data for each concrete mix design including compressive strength, admixtures, and mix proportions
Article ReferenceWhere found in the spec1.3.A.1
Action/InformationalAction or InformationalAction
ConfidenceHIGH / MEDIUM / LOW / FLAGGEDHIGH
Flag ReasonEmpty if HIGH; explanation otherwisePossible boilerplate — verify intent
Extraction Methodpdfplumber / vision / hybridpdfplumber
NotesAny context Claude thinks the PE should knowReferenced mix designs in 03 31 00
Formatting

Use the rigid export script for all Excel output. The script handles:

  • Header row: Bold, dark background (RGB 44,62,80), white text, freeze panes
  • Alternating row shading for readability
  • Auto-filter on all columns
  • Column widths sized to content (Submittal Description gets the widest)
  • Conditional formatting on Confidence column: HIGH=green, MEDIUM=yellow, LOW=orange, FLAGGED=red
  • Summary sheet with counts by section, type, and confidence level
  • Extraction QA sheet with per-section quality metrics

Workflow — RIGID Structure, GUIDED Decisions

Submittal Log Progress:
- [ ] Step 0: Ensure spec text is available (invoke /spec-splitter if needed)
- [ ] Step 1: Submittal identification (per section, Claude intelligence)
- [ ] Step 2: Confidence scoring & flagging
- [ ] Step 3: Assembly & deduplication
- [ ] Step 4: Excel output (rigid script)
- [ ] Step 5: Write a finding
Step 0: Ensure Spec Text Is Available — RIGID

This skill reads from .construction/skills/spec_text/*.txt files provisioned by /spec-splitter, or in AgentCM mode from AgentCM's .construction/specs/. Check whether they exist and invoke spec-splitter if needed.

AgentCM mode (.construction/project.yaml exists):

  1. Read .construction/INDEX.md. The queue is every section under ## Specification sections; read each from its Agent file, .construction/specs/<section>.txt (08 71 00 is 08-71-00.txt; each line starts with its page in the manual, which gives the page for citations). These files carry no quality rating.
  2. If INDEX.md lists manuals under ## Spec manuals not read, their sections are spec-splitter's: use Branch A or B below for those manuals only, and add their sections to the queue from .construction/skills/spec_text/manifest.json. Never invoke spec-splitter for a manual AgentCM has read.
  3. If INDEX.md is missing, say that AgentCM has not written its index for this folder, and stop.
  4. Follow ${CLAUDE_PLUGIN_ROOT}/reference/agentcm-mode.md (which source wins, missing files).

Flat-file mode (no .construction/project.yaml): Branch A or B.

Branch A — Text already extracted:

  1. Check .construction/skills/spec_text/manifest.json (older versions used .construction/spec_text/: if only that exists, copy it to .construction/skills/spec_text/ first and leave the old one as it is)
  2. If present with corresponding .txt files → inventory them, build the processing queue, proceed to Step 1
  3. Note any sections with quality_rating: "POOR" in the manifest — items extracted from these sections will receive a minimum confidence of MEDIUM

Branch B — No text extracted:

  1. Invoke the construction:spec-splitter skill (Skill tool) yourself; don't ask the user to run it — it will handle everything: locating or splitting spec PDFs, extracting text, and repairing quality issues
  2. After /spec-splitter completes, read .construction/skills/spec_text/manifest.json and proceed to Step 1

Important: Always invoke spec-splitter as a skill (construction:spec-splitter) — do not call extract_spec_text.py or split_spec_manual.py directly. The spec-splitter skill manages directory discovery, naming conventions, text extraction, and text repair.

Build processing queue from manifest (in AgentCM mode, INDEX.md's sections plus these):

  1. Read all section keys from manifest.json
  2. For each section, verify the corresponding .txt file exists
  3. Sort by CSI section number
  4. Build the queue

Initialize state file:

yaml
# .construction/skills/submittal-log-generator/submittal_extraction_state.yaml
run_id: "uuid"
started: "ISO-8601"
status: "in_progress"
total_sections: 48
processed: 0
current_section: null
queue_remaining: ["03 30 00", "04 20 00", ...]
submittals_found: 0
errors: []
Step 1: Submittal Identification — FLEXIBLE (Claude Intelligence)

For each section in the queue, read its .txt file (.construction/specs/ for a section AgentCM read, otherwise .construction/skills/spec_text/) and identify submittal items.

This is where your understanding of construction specifications matters most. Do not follow a rigid script here — use the domain knowledge below to identify every legitimate submittal requirement while filtering boilerplate.

Where Submittals Live

Primary location (check first):

  • PART 1 - GENERAL
  • Article 1.3 ACTION SUBMITTALS
  • Article 1.4 INFORMATIONAL SUBMITTALS
  • Sometimes combined as Article 1.3 SUBMITTALS with sub-articles

Secondary locations (always check these too):

  • PART 1 - GENERAL, other articles:
  • QUALITY ASSURANCE (may contain test report/certification submittals)
  • DESIGN CRITERIA (may contain design data/calculation submittals)
  • REGULATORY REQUIREMENTS (may contain permit/approval submittals)
  • CLOSEOUT SUBMITTALS (O&M manuals, warranties, as-builts)
  • PART 2 - PRODUCTS:
  • Individual product articles sometimes contain submittal requirements

embedded with product descriptions ("Submit manufacturer's data for...")

  • These are REAL submittals — do not skip them because they're in Part 2
  • PART 3 - EXECUTION:
  • Field test reports, installation certifications
  • Mock-up submittals
  • Pre-installation meeting documentation

Spec sections that are ENTIRELY about submittals:

  • 01 33 00 - Submittal Procedures: This defines the process, not individual

submittals. Extract any specific submittal requirements it contains (like submittal schedule format requirements) but do not treat procedural instructions as submittal items.

  • 01 78 00 - Closeout Submittals: This DOES contain real submittal items.

Extract them all.

Submittal Type Taxonomy

Categorize every extracted item into one of these types. Use your judgment for edge cases — the descriptions below are guidance, not rigid rules.

Action Submittals (require Architect/Engineer review and response):

TypeWhat It IsSignal Phrases
Shop DrawingsContractor-prepared drawings showing fabrication/installation details"shop drawings showing/indicating/detailing", "installation drawings"
Product DataManufacturer's published literature, cut sheets, specs"product data for/including", "manufacturer's data", "technical data", "catalog data", "cut sheets"
SamplesPhysical samples of materials, colors, finishes"samples of/for", "color samples", "finish samples", "material samples", "sample panels", "mock-ups"
Design DataEngineering calculations, analysis, design documentation"design data", "structural calculations", "engineering analysis", "seismic calculations", "load calculations"
Test ReportsResults from testing performed on products/materials"test reports", "laboratory test results", "fire test reports", "independent testing"
CertificatesThird-party certifications of products/installers"certificates", "certification", "ICC-ES report", "UL listing", "FM approval", "installer certification"
Delegated DesignPE-stamped submittals for contractor-designed portions"delegated design", "deferred submittal", "professional engineer stamp", "PE-sealed"

Informational Submittals (for record, no formal review/approval):

TypeWhat It IsSignal Phrases
Manufacturer's InstructionsInstallation/application instructions"manufacturer's instructions", "installation instructions", "written instructions"
Manufacturer's Field ReportsField service reports from manufacturer's rep"manufacturer's field report", "field service report"
Qualification StatementsInstaller/manufacturer qualification documentation"qualification statements", "qualifications for/of", "experience list", "project references"
WarrantyWarranty documentation"warranty", "special warranty", "manufacturer's warranty"
O&M DataOperation and maintenance manuals"operation and maintenance", "O&M manual", "maintenance data"
LEED SubmittalsLEED/green building documentation"LEED", "sustainable design", "environmental product declaration", "EPD", "HPD"
Record DocumentsAs-built drawings, record drawings"record documents", "record drawings", "as-built", "as-constructed"
ScheduleSubmittal schedule, progress schedule"submittal schedule", "progress schedule"

If an item doesn't clearly fit a type, use "Product Data" as the default for action submittals and "Manufacturer's Instructions" as the default for informational submittals, but add a note explaining the ambiguity.

Boilerplate vs. Real Submittals — CRITICAL

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
5

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/dleerdefi/claude-code-construction/submittal-log-generator/badge)](https://verified-skill.com/skills/dleerdefi/claude-code-construction/submittal-log-generator)

Something wrong with this skill or its page? Tell us.