Day 3 prosper_loans.csv 11.7 MB · 10,000 rows · 20 columns — you don't need this today Download →

Participant Session Sheet

Files Under Management

Everything you type today, in order. Each step says where it goes — PowerShell or Claude. Click any step to open it.

These are a starting point, not a script. The PowerShell lines need to be copied exactly, because they move real files. Everything you say to Claude is yours — ask it anything, in your own words, and go wherever the folder takes you.

Last updated 3 August 2026

01

Getting set up

We do this together now. Four steps, about ten minutes, no administrator rights needed. Stay with the room rather than running ahead — if something fails it is easier to fix while everyone is on the same step.

  1. Download the package

    Download workshop-package.zip — 4 MB

    No Google sign-in needed. If the download is slow, say so — there are USB sticks in the room.

  2. Extract it to exactly this location

    C:\Users\Public

    Do not accept the default. Right-click the zip → Extract All… → replace the suggested folder with the path above. Some paths inside are long enough that extracting into Downloads exceeds the Windows limit and fails part way through, with no obvious error.

    You should end up with three folders and one file.

  3. Check it worked

    powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\preflight.ps1 -Root "C:\Users\Public\DealRoom"

    Press Start, type PowerShell, press Enter, then paste that in. The last line should read RESULT: READY. WARN rows are expected. If it says the folder was not found, the extract went somewhere else — say so rather than retrying.

  4. Open Claude on the documents

    C:\Users\Public\DealRoom

    The documents themselves — not the tools folder. We move to the tools folder partway through, and the reason we move is one of the things this session is about.

02

Before we start

Two checks on the machine.

PowerShell · line 1 Environment check Confirms this machine can run the exercise.
powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\preflight.ps1
PowerShell · line 2 Environment check, on the folder The same probes, aimed at the documents.
powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\preflight.ps1 -Root "C:\Users\Public\DealRoom"
03

Ask once

The same question, twice, with no rules in place.

Claude · P-01 Ask the question A plain question about the documents, in a fresh chat.
Here are 30 documents from a family office deal room.

Categorise every document, then total by category. Give me a table with the category
name, the number of documents in it, and the total dollar value where a document has
one. Add a short note on anything you were unsure about.
Claude · P-02 Ask it again, separately The identical question in a second window.
Here are 30 documents from a family office deal room.

Categorise every document, then total by category. Give me a table with the category
name, the number of documents in it, and the total dollar value where a document has
one. Add a short note on anything you were unsure about.
Claude · P-03 Compare the two answers Puts both replies side by side.
Below are two answers to the identical question, asked of the identical 30 documents,
five minutes apart.

ANSWER A:
<paste the whole of window 1's table and note>

ANSWER B:
<paste the whole of window 2's table and note>

Do three things and nothing else:
1. List every category name that appears in one answer and not the other.
2. List every document that the two answers put in different categories.
3. Give me the two totals for the largest category, side by side, and the difference.

No commentary. No recommendation on which is better. Just the three lists.
Claude · P-04 If the two agree A sharper question for when they come back the same.
Same 30 documents. This time: which of these documents commit the family office to
paying money after 2026, how much in total, and to whom? Show your working per
document.
Claude · P-05 Why they differ Answers the objection that this is only randomness.
Same 30 documents, same task, reworded: sort every one of these into the smallest set
of buckets that would let a family office CFO see where the money went, then total each
bucket.
04

Writing the rules

We decide what the assistant may and may not do.

Claude · C-1 Look around the folder An unconstrained first pass, before any rules exist.
Look through this folder and tell me what is in it.

I want a plain summary I could read to a colleague:
- roughly how many files, and what kinds
- what the folder structure looks like
- anything that looks duplicated, misfiled, or out of place
- anything that looks like it should not be sitting in a shared folder

Do not move, rename, copy or delete anything. Do not go above this folder.
Claude · C-2 Write the rules down Turns the room's principles into a CLAUDE.md file.
We are going to write down the rules for how you work in this folder.

