CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Cpp Cpm Engine

danafitkowski/cpp-cpm-engine
13 toolsHTTPregistry active
Summary

Connects Claude to a forensic scheduling engine that reads Primavera P6 XER files and runs CPM calculations aligned with AACE industry standards. Exposes operations for forward/backward pass scheduling, DCMA-14 compliance checks, time impact analysis under multiple baselines, and topology fingerprinting via SHA-256 hashes for court-facing provenance. Built by Critical Path Partners for construction delay claims and includes a Daubert disclosure framework. You'd reach for this when analyzing schedule delays, preparing expert reports under FRE 702, or running forensic comparisons between baseline and as-built schedules. The engine handles calendar arithmetic across 66 jurisdictions and emits AACE method labels that peer reviewers expect in litigation contexts.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

13 tools
forensic_windows_analysisRun forensic windows analysis (AACE RP 29R-03 §3.3, MIP 3.3 Observational / Dynamic / Contemporaneous As-Is — Modified) across multiple Primavera P6 XER snapshots and return the full analysis dict. This is the headline forensic tool — it computes per-window completion shifts,...5 params

Run forensic windows analysis (AACE RP 29R-03 §3.3, MIP 3.3 Observational / Dynamic / Contemporaneous As-Is — Modified) across multiple Primavera P6 XER snapshots and return the full analysis dict. This is the headline forensic tool — it computes per-window completion shifts,...

Parameters* required
schedulesarray
output_dirstring
default:
baseline_idxinteger
default: 0
project_namestring
default:
entitlement_milestonestring
default:
concurrent_delay_matrixBuild the per-window x per-party concurrent-delay attribution matrix from a chronological list of XER snapshots. Implements the per-window concurrency view per AACE RP 29R-03 §4.2.B (concurrent delay apportionment). Where ``forensic_windows_analysis`` answers "how many days do...2 params

Build the per-window x per-party concurrent-delay attribution matrix from a chronological list of XER snapshots. Implements the per-window concurrency view per AACE RP 29R-03 §4.2.B (concurrent delay apportionment). Where ``forensic_windows_analysis`` answers "how many days do...

Parameters* required
xer_pathsarray
xer_contentsarray
woet_classifierWorked-vs-On-time Execution Timeline (WOET) per-activity day-by-day classification of as-built execution against baseline. For each pairable activity (matched by ``task_code``), classifies execution into 4 day-states: - PROGRESS: work performed during the baseline-planned wind...5 params

Worked-vs-On-time Execution Timeline (WOET) per-activity day-by-day classification of as-built execution against baseline. For each pairable activity (matched by ``task_code``), classifies execution into 4 day-states: - PROGRESS: work performed during the baseline-planned wind...

Parameters* required
todaystring
default:
actual_xer_pathstring
default:
baseline_xer_pathstring
default:
actual_xer_contentstring
default:
baseline_xer_contentstring
default:
slip_velocityPer-window slip velocity & acceleration trend across XER snapshots. Computes three signed metrics per window from the underlying forensic windows analysis: - slip_velocity_days_per_day: completion shift / window duration (positive = slipping, negative = recovering) - slip_acce...2 params

Per-window slip velocity & acceleration trend across XER snapshots. Computes three signed metrics per window from the underlying forensic windows analysis: - slip_velocity_days_per_day: completion shift / window duration (positive = slipping, negative = recovering) - slip_acce...

Parameters* required
xer_pathsarray
xer_contentsarray
collapsed_as_builtCollapsed As-Built / But-For analysis on a post-impact XER. Implements AACE RP 29R-03 §3.8 Modeled / Subtractive / Single Base method (paired with MIP 3.5 framing for the dual-method gap report). Validates a forensic windows analysis (MIP 3.3) by independently computing the sa...7 params

Collapsed As-Built / But-For analysis on a post-impact XER. Implements AACE RP 29R-03 §3.8 Modeled / Subtractive / Single Base method (paired with MIP 3.5 framing for the dual-method gap report). Validates a forensic windows analysis (MIP 3.3) by independently computing the sa...

