A complete guide to building a living PC Environment extract — a documentation set that describes your entire machine — and the Claude skill that loads it before Claude touches anything. Every session starts already knowing your hardware, your software, and your rules.
Every time Claude helps with your computer — installing software, cleaning up startup programs, diagnosing audio — it starts blind. It doesn't know your GPU, what's safe to remove, or that one ancient program your setup secretly depends on. Fix that once: build an extract of your machine, then a skill that routes Claude into it automatically.
A folder of Markdown docs describing your whole PC — hardware, OS, software, startup items, network, peripherals, health — in two layers.
A small Markdown file that fires when you say "fix my computer" — and turns Claude into a technician who already knows your machine.
/pc or plain phrases like "my PC is acting up"Almost nothing. Claude does the heavy lifting — you make the judgment calls.
PC Environment — name it and put it wherever suits you.Four steps: pick a home, understand the one design idea that makes this durable, hand Claude the kickoff prompt, then add the layer only you can add.
Create a folder somewhere you keep long-lived things — Documents\PC Environment is a fine default. Location and name are entirely yours; every path in this guide is a placeholder. Open a terminal in that folder and start Claude Code there.
This is the design decision that keeps the extract valuable for years. A raw hardware dump goes stale and carries no judgment. So the extract splits into curated docs — facts plus analysis, edited carefully in place — and a live snapshot — pure machine truth, regenerated from scratch by a script whenever you want.
CURATED DOCS (01 ... 10) ← the valuable layer facts + analysis + flags: "bloatware, safe to remove" "DO NOT REMOVE — app X needs this" written by Claude, reviewed by you edited in place — never regenerated wholesale _live\ (auto-snapshot) ← raw machine truth rewritten from scratch by the collector script read-only source data — never hand-edited
The finished folder looks like this:
PC Environment/ ├── README.md ← orientation for future Claude sessions ├── 01-hardware-specs.md ← CPU, RAM, GPU, storage, monitors ├── 02-operating-system.md ← OS build, accounts, security, power ├── 03-installed-software.md ← every app, categorized + flagged ├── 04-startup-and-services.md ← boot programs, tasks, services ├── 05-network-config.md ← adapters, IP, DNS, Wi-Fi ├── 06-environment-and-paths.md ← PATH + env vars, dev toolchain ├── 07-peripherals-and-audio.md ← USB, audio devices, cameras ├── 08-config-notes.md ← manual notes only you can write ├── 09-change-log.md ← narrative log of every change ├── 10-health-report.md ← assessment + recommendations ├── Refresh PC Inventory.cmd ← the one-click refresh (Part 2) ├── _live/ ← auto-generated snapshot (Part 2) └── _scripts/ ├── Collect-Snapshot.ps1 ← the collector (Part 2) └── REFRESH-GUIDE.md ← Claude's standing refresh procedure
Paste this into Claude Code, opened in your new folder. It builds the entire curated layer in one session — expect it to run discovery commands section by section and show you what it finds.
This empty folder will become a complete "PC Environment" extract of
this machine — a documentation set future Claude sessions read before
doing any PC work.
Inventory the machine using non-admin commands (PowerShell on Windows),
working section by section, then write these curated docs:
01-hardware-specs.md CPU, RAM (per-slot), GPU, motherboard,
storage + free space, monitors
02-operating-system.md OS edition/build, accounts, security
posture, power plan
03-installed-software.md every installed app, grouped by category
04-startup-and-services.md startup programs, scheduled tasks,
notable services
05-network-config.md adapters, IP, DNS, Wi-Fi profiles
06-environment-and-paths.md PATH entries, env vars, dev toolchain
07-peripherals-and-audio.md USB devices, audio endpoints, cameras
08-config-notes.md empty template for manual notes
09-change-log.md start it with today: "Initial extract"
10-health-report.md health assessment + top recommendations
Rules for the docs:
- Facts PLUS analysis. Flag likely bloatware, oversized folders, and
anything unusual. If something looks required by another app, mark
it clearly: "DO NOT REMOVE — needed by X."
- Every doc gets a "Last Updated" date at the top.
- Finish with a README.md that orients a brand-new Claude session:
what this folder is, the machine at a glance, and the rule that
curated docs are edited in place, never regenerated.
Ask me before flagging anything as removable if you're not sure.
Now walk the docs with Claude and inject the knowledge that isn't discoverable: "that old runtime is required by my streaming bot — mark it DO NOT REMOVE," "this portable app's folder holds all its data — it moves as a unit," "ignore that sensor misread, the real spec is X."
This is the whole reason the curated layer exists. A snapshot can list your software; only you know which of it is load-bearing. Ten minutes of flags here prevents the one bad uninstall that ruins a weekend.
Docs that go stale get abandoned. The fix is a collector script that rewrites the live snapshot on demand, a one-click trigger, and a standing procedure Claude follows to fold changes back into the curated docs.
The collector is one PowerShell script that scans the machine and rewrites _live\ from scratch. Hand Claude this prompt:
Make this extract self-updating. Write _scripts\Collect-Snapshot.ps1,
a collector that rewrites the _live\ subfolder from scratch each run:
- sectioned Markdown files (00-Overview through 09-Health) mirroring
the curated docs, marked "auto-generated, do not hand-edit"
- snapshot.json — one structured object holding every collected fact,
for precise diffing later
- RECOMMENDATIONS.md — automatic findings ranked Critical / Warning /
Info / OK, covering: low disk space, reclaimable cleanup (temp
files, recycle bin, downloads size), startup-item count, power
plan, pending reboot, security basics (Defender, Secure Boot),
and driver errors — each finding with a concrete fix action
- append one drift row per run to _live\CHANGELOG.md
(date · free space · app count · startup count · what changed)
Design rules — these matter:
- PURE ASCII in the script (Windows PowerShell 5.1 misreads
non-ASCII characters in unsigned scripts)
- runs WITHOUT administrator; admin-only items degrade to a note
- every section wrapped in try/catch so one failure never aborts
- idempotent — safe to run any time
- NEVER touches the curated top-level docs
Then write _scripts\REFRESH-GUIDE.md — the standing procedure you
follow when I say "refresh the PC environment":
1. run the collector if the snapshot is stale
2. read snapshot.json as current truth
3. diff it against the curated docs
4. edit ONLY the facts that changed, in place — preserve all
analysis, flags, and notes
5. bump each edited doc's "Last Updated" date
6. append a dated summary of the drift to 09-change-log.md
7. judgment pass: fold RECOMMENDATIONS.md into 10-health-report.md,
deduping and respecting my standing flags — never recommend
removing something marked DO NOT REMOVE
A tiny .cmd file in the folder root means refreshing never requires opening a terminal — you double-click, it scans, done. This one is complete; save it as Refresh PC Inventory.cmd:
@echo off REM Double-click to capture a fresh snapshot of this PC into _live\ title Refresh PC Inventory echo ============================================================ echo PC Environment - Snapshot Refresh echo ============================================================ echo. powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0_scripts\Collect-Snapshot.ps1" echo. echo ------------------------------------------------------------ echo Done. The _live\ folder now holds the current snapshot. echo To update the curated docs, open Claude Code in this folder echo and say: "refresh the PC environment". echo ------------------------------------------------------------ echo. pause
From now on, keeping the whole extract current is a two-beat rhythm — and the second beat is Claude's job, not yours:
YOU: double-click "Refresh PC Inventory.cmd"
▼
SCRIPT: scans the PC → rewrites _live\
(markdown + snapshot.json + ranked findings + drift row)
▼
YOU: tell Claude Code — "refresh the PC environment"
▼
CLAUDE: follows REFRESH-GUIDE.md
diffs snapshot vs curated docs → edits only what changed
preserves your flags → logs drift → updates health report
The extract gives Claude knowledge. The skill gives it reflexes — it fires the moment you mention your PC, refreshes the inventory, and routes Claude to exactly the docs the task needs. No more explaining your machine at the start of every session.
SKILL.md file. The top (frontmatter) says when to load it; the body is plain instructions Claude reads before acting. No code, no build step. Drop it in your skills directory and it's live.
This is the full template — a router, not an encyclopedia. It deliberately contains almost no facts about your machine (those live in the extract, where they stay current). It contains the procedure: refresh first, read only what the task needs, follow the safety rules, log every change. Replace the placeholder path and the at-a-glance lines with yours.
--- name: pc description: > Front door for working on my physical PC. Trigger when I type /pc or say "work on my PC", "fix my computer", "my PC is acting up", or ask anything involving this machine's hardware, settings, installed software, startup programs, network, audio, performance, or system health. Refreshes the live inventory and routes to the right sections of the PC Environment knowledge base. --- # My PC — Front Door This skill is a router, not an encyclopedia. The deep knowledge lives in the PC Environment folder: C:\path\to\your\PC Environment\ Read this skill, refresh the inventory, then read ONLY the knowledge-base sections the task needs. ## Step 0 — Refresh the inventory (always, first) Kick off the collector in the background so the scan runs while you work: powershell -NoProfile -ExecutionPolicy Bypass -File "C:\path\to\your\PC Environment\_scripts\Collect-Snapshot.ps1" When it completes, glance at the new _live\CHANGELOG.md row and _live\RECOMMENDATIONS.md — mention any drift or finding relevant to the current task. ## The machine at a glance Bare-bones orientation — facts may drift; _live\ is truth. (Fill in YOUR machine's one-liners:) - CPU: ... · RAM: ... - GPU: ... · Storage: ... (watch free space) - OS: ... - Primary uses: ... ## Knowledge base router Read only what the task needs — never bulk-load the whole folder. | Working on... | Read first | |----------------------------------|--------------------------------| | Hardware, upgrades, drivers | 01-hardware-specs.md | | OS settings, security, power | 02-operating-system.md | | Installing/removing software | 03-installed-software.md | | Startup, boot, performance | 04-startup-and-services.md | | Network, Wi-Fi, DNS | 05-network-config.md | | PATH, env vars, dev tooling | 06-environment-and-paths.md | | USB, monitors, audio, webcams | 07-peripherals-and-audio.md | | "How's my PC doing?" | 10-health-report.md | | "When/why did X change?" | 09-change-log.md | | Diffing / structured queries | _live\snapshot.json | ## Safety rules - Simple & reversible (clear temp files, toggle a setting, restart a service, install a normal app): just do it, then report what you did. - Concerning or complex (registry edits, uninstalls, driver changes, deleting user files, anything hard to reverse): describe it and talk it through with me BEFORE acting. - Back up before destructive edits — reg export the key, copy the config file first. - Check free disk space before large installs or downloads. ## Change logging (after every system change) Append a dated entry to 09-change-log.md: what changed, why, and how to revert. Newest entries at the top. This narrative log is the backbone of the knowledge base — don't skip it.
Save it as SKILL.md inside a folder named pc in your skills directory — on Windows that's C:\Users\<you>\.claude\skills\pc\SKILL.md. It's live immediately; no restart.
The description block is the entire firing mechanism. Claude scans skill descriptions on every message; when your words match, it loads the body before acting. So write the description in the phrases you actually say — if you call it "the tower" or "my rig," put those words in.
The extract is plain Markdown on disk, which means every Claude surface can use it — two of them through the skill, one through project knowledge.
| Interface | How it connects |
|---|---|
| Claude Code | The skill from Part 3, in ~/.claude/skills/pc/. Full access: reads the docs, runs the collector, makes the changes. |
| Claude Desktop | Has the same file access on your machine. Zip the pc skill folder and add it via the app's Skills / Capabilities settings — same skill, same behavior. |
| claude.ai (browser / phone) | No file access — so give it a reference copy. Create a Project called "My PC" and upload the curated docs (01–10 + README) as project knowledge. Now even a phone conversation knows your machine. |
For the claude.ai project, add custom instructions so it uses the knowledge properly:
You have detailed documentation about my PC in the project knowledge files. Reference these files when helping with PC-related tasks. You can't run commands here — when we decide on a change, give me the steps (or a prompt to hand Claude Code), and note what should be recorded in 09-change-log.md afterward.
The test drive: open a fresh Claude Code session anywhere on your machine and say "/pc how's my PC doing?" You should see the skill fire, the collector kick off in the background, and an answer grounded in your health report — not generic advice. That's the whole build working end to end.
| Symptom | Fix |
|---|---|
| Skill doesn't fire | Type /pc directly to force it. Then tighten the description with the exact phrases you naturally use — the trigger is only as good as its wording. |
| Collector errors with odd characters | Non-ASCII snuck into the script (curly quotes, em-dashes). Windows PowerShell 5.1 misreads them — tell Claude to keep Collect-Snapshot.ps1 pure ASCII. |
| Snapshot reports a spec you know is wrong | Some system fields misreport (a classic: GPU memory via a 32-bit query). Note the true value in the curated doc — curated notes outrank snapshot misreads, and the note stops future "corrections." |
| Sections come back empty | Those details need admin. Fine to live without; when you want them, right-click the .cmd → Run as administrator. |
| Claude regenerated a curated doc and lost your notes | Restate the rule at the top of README.md: curated docs are edited in place, never rewritten wholesale. The analysis layer is the point. |
| Docs drifted way out of date | It's self-healing: double-click the refresh, then "refresh the PC environment." The diff catches everything at once — you're never more than one loop from current. |
09-change-log.md — what, why, how to revert. The skill enforces this; don't let it slide. 2. Refresh before anything big — new install, cleanup session, performance hunt. Thirty seconds of scan beats decisions made on stale data.