Install
openclaw skills install construction-lawFIDIC, PSSCOC, SIA, and Singapore SOP Act toolkit. Generate notices, claims, EOT applications, and registers. Gazette-verified deadline data.
openclaw skills install construction-lawAnalyze construction contracts, claims, notices, payment timelines, risk allocation, and dispute pathways across major standard forms, with strong international and Singapore-focused coverage.
This skill is built for:
Use this skill to:
Construction outcomes often turn on details such as:
This skill helps you structure analysis quickly and consistently so you can spot risks early and avoid missing critical deadlines.
🇸🇬 Singapore matters — BCA circular awareness: BCA frequently updates SOP Act timelines, plan fees, CORENET-X procedures, BC1/structural codes, cost-sharing schemes, productivity grants, and buildability rules through circulars at https://www1.bca.gov.sg/resources/circulars/. If you maintain a local mirror (e.g.
bca-circulars/in your workspace, refreshed via a weekly heartbeat task), check it before relying on general knowledge. Seereferences/singapore.mdfor details.ℹ️ This skill does not fetch live BCA updates itself. If you maintain a local circulars mirror in your workspace, use it as an up-to-date reference alongside the skill.
The intake mode triages a construction issue and produces a professional report with clause buckets, deadline checks, amendment warnings, confidence labels, and recommended next steps.
python3 scripts/construction_law.py intake
# or
python3 scripts/intake.py
Supports non-interactive mode for automation:
python3 scripts/intake.py --file matter.json --output report.md --save-matter answers.json
Use non-interactive mode for repeatable internal workflows, templates, or batch matter intake.
Example: delay / EOT issue under FIDIC Red 1999
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MATTER INTAKE — OUTPUT REPORT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Contract: FIDIC Red 1999
Governing: Singapore
Party: Contractor
Issue: Delay / Extension of Time (EOT)
Objective: Both EOT and additional payment
1. ISSUE SUMMARY
This appears to be a delay / EOT issue arising from late
access to site. The likely focus is notice compliance,
EOT entitlement, causation, and supporting records.
2. LIKELY CLAUSE BUCKETS
- Clause 2.1 Right of Access to Site
- Clause 8.4 Extension of Time
- Clause 20.1 Contractor's Claims
3. DEADLINE / TIME-BAR CHECK
Trigger: Awareness of delaying event
Deadline: 28 days from awareness
Status: ⚠️ Notice not confirmed
Risk: Potential time-bar if late notice applies
4. AMENDMENT SENSITIVITY FLAGS
- Notice periods may be amended
- EOT wording may be narrowed
- Particular Conditions may override the standard form
5. RECOMMENDED NEXT STEPS
- confirm exact clause wording and edition
- verify whether notice was served in time
- gather programme and contemporaneous records
- prepare claim narrative and supporting documents
6. CONFIDENCE LABELS
Deadline calculation: High confidence
Clause identification: High confidence
Entitlement position: Needs review
This is a workflow and analysis aid only. It is not legal advice.
🎯 For strategic claim planning, see the companion skill
construction-claim-strategyon ClawHub (v1.5.0). It covers the 7-Dimension strategy framework, argument ranking, delay analysis methods (SCL Protocol, TIA, Windows Analysis), concurrent delay strategy, disruption claims, quantum calculation examples (Eichleay/Hudson/Emden/Measured Mile), ADR strategy (adjudication vs arbitration), notice compliance, expert engagement, risk assessment, pacing delays, legal precedents, and 22 printable reference documents — all BEFORE you select clauses or start drafting.
For tool-specific tasks (notices, claims, SOP calculator, etc.), use the wizard:
python3 scripts/construction_law.py wizard
# or
python3 scripts/wizard.py
python3 scripts/construction_law.py --list
python3 scripts/construction_law.py notices --form fidic-red
python3 scripts/construction_law.py notices --form fidic-silver
python3 scripts/construction_law.py claims --form fidic-red --type disruption-claim
python3 scripts/construction_law.py claims --form fidic-yellow --type eot-application
python3 scripts/construction_law.py claims --form fidic-silver --type notice-of-claim
python3 scripts/construction_law.py sop --claim-date 2026-05-15
python3 scripts/construction_law.py compare --forms red,yellow,silver --topic claims
python3 scripts/construction_law.py obligations --form fidic-silver --party both
python3 scripts/construction_law.py register --form fidic-red --type both --output reg.xlsx
python3 scripts/construction_law.py register --form fidic-silver --type both --output silver.xlsx
python3 scripts/construction_law.py delay --baseline-start 2026-05-01 --baseline-end 2026-12-31
python3 scripts/construction_law.py deadline --seat SG --trigger 2026-05-15 --period 28 --mode exclude_ph
python3 scripts/construction_law.py deadline --seat AE --trigger 2026-03-18 --period 28 --mode exclude_ph --holidays-file ae_holidays.json
💡 All three FIDIC colours supported:
fidic-red,fidic-yellow,fidic-silver. Also:psscoc,sia.
Before any clause analysis, confirm:
Do not assume the latest edition applies.
For any clause question, this skill helps you:
For delay, disruption, prolongation, and related claims, use this structure:
Build notice calendars that capture:
Assess whether risk is allocated to the party best able to:
Review:
Guided prompts for common tasks.
python3 scripts/wizard.py
Generate notice and obligations calendars.
python3 scripts/notice_calendar.py --form fidic-red --format md
python3 scripts/notice_calendar.py --form fidic-yellow --format md
python3 scripts/notice_calendar.py --form fidic-silver --format md
python3 scripts/notice_calendar.py --form psscoc --format csv --output notices.csv
Generate structured templates for claim notices and related submissions.
python3 scripts/claims_template.py --list
python3 scripts/claims_template.py --form fidic-red --type notice-of-claim --output notice.md
python3 scripts/claims_template.py --form fidic-yellow --type eot-application --output eot_yellow.md
python3 scripts/claims_template.py --form fidic-silver --type notice-of-claim --output notice_silver.md
python3 scripts/claims_template.py --form psscoc --type eot-application --output eot.md
Create obligations registers by party and category.
python3 scripts/obligations_register.py --form fidic-red --party both --format md
python3 scripts/obligations_register.py --form fidic-yellow --party contractor --format md
python3 scripts/obligations_register.py --form fidic-silver --party both --format md
python3 scripts/obligations_register.py --form psscoc --party contractor --format csv --output obligations.csv
Calculate statutory payment deadlines from a Singapore payment claim date.
python3 scripts/sop_calculator.py --claim-date 2026-06-30
python3 scripts/sop_calculator.py --claim-date 2026-06-30 --response-period 14 --format csv --output timeline.csv
Compare FIDIC forms side by side.
python3 scripts/fidic_comparator.py --forms red,yellow,silver --topic risk
python3 scripts/fidic_comparator.py --forms red,yellow,silver --topic all --format csv --output comparison.csv
Topics: overview, risk, claims, disputes, payment, termination, all
Compute contractual deadlines based on the seat country's public holidays.
The FIDIC Deadline Calculator supports Singapore out of the box, with holiday data verified against the eGazette. Singapore data covers gazetted years (currently 2025–2026); the 2027 entry is provisional until MOM gazettes it (expected late 2026). For projects with a seat in any other jurisdiction, you must supply your own holiday list — the tool will not ship pre-loaded holiday data for non-Singapore seats. This is deliberate: holiday calendars vary by sub-jurisdiction (Malaysian state, UK constituent country, individual emirate), shift by moon-sighting, and are gazetted by your own government's authoritative source. Use that source, not ours.
Supports three day-counting modes:
python3 scripts/fidic_deadline.py --list-seats
python3 scripts/fidic_deadline.py --seat SG --trigger 2026-05-15 --period 28
python3 scripts/fidic_deadline.py --seat SG --trigger 2026-05-15 --period 28 --mode exclude_ph
python3 scripts/fidic_deadline.py --seat AE --trigger 2026-03-18 --period 28 --mode exclude_ph --holidays-file ae_holidays.json
python3 scripts/fidic_deadline.py --seat MY --trigger 2026-02-15 --period 28 --mode working --holidays-file my_holidays.json
Bundled seat: SG (Singapore — gazette-verified). For any other jurisdiction, supply --holidays-file. See docs/holiday-file-format.md for the JSON schema and a worked example.
💡 Which mode to use? Check your contract's definition of "day". FIDIC 2017 standard = calendar days. If Particular Conditions amend this to exclude public holidays, use
exclude_ph. If the contract uses "working days", useworking.
Assess delay events, concurrency, EOT exposure, and LD risk.
python3 scripts/delay_calculator.py --baseline-start 2026-05-11 --baseline-end 2030-05-10 \
--add "Late access|2026-06-01|2026-06-30|employer|critical" \
--add "Weather|2026-07-15|2026-07-25|neutral|critical"
Export notice calendars and obligations registers to .xlsx.
python3 scripts/excel_register.py --form fidic-red --type both --output contract_admin.xlsx --commencement 2026-05-11
python3 scripts/excel_register.py --form fidic-yellow --type both --output yellow_admin.xlsx
python3 scripts/excel_register.py --form fidic-silver --type both --output silver_admin.xlsx
python3 scripts/excel_register.py --form psscoc --type obligations --output obligations.xlsx
Requires: openpyxl (pip3 install openpyxl)
Clause: FIDIC 20.2.1
Trigger: Event giving rise to claim
Deadline: 28 days from awareness
Recipient: Engineer
Risk: Late notice may prejudice entitlement (time-bar)
This skill is a workflow and analysis aid. It is not a substitute for legal advice.
Use caution where:
Always verify:
For up-to-date Singapore regulatory context, consult the BCA circulars page — the authoritative source for changes to SOP Act timelines, plan fees, CORENET-X, BC1/structural codes, cost-sharing schemes, productivity grants, and buildability requirements:
bca-circulars/ in your workspace) refreshed weekly via a heartbeat or cron task. Track seen titles in a seen.json index to detect new circulars.When advising on Singapore matters touching SOP Act timelines, plan fees, CORENET-X, BC1/structural codes, cost-sharing schemes, productivity grants, or buildability requirements, check the latest circulars first before relying on general knowledge — BCA updates can change deadlines, rates, and procedural requirements.
If your local mirror looks stale (>2 weeks old), trigger a fresh fetch.
All Python scripts in this skill are designed as safe, local template and register generators.
importlib, no exec, no eval)--output pathSafe to install and use. 🛡️
Core scripts use only the Python standard library. Optional features require:
| Package | Required For | Install |
|---|---|---|
openpyxl | Excel register output | pip3 install openpyxl |
python-docx | Word document export | pip3 install python-docx |
Declared in pyproject.toml as optional extras:
pip3 install .[excel] # Excel only
pip3 install .[all] # Excel + Word
pip3 install .[test] # pytest + hypothesis
The skill includes a 3-layer test suite (57 tests):
Layer 1 — Golden file (test_sop_golden.py): 8 hand-computed scenarios frozen in tests/data/golden_timelines.csv. Covers CNY cluster, Vesak/Hari Raya Haji, Christmas/New Year cross-year, National Day in-lieu, baseline, claim-on-PH, 14-day response, and s.17(2) +7 extension.
Layer 2 — Property-based (test_sop_properties.py): Hypothesis tests over 2025–2027 date range. Properties: deadline never on PH, strictly monotonic, round-trip sop_days_between, adding a holiday can only push later, result ≥ N calendar days.
Layer 3 — Boundary (test_sop_boundary.py): End-of-month, end-of-year, s.17(2) extension (verified as SOP days with PH skipping), claim on PH, consecutive holidays (3+ non-SOP days), out-of-range year (fails loud), Silver Book fitness-for-purpose assertion.
Register tests (test_registers.py): All forms produce valid MD/CSV, Silver Book has no Engineer, entry structure validation.
cd skills/construction-law
pip3 install .[test]
python3 -m pytest tests/ -v
construction-claim-strategy v1.5.0.eot-application, variation-claim, and interim-claim now have full PSSCOC (7th Ed., 2014 rev. 2020) and SIA (9th Ed., 2010 rep. 2016) versions.claims_template.py for fidic-yellow, nec4, or jct — unsupported forms are now rejected at parse time with a pointer to --list. Unsupported (form, type) combos within registered forms also fail with a helpful message.--form fidic-yellow --type obligations and prints what is supported.scripts/version.py is the single source of truth; intake.py / wizard.py / delay_calculator.py / sop_calculator.py footers all aligned to v2.6.