CPP Lens v1.0.0 is live at criticalpathpartners.ca/viewer/. Drop an XER into the page, get 29 sections of schedule diagnostics back in milliseconds, and click Run Deep Forensic to hand the analysis off to the CPP engine without your activity names ever leaving your browser.

This post is the launch note. It explains what Lens does, what it is honest about, and how it fits next to the forensic deliverables we already ship.

Open it right now (no install, no signup)

criticalpathpartners.ca/viewer/ — the entire viewer is a single 110 KB HTML file. Pure vanilla DOM, no framework, no CDN call. Drop one XER on the left to populate the 29 sections. Drop a second XER on the right to enable the Compare group.

1. What it actually does

Lens reads a Primavera P6 XER file in your browser and renders it across six sidebar groups. Twenty-nine sections in total — a deep tour of one schedule, then a comparison surface for two.

Overview

Executive dashboard, executive summary, and a "How Lens compares" page that positions Lens transparently against the wider viewer landscape.

Schedule

Activities, predecessors, milestones, WBS rollup, constraints & float, calendar viewer, activity codes, UDF inspector, schedule quality (DCMA-14 lite), distribution. Built for the question "what is in this XER, exactly?" — no surprises, no truncations.

Visual

Gantt, WBS treemap, float burndown, slip velocity, predecessor logic graph. All rendered as inline SVG so they print and screenshot cleanly into a memo without rasterization artifacts.

Compare and Period

Two-XER diff: changes, slip-by-window, period analysis. Same working-day math the CPP forensic deliverables use — Lens does not mix calendar days into a working-day report.

CPP Forensic (the moat)

Path Explorer chain trace, Three-Week Lookahead extracted from the canonical CPP lookahead rules, a Half-Step XER generator that produces a downloadable XER built per AACE 29R-03 MIP 3.4 — the contemporaneous-update method — and the Deep Forensic handoff modal.

Tools

Data Dictionary (what tables your XER has, and what Lens reads), Raw Tables browser with CSV export, and XER Utilities — POBS Cleaner, Anonymizer, Calendar Report, Schema Report.

2. The Deep Forensic handoff — privacy you can audit

The Deep Forensic button on the CPP Forensic tab hands the analysis off to the CPP engine. The engine is the same cpp-forensic-mcp service that drives every Critical Path Partners deliverable; it is hosted at mcp.criticalpathpartners.ca and reachable today through the new /lens/run endpoint. Five forensic methods are exposed:

Anonymization is on by default. Before any bytes leave the tab, Lens strips activity names, WBS names, task memos, UDF text, and activity-code names — replacing them with stable opaque tokens (ACT_0001, WBS_0001, …). The map that lets you restore those names stays in the browser. Only its SHA-256 hash travels with the request, so the result you get back can be receipt-validated against the model you uploaded without the engine ever having seen the original strings.

Rate limit, on purpose

Five deep-forensic runs per IP per day, fifty polls per IP per day. This is enough for a real evaluation pass on a schedule, and not enough to use as someone's CPM engine. If you have a job that needs more — that is what an engagement is for.

3. What Lens does not pretend to be

Lens is not a forensic opinion. It is a viewer, a fast triage surface, and a privacy-preserving handoff to the engine that does produce forensic opinions. The Deep Forensic result HTML carries a Lens-attribution footer for that reason — the artifact is a CPP engine output, not a CPP analyst opinion.

Two limitations to call out:

Both are scoped on the v0.2 list. The launch ships honest about them rather than papering over.

4. Built on the same open stack

Lens is built on two MIT-licensed libraries we already ship:

The viewer itself — cpp-lens-viewer — will be published after v1.1 stabilizes the Deep Forensic wiring in the wild.

5. How to evaluate this honestly

The fastest way is to run your own schedule through it. Drop the XER on the page and skim the 29 sections. If you do not get an answer to the question you brought, that is a result we want to hear about. The "How Lens compares" section in the Overview group lays out, in plain language, where Lens is on par with the wider viewer landscape and where it is deliberately different.

If you want a deeper analyst pass — an expert reading the same schedule and turning it into a defendable opinion — that is the engagement on the other end of the Talk to CPP button.

Open Lens on your own XER

One page. One file. Drop a schedule and inspect it. No signup, no install.

criticalpathpartners.ca/viewer/ →
The point of Lens is not to replace the analyst. It is to put the analyst's view of your schedule on the same page as you, in fifteen seconds, so the next conversation we have is about the parts that actually need a human.