Find broken document-index links
Compare index entries with an approved file manifest and suggest only exact, unique replacements.
Tools for the documented steps
Practice relevance
Cross-practice idea · Useful supporting administrative method; no claim of practice-specific legal instructions.
Scope: Approved local document index and stable local snapshot; advanced PowerShell 7 and Excel checks. Helper runtime is untested; no court integration.
The problem
Compare index entries with an approved file manifest and suggest only exact, unique replacements.
Why it matters: A document index can look complete even when its links no longer resolve to the right files. Checking immutable IDs against a current manifest helps staff find stale or ambiguous references before relying on them.
Sources & evidence
Proposed / not tested. The public source describes the problem. Documentation supports only the stated method components; no result from this recipe has been verified.
What’s been verified
Source methods and reported problems have been reviewed. We have not run the adapted workflow. The sample below describes expected behavior on synthetic data, not a customer result.
What to measure: In a synthetic pilot, count correctly found exceptions, false alarms, and unresolved inputs. No time or cost saving is assumed.
- Pain evidence: Family law paralegals: sorting text/email/photo evidence ↗Family law paralegals: sorting text/email/photo evidence, 2024-08-22, older. A 20-year paralegal reports folders getting lost, unhelpful long titles and links from Excel to files breaking. This candidate addresses broken index references only, not evidence relevance or file naming. Direct open failed; indexed original text was available.
- Method: Power Query merge ↗Power Query merge supports matching tables by one or multiple keys.
Source checked: October 15, 2026. Pain accounts are self-reported. Documentation supports components; this adapted recipe and prompt have not been tested. We wrote these prompts. The adapted workflow hasn’t been tested.
Suggested approach
Start when: Weekly index check or an authorized folder move
- compare indexed document IDs and stored paths with a current approved file manifest
- Keep source references and report unknowns instead of filling gaps.
- The responsible reviewer checks the report before any separately approved action.
Limits and review
The assistant drafts or reports only. Check source records and review the output before a human performs any separately approved send or change. No automatic legal decision, money movement, account connection or publication is included.
Who reviews it: Staff validate proposed links in the existing authorized DMS before applying them. Include same-name files from different matters and a moved file; cross-matter matches must be rejected.
What you need
Your firm-approved AI assistant · prepared files
- Existing PowerShell 7 on Windows and IT approval to run the bundled helper under the existing script policy. No install, elevation or execution-policy bypass is part of this route.
- An approved stable, fully local working snapshot and an existing output folder outside it on the same fixed local drive. Both paths must be absolute drive-letter paths with ordinary, non-reparse-point ancestors. No live/cloud/network/mapped-drive repositories, original forensic media or restricted paths.
- The records/IT owner must exclude credential/profile directories and all secret material before selecting the snapshot. The helper uses -Force and hashes every readable regular file, including hidden files; it does not detect or redact secrets.
- Records owner supplies scope and identity/custodian/family metadata; hashes establish byte equality only.
- Actual maintained document index, including its stored link targets and any existing persistent document IDs/prior hashes.
- Firm-approved Excel; optional Copilot entitlement and tenant approval for the exact minimized data. Native Excel analysis can be done manually if Copilot is absent.
- Keep raw exports and identifying source pointers in a separate restricted location. The AI workbook contains only approved alias-based tables and visible policy/scope text, never raw client records on another tab.
- Use synthetic inputs first. Keep real data in firm-approved accounts and processing, with appropriate access, confidentiality and retention controls. Aliases alone do not anonymize records. Never paste credentials, API keys or unnecessary client details.
How to use
Advanced · Advanced proposed local-snapshot route; helper statically reviewed only and not runtime-tested
- A filesystem inventory cannot recover a DMS document ID or prove which identical copy belongs to an index record. Missing prior IDs/hashes prevent identity-based repair.
- This bounded local-folder route cannot validate cloud URLs, permissions or missing repository exports. Those remain untested.
- Advanced helper route: existing Windows PowerShell 7, approved stable snapshot, IT code review and a safe synthetic test under existing policy are prerequisites. The helper is not a security boundary against concurrent or malicious filesystem changes. No runtime test was performed here.
Check access and setup
- Actual account access, plan and source-data completeness have not been tested.
Read the actual maintained index
Excel/local index owner · Open the original approved index workbook read-only; inspect its stored document IDs and hyperlink targets
Copy each existing index row into a separate audit table, assigning row_id. Preserve the actual document_id if maintained, matter_alias and stored_path. Use a prior supplied_hash only when backed by retained evidence; do not hash a missing path or invent an ID from the filename. Keep the original workbook unchanged and do not follow untrusted external links.
- Expected output
- index.csv mapped from the actual index, with an explicit note for missing persistent IDs or prior hashes.
- Next step
- Ask the records owner for the approved current local snapshot and identity crosswalk.
- Check before continuing
- A newly assigned row alias is not a stable document ID; if no identity evidence exists, limit the result to path/coverage review.
Collect real local file sizes and SHA256 hashes
PowerShell 7 on Windows · Existing PowerShell 7 session > reviewed Inventory-ApprovedLocalSnapshot.ps1
Have IT review the bundled helper and test it on a synthetic fixture under existing script policy before using approved work files. Set absolute snapshot and output paths on the same fixed local drive, with the output directory outside the snapshot. Before running, exclude credential/profile directories and secret material: -Force includes hidden files and there is no automatic secret detection. Run the command below with approved paths. The helper checks path forms, drive type and every directory ancestor, then walks ordinary directories one level at a time without following reparse points, records read/enumeration errors, hashes readable regular files with SHA256, and writes new inventory/issues/control files outside the input. It does not change source bytes. Reads may affect access metadata; this is not forensic acquisition.
- Expected output
- Native-cmdlet-derived local_row_id,relative_path,original_name,size_bytes,sha256,observed_last_write_utc,captured_at_utc plus issues/control logs. local_row_id is a run-local row reference, not a persistent document ID.
- Next step
- Inspect the issue/control logs before mapping the current manifest. Import CSV via Excel Data > From Text/CSV > Transform Data; set IDs, hashes and paths to Text. Do not double-click untrusted CSVs or enable formulas/macros/links.
- Check before continuing
- Any skipped/unreadable/changing file is a coverage gap. No claims about deleted files, embedded attachments, alternate streams, cloud versions or access permissions. No repair/delete action. Stop if any path is rejected or changes during capture; do not bypass checks, elevate permissions, install PowerShell or change execution policy as part of this recipe.
Map the observed records to the starter input
Excel and authorized staff · Separate analysis workbook > Home > Format as Table
Create manifest.csv by mapping current relative paths/hashes to verified document_id and matter_alias using the existing repository/index crosswalk. Set current_path to the approved destination path representation; keep the snapshot-to-repository mapping explicit in Scope. A hash match can nominate candidates only, and identical copies remain multiple rows. Preserve source rows and errors in Scope. Do not copy a current hash into the old index as if it were a prior hash. Create named tables for Index and Manifest. Put the policy and review scope in visible worksheets or paste them into the next prompt.
- Expected output
- Index and Manifest tables; unsupported identity/current-path mappings are unknown.
- Next step
- Check the mapping against each original source before using AI.
- Check before continuing
- Aliases and missing policy fields are staff-created; do not relabel a native export as the kit schema. Unknown stays blank/unknown, not false or zero.
Review the bounded evidence with Copilot
Excel Copilot, optional · Approved analysis workbook > Copilot icon at lower right > Chat only
Use Chat only and submit the prompt. Without Copilot: perform exact same-matter ID comparison, then inspect unique hash candidates without automatically changing links.
- Expected output
- Source-linked stale/missing/ambiguous link report and conditional proposed replacements.
- Next step
- Copy the draft exception list to the reviewer; retain row references.
- Check before continuing
- Check every flagged row and the scope. A fluent answer is not evidence of completeness; no automatic workbook or source-system edits.
Approve the review result
Final human reviewResponsible staff reviewer · Reviewed local worksheet
Records staff verify each proposed target in the approved repository and confirm the intended document, matter and user access. Apply only individually approved repairs separately; keep originals and the issue log.
- Expected output
- Reviewed link-repair proposal, with unsupported targets left unresolved.
- Next step
- Any external message, source change, payment or deletion requires its own authorized process.
- Check before continuing
- A matching hash does not establish permissions, current canonical version or legal identity of a document.
What you’ll get
link-review.csv: row_id, document_id, stored_path, candidate_path, match_basis, ambiguity, evidence_rows, reviewer
Inputs and a sample test Synthetic example · not a measured result
Input files
- index.csv: row_id, document_id, matter_alias, stored_path, supplied_hash
- manifest.csv: document_id, matter_alias, current_path, supplied_hash; scope.txt: approved repository and export completeness
Synthetic example
D1: exact immutable ID at a new path D2: same filename belongs to another matter D3: two possible hash matches
Expected output
D1: proposed replacement for review D2: reject cross-matter match D3: ambiguous, no replacement
Test a failure
Staff validate proposed links in the existing authorized DMS before applying them. Include same-name files from different matters and a moved file; cross-matter matches must be rejected.
Try with the sample files
Follow the tool steps above and use the inputs named in each step. Where provided, native-* files are blank scaffolds and NATIVE-INPUT-MAPPING explains their fields. Original examples and the optional full review prompt use a separate prepared-input schema. Keep them separate unless the mapping explicitly connects them. Downloading a kit does not connect accounts or prove the workflow works.
Download inputs and checklist 11 files
Instructions, blank templates and separate synthetic examples; these files do not install an automation. Blank templates still need verified source data.
- Download starter kit All inputs, synthetic examples and review notes in one ZIP. No automation is installed.
- Start here: get the sources and prepare the review Documentation-checked acquisition, explicit manual mapping, exact prompts and human review limits
- index.csv Blank input template with exact recipe headers.
- index.example.csv Separate synthetic fixture input. Do not mix these rows into real exports.
- manifest.csv Blank input template with exact recipe headers.
- manifest.example.csv Separate synthetic fixture input. Do not mix these rows into real exports.
- scope.txt Blank text input worksheet. Fill its fields with approved evidence; no default assumptions are supplied.
- scope.example.txt Separate synthetic text input fixture; use with the example CSV files only.
- Expected fixture findings Read-only expected output and failure conditions for the included synthetic input files.
- Setup and review checklist Recipe-specific prerequisites, file mapping, prompt, setup steps, checklist and limits.
- Advanced: approved local snapshot inventory helper Read an approved stable local snapshot and write inventory/error outputs outside its root; requires authorized IT review and synthetic validation first
Optional full review prompt for prepared inputs
Prepared-input review prompt with Your firm-approved AI assistant · prepared files
Proposed / not tested · editorial prompt. This prompt uses the original prepared-input schema shown in the sample test. Step prompts may use different tables. Follow NATIVE-INPUT-MAPPING where supplied; do not mix the original examples with native-step inputs without mapping and checking every field.