Create a file called CLAUDE.md containing the principles below, written as clear
instructions to you. Keep each one short, and add one line under each saying why
it exists.

<paste the room's principles here, one per line>

Do not add rules we did not agree on, and do not write any other file.
Claude · C-3 Test that they hold Asks for something the new rules forbid.
Write a summary of your findings to a file called notes.txt in this folder.
05

The mandate

Six decisions about the cleanup policy.

Claude · P-06 Read the mandate back Confirms what was ruled on the six decisions.
Read C:\Users\Public\folderhealth\config.md and
C:\Users\Public\folderhealth\protect.txt.

Do not edit either file.

Tell me, in six short bullets, what my six rulings will actually do to a scan of
C:\Users\Public\DealRoom — one bullet per ruling, each naming the specific consequence.
Then tell me which single ruling I am most likely to regret and why, in one sentence.

If any ruling is blank or ambiguous, say which one and stop.
06

Measuring the folder

Names, sizes, dates and fingerprints. No document is opened.

PowerShell · line 3 Scan Records names, sizes, dates and fingerprints. Opens no document.
powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Scan-FolderHealth.ps1 -Root "C:\Users\Public\DealRoom"
Claude · P-07 Read the result What the scan found, in the assistant's words.
Run this command exactly as written. Do not modify it, do not add parameters, do not
write a script, do not run anything else first.

powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Scan-FolderHealth.ps1 -Root "C:\Users\Public\DealRoom"

When it finishes, tell me only: the run id, the file count, SkippedCount and
UnreadableCount. Nothing else.
Claude · P-08 Read the summary file Walks through the scan's own output.
Open C:\Users\Public\DealRoom\_folderhealth\summary.json.

Do not open inventory.json.

Walk me through it in exactly this order, and stop:

1. root_display, tier, scan_content, and the three lines of notes_for_the_reader.
2. totals: files, directories, bytes_human, hashed, zero_byte_files, protected_files,
   uncategorised_files.
3. SkippedCount and UnreadableCount, as two separate numbers.
4. The five findings with the highest severity. For each, give me the finding_id and
   then the evidence string quoted word for word. Do not paraphrase an evidence string
   and do not improve it.
5. One sentence: which of those five would still be true if every filename in this
   folder were replaced with a random number.

Do not recommend anything. Every finding is a measurement, not a judgement.
07

Reading inside the documents

Deliberately crossing a line, and saying so.

PowerShell · line 4 Scan, reading inside The same scan, except it opens documents and reads text.
powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Scan-FolderHealth.ps1 -Root "C:\Users\Public\DealRoom" -ScanContent
Claude · P-10 Cross the line Names the boundary out loud while crossing it.
Run this command exactly as written. It reads the contents of documents, which the last
scan did not. Say the words "Tier 2, content reading, synthetic corpus only" back to me
before you run it.

powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Scan-FolderHealth.ps1 -Root "C:\Users\Public\DealRoom" -ScanContent

When it finishes, tell me the new run id and confirm that scan_content is true in the
new summary.json.
Claude · P-11 The forged twin Two invoices under one number.
Open the newest summary.json for C:\Users\Public\DealRoom.

Find the near-duplicate cluster covering the two invoices. Give me:
- both rel_paths
- both size_bytes
- the evidence string, quoted word for word
- the single amount the two documents disagree about

Do not open either document yourself. Do not open inventory.json. If the answer is not
in summary.json, say "the scan did not measure that" and stop.
Claude · P-12 The misfiled passport An identity document where it should not be.
From the same summary.json, list every entry in sensitive_names.

For the highest-severity one, give me:
- rel_path and parent_rel
- matched_terms
- exposure and exposure_reason, quoted
- sibling_file_count and sibling_category_count
- the evidence string, quoted word for word

Then answer one question in one sentence: was the scan asked to look for this?
08

The plan

What the assistant proposes, and how we review it.

Claude · P-13 Write the plan Every proposed operation, with its reason and fingerprint.
You are proposing a plan. You are not going to touch a single file.

