The document map — start from your question, not from the directory

Written 5 September 2026 against revision 0918e55, which is the revision the counts below were taken at. Several documents were being written while this was counted, so the totals move; the shape does not, and the shape is what this page is for.

This repository tracks ~~two hundred and twenty-five~~ two hundred and sixty-six markdown files — recounted 6 September 2026 at revision d3356c2 with git ls-files '*.md', forty-one above the figure this page was written against, in one day. Every one of them carries its evidence, which is the reason there are so many and the reason none should be deleted. It is also why nobody can find anything: an index of that many filenames is a second problem, not a solution to the first.

The recount corrects the total only. The four-part breakdown at the end of this page is left at its original figures and is not restated over the new denominator: those parts were hand-classified at 0918e55 and nobody has re-classified the files added since, so writing the new total under the old parts would be arithmetic nobody ran. The paragraph carries a dated note saying so.

So this page is organised by the question a reader arrives with. Find your question, read the two or three documents under it in the order given, and stop. Everything else in the tree is there to be reached from a citation inside one of them, not to be browsed.

A note on how to read any figure you meet on the way: engine/quality/FIGURE-BINDING.md names the owning document for every number this project publishes about itself. If two pages disagree, the owner wins and the other page is stale. Read the owner.


If you are deciding whether to trust this tool

Can I trust the dates it computes? This is the question the whole repository is arranged around, and the honest answer is a measured one rather than a reassuring one.

Read engine/oracle/README.md first. It sets out the seven independent tiers of evidence and, more usefully, states what each tier cannot prove. Then read engine/oracle/corpus/SWEEP-2.md, which owns the agreement figure against real Primavera P6 exports and carries every superseded level struck and dated beneath the live one. Then read engine/oracle/corpus/P6-SELF.md, which measures how much agreement is achievable at all before anything is fixed — a ceiling that turns out to cut against us rather than for us. Three documents, in that order, and you will know more about this engine's accuracy than the vendor of any commercial equivalent will tell you about theirs.

What will it get wrong on my file? docs/LIMITATIONS.md is the page the entire posture rests on: everything unproved, everything impossible, and why. engine/quality/PROJECTION-BLINDNESS.md is the sharper half — the survey of rules that answered confidently about a population they could not see, and what was done about it.

What does an opposing expert do with this in a deposition? engine/quality/CROSS-EXAMINATION.md ranks the attacks. engine/quality/DEPOSITION.md reviews the committed demo reports against Federal Rule of Evidence 702. credentialing/LEGAL-POSTURE.md states what may and may not be claimed while the founder is unlicensed, as numbered rules rather than as sentiment.

Can I reproduce your numbers? docs/ANSWER-TABLE.md is the reproduction record and its mapping to P6's own columns. engine/quality/REPRODUCIBILITY.md separates what a third party can re-run from what they must take on faith. engine/quality/DETERMINISM.md measures sameness along five axes, and names the one axis where only the control caught the problem. engine/quality/THE-RECORD.md audits the record/verify pair itself: what a record captures, what verify detects against a forged one, and the threat model including who it does not defend against. engine/quality/WHAT-IS-VERIFIED.md is the map of the verification machinery as a whole, which nobody had drawn until 5 September.

What has never been run? Ask this before the reproduction question rather than after it, because it changes what the answer to that one is worth. docs/LIMITATIONS.md §13 states it: continuous integration has not executed a step since 3 September, 284 commits have landed since, and the reproduction matrix across three Pythons and two platforms has never executed once in the life of this repository. engine/quality/CI-AUDIT.md is the audit that found it and names the cause. Cross-version and cross-platform determinism are therefore assumed and not verified; what is measured is five hash seeds on one Windows machine running one interpreter.

Is any of this real? docs/IS-THIS-REAL.md is written for a hostile engineer and every figure on it names its owning file.


If you are going to run it

