<!-- STUB: Canonical source is foremanos-doccontrol/skills/submittal-intelligence/SKILL.md. Run sync-stubs.sh to update. Do NOT edit directly. -->
From foremanos-planningnpx claudepluginhub mgoodman60/foreman-os-plugin --plugin foremanos-planningThis skill uses the workspace's default tool permissions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Details PluginEval's skill quality evaluation: 3 layers (static, LLM judge), 10 dimensions, rubrics, formulas, anti-patterns, badges. Use to interpret scores, improve triggering, calibrate thresholds.
The submittal-intelligence skill performs comprehensive compliance reviews of submitted product data, shop drawings, and samples against specification requirements from project intelligence. It automates the verification process by:
The skill produces deliverables suitable for direct inclusion in RFI responses, meeting minutes, and project correspondence.
submittal_required (boolean) — indicates if spec section requires submittal reviewkey_req (array) — critical requirements in natural languagetolerances (object) — dimensional and performance tolerancestesting (array) — ASTM, ASHRAE, or other standards for verificationenvironmental (object) — VOC, lead-free, sustainability requirementsdivisions (CSI division codes) — Division 03, 05, 07, 08, 09, etc.When /process-docs processes a submittal package, the compliance matrix should be auto-populated before the user runs /submittal-review:
specs-quality.json, load the relevant spec section requirements for the material type| Spec Requirement | Required Value | Submitted Value | Compliance | Source |
|---|---|---|---|---|
| Compressive strength | ≥4,000 PSI | 4,500 PSI | ✅ PASS | Mix design report p.2 |
| w/c ratio | ≤0.45 | 0.42 | ✅ PASS | Mix design report p.3 |
| Air content | 5-7% | Not provided | ❓ MISSING | — |
This auto-population happens during /process-docs extraction. The /submittal-review command then presents the pre-filled matrix for the superintendent to confirm, override, or supplement with field observations.
When reviewing concrete mix design submittals, refer to the concrete-mix-design-extraction template in the foremanos-intel plugin's document-intelligence skill for detailed extraction guidance (if installed). Key compliance checks:
Synthesize compliance matrix into recommendation:
The submitted [product/material] meets all applicable specification requirements and is approved for [procurement/installation].
The submitted [product/material] meets specification requirements subject to the following conditions/clarifications:
- [Condition 1]: [explanation, deadline, or required action]
- Approval granted pending completion of noted items.
The submitted [product/material] does not meet specification in the following respects:
- [Reference code] [Requirement]: Specification requires [required value]. Submittal provides [submitted value]. [Specific corrective action required].
- [Reference code] [Requirement]: ... Please resubmit with corrections or request formal waiver if waiver is intended.
The submitted [product/material] is not acceptable due to non-compliance with fundamental specification requirements:
- [Critical deficiency 1]
- [Critical deficiency 2] Resubmit with alternative product meeting all spec requirements, or submit formal waiver request for architect/engineer consideration.
The submittal-intelligence skill tracks submittal timelines and flags items at risk of missing critical path deadlines. This system prevents procurement delays, schedule impacts, and last-minute rush approvals.
Working backwards from each submittal's critical path impact:
Timeline Logic:
schedule.json → activities linked to this submittal)Example Calculation:
Activity start date (PEMB erection): 03/23/2026
Minus: PEMB lead time: 30 days
Minus: Fabrication time: Already in PEMB lead time, covered
Minus: Approval cycle (engineered): 4 weeks
Minus: Preparation (drawings ready): 1 week
───────────────────────────────────
Must-submit-by date: 02/02/2026
Three escalating alert levels based on days remaining until must-submit-by date:
| Tier | Days Remaining | Status | Action |
|---|---|---|---|
| CRITICAL | Past due (negative) | Red flag | Submittal missed deadline. Escalate to PM/engineer immediately. Assess schedule impact. May require expedited review or change order. |
| WARNING | 0-7 days | Yellow flag | Due within one week. Verify submittal ready for submission. Confirm with architect review slot reserved. Prepare expedited review package if needed. |
| WATCH | 8-21 days | Blue flag | Due within 3 weeks. Monitor preparation progress. Confirm no blockers (missing data, approvals, samples). Schedule architect review. |
| NORMAL | >21 days | Green | On track. No action needed. Continue normal schedule. |
The /morning-brief command automatically scans submittal-log.json and generates an alert summary:
Query logic:
status != "approved"must-submit-by date working backwards from linked schedule activitiesMorning Brief Output Example:
SUBMITTAL STATUS — ALERTS ONLY (3 items at risk)
🔴 CRITICAL — Past Due
• Nucor PEMB Reaction Drawing (SUB-008)
Status: "under_review" (submitted 02/09, 9 days ago)
Needed by: 02/02 (7 DAYS PAST DUE)
Impact: PEMB erection critical path blocked
Action: Call Nucor today; escalate to CMW architect
🟡 WARNING — Due in 3 Days
• Schiller Door Hardware (SUB-012)
Status: "revision_submitted" (resubmit 02/15)
Needed by: 02/18 (3 days)
Impact: Door procurement dependent
Action: Confirm with architect; hold time slot for review
🔵 WATCH — Due in 18 Days
• Davis & Plomin HVAC Equipment (SUB-015)
Status: "under_review" (submitted 02/10)
Needed by: 03/05 (18 days)
Impact: HVAC procurement, MEP rough-in scheduled 04/27
Action: No urgent action; normal tracking
When reviewing submittals or generating alerts, automatically enrich with data from the project intelligence store. These cross-references improve review accuracy and catch procurement/schedule risks early.
Read procurement-log.json → For each submittal, look up the corresponding procurement entry by submittal_id. Pull expected_delivery, lead_time_weeks, and delivery_status → auto-populate fabrication_days and material_lead_time_days in the submittal record. If procurement entry shows delivery_status = "delayed", escalate the submittal alert tier accordingly.
Read directory.json → subcontractors[] → When a submittal is overdue or needs follow-up, resolve the responsible sub's foreman name, phone, and email from the directory. Auto-fill contact information in alert action items: "Contact {foreman} at {phone} ({sub_name}) to expedite SUB-{id}."
Read specs-quality.json → hold_points[] → For each submittal's spec_section, check if any hold points require submittal approval before the inspection can proceed. Flag linked hold points: "SUB-{id} approval is a prerequisite for hold point HP-{hp_id} ({inspection_name}). Inspection cannot proceed until this submittal is approved."
Read cost-data.json → For submittals linked to critical path activities or high-value budget line items, show the budget amount at risk if approval is delayed. Include in alert output: "Budget line item {division} — {description}: ${amount} at risk if SUB-{id} delays procurement by {N} days."
Read quality-data.json → After a submittal is approved (status = "approved"), link subsequent material test results back to the approved submittal. For example, an approved concrete mix design (SUB-XXX) should be cross-referenced when 7-day and 28-day break results arrive: "Break test results for {mix_id} — 28-day f'c = {value} PSI vs. approved design f'c = {design_value} PSI. Status: {pass/fail}."
Read daily-report-data.json → Flag if materials from a submittal are documented as installed in a daily report before the submittal status = "approved": "WARNING: {material} from SUB-{id} appears installed per daily report #{report_number} on {date}, but submittal status is still '{status}'. Verify approval before installation proceeds."
For lead-time tracking, each submittal in submittal-log.json must include:
{
"id": "SUB-008",
"item": "PEMB Reaction Drawing",
"spec_section": "05 42 00",
"submitting_sub": "Alexander Construction / Nucor",
"status": "under_review",
"submitted_date": "2026-02-09",
"must_submit_by_date": "2026-02-02",
"approval_cycle_days": 4,
"material_lead_time_days": 30,
"fabrication_days": 0,
"preparation_days": 7,
"linked_schedule_activity_id": "A45-PEMB-Erection",
"linked_activity_start_date": "2026-03-23",
"critical_path_blocked": true,
"days_past_due": 7,
"alert_tier": "CRITICAL",
"notes": "Nucor sent initial, needs revisions for anchor bolt details"
}
When a submittal is rejected or returned for revisions, auto-calculate new timeline impact:
Trigger: Submittal status changes from "under_review" to "revise_and_resubmit" or "rejected"
Auto-Calculation:
revision_number (increment from previous)must_submit_by_daterejection_reason from architect's commentsexpected_resubmit_datemust_submit_by_date (if 2nd revision, time is even tighter)Example Rejection Timeline:
SUB-008 PEMB Reaction Drawing (Nucor)
Original submission: 02/09
Original must-submit-by: 02/02 (MISSED by 7 days)
Rejection date: 02/12
Rejection reason: "Anchor bolt embedment depth needs verification per geotechnical report"
Estimated resubmission: 02/15 (3 days for revisions)
New approval cycle: 4 days (expedited given past-due status)
New must-submit-by: 02/19 (16 days past original deadline!)
Action: Flag to PM; assess schedule impact; consider change order if erection delayed
Track each revision with separate entries to maintain history:
In submittal-log.json:
{
"id": "SUB-008",
"item": "PEMB Reaction Drawing",
"revision_history": [
{
"revision_number": 1,
"submitted_date": "2026-02-09",
"status": "revise_and_resubmit",
"rejection_reason": "Anchor bolt embedment depth needs verification per geotechnical report",
"rejection_date": "2026-02-12",
"approval_cycle_days": 4,
"must_submit_by_date": "2026-02-02",
"days_late": 7
},
{
"revision_number": 2,
"submitted_date": "2026-02-15",
"expected_approval_date": "2026-02-19",
"status": "under_review",
"approval_cycle_days": 4,
"must_submit_by_date": "2026-02-19",
"days_late": 17,
"turnaround_time_days": 3,
"notes": "Expedited review requested; geotechnical verification confirmed"
}
],
"current_revision_number": 2,
"total_revisions": 2
}
Cross-reference each submittal with schedule.json critical path to flag items that will block the schedule if delayed:
Linking logic:
spec_section maps to schedule.json material requirementfloat = 0 or < 5 dayscritical_path_blocked = trueExample:
SUB-008 PEMB Reaction Drawing
Linked activity: A45-PEMB-Erection (critical path)
Float: 0 days
Flag: CRITICAL_PATH_BLOCKED = true
Alert priority: Highest — any delay impacts substantial completion
SUB-015 HVAC Equipment Data
Linked activity: A72-MEP-Rough-In (near-critical, float = 5)
Float: 5 days
Flag: CRITICAL_PATH_BLOCKED = false (but near-critical)
Alert priority: Medium — some schedule cushion but tight
Morning Brief (/morning-brief):
status != "approved"Daily Report (/daily-report):