---
job_no: 2630
purpose: Job-specific gap log for 2630 — methodology + process gaps surfaced during agent operation. Feeds Stage 4 review + CLAUDE.md fixes + Construction-Methodology base improvements.
authored_by: claude-code-opsman
created: 2026-05-08
append_only: true
---

# 2630 Gaps Log

Append-only. New entries at bottom. Each entry: date, gap title, missed, flagged-by, root cause hypothesis, suggested fix area.

---

## 2026-05-08 — Standard LFCS exclusions not applied without prompting

**Missed:** Agent built exclusions from generic methodology library row-by-row rather than from the consistent pattern across prior LFCS submissions (2629 Erskine Park, HCB Hammond Canal Bridge, Hornsby Solutions+, etc.). Every LFCS bid excludes the same core items because LFCS scope is narrow: formwork supply+install+strip, steel fixing only, concrete place+finish only. Standard exclusions cover materials (concrete, reo, tie wire, mesh, curing compound, joint materials, anchors, cast-in items), plant (cranage, pump, trucks, generators, amenities), professional services (engineer, survey, geotech, NATA testing, vibration monitoring), site management (traffic, ESCP, permits, asbestos, latent conditions), and specialist trades (demolition, earthworks, blinding, piling, shotcrete, precast, masonry, hydraulic/mech/elec, landscape, waterproofing).

**Flagged:** Rocky 2026-05-08 after first-pass priced take-off. Said "this is across most jobs — he should have spotted that and asked me." Repricing implication: ~$97k was incorrectly baked into first-pass for items that should have been excluded (Hilti chemical anchors, joint materials Ableflex/dowels, falsework engineering design, blinding placement labour, FRC waterproofing labour + materials, adverse weather standby).

**Root cause hypothesis:** Methodology base (`_methodology_Exclusion_Library`) has 2629/HCB/Stormwater-Pit exclusion patterns stored as job-category-specific records keyed by `applicable_job_categories`. There is no aggregated "Standard LFCS Exclusions Library" derived from the pattern across all LFCS submissions. CLAUDE.md §4.1 has no step "apply standard LFCS exclusions library, then ask Rocky which standard items are confirmed in/out for THIS job, then add job-specific exclusions." Result: agent treats each job's exclusions as bespoke construction from the methodology rows that match the job category, missing the cross-cutting "scope is narrow → these always exclude" pattern.

**Suggested CLAUDE.md fix area:** §4.1 — insert step before any pricing: "build the exclusions list from the Standard LFCS Exclusions Library (LFCS scope: formwork S+I+strip, steel fix only, concrete P+F only) and ask Rocky to confirm which standard exclusions apply to THIS job and which need carve-outs. Layer job-specific exclusions on top."

**Suggested Construction-Methodology base fix:** add a `Standard_Exclusions_Library` table aggregated from prior jobs (single queryable source; one row per standard exclusion grouped by category Materials / Plant / Professional Services / Site Management / Specialist Trades). Sample row schema: `exclusion_id` (e.g. `STD-MAT-01-concrete-supply`), `category`, `item_text`, `default_status` (always-out / always-in / always-RFI), `confirmed_in_jobs` (multipleRecordLinks → Jobs), `notes`.

**Status:** Tier 1 of `_Internal/exclusions/exclusions-2630.md` is the first reconstructed instance. Stage 4 review pending.

---

## 2026-05-08 — Site exposure category not confirmed with Rocky