Read these three files and nothing else:
  C:\Users\Public\DealRoom\_folderhealth\summary.json
  C:\Users\Public\folderhealth\config.md
  C:\Users\Public\folderhealth\protect.txt

Do NOT open C:\Users\Public\DealRoom\_folderhealth\inventory.json. It is large, it is
local-only by design, and you do not need it.
Do NOT open any document in the deal room.

Then write exactly one file, and no other file:
  C:\Users\Public\DealRoom\_folderhealth\runs\<RUN_ID>\plan.csv

where <RUN_ID> is the single line in
C:\Users\Public\DealRoom\_folderhealth\latest.txt.

The first line of plan.csv, verbatim, with nothing before it:
"row_id","run_id","op","source","destination","reason","source_hash","source_size_bytes","cluster_id","keeper","confidence","finding_ref","category","requires_human"

Rules for the rows:
- op is one of: quarantine, move, rename. There is no delete op. If you believe a file
  should be deleted, propose quarantine and say so in reason.
- source, destination and keeper are paths relative to C:\Users\Public\DealRoom. No
  drive letters. No leading .\ and no trailing backslash.
- source_hash and source_size_bytes are copied exactly from summary.json. If you do not
  have a hash for a file, do not write a row for it.
- For quarantine, write the destination as _QUARANTINE\<RUN_ID>\<source>. The applier
  recomputes it and ignores yours; write it anyway so the row reads.
- move must change the parent directory. rename must keep the same parent directory.
- reason is one plain sentence, under 200 characters, no newlines, that a partner could
  read aloud without translation.
- confidence is high, medium or low. Where the finding carries keeper_confidence, copy it.
- requires_human is TRUE or FALSE, uppercase, carried through from the finding.
- finding_ref is the finding_id from summary.json that motivated the row.
- Order: every quarantine row first, then every move, then every rename; within each
  group sort by source, A-Z, case-insensitive. row_id runs PLAN-0001 upward with no gaps.
- Quote every field with double quotes, including empty ones. CRLF line endings. UTF-8.
- Do not write a row whose source matches a rule in protect.txt. The applier drops those
  regardless of what you propose — I want to see whether you dropped them first.
- Do not write a row for anything listed in unreadable_items. Those files have no hash
  and cannot be verified at move time.

Apply the mandate as written, including where you think it is wrong. config.md is the
policy. If a rule in it produces a keeper you would not have chosen, follow the rule and
say so in the reason column. Do not quietly correct the mandate.

What you must not do:
- Do not move, copy, rename, create or delete anything.
- Do not create, edit or fix any .ps1 file.
- Do not run Apply-Plan.ps1.
- Do not compute, guess or suggest a consent token.
- Do not invent a path, a hash, a size or a finding. Every row traces to summary.json.

When you are finished, output only: the total number of rows, the count by op, and the
three rows you are least confident about. Do not print the whole file.
Claude · P-13b Visualise the plan Turns the plan into a document you can review at a glance.
Create an HTML file that helps me visualise what this implementation plan
actually is.

Read plan.csv and summary.json from this run's folder and write plan.html next
to them. Include whatever is needed to give me maximum context for deciding
whether to sign it - you can see what is in the data better than I can. Show me
what needs my judgement before you show me what is routine.

Make it interactive so I can move around it rather than scroll.

Inline CSS and JavaScript only, no network requests, so it opens straight from
the file system. Every figure must come from plan.csv or summary.json. Do not
calculate the consent token and do not put it anywhere in the document.
Claude · P-14 Read one row A single proposed operation, explained in plain language.
From the plan.csv you just wrote, give me the single row with requires_human TRUE and
the lowest confidence.

Print it as: op, source, destination, keeper, confidence, finding_ref, and then the
reason sentence.

Then, in one sentence, tell me what happens to that file if I approve this plan without
reading it.
Claude · P-16 Add a never-touch rule Extends the protect list and shows what it removes.
I have just added one line to C:\Users\Public\folderhealth\protect.txt. I edited it
myself; you did not.

