Skip to content
Automation
Skill

/submittal-log-generator

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.

From plugin
construction
6014 skills

Claude Code

$ npx -y skills add dleerdefi/claude-code-construction --skill submittal-log-generator --agent claude-code

SKILL.md

submittal-log-generator.SKILL.md
name: submittal-log-generator
description: >
  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.
argument-hint: "[spec_range: all|div_08|div_09]"
disable-model-invocation: true

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.

| Column | Description | Example | |---|---|---| | Spec Section | CSI section number | 03 30 00 | | Spec Title | Section title | Cast-in-Place Concrete | | Submittal No. | Sequential ID: `[Section]-[###]` | 03 30 00-001 | | Submittal Type | Categorized type (see taxonomy below) | Product Data | | Submittal Description | The actual submittal requirement, cleaned | Submit product data for each concrete mix design including compressive strength, admixtures, and mix proportions | | Article Reference | Where found in the spec | 1.3.A.1 | | Action/Informational | Action or Informational | Action | | Confidence | HIGH / MEDIUM / LOW / FLAGGED | HIGH | | Flag Reason | Empty if HIGH; explanation otherwise | Possible boilerplate — verify intent | | Extraction Method | pdfplumber / vision / hybrid | pdfplumber | | Notes | Any context Claude thinks the PE should know | Referenced 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 presen

Read more
@dleerdefi
Ships withconstruction

Open-source skills that give Claude Code the working knowledge of a Project Engineer.

Stars on GitHub

Momentum

stars in total
60
Star history of dleerdefi/claude-code-construction on GitHub, a chart by star-history.com

Other skills on construction.

bid-evaluator

bid-evaluator

Evaluate tabulated subcontractor bids against specs and drawings — scope gap analysis, exclusion risk scoring, award…

bid-tabulator

bid-tabulator

Extract data from subcontractor bid PDFs and produce a comparison spreadsheet. Feeds into /bid-evaluator. Triggers: 'tabulate…

code-researcher

code-researcher

Researches which building codes, accessibility standards and authority requirements (health department, fire marshal, state…

construction-guide

construction-guide

Operating guide for construction project documents — load before reading drawings, specs, schedules, RFIs, submittals or bids.…

pe-review

pe-review

Checks construction drawings and specs for what's missing, cross-trade coordination conflicts and scope gaps, with PE judgment.…

project-setup

project-setup

Set up a construction project — inventories files, classifies drawings/specs/schedules/registers and appends construction context…

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n2w209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about submittal-log-generator.

Which coding agents can use submittal-log-generator?
submittal-log-generator installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.