**Missed:** Agent assumed tidal site from earlier grill (Q-G7 yes-tidal triggered by S141 sea-level diagram showing MHW/MSL/ISLW notes + drawings spec'ing marine cement Type LH/SR BCSC + stainless 316 reo + sulphate-resistant concrete in footings). Carried tidal classification into rate-build: saltwater +5% consumables uplift on materials, tidal-window scheduling assumed (Q-D1 RFI), tidal-marine rate inflation in productivity. Site is well above tide line — NOT tidal. Rocky flagged after first-pass repricing.

**Flagged:** Rocky 2026-05-08. Standard coastal-air exposure (saltwater air, no immersion). Marine cement spec is design-engineer choice for durability margin against airborne salt aerosol, NOT because the slab gets immersed. Removing tidal classification: strip saltwater +5% materials uplift; remove tidal-window assumption from Q-D1 default; revert to standard coastal-air productivity rates.

**Root cause hypothesis:** §4.1 / pre-pricing-grill phase doesn't include "confirm site exposure category" as Rocky-input gate. Q-G7 in `_methodology_Pre_Pricing_Grill_Templates` (sites Bridge-FRP / Bridge-Refurb / WWTP-Slab-Industrial only) doesn't include Seawall vocab + presents a 4-option enum (yes-tidal / yes-estuary / no-lake / no-inland) that doesn't capture "above-tide-line marine-coastal" as distinct from yes-tidal. Agent collapsed coastal-air to yes-tidal because seawall + marine cement + stainless reo all suggest immersion-spec, even though the slab itself sits above MHW.

**Suggested CLAUDE.md fix area:** §4.1 grill phase — add explicit Rocky-input gate for site exposure category (immersed / tidal / coastal-air-above-tide-line / inland) before any rate-build. The gate should NOT be inferred from drawings spec — it must be Rocky-confirmed. Drawings can drive design-spec material choices for durability margin without the slab being in the tidal zone.

**Suggested Q-G7 vocab expansion:** add `yes-coastal-air-above-tide-line` and `no-coastal-air-above-tide-line` as distinct from `yes-tidal`. Saltwater consumables uplift applies only to immersed/tidal; coastal-air-above-tide-line applies normal coastal protection but no immersion premium.

**Status:** Stripped from 2630 first-pass. Will need methodology-base vocab + Q-G7 update.

---

## 2026-05-08 — Labour rate not confirmed with Rocky before rate-build

**Missed:** Agent applied methodology-base default labour rate ($85/hr base from `labour-rate-baseline-fr-85` row, which was quarantined this session anyway, but the $85 is the LFCS Rate Card V1.7 day rate and is the standard reference). Did not ask Rocky for the rate to use on this specific job. Rocky locked $95/hr blended for 2630. Build-up: 8 hrs × $85 base + 2 hrs × $105 OT + 1 hr × $120 OT, divided by 10 hrs nominal ≈ $95/hr blended.

**Flagged:** Rocky 2026-05-08 after first-pass repricing. Different rate per job is normal — depends on programme intensity (OT exposure), site location (LAFHA), crew composition (leading-hand mix), supervision-loading. Agent should ask before applying methodology-base default.

**Root cause hypothesis:** §4.1 has no "confirm labour rate for this job" step before rate-build. The rate-card-hourly Q-A0 answer locks the BASIS (hourly vs actuals-derived vs hybrid) but doesn't lock the RATE itself. Agent assumed Rate Card V1.7 day rate $85 because that's the LFCS company standard and the methodology row references it, but per-job blending is normal and not captured.

**Suggested CLAUDE.md fix area:** §4.1 — add Rocky-input gate for labour rate at start of rate-build phase, with quick build-up confirmation (base / 8-10 OT rate / 10+ OT rate / divided by nominal hrs = blended). Should be captured as a Rocky-locked field on the Bid record (e.g. `_internal_first_pass_labour_rate_blended` and `_internal_first_pass_labour_rate_buildup_text`) so future calibration can reverse-engineer rate vs actuals.

**Suggested Q-A0 expansion:** sub-question Q-A0.1 — "Labour rate for this job (blended $/hr)?" with a free-text build-up field. Default = LFCS Rate Card V1.7 day rate $85; override per-job.

**Status:** $95/hr blended applied to 2630 rev 3 + rev 4 repricing. Methodology-base addition pending.

---

## 2026-05-08 — Margin and contingency build-up rules not in methodology base

**Missed:** Agent applied margin model from `_methodology_Concept_Patterns` row `lump-sum-FRP-arm` (16.5% labour margin baked per-line + 10% materials markup, no redundancy line). Did not surface that LFCS has a separate documented build-up methodology with contingency + margin in specific orderings. Result: rev 1, 2, 3 took-offs all used the wrong loading multiplier on labour (1.165 instead of 1.265) and on materials (1.10 instead of 1.265).

**Flagged:** Rocky 2026-05-08 after rev 3 repricing. Locked rules:
- Labour: direct → +10% contingency → +15% margin on contingency-loaded subtotal. Loaded = direct × 1.10 × 1.15 = direct × 1.265.
- Materials (LFCS-purchased): material → +15% margin → +10% contingency on margin-loaded subtotal. Loaded = direct × 1.15 × 1.10 = direct × 1.265.
- Same final multiplier 1.265 but **ordering distinct per category** per methodology rule. Order matters for traceability and for downstream calibration even though arithmetic result is identical.
- **Adverse weather posture varies per job:** default = exclude as variation per 2629 #37; 2630 = include 1 day/fortnight in prelims. Future jobs must ask Rocky which posture applies before pricing.
- **Contingency posture by design maturity:** 2630 IFC drawings (Issue 3 dated 7/7/25) = full IFC, so 10% contingency applied. 2629 was 90% Design with 5%-quantity-drift-claimable-at-submission-rate-basis assumption; contingency posture for 90% Design likely different (TBC).

**Root cause hypothesis:** Methodology base (`_methodology_Concept_Patterns`) has the concept pattern `lump-sum-FRP-arm` stored but the build-up rules are described informally in CLAUDE.md §4.1 step 8 ("16.5% margin baked per-line + 10% materials markup"). There is no Build-Up Rules table that distinguishes:
- Labour vs materials sequencing (cont-then-margin vs margin-then-cont)
- Adverse weather posture per job
- Contingency posture by design maturity (full IFC vs 90% Design vs 60% concept)
- Margin posture (defensible-for-variations vs aggressive-to-win — affects rate basis but not necessarily the multiplier)

**Suggested CLAUDE.md fix area:** §4.1 step 8 — replace "16.5% margin baked per-line + 10% materials markup" with explicit per-job build-up confirmation gate. Sub-questions before any rate-build:
- Q-A4: "Labour build-up sequence (cont-then-margin / margin-then-cont) and percentages?"
- Q-A5: "Materials build-up sequence and percentages?"
- Q-A6: "Adverse weather posture (exclude as variation / include in prelims at X day/fortnight)?"
- Q-A7: "Contingency posture by design maturity (full IFC / 90% / 60% concept / TBC) — how much contingency?"

**Suggested Construction-Methodology base fix:** add a `_methodology_Build_Up_Rules` table with rows per (job_type × design_maturity × posture). Sample row schema:
- `rule_id` (e.g. `BUR-LFCS-FRP-LumpSum-FullIFC-Defensible`)
- `applicable_job_types` (multipleSelects from Job.job_category vocab)
- `applicable_design_maturity` (Full IFC / 90% Design / 60% Concept / Tender / Other)
- `applicable_posture` (defensible-for-variations / aggressive-to-win / client-specified)
- `labour_sequence` (cont-then-margin / margin-then-cont)
- `labour_contingency_pct`
- `labour_margin_pct`
- `materials_sequence`
- `materials_margin_pct`
- `materials_contingency_pct`
- `weather_posture` (exclude-as-variation / include-X-days-per-fortnight)
- `notes`

**Status:** Rev 4 of 2630 priced take-off applies the new rules. Methodology-base table pending Stage 4 review.

---