Without changing plan.csv, tell me exactly how many rows in it will now be silently
dropped by the applier, and list their sources.

Then tell me what would have happened if that rule had lived in a prompt instead of in
a file the applier re-reads.
Claude · P-15 Audit the plan Asks the assistant to check its own work against the rules.
Before I approve this plan, audit it against itself.

Read summary.json and the plan.csv you wrote.

List every plan row where any of these is true:
- the finding it came from has a non-empty contest field
- the finding's keeper_confidence is low
- requires_human is TRUE
- the file being quarantined has a name_flag of label:SIGNED and the keeper does not

For each, give me one line: source, keeper, and the contest text quoted word for word.

Then tell me how many rows that is, out of how many, and finish with this sentence
completed: "If you approve this plan without reading it, you will quarantine ___."
09

Approving and applying

The point where a person signs.

PowerShell · line 5 Dry run Validates the plan and prints the arithmetic. Moves nothing.
powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Apply-Plan.ps1 -Root "C:\Users\Public\DealRoom" -RunId <RUN_ID>
Claude · P-17 Read the dry run What the validation output is telling you.
Run this command exactly as written. It does not move anything.

powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Apply-Plan.ps1 -Root "C:\Users\Public\DealRoom" -RunId <RUN_ID>

Then tell me only two things, as two separate numbered facts:
1. The run id.
2. The number of operations in the plan.

Do not assemble those two facts into anything. Do not tell me what to type next. Do not
compute a token.
PowerShell · line 6 Apply Carries out the plan, after a token you type yourself.
powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Apply-Plan.ps1 -Root "C:\Users\Public\DealRoom" -RunId <RUN_ID> -Apply -ConsentToken "<TOKEN>"
Claude · P-18 Sign it The moment responsibility transfers to a person.
The token I have assembled is: <TOKEN>

Run this command exactly as written, substituting my token character for character.
Do not correct it. Do not check it. Do not change the number. If it is wrong I want it
rejected.

powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Apply-Plan.ps1 -Root "C:\Users\Public\DealRoom" -RunId <RUN_ID> -Apply -ConsentToken "<TOKEN>"

When it finishes, print the RESULT line from the receipt, word for word, and nothing
else.
10

Putting it back

Reversing the whole run.

PowerShell · line 7 Undo, rehearsed Says exactly what it would put back. Puts nothing back.
powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Undo-Run.ps1 -Root "C:\Users\Public\DealRoom" -RunId <RUN_ID>
Claude · P-19 Put it back The request nobody plans for.
Run this command exactly as written.

powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Undo-Run.ps1 -Root "C:\Users\Public\DealRoom" -RunId <RUN_ID>

Then print the RESULT line from receipt-undo.txt word for word, and tell me whether
_QUARANTINE\<RUN_ID> still exists.
PowerShell · line 8 Undo Returns every file, with its dates and attributes.
powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Undo-Run.ps1 -Root "C:\Users\Public\DealRoom" -RunId <RUN_ID> -Apply
Claude · P-20 What the defaults did Which file the mandate's defaults set aside.
Read receipt.txt and undo.csv for <RUN_ID>.

Find every operation where the file that was quarantined has label:SIGNED in its
name_flags in summary.json, and the file that was kept does not.

For each, print: what was quarantined, what was kept, and the reason sentence from
plan.csv, quoted.

One sentence to finish: which of those two documents would a court have wanted?
Claude · P-21 Change a setting, run again Shows that the mandate is the variable.
I have made exactly one change to C:\Users\Public\folderhealth\config.md. I made it
myself; you did not touch the file.

Read config.md again.

Before I re-scan, predict: which numbers in summary.json will change, which will not,
and which findings will appear or disappear. Be specific — name fields, not themes.

Then tell me whether the next scan is still comparable to the last one, and why or why
not.
11

The report

The document that comes out of it.