I have never run it. Start at docs/INSTALL.md, which names the failure modes rather than assuming none. Then docs/GETTING-STARTED.md, written for a scheduler and not for a programmer. Then demo/README.md, which is a worked example whose every transcript is captured from a real run and pinned by a test.

I have a report and I do not know what it is telling me. docs/READING-A-REPORT.md explains what each section claims, and in particular what a NOT_EVALUATED finding obliges you to do rather than allows you to ignore. engine/quality/ABOVE-THE-SCORE.md explains why the reservations come before the score and not after it, and engine/quality/A-FIGURE-AND-ITS-CONDITION.md is the sweep of every surface that prints a figure, asking of each whether the condition qualifying it is on the same surface and ahead of it — the class this repository has now found eight times, most recently a score printed for a schedule whose logic is a loop and a slip total stated in elapsed days beside a split counted in working ones.

The report says it could not decide most of the clauses, and that is most of what I got back. That is the correct output on a file with no contract terms, and the command that turns it into a worklist is construct unanswered, which groups the abstentions by the input a person would have to supply rather than by the rule that wanted it. docs/FIRST-RUN.md is the record of somebody not finding it, which is the reason it is named here rather than left in the command table. construct clause then asks one clause what it looks at and what would settle it.

How does this schedule look before any specification is applied? construct health runs the DCMA fourteen-point screening metrics from cpmcore/health.py, audited clause by clause against DCMA-EA PAM 200.1. Two things about it are load-bearing and neither is obvious. It is the one command that never exits 1, because GAO-16-89G appendix VII states that DCMA's thresholds are indicators rather than compliance triggers, and a gate built on them would be a gate the standard disclaims. And all fourteen checks were implemented and no command could reach them until 5 September, while forensic/rules/gao.py was already printing an instruction to run a command that did not exist — engine/quality/UNREACHABLE.md is the survey that found that and the seventy-odd other capabilities measured the same way, and it is worth reading as a method rather than as a defect list.

Which clauses does it actually check? docs/CONFORMANCE.md owns the rule count and the pack table, and its section on what the packs do not check is the part worth reading twice. docs/RULE-DEPENDENCE.md partitions every rule by what its verdict depends on: whether it reads a fact out of your file, whether it merely needs the schedule to have been calculated, or whether it inherits the CPM arithmetic and therefore inherits the agreement figure too.

Two of your standards disagree about my schedule. docs/CONFLICTS.md lists the places where two authority packs decide the same question differently, and engine/quality/PATH-SHIFT.md works one of them through in detail.

Is the delay analysis real, or is it a checklist? docs/METHODS.md states which AACE method implementation protocols the engine runs. engine/quality/MIP-COVERAGE.md tests that claim step by step against the recommended practice. engine/oracle/injection/MATRIX.md asks the only question that settles it: hand a method a delay it was built to find, and see whether it finds it.

What jobs can I actually do end to end? docs/WORKFLOWS.md walks five of them at the command line and says where each one breaks.


If you are joining this tree as a developer or an agent

Read CLAUDE.md in full before you touch anything. It is not style guidance; every line in it is the shortest form of a lesson that cost somebody a night, and most of them are about git, mutation harnesses and shared temporary files rather than about code.

Then, before you write a check: engine/quality/UNFALSIFIABLE.md on assertions that cannot fail, engine/quality/PROJECTION-BLINDNESS.md on rules that cannot observe the thing they answer about, and engine/quality/FIGURE-BINDING.md on what it means for a published number to be bound rather than merely watched. Those three are one argument in three forms and the argument is the house standard.

Before you quote a number: engine/quality/FIGURE-BINDING.md again, for the owner. Before you cite a line of code: engine/quality/CITATION-ROT.md, which measured how often our own citations point at the wrong thing, and why a symbol name survives editing where a line number does not.

Before you run a measurement: engine/quality/MUTATION-REPORT.md for the harness patterns, and CLAUDE.md's sections on mutating a copy and on control arms. A run that looks like a measurement and measured nothing is the failure this tree has shipped most often.

What is unfinished? docs/OPEN-ITEMS.md is the deduplicated ledger of everything outstanding. ROADMAP.md says where the code stands against the plan, with the gate each next item is waiting on. docs/CAPABILITY-GAPS.md says what a buyer would pay for that the product cannot do.

Where does the engine's own design live? engine/README.md for the overview, engine/CHANGES-FROM-UPSTREAM.md for every deviation from the MassingPlan core it was forked from, and engine/design/SUB-DAY-TIME.md for the one large migration that was designed and refused three times.

That refusal is no longer current, and this paragraph said it was until 5 September. engine/oracle/corpus/SUBDAY-REVIEW.md is now a dated record of the argument for leaving the axis alone, and the live document is engine/oracle/corpus/SUBDAY-DECISION.md, which re-priced the decision, found §5's most valuable argument wrong in its decisive clause, and stages the migration as steps A, B, C and D with a pass/fail gate on each. Step A is the document itself; step B landed on 5 SeptemberInstant is now a count of minutes rather than of days, whole-day semantics are unchanged, and the corpus report came out byte-identical across two independently pinned pairs. Step C is partly executed: engine/src/cpmcore/boundary.py gives the boundary algebra named constructors and eleven call sites in five modules are routed through them. Read SUBDAY-DECISION.md §8 for the plan of record and §11 for what step B did and did not buy; three pages that recommended against the axis carry their recommendation struck and dated rather than deleted.


If you are looking at this as a business

README.md at the root is the product overview. docs/POSITIONING.md states the buyer, the one sentence, the four claims that are provable and the five that are not. business/BUSINESS-PLAN.md is the operating plan with its falsifiable conditions; business/MOAT.md concludes there is no moat today and shows its working; business/RISKS.md carries the register including the risks that have already materialised.

If the question is "who else does this", read business/COMPETITIVE-LANDSCAPE.md before any of them and before any sales conversation. It segments the field by the forensic-versus-predictive boundary with a URL and a retrieval date on every row, records the service-substitute prices that set our ceiling, and — the reason it exists — lists in §7 every claim elsewhere in this tree that it contradicts or fails to support, including two sentences in outreach/ that were being said out loud and are now struck. It also names the closest competitor found in any pass: an MIT-licensed, offline, AACE-canonical forensic CPM engine that no previous research round saw. outreach/ holds what is said to whom — the one-pager, the objection handbook, the demo scripts, the public-records letters, and outreach/CLAIMS-REGISTER.md, which ties every asserted sentence in the outward-facing material back to the file that owns it.

If the question is which organizations, and not which channel, that is outreach/TARGET-LIST.md — 111 named organizations across state DOTs, federal owners, claims consultancies, construction law firms and the professional bodies, each with the published business channel, the source URL and the date it was retrieved. It is the enumeration GTM.md and CONTRACTOR-SCHEDULERS.md deliberately do not contain: those two name the channel and the buyer's role, this one names the door. Read it for its "not confirmed" rows as much as its verified ones — a fifth of the state list failed on a tool boundary rather than on evidence, and the page says which is which.

If the question is in what order, with what letter, how many times, and when to stop, that is outreach/CAMPAIGN.md. GTM.md names the channels, TARGET-LIST.md names the doors, and this one is the campaign across them: nineteen approaches over six weeks, a different message for the DOT engineer, the claims consultant, the construction lawyer, the contractor scheduler and the federal owner, a cadence with a stop rule that can actually fire, a disqualification rule, and one registered falsifiable prediction scored on 31 October 2026. It is written against three facts that post-date most of outreach/: the lead is named-agency-clause conformance, nothing is distributed so no message may imply obtainability, and the practitioner count is zero. Its demo is ready to run: outreach/DEMO-SCRIPT.md names project XV01 and its score lines are bound to the committed outputs. outreach/APPROACH-LOG.md is the append-only record for outreach attempts.

If the question is a licence or a copyright, two files answer it and neither is the other. business/LICENSING-POSTURE.md is the inbound position — what this repository borrows, under what licence, and whether the obligations are discharged — and it owns the fork-compliance record and the third-party inventory. business/COPYRIGHT-AUDIT.md is narrower and outbound: of the material that actually leaves this machine, which carries a copyright problem, with the public-facing set defined by evidence and counted. business/SELLING-ON-PREM.md owns the outbound licence decision itself, which is the founder's and is open.

If the question is whether the public website can go live, business/PUBLICATION-GATE.md is the ordered gate — each item measured rather than assumed, marked as a founder decision or a work item, and stating what it blocks: the whole site, one page, or nothing. It answers the narrow question the founder's no-download decision leaves, and it is deliberately not the general "can we go public" question: its last section states what publishing this site does not force, because opening the repository, distributing a build and granting a licence are three separate decisions that are routinely conflated. Read it alongside web/BLOCKED.md, which owns what the site may not say, and web/CLAIM-SOURCES.md, which owns what holds each claim up.


Where the record is kept, and why it looks like clutter

Two dense areas hold most of the file count, and both are working records rather than documentation in the ordinary sense.

engine/oracle/corpus/ holds forty-eight files and is the investigation of the agreement gap: one document per mechanism, each naming what it measured, what it refuted, and what it handed back. Do not read it as a set. Read SWEEP-2.md for the level, APPORTIONMENT.md for how the gap decomposes, and CEILING-PLAN.md for how the rest of the directory joins up. The others are reached from those three.

engine/quality/ holds sixty-nine files and is the audit record: one document per pass, each ranking what it found and stating what was refused. FIGURE-BINDING.md, PROJECTION-BLINDNESS.md, MUTATION-REPORT.md and VERDICT-YIELD.md are the four with standing beyond their own pass.

corpus/reports/ holds the origin research — the versions of the idea that were tried and abandoned. Its own README.md says plainly that these are historical and unmaintained, which is the right treatment: they record how the problem was understood before it was understood correctly.

OVERNIGHT.md, engine/REVIEW.md, engine/REVIEW-2.md, engine/quality/SYSTEM-STATE.md and engine/oracle/injection/PREDICTIONS.md are dated snapshots and must not be read as current. PREDICTIONS.md in particular was written before the run it predicts and has deliberately never been edited since, which is the only thing that makes it evidence.

A struck figure is kept on purpose. This tree supersedes a number by keeping it, striking it and dating it, so the record of how something was understood survives. That convention has one trap, recorded in CLAUDE.md: a struck row is still a row a parser can read, and a naive selector once took a stale figure for a day. If you are reading with a script, skip struck rows and assert that exactly one live answer survives.


The inventory in one paragraph

Of the two hundred and twenty-five tracked markdown files at 0918e55, roughly sixty-five are written for the outside reader or a buyer's technical reviewer, roughly twenty for someone running the tool, roughly one hundred and ten for a developer or an agent working in the tree, and roughly twenty are dated records kept deliberately and not to be read as current. The boundary between the last two is a judgement rather than a fact — most audit documents in engine/quality/ are both. The full per-file classification, the contradictions found while making it, and what was struck, are in engine/quality/DOC-AUDIT.md.

Read 6 September 2026 and deliberately not corrected. The denominator above has moved from two hundred and twenty-five to two hundred and sixty-six, and the four parts under it have not been re-derived. Scaling them, or writing the new total in front of the old parts, would produce a paragraph that reads current and was never measured. The parts stand as classified at 0918e55; the live total is at the top of this page. Re-deriving them is a hand classification of forty-one files and is owed rather than done.

Source: docs/DOCUMENT-MAP.md. Source commit date: 2026-09-06.

See it in practice

Follow the evidence, from the schedule to the finding.

Explore the worked example