AI how-to notes
Practical help with Claude Code, Codex CLI, MCP and document workflows. Hands-on notes show the run date and environment; reference guides show when the official documentation was reviewed.
Some notes are Korean only — mostly the ones about Hangul (HWP) word processor. See the full Korean list.
2026-09-28 · docs reviewed 2026-09-28
Claude Code skills not working? Check the file, trigger, and scope
A reference guide to missing Claude Code skills, automatic invocation settings, and name conflicts, with a small invoice-review example you can check yourself.
2026-09-28 · docs reviewed 2026-09-28
Excel CSV leading zeros disappearing? Import product codes and long IDs as text
Keep leading zeros and every digit of a long order ID when importing a CSV into Excel. Check the original file, Power Query types, and the loaded result.
2026-09-28 · docs reviewed 2026-09-28
Repeat table header rows in Hangul (HWP): keep headings on later pages
If a Hangul table continues onto another page without its headings, check both the header-cell setting and automatic header repetition. This reference covers the first-row requirement, page-break options, and troubleshooting using official Hancom help.
2026-09-18 · last run 2026-09-18
Excel $ absolute references — how a quote's tax column became 0, #VALUE! and 3,264,000,000
Put the VAT rate in D1, compute tax with =D4*D1 and copy down, and every row after the first picks up D2, D3 and D4 instead of the rate.
2026-09-18 · last run 2026-09-18
Cleaning up an inherited Excel table — unmerge cells, delete blank rows, convert text dates
Merged department cells blocked sorting, while text dates sorted in the wrong order. Unmerging, deleting blank rows and converting dates left 9 data rows with the total unchanged at 10,100.
2026-09-18 · last run 2026-09-18
Comparing two lists in Excel — COUNTIF for common and one-sided entries, and the cases where it lies
Comparing two lists needs =COUNTIF(other list, my value) on both sheets; run it one way and anyone who exists only on the other list never appears at all.
2026-09-18 · last run 2026-09-18
Excel says two identical dates are not equal — hidden time and display format
Two cells both showing 2026-09-18 compare as FALSE because one carries 2.30 pm, so the stored values are 46283.604166666664 and 46283.
2026-09-18 · last run 2026-09-18
When an Excel formula will not calculate — reproducing text format, a leading apostrophe and manual calculation
Four ways a formula stops working, each reproduced — two showed =A1+A2 as literal text (text format, leading apostrophe) and one had calculation set to manual.
2026-09-18 · last run 2026-09-18
Where Excel IF splits on the threshold, blanks and zero — counting the same 9 rows three ways
Comparing target and actual with =IF(C2>=B2,…) scores people who filed nothing as met or missed depending on the target, and any text always as met.
2026-09-18 · last run 2026-09-18
Combining several Excel sheets and files into one table — paste, Power Query, Python
Two files of three monthly sheets each, 27 rows totalling 1,526,850, combined three ways — pasting dragged the header in six times while the other two matched.
2026-09-18 · last run 2026-09-18
Excel to PDF cuts off the right-hand columns — measuring Fit to 1 page wide on Windows
A 12-column table exported untouched became 6 A4 pages with only 5 columns on page 1; landscape cut it to 4, and Fit to 1 page wide put all 12 on 2 pages.
2026-09-18 · last run 2026-09-18
Removing duplicates in Excel — how far apart name-only and name-plus-department really land
Running Remove Duplicates on one 15-row roster left 7, 9 or 12 rows depending on the columns matched — name-only matching also deletes same-name colleagues.
2026-09-18 · last run 2026-09-18
Six places VLOOKUP goes wrong — #N/A, #REF! and the quietly wrong value
A product code is plainly sitting in the table and VLOOKUP still returns #N/A, so we reproduced six common causes on a six-row dummy price list.
2026-09-18 · last run 2026-09-18
Shrinking a PDF — 40x smaller for a photo-heavy file, barely anything for a text one
A 37.5MB photo PDF came down to 3.7MB just by re-saving its images and to 0.9MB (2.5%) at half resolution; the best on a text-only PDF was 4.6%.
2026-09-18 · last run 2026-09-18
Merging several PDFs in the order you want on Windows — and whether anything built in can do it
Nothing built into Windows 11 merged our PDFs — Explorer has no Print command for PDF files, Edge prints only the visible tab, and pypdf kept all 10 pages.
2026-09-18 · last run 2026-09-18
Pulling just the pages you need out of a PDF — a range, scattered pages, or one file per page
Pulling 1 page out of a 10-page PDF left a file 92.5% the size of the original, and Edge's print route strips every extractable character.
2026-09-18 · last run 2026-09-18
Getting a PDF table into Excel without uploading it anywhere — and why a scan fails
Excel's Get Data > From PDF, Word, and pdfplumber all pulled our test table in, but each delivered the amounts as text, so Excel SUM returned 0.
2026-09-18 · last run 2026-09-18
Word automatic table of contents — inserting it, updating it, and why new headings go missing
Word inserts an automatic table of contents from the References tab, and the option preselected in the update dialog leaves newly added headings out of it.
2026-09-17 · last run 2026-09-17
Build and load a local Claude Code plugin — claude plugin validate and --plugin-dir measured on Windows
Following the official quickstart, two files — plugin.json and SKILL.md — were enough for claude plugin validate to print ✔ Validation passed.
2026-09-17 · last run 2026-09-17
Adding an MCP server to Claude Code on Windows — a minimal claude mcp add --scope project setup and clearing Pending approval
A Windows project-scope MCP setup record, with the documented interactive trust and approval path, a measured single-run --settings approval, and removal results.
2026-09-17 · last run 2026-09-17
Claude Code settings.json locations and precedence — documented rules and a Windows MCP approval test
Official docs explain settings.json locations and general precedence. Our Windows test covers MCP approval and rejection in an untrusted folder, plus invalid settings diagnostics.
2026-09-17 · last run 2026-09-17
Check a Claude Code native install on Windows in five minutes — claude doctor, PATH, and the versions folder
Check a Claude Code native install on Windows in five steps — version, executable path, claude doctor, PATH, then the versions folder. Ours had one path only.
2026-09-17 · last run 2026-09-17
Checking Codex CLI login status — codex login status, and where usage lives (/status, /usage)
codex login status answers in one line; ours said Logged in using ChatGPT, and usage is documented as /status and /usage inside the TUI.
2026-09-17 · last run 2026-09-17
Checking and updating the Codex CLI version — npm update did not get from 0.153 to 0.154
Current version comes from codex --version and the latest from npm view @openai/codex version; add @latest when you upgrade.
2026-09-17 · last run 2026-09-17
Installing Codex CLI (@openai/codex) on Windows with npm, through first run — temp-folder field test
On Windows, Codex CLI installs as the single npm package @openai/codex; it took 7 seconds here, and the real binary was codex.exe inside codex-win32-x64.
2026-09-17 · last run 2026-09-17
Installing Codex CLI in WSL (Ubuntu) — the trap where the Windows codex wins, measured up to the login step
WSL Ubuntu resolved codex to the Windows install on our PC, and codex --version failed with Missing optional dependency @openai/codex-linux-x64.
2026-09-17 · last run 2026-09-17
Adding an MCP server to Codex CLI config.toml — what codex mcp add writes to the file (Windows, temp CODEX_HOME)
codex mcp add <name> -- <command> writes an mcp_servers table into config.toml; the Windows path was stored in single quotes, and double quotes broke mcp list.
2026-09-17 · last run 2026-09-17
Reading codex doctor output — ✓, ⚠, ✗ and --summary / --json measured on Windows (Codex CLI)
codex doctor checks install, config, login and network in one go; ours ended at 23 ok · 1 idle · 2 notes · 0 warn · 0 fail ok with exit code 0.
2026-09-17 · last run 2026-09-17
Writing codex exec results to a file — -o and --json measured on Windows (Codex CLI)
Use -o FILE for just the final answer and --json > FILE for the whole event stream; a missing directory in -o failed the write while codex still exited 0.
2026-09-17 · last run 2026-09-17
codex exec hangs at "Reading additional input from stdin..." — Windows field test
codex exec stalls at Reading additional input from stdin when stdin is left open as a pipe, because codex waits for that input to end before it finishes.
2026-09-17 · last run 2026-09-17
Attaching codex mcp-server to Claude Code as an MCP server — project scope on Windows, plus the deprecation warning
claude mcp add codex-temp --scope project -- codex mcp-server registers Codex as an MCP server in the project config.
2026-09-17 · last run 2026-09-17
Switch the Codex CLI model without touching your config file — codex exec -m and -c model= on Windows
To run once with a different model, use codex exec -m <model>. -c model="<model>" gave the same result; passing both showed the -m value in the header.
2026-09-17 · last run 2026-09-17
Reviewing code with Codex CLI before you commit — codex review --uncommitted on Windows
codex review --uncommitted reviews staged, unstaged and untracked changes together; in a repo with two planted bugs, all three findings matched test failures.
2026-09-17 · last run 2026-09-17
Codex CLI sandbox read-only vs workspace-write — compared by writing a file on Windows
We sent the same request to codex exec -s read-only and -s workspace-write; read-only was blocked and no file appeared, workspace-write wrote one.
2026-09-17 · last run 2026-09-17
Build a minimal MCP server in Node — a one-tool stdio server with @modelcontextprotocol/sdk, attached to Claude Code
npm install @modelcontextprotocol/sdk zod in an empty folder plus a 20-line server.mjs gives you a stdio MCP server with one tool that adds two numbers.
2026-09-17 · last run 2026-09-17
When an MCP server says ✘ Failed to connect — telling a bad launch path (CONNECTION_CLOSED) from stdout pollution (connection timed out)
In our Windows reproduction, a missing file gave CONNECTION_CLOSED. Startup stdout without a newline corrupted the initialize response and caused a 30s timeout; one console.log did not reproduce it.
2026-09-17 · last run 2026-09-17
Playwright "Executable doesn't exist" — reproducing and fixing a missing browser executable on Windows
Playwright looks for a numbered browser folder matching its version, such as chromium_headless_shell-1243. Without it, it stops with Executable doesn't exist.
2026-09-17 · last run 2026-09-17
Attaching Playwright MCP to Claude Code on Windows — @playwright/mcp at project scope and the first connection
On Windows PowerShell 7, claude mcp add playwright --scope project -- npx -y @playwright/mcp@latest --headless --isolated plus approval returned ✔ Connected.