Claude · P-22 Render the report Fills the frozen template from the measurements.
Look in C:\Users\Public\folderhealth\commands.txt and use the line that produces the
report, exactly as written there, for
Root "C:\Users\Public\DealRoom" and RunId <RUN_ID>.

Do not compose a command. If no line in commands.txt produces a report, tell me the
report is written by the scan and give me the full path to report.html instead.

Then give me the full path to report.html and stop.
Claude · P-23 Audit the report Traces each claim back to the number it came from.
Read C:\Users\Public\folderhealth\templates\report.contract.md and the report.html you
just opened, and summary.json.

Take the five lead findings in the report. For each one, name the evidence string or the
totals field it came from.

Then list every sentence in those five findings that you cannot trace to summary.json.

If the list is empty, say "every sentence traces" and stop. Do not rewrite the report.
12

Running it again

What changed since last time.

PowerShell · line 9 Second scan The same scan again, for comparison.
powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Scan-FolderHealth.ps1 -Root "C:\Users\Public\DealRoom"
Claude · P-24 What changed This run against the last one.
I have just dropped one new file into C:\Users\Public\DealRoom.

Run the scan line from commands.txt again for that root, exactly as written.

Then, from the new summary.json, read me the delta block:
- compared_to_run_id and config_unchanged
- files_added, files_removed, files_modified, files_moved
- every entry in delta.added
- for delta.moved, how many carry attributed_to_run, and which run id

Finish with one sentence: how many of these changes were made by a person, and how many
by this tool?
13

Automating it

What can run unattended, and what cannot.

PowerShell · line 10 Weekly schedule A Monday-morning scan. Contains no apply step.
schtasks /Create /TN "FolderHealth Weekly Scan" /TR "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Scan-FolderHealth.ps1 -Root C:\Users\Public\DealRoom" /SC WEEKLY /D MON /ST 08:00
Claude · P-25 The weekly task What automation covers, and what it cannot.
Show me the schtasks line from C:\Users\Public\folderhealth\commands.txt. Do not compose
one and do not run it yet.

Then tell me three things about it:
1. Why it uses the full path to powershell.exe.
2. Why it creates a user-scope task and not a system task.
3. Which switch is deliberately absent, and what would happen if it were there.
PowerShell · line 11 Remove the schedule Deletes the weekly task.
schtasks /Delete /TN "FolderHealth Weekly Scan" /F
14

The verdict

Where we started against where we ended.

Claude · P-26 Against the first answer The chat reply from minute six, revisited.
Below are two answers to the same question about the same documents, produced five
minutes apart in two chat windows.

ANSWER A:
<paste from minute 10>

ANSWER B:
<paste from minute 10>

And here are two editions of a report produced by the same specification over the same
folder, ninety minutes apart:

EDITION 1 totals: <paste the totals block from run 1's summary.json>
EDITION 2 totals: <paste the totals block from run 2's summary.json>

One question, answered in under 120 words: for each pair, what can I say changed, and
what can I only guess changed?
Claude · P-27 The closing demonstration One memo, and what it rests on.
Here is the mandate. One page. It was ruled on by two people in this room at minute
sixteen and it is initialled at the bottom.

<paste the full text of the ruled config.md>

Put C:\Users\Public\DealRoom-Fresh under that mandate.

Use only the lines in C:\Users\Public\folderhealth\commands.txt, exactly as written,
substituting only the root path:

1. Scan it.
2. Read me the four headline numbers: files, duplicate clusters, sensitive-name hits,
   and SkippedCount plus UnreadableCount.
3. Write plan.csv, following the plan rules in CLAUDE.md, applying that mandate as
   written including where you disagree with it.
4. Run the dry run and tell me the run id and the operation count as two separate facts.

Then stop. Do not apply. Do not compute a token. I will type it.

Taking it home

The same tools on your own folders. No install, no network, no admin rights. The first steps only read and measure. Do not apply anything on day one.

There is a take-home folder in the package

starter-CLAUDE.md is a fuller set of rules than the one we write together, with the reasoning attached to each. folder-health-audit is the skill from the session, ready to adapt.

