Strategic planning framework for construction claim responses.
Plan your direction, scope, arguments, and disclosure strategy before selecting clauses or drafting correspondence.
Use this tool to systematically work through 7 key dimensions:
Plus practical tools and reference guides covering:
Works with any construction contract form:
Most construction claim responses are time-bound. Before using this skill, identify the actual calendar deadline for your response.
For Singapore matters under the Building and Construction Industry Security of Payment Act (SOPA), or for contracts using calendar-day notice periods (PSSCOC, SIA, FIDIC, NEC), the deadline calculation is not just "today + N days". It must account for:
The companion skill construction-law includes a Singapore SOPA deadline calculator that handles these rules. Calculate the actual deadline there first, then provide the resulting date when prompted by this skill.
If your contract is governed by a different jurisdiction, apply the equivalent local rule. Do not assume "calendar day" means simple date arithmetic — it almost never does.
bash
python3 scripts/strategy_advisor.py --reference
Outputs all argument types, disclosure levels, response patterns, scope control rules, and risk checklists in one view.
bash
python3 scripts/strategy_advisor.py
The wizard walks you through all 7 dimensions and produces a structured strategy report.
bash
python3 scripts/strategy_advisor.py --file strategy_input.json --output strategy_report.md
bash
python3 scripts/strategy_advisor.py --save-strategy my_strategy.json
The examples/ folder contains a worked scenario demonstrating the full 7-Dimension workflow:
FileDescriptionstrategy_input.jsonSample JSON input — PSSCOC 2014 (7th Edition) EOT scenariostrategy_report_sample.mdGenerated strategy report from the above input
Note: The example uses PSSCOC 2014 clause references (Clauses 12.5, 14.2(m), 14.2(n), 22.1(h), 22.1(i), 14.3, 23.1). The 7-Dimension methodology itself is contract-form neutral — it applies equally to FIDIC, NEC, SIA, JCT, and bespoke contracts. Future versions will include additional worked examples for other contract forms.
LevelUse forState PreciselyClause references, formal correspondence, key dates, and legal reasoningKeep GeneralOperational context and high-level detailsDeferDetailed quantification and supporting analysis
text
usage: strategy_advisor [-h] [--file INPUT_JSON] [--output FILE]
[--format {md,txt}] [--save-strategy PATH]
[--reference] [--version]
Strategy Advisor — Strategic planning framework for construction claim
responses. Plan your direction, scope, and argument strategy BEFORE selecting
clauses.
options:
-h, --help show this help message and exit
--file INPUT_JSON Non-interactive: read strategy inputs from a JSON
file.
--output, -o FILE Write report to file instead of stdout.
--format, -f {md,txt}
Output format (default: md).
--save-strategy PATH Save the strategy data as JSON for reuse.
--reference Print all reference tables (argument types, patterns,
etc.) and exit.
--version show program's version number and exit
--file mode)#The following 6 keys are required in the input JSON. If any are missing, the tool exits with a clear error listing what’s needed.
KeyDescriptionsituation_typeWhat you’re dealing with (e.g. “Responding to a rejection of our claim”)other_side_positionThe other party’s stated positiontrigger_eventKey facts / what triggered this responseprimary_argumentYour primary contractual argumentchosen_argument_typeArgument type (e.g. “Textual Interpretation”)chosen_patternResponse architecture pattern (e.g. “Risk Allocation Rebuttal”)
All other keys are optional — the tool fills empty fields gracefully. See examples/strategy_input.json for a complete example with all 21 supported keys.
bash
# Show all reference tables
python3 scripts/strategy_advisor.py --reference
# Run interactive wizard
python3 scripts/strategy_advisor.py
# Non-interactive from JSON
python3 scripts/strategy_advisor.py --file input.json --output report.md
# Save strategy for reuse
python3 scripts/strategy_advisor.py --save-strategy strategy.json
All reference documents are in the references/ folder. These are standalone reading material for human use — the strategy_advisor.py script does not load them at runtime.
DocumentDescriptionseven_dimensions_guide.mdFull guide to the 7-Dimension frameworkargument_ranking_guide.mdDetailed argument types with examplesworked_examples.md4 complete worked strategy examples (Variation, EOT, Disruption, Combined)delay_analysis_study_guide.mdComprehensive delay analysis study guide — SCL Protocol 22 principles, 7 analysis methods, concurrent delay, pacing, float, disruption, force majeure, case lawquantum_worked_examples.md8 quantum calculation examples (Eichleay, Hudson, Emden, Measured Mile, Actual Cost, Total Cost)adr_overview.mdADR methods comparison and strategy recommendationsarbitration_tactics.mdArbitration tactics and prolongation claim strategiesconcurrent_delay.mdConcurrent delay — strategic approach within the 7-Dimension frameworkdisruption_claims.mdDisruption claims strategy — Common Law vs Civil Lawdelay_analysis_methods.mdDelay analysis methods — strategic overviewlegal_precedents.mdLegal precedents and the Prevention Principlenotice_requirements_checklist.mdNotice compliance checklistexpert_engagement.mdExpert engagement tips and best practicesrecord_keeping_checklist.mdPrintable record keeping checklistclaim_preparation_checklist.mdClaim preparation checklist for adjudication & arbitrationcommon_pitfalls.md10 most common claim pitfalls and how to avoid themrisk_assessment_framework.mdExpanded risk assessment categories and practical questionsresponse_template.mdLetter template mapping strategy to formal responsequick_reference_card.mdOne-page desk reference cardblank_worksheet.mdPrintable blank 7-Dimension worksheettraining_guide.mdWorkshop-ready training materialstrategy_patterns.mdAll strategy patterns reference
This skill is designed to pair with construction-law, which handles clause analysis, notice drafting, and deadline calculation. The typical end-to-end workflow uses both skills in sequence:
Identify the applicable clause and notice period — use construction-law to look up the relevant contract clause (e.g. EOT notice provision, SOPA payment response window) and the prescribed time limit.
Calculate the actual deadline — use construction-law’s SOP calculator (or its equivalent for your contract form) to compute the calendar date, accounting for weekends, public holidays, and statutory roll-forward rules. Do not rely on simple date arithmetic.
Plan the response strategy — use this skill to work through the 7 strategy dimensions. Pass the calculated deadline as the response_deadline input.
Draft the response — return to construction-law for clause-level drafting and formal correspondence templates, using the strategy from step 3 as input.
Keeping strategy and execution in separate skills produces more commercially realistic outputs than trying to combine them. Each skill stays focused on what it does well: this one decides the direction; construction-law executes the analysis and drafting.
bash
python3 -m unittest tests.test_smoke
This tool writes files only when you pass explicit flags:
FlagWhat is writtenFormat--output FILEStrategy reportUTF-8 (Markdown or plain text)--save-strategy PATHStrategy data for reuseUTF-8 JSON
If neither flag is provided, output is printed to stdout. No files are created, modified, or read beyond the --file input (when given).
compile(...)) that ClawHub static analysis flagged as suspicious.dynamic_code_execution. The actual detection logic uses ast.parse and was never affected; the scanner was pattern-matching against English text in comments.ast.parse tree-walking — properly catches compile(...), exec(...), eval(...) regardless of whitespace or indirection; no longer false-positives on comments, docstrings, or strings containing those wordstest_smoke.py to avoid subprocess.run() entirely — now imports main() directly and patches sys.argv. Resolves ClawHub ClawScan suspicious.dynamic_code_execution false positive on the test fileurllib.request/ urllib.error (not blanket urllib), added importlib, pickle, marshal, compile(--output, --save-strategy) with friendly error messages (consistent with non-interactive mode)--file JSON input — missing keys produce a clear error listing what's needed, instead of empty fields_safe_write helper — unified error handling for all file output paths--help output to SKILL.md so users can evaluate CLI flags without installing--file modepython3 -m unittest (stdlib) over pytesttest_no_forbidden_imports — enforces the "no network / no subprocess" claim at test time by scanning for forbidden imports (subprocess, socket, requests, urllib, etc.)strategy_input.json rewritten with correct flat-key schema matching all 7 dimensionsstrategy_report_sample.md regenerated from actual script output (not hand-written)--file mode — checks file exists, valid JSON, root is a dict; warns on unrecognised keys (typo protection)_prompt_yesno function was defined but never called)examples/strategy_input.json and examples/strategy_report_sample.md — preview output before installingtests/test_smoke.py — smoke test covering --reference, --file, and --version modesLICENSE file (MIT-0) shipped at package rootreferences/ is human reading material, not loaded by the script at runtimeconstruction_law.py in module docstringgenerate_reportThis is a generic strategic planning tool. It does not constitute legal advice. Users should verify all information independently and seek qualified legal counsel before relying on any analysis for dispute resolution, adjudication, arbitration, or court proceedings.