Parameters* required
output_dirstring
default:
delay_eventsarray
project_namestring
default:
removal_methodstring
default: shorten
as_built_xer_pathstring
default:
contractor_filterboolean
default: false
as_built_xer_contentstring
default:
time_impact_analysis_fragnetTime Impact Analysis (TIA) — prospective fragnet insertion into a pre-impact baseline schedule. Implements AACE RP 52R-06 (Time Impact Analysis as Applied in Construction) — the forward-looking / prospective sibling of ``collapsed_as_built``. For each fragnet (delay-event acti...5 params

Time Impact Analysis (TIA) — prospective fragnet insertion into a pre-impact baseline schedule. Implements AACE RP 52R-06 (Time Impact Analysis as Applied in Construction) — the forward-looking / prospective sibling of ``collapsed_as_built``. For each fragnet (delay-event acti...

Parameters* required
fragnetsarray
output_dirstring
default:
project_namestring
default:
baseline_xer_pathstring
default:
baseline_xer_contentstring
default:
critical_path_validatorCritical-path validation, logic health, and DCMA-14 assessment of a Primavera P6 schedule. Runs the CPP critical-path validator: checks for false criticality, constraint-driven CP segments, open ends, broken logic, and surfaces a DCMA-14 block with the 14 metrics (logic, leads...6 params

Critical-path validation, logic health, and DCMA-14 assessment of a Primavera P6 schedule. Runs the CPP critical-path validator: checks for false criticality, constraint-driven CP segments, open ends, broken logic, and surfaces a DCMA-14 block with the 14 metrics (logic, leads...

Parameters* required
profilestring
default: commercial
xer_pathstring
default:
xer_contentstring
default:
project_indexinteger
default: 0
baseline_xer_pathstring
default:
baseline_xer_contentstring
default:
dcma14_health_checkFull Schedule Health Dashboard HTML report — DCMA-14 + CPLI + BEI + variance/slip register against the baseline. Wraps the CPP Schedule Health Review skill, which produces a self-contained ~1.3 MB HTML dashboard. The dashboard renders DCMA metrics, charts, baseline-vs-current...8 params

Full Schedule Health Dashboard HTML report — DCMA-14 + CPLI + BEI + variance/slip register against the baseline. Wraps the CPP Schedule Health Review skill, which produces a self-contained ~1.3 MB HTML dashboard. The dashboard renders DCMA metrics, charts, baseline-vs-current...

Parameters* required
debugboolean
default: false
output_pathstring
default:
timeout_secondsinteger
default: 120
current_xer_pathstring
default:
baseline_xer_pathstring
default:
return_html_inlineboolean
default: true
current_xer_contentstring
default:
baseline_xer_contentstring
default:
path_explorerLogic-trace driver-chain explorer — answers "WHY is this activity critical?" and "WHAT does it drive?". Traces driving predecessors backward from a target activity to project start (the "why critical" chain) and/or driving successors forward to project finish (the "what it dri...6 params

Logic-trace driver-chain explorer — answers "WHY is this activity critical?" and "WHAT does it drive?". Traces driving predecessors backward from a target activity to project start (the "why critical" chain) and/or driving successors forward to project finish (the "what it dri...

Parameters* required
xer_pathstring
default:
directionstring
default: both
output_dirstring
default:
xer_contentstring
default:
include_near_criticalboolean
default: true
target_activity_codesarray
monte_carlo_p50_p80Monte Carlo Schedule Risk Analysis — P10/P50/P80/P90 completion-date forecast for a Primavera P6 schedule. Implements an AACE-style quantitative SRA (the same math as CPP's browser Tool_11 Portfolio Risk Engine, scripted Python counterpart). For each iteration, every activity...9 params

Monte Carlo Schedule Risk Analysis — P10/P50/P80/P90 completion-date forecast for a Primavera P6 schedule. Implements an AACE-style quantitative SRA (the same math as CPP's browser Tool_11 Portfolio Risk Engine, scripted Python counterpart). For each iteration, every activity...

Parameters* required
seedinteger
default: 0
xer_pathstring
default:
iterationsinteger
default: 5000
output_dirstring
default:
xer_contentstring
default:
distributionstring
default: Triangular
optimistic_pctnumber
default: 85
most_likely_pctnumber
default: 100
pessimistic_pctnumber
default: 120
qramm_maturityAACE 122R-22 QRAMM maturity tier badge for an SRA result. Scores a Schedule Risk Analysis run (from ``monte_carlo_p50_p80`` or any equivalent dict) against AACE RP 122R-22 (Quantitative Risk Analysis Maturity Model) structure: tier 1 (Initial) through tier 4 (Optimized) per CM...1 params

AACE 122R-22 QRAMM maturity tier badge for an SRA result. Scores a Schedule Risk Analysis run (from ``monte_carlo_p50_p80`` or any equivalent dict) against AACE RP 122R-22 (Quantitative Risk Analysis Maturity Model) structure: tier 1 (Initial) through tier 4 (Optimized) per CM...

Parameters* required
sra_resultobject
claim_workbench_evidence_ledgerForensic claim workbench — analyzes a folder of mixed evidence (XER chain + MSG/PDF/DOCX/XLSX correspondence) and produces a unified workbench dashboard. Built from the real-world workflow where forensic delay analysis starts from a folder containing schedule updates, owner co...6 params

Forensic claim workbench — analyzes a folder of mixed evidence (XER chain + MSG/PDF/DOCX/XLSX correspondence) and produces a unified workbench dashboard. Built from the real-world workflow where forensic delay analysis starts from a folder containing schedule updates, owner co...

Parameters* required
output_dirstring
default:
folder_pathstring
project_namestring
default:
run_forensicboolean
default: true
contract_formstring
default: CCDC2
original_baseline_xer_filenamestring
default:
xer_parserParse a Primavera P6 XER file and return a TABLE SUMMARY (not the full row-level data — XER row dumps explode the MCP context window). For each table in the XER, returns the table name, field list, and record count. Per-row data is intentionally omitted — for forensic / DCMA /...2 params

Parse a Primavera P6 XER file and return a TABLE SUMMARY (not the full row-level data — XER row dumps explode the MCP context window). For each table in the XER, returns the table name, field list, and record count. Per-row data is intentionally omitted — for forensic / DCMA /...

Parameters* required
xer_pathstring
default:
xer_contentstring
default:

cpm-engine

npm version license: MIT tests: 1128 passing crossval: 747/747 coverage: 93% verify Daubert: disclosed AACE: 29R--03 / 49R--06 / 52R--06

An open-source CPM engine with AACE-aligned methodology and a published Daubert disclosure. Open source. AACE-aligned. Daubert-disclosed. JS/Python parity across 1,128 unit tests + 747 cross-validation checks on the enumerated CPM comparison surface (see DAUBERT.md §3.1).

Court-facing usage: pair this engine with the analyst-application discipline in FORENSIC_USE_SOP.md, the verification chain in VERIFY_RELEASE.md, the per-release receipts in release-evidence/, and the field-level P6 comparison framework in validation/p6-comparison/. Do NOT cite README in a court-facing report — cite the documents listed in DAUBERT.md and FORENSIC_USE_SOP.md §Required pairing.

Maintained by Critical Path Partners — a forensic-scheduling consultancy.


Quick start

npm install @critical-path-partners/cpm-engine
const E = require('@critical-path-partners/cpm-engine');

const result = E.computeCPM(
    [
        { code: 'A', duration_days: 5, early_start: '2026-01-05', clndr_id: 'MF' },
        { code: 'B', duration_days: 3, clndr_id: 'MF' },
        { code: 'C', duration_days: 4, clndr_id: 'MF' },
    ],
    [
        { from_code: 'A', to_code: 'B', type: 'FS', lag_days: 0 },
        { from_code: 'B', to_code: 'C', type: 'FS', lag_days: 0 },
    ],
    {
        dataDate: '2026-01-05',
        calMap: { MF: { work_days: [1, 2, 3, 4, 5], holidays: [] } },
    }
);

console.log('Project finish:', result.projectFinish);     // 2026-01-21
console.log('Critical path:', result.criticalCodesArray); // ['A', 'B', 'C']
console.log('Engine version:', result.manifest.engine_version); // 2.9.34

That's it. Forward pass, backward pass, total float, free float, calendar arithmetic, P6-conventional date math, multi-jurisdiction holidays — all done.


Why this engine?

Capabilitycpm-engine
Open sourceyes
AACE-canonical method labels (29R-03 / 49R-06 / 52R-06)yes
Daubert / FRE 702 disclosure (built-in DAUBERT.md)yes
JS-Python bit-identical parity on enumerated CPM surfaceyes
Topology fingerprint hash (SHA-256, copy-detection signal)yes
Kinematic delay dynamics (pre-publication, JS-only)yes
Bayesian update with hierarchical pooling (pre-publication, JS-only)yes
66 default holiday rule sets (multi-jurisdiction; framework-aligned defaults, not legally certified — see docs/jurisdictions.md)yes
MIT licensedyes

(Vendor comparison removed in the v2.9.33 audit cycle. Comparisons against specific commercial CPM tools should be supplied by an independent reviewer, not authored by the engine's maintainer.)

The engine math is a commodity. What carries a forensic schedule analysis is the workflow, the methodology discipline, and the Daubert disclosure posture — not the forward pass itself. Critical Path Partners open-sources the engine so any academic, any solo forensic scheduler, any contractor's internal scheduler can build on a transparent, citable foundation.


What you can build

  • Forensic delay analysis primitives — CPM forward/backward pass that supports analyses under AACE 29R-03 MIPs 3.3 (windows), 3.6/3.7 (prospective TIA single-base / multi-base), and 3.8 (collapsed as-built). The engine provides the CPM math; full method implementations (period selection, fragnet integration, as-built reconstruction) live in the CPP forensic skill suite — this OSS engine is the math core they build on, not the full method.
  • Claim packages — owner-submission EOT bundles with cover letter, exhibits, mitigation logs
  • Daubert disclosures — FRCP 26(a)(2)(B) reports, FRE 702/707 four-prong methodology statements
  • Schedule risk primitives — Bayesian posterior estimation (computeBayesianUpdate); per-iteration CPM (runCPM) suitable as an inner loop for Monte Carlo wrappers built on top of this engine. Full Monte Carlo / QRAMM scoring lives in the CPP forensic skill suite (schedule-risk-analysis), built atop this primitive.
  • Schedule health — DCMA-14 assessment, A-F auto-grade, baseline-vs-current diff
  • Multi-jurisdiction calendars — 66 default holiday rule sets (CA-FED + 13 provinces/territories, US-FED + 50 states + DC). These are framework-aligned defaults sufficient for general-purpose date math — see docs/jurisdictions.md for the per-jurisdiction reference table and forensic-use verification guidance. They are not legally certified calendars; for forensic use, override with the project's contract calendar via opts.calendar.

AACE alignment

The engine implements the math behind these AACE Recommended Practices:

RPTitleMethod labels emitted
29R-03Forensic Schedule AnalysisMIP 3.3 / 3.6 / 3.7 / 3.8
49R-06Identifying the Critical PathLPM, TFM, MFP
52R-06Prospective Time Impact AnalysisMIP 3.6 (Single Simulation) / MIP 3.7 (Multiple Base)
122R-22Quantitative Risk Analysis Maturity Model (QRAMM)(badge surface)
PPG #20 (2nd Ed 2024)Forensic Schedule Analysis Practice Guide(general acceptance)

Method labels are emitted in result.manifest.methodology — exactly the strings AACE peer-reviewers and opposing experts expect.


Verifiable provenance

Every computation emits a manifest:

result.manifest = {
    engine_version: '2.9.34',
    method_id: 'computeCPM',
    activity_count: 3,
    relationship_count: 2,
    data_date: '2026-01-05',
    calendar_count: 1,
    computed_at: '2026-05-10T14:32:01.847Z',
}

Plus, for forensic provenance, every input carries a SHA-256 topology hash:

const hash = E.computeTopologyHash(activities, relationships);
console.log(hash.topology_hash);  // 64-char hex over canonical (code, duration, sorted preds + types + lags)
// Two XERs with identical hashes have IDENTICAL CANONICALIZED TOPOLOGY under the hashed-field
// set (activity codes, durations, predecessor links + types + lags). NOT a forensic-equivalence
// statement — different calendars, resources, WBS, names, or constraints can still produce
// different schedules under the same hash. The hash is a signal, not a schedule-equivalence proof.

This is the engine's network-topology fingerprint. Bid-collusion signal, retroactive-manipulation signal, and copy-detection signal across XERs all rely on it. It is also the foundation that lets opposing counsel verify topology-level integrity of a CPP analysis post-hoc — they can recompute the hash from the same XER and confirm the activity/relationship network was not altered between submission and review.


JavaScript - Python parity

The engine has a Python sibling (_cpp_common/scripts/cpm.py) used by every CPP forensic skill. The two implementations are kept bit-identical via cross-validation:

npm run crossval
# 43 fixtures × 747 checks. 0 deviations as of v2.9.34.

Plus a 282-activity real-XER stress test reports 0 mismatches.

This means a forensic analysis run in JavaScript (browser, Node) produces the same numbers as one run in Python (claims-preparation skill, MCP server, batch pipeline). Every CPP deliverable carries the same manifest regardless of which surface produced it.


Independent verification

The same-author crossval is honest about its limit: both JS and Python implementations are maintained here. To close the Daubert "no independent testing" objection, the engine ships with a one-command third-party reproduction harness:

git clone https://github.com/danafitkowski/cpp-cpm-engine
cd cpp-cpm-engine
git checkout <commit-sha>     # the SHA cited in the disclosure
npm run verify                # runs unit + crossval + citation tests
# → attestations/latest.json   ← machine-readable witness file

Engine has zero npm dependencies, so reproduction requires only Node 18+ and Python 3.10+. The witness file contains:

  • Engine SHA-256 + Python-reference SHA-256
  • Commit SHA + git ref + workflow URL (in CI)
  • Test counts: unit-tests passed/failed, crossval fixtures + checks, citation regression status
  • Timestamp + Node version + platform
  • Verdict (PASS/FAIL)

Compare your locally-generated witness against the CI-signed witness (published on every push as a workflow artifact + Sigstore-signed via actions/attest-build-provenance). Bit-identical SHA-256s + matching pass counts on a clean clone = third-party reproduction confirmed.

Verify a signed CI attestation:

gh attestation verify attestations/latest.json --owner danafitkowski

See DAUBERT.md §3.1 — Independent Verification for the full Daubert framing.


Production use

The engine runs live at mcp.criticalpathpartners.ca — try it in your browser. The same cpm-engine.js file is served over the wire and embedded inline in every report CPP produces.

The CPP forensic suite (forensic-delay-analysis, claims-preparation, claim-workbench, time-impact-analysis, schedule-risk-analysis, collapsed-as-built, counter-claim-analysis) all consume this engine — the JS port for browser/MCP, the Python sibling for batch pipelines.


Citation

If you use this engine in academic work or expert-witness reports, please cite:

Fitkowski, D. (2026). cpm-engine: An open-source critical-path-method engine with AACE-canonical method labels and a published Daubert disclosure. Critical Path Partners. Version 2.9.34. https://github.com/danafitkowski/cpp-cpm-engine

Algorithm citations are in docs/citations.md. All citations have been verified against primary sources.


License

MIT — see LICENSE.

You can use this engine in commercial forensic consulting, in academic research, in your own scheduling product, in court-filed expert reports. Just keep the copyright notice. No support is implied; no warranty is provided. You are responsible for the conclusions you draw with the engine. A Daubert disclosure is built in (DAUBERT.md) — you may use it as a starting point for your own FRCP 26(a)(2)(B) report.


Release notes

v2.9.12 (2026-05-16) — Round 9 engine math fix wave. ~30 substantive math defects closed across four buckets: T1 constraint handling (MS_Start backward LF clamp, AACE 29R-03 §4.3 actual_start immutability, Section D Monte Carlo actual_start pinning, INFO task-dropped alerts, constraint-unrecognized / incomplete WARNs, CS_MANSTART/CS_MANFINISH aliases, Section D SNLT/FNLT/MS_Start violated+applied alerts); T2 calendar/lag arithmetic (calendar-aware Free Float on binding link, signed _countWorkDaysBetween, negative-FF preserved, dateToNum rollover guard, non-finite lag rejection, invalid-calendar-falling-back WARN, SUB_DAY_LAG_ROUNDED direction-bias disclosure); T3 in-progress + actuals (remaining_duration P6 retained-logic, backward LS=ES pin for in-progress, Section C EF>=ES guard, OoS enumerates every pred, hammock-orphan ALERT, hammock duration_working_days, unrecognized-task-type WARN); T4 Python parity (R8A-1 backport, ALAP secondary slot, forward ES gate). 792 unit tests / 416 crossval checks / verify PASS. See CHANGELOG.md for the full T1-T4 fix index.

v2.9.11 (2026-05-16) — Round 8 R8A engine math fix wave. Four T1 silent-wrong-answer paths closed: actual_finish without actual_start no longer collapses ES to EF; sub-day fractional lags emit SUB_DAY_LAG_ROUNDED ALERT; FF / SF Free Float uses the successor's calendar; Section D constraint clamps emit constraint-skipped WARN when opts.projectStart is missing.

v2.9.10 (2026-05-16) — Round 7-8 hardening. Independent-verification infrastructure (public CI on 9 OS × Node combos, Sigstore-signed witness JSONs, one-command local reproduction via npm run verify) ships as a tagged release. Engine math byte-identical to v2.9.9; that is a docs + infra release. See DAUBERT.md §3.1 and the new §10 Roadmap.

See CHANGELOG.md for the full release history through v2.9.34.


Contributing

See CONTRIBUTING.md. Forensic correctness is enforced — every commit must pass 1,128 unit tests and 747/747 cross-validation checks across 43 fixtures, plus the citation regression, truncation regression, and version-drift regression gates (all wired into npm run test:all and npm run verify). New citations require WebSearch-verified URLs. No fabricated case names. No LLM-generated narratives in core engine paths.


Companion repositories

Two companion repositories are public:

  • cpp-xer-parser — the canonical Primavera P6 XER parser. The engine consumes its parse output as the canonical XER → JS-object layer; cpp-xer-parser has no dependency on this engine.
  • cpp-critical-path-validator — critical path validation and DCMA-14 assessment. Optionally consumes this engine for the LPM cross-check; degrades gracefully when absent.

Additional CPP skills (forensic-delay-analysis, claims-preparation, claim-workbench, time-impact-analysis, collapsed-as-built, counter-claim-analysis, schedule-risk-analysis) are private; contact Critical Path Partners for access.


Strategic note

CPP is a forensic-scheduling consultancy. The engine is open-source as a deliberate posture choice: the CPM math is a decades-old peer-reviewed commodity (Kelley & Walker 1959, Kahn 1962, Tarjan 1972); the workflow, methodology discipline, and Daubert-disclosure posture are where forensic value lives. Open-sourcing the math layer means any academic, solo forensic, contractor's internal scheduler, or independent reviewer has a transparent, citable foundation to inspect, modify, or build on.

If you ship something built on this engine, we'd love to hear about it: danafitkowski@gmail.com.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Registryactive
TransportHTTP
UpdatedMay 17, 2026
View on GitHub