T1 Check your own machine Probes, aimed at a folder of your own.
powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\preflight.ps1 -Root "<MY FOLDER>"
T2 Scan your own folder Metadata only. Opens no document.
powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Scan-FolderHealth.ps1 -Root "<MY FOLDER>"
T3 Dry run on your own folder Validates a plan without moving anything.
powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Apply-Plan.ps1 -Root "<MY FOLDER>" -RunId <RUN_ID>
T4 Scan with names replaced Every path segment is replaced before anything reaches a model.
powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Scan-FolderHealth.ps1 -Root "<MY FOLDER>" -Tokenise
T-1 Preflight Reading the probe output on your own machine.
Run this command exactly as written and show me the result table unchanged.

powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\preflight.ps1

Do not fix anything that comes back red. Tell me what is red and what it stops me doing.
T-2 Before you type a path Classifying a folder before connecting anything to it.
I am about to point a folder scanner at a folder on my work machine. Before I type the
path, ask me these six questions one at a time, and wait for my answer to each:

1. Whose data is in this folder, and who owns it?
2. Is this folder synced to a cloud service?
3. Am I permitted to read every file in it?
4. Is anything in it under legal hold or a litigation notice?
5. Am I running metadata-only, or am I about to read document contents?
6. Who at my firm would need to know I did this?

Then write my six answers back to me as a six-line block I can paste into an email.

Do not scan anything.
T-3 Scan your folder Measuring without opening anything.
Run this command exactly as written, substituting only my folder path. It reads names,
sizes, dates, attributes and hashes. It does not open a single document.

powershell -ExecutionPolicy Bypass -File C:\Users\Public\folderhealth\Scan-FolderHealth.ps1 -Root "<MY FOLDER>"

Tell me: run id, files, SkippedCount, UnreadableCount. Nothing else.
T-4 Read your own summary Your folder's findings, in plain language.
Open the summary.json for my latest run. Do not open inventory.json.

Give me the five highest-severity findings, quoting each evidence string word for word,
and then the skipped and unreadable tables with their consequence strings.

No recommendations. I will decide what any of it means.
T-5 Your first protect list Deciding what must never be touched.
Read my summary.json.

Propose ten lines for protect.txt for a folder like this one: things that must never be
moved by any automated process. One rule per line, with a one-line justification each.

Rules are substring, glob or directory-prefix matches against paths relative to my root.
There is no negation syntax — a rule can only ever protect more, never less.

Write nothing to disk. I will type the file myself.
T-6 Plan, and do not apply A proposal to sleep on.
Read my summary.json, my config.md and my protect.txt. Do not open inventory.json.

Write plan.csv into my latest run folder, following the plan rules in CLAUDE.md exactly.

Then run the dry run from commands.txt and tell me the run id and the operation count as
two separate facts.

Then stop. Do not apply. Do not compute a token.
T-7 The weekly run Setting it to measure on a schedule.
Show me the schtasks line from commands.txt, and confirm two things before I run it:
that it contains an absolute path to powershell.exe, and that it does NOT contain
-Apply.

If -Apply is present, do not run it and tell me.
T-8 For your compliance officer The sentence that explains this to someone who was not here.
Read my config.md, my protect.txt and the receipt.txt from my last run.

Write me one paragraph, under 120 words, that I can send to my compliance officer. It
must state:
- what was read and what was not read
- what moved, where it moved to, and that nothing was deleted
- how it is reversed
- what evidence exists afterwards and where it is

No adjectives. No reassurance. Facts only, all of them traceable to those three files.

Good luck today — and enjoy it.

Nobody in this room is expected to know PowerShell, and nothing you can type will break anything: the whole point of what we're building is that it doesn't delete, and it undoes. So poke at it. Ask the daft question. Ask it twice.

The best moments today will come from someone trying something nobody planned for — so if you find something odd in the folder, or get an answer that surprises you, say it out loud. That's the session working.

Have fun. See you in there. 🎉

Shared by direct link for workshop participants. Not part of the site's public navigation.