Skip to content

Final Review — Cross-Document Consistency Check

ContributorsPaul Atkins

Purpose

Perform a systematic consistency check across all documents produced by the SoW workflow. Catches drift between documents that were individually approved but may have diverged due to corrections applied at different stages.

Why this matters

Each HITL gate approves one document in isolation. But corrections at Gate 5 (CARES) may change assumptions that affect the plan (Gate 3) or timeline (Gate 7) without those documents being updated. This skill catches those cross-document inconsistencies before stakeholders see them.

Prerequisites

All workflow documents must exist:

  1. Gap analysis — [system]-gap-analysis.md
  2. Remediation plan — [system]-remediation-plan.md
  3. Skills summary — [system]-skills-summary.md
  4. Statement of Work — [system]-sow.md
  5. Timeline — [system]-timeline.md
  6. Clarification questions — [system]-clarification-questions.md (if applicable)

Instructions

Step 1 — Check plan item ID consistency

Extract all plan item IDs (e.g. "0.1", "1.2", "2.3.1") from: - The remediation plan (source of truth) - The SoW (scope section, milestones) - The skills summary (skill mappings) - The timeline (Gantt chart task labels)

Flag any ID that appears in a downstream document but not in the plan, or vice versa.

## Plan Item ID Consistency

| ID | Plan | SoW | Skills Summary | Timeline | Status |
|----|------|-----|---------------|----------|--------|
| 0.1 | ✓ | ✓ | ✓ | ✓ | OK |
| 1.2 | ✓ | ✓ | ✗ | ✓ | Missing from skills summary |
| 2.5 | ✗ | ✓ | ✗ | ✗ | Orphaned in SoW — removed from plan? |

Step 2 — Check phase and milestone naming

Verify that phase names and milestone labels are identical across: - Plan phase headings - SoW milestone names - Timeline milestone labels and Gantt sections

Flag any naming drift (e.g. plan says "Phase 1A: CI/CD Pipeline" but SoW says "Phase 1A: Build Pipeline").

Step 3 — Check dependency ID consistency

Extract all dependency IDs (D1, D2, ...) from: - The plan's external dependencies section (source of truth) - The SoW's dependencies section - The timeline's key dates table - CARES assumptions (some reference dependencies)

Flag orphaned, missing, or renamed dependencies.

Step 4 — Check effort and duration consistency

Compare effort estimates in: - The plan (T-shirt sizes per work item) - The SoW (milestone durations) - The timeline (Gantt chart durations, critical path analysis)

Flag any duration in the timeline that doesn't match the plan's effort estimate for that phase.

Step 5 — Check CARES consistency

Compare CARES sections in: - The plan (Section 4) - The SoW (CARES section)

Flag any assumption, exclusion, or risk that appears in one but not the other. The SoW should be a faithful extraction of the plan's CARES.

Step 6 — Check for stale data

Look for facts that were updated during the workflow but may not have propagated to all documents:

  • Input register corrections from Gate 1
  • Supplement updates from Gate 2.1
  • Plan changes from Gate 3
  • CARES changes from Gate 5

For each updated fact, verify it's consistent across all documents that reference it.

Step 7 — Produce the consistency report

## Cross-Document Consistency Report

**Documents reviewed:** [list]
**Date:** [date]

### Summary

- Plan item IDs: [N] checked, [M] inconsistencies
- Phase/milestone names: [N] checked, [M] inconsistencies
- Dependency IDs: [N] checked, [M] inconsistencies
- Effort/duration: [N] checked, [M] inconsistencies
- CARES: [N] checked, [M] inconsistencies
- Stale data: [N] facts checked, [M] potentially stale

### Issues Found

| # | Type | Documents | Issue | Suggested fix |
|---|------|-----------|-------|--------------|
| 1 | Plan ID | SoW, Plan | SoW references item 2.5 which was removed from plan at Gate 3 | Remove from SoW Section 3 |
| 2 | Naming | Timeline, SoW | Timeline says "M1: DEV Deployed" but SoW says "M1: DEV Deployment Operational" | Align to plan wording |
| 3 | CARES | Plan, SoW | Assumption A4 updated at Gate 5 but SoW still has original wording | Update SoW Section 4.2 |

### No Issues (Verified Consistent)

- [list areas that passed checks]

Step 8 — Apply fixes and re-verify

If issues are found: 1. Apply the suggested fixes to each affected document. 2. Re-run Steps 1–6 on the fixed documents. 3. Present the updated consistency report to the user.

Output

A consistency report (can be inline in the conversation or saved as [system]-consistency-report.md if the user wants a record).

Tips

  • Run this after every correction loop. If Gate 6 (SoW review) produces corrections, re-run the consistency check before proceeding to Gate 7.
  • The plan is the source of truth for IDs, phasing, and effort. The SoW and timeline should be derived from the plan, not the other way around.
  • Don't fix the SoW without fixing the plan. If the SoW has a wrong milestone name, the issue is probably in the plan. Fix upstream first.
  • Mermaid charts are easy to forget. The Gantt chart in the timeline and the dependency graph in the plan both reference IDs and names that must match the plan's work items.

Troubleshooting

Error: Consistency report flags many issues after a late-stage correction. Cause: A correction at one gate (e.g. CARES) wasn't propagated to downstream documents (SoW, timeline). Solution: Fix upstream first (the plan is source of truth), then regenerate downstream documents. Re-run the consistency check after each fix.

Error: Plan item IDs in the Gantt chart don't match the plan. Cause: Mermaid task labels were abbreviated or renamed for readability. Solution: Use the plan's exact item IDs in Gantt labels. Readability can be added via descriptive text after the ID.

Error: CARES sections differ between plan and SoW but both look correct. Cause: CARES was updated in the SoW without updating the plan (or vice versa). Solution: The plan is the source of truth. Update the plan first, then extract into the SoW.