[{"content":"I previously shared building a money-saving dashboard for AI. Back then, I was mostly looking at \u0026ldquo;how much money I spent.\u0026rdquo; Using it now, I realized what really hurts isn\u0026rsquo;t the money, it\u0026rsquo;s the quota: Claude Code\u0026rsquo;s subscription has 5-hour and 7-day rolling windows. Hit the limit, and it just stops dead in its tracks.\nIn this post, I\u0026rsquo;ll share the open-source little tool we made for this: claude-pacer (github.com/drpwchen/claude-pacer).\nWhy build this? It started with getting cut off in the middle of the night a few times.\nI often throw a long task to Claude before bed: batch organizing lecture transcripts, running a paper radar, or scanning textbooks to turn into notes. I figure I\u0026rsquo;ll wake up to collect the results, only to have it hit the 5-hour limit at 2 AM and get abruptly stopped. I wake up the next day to a half-finished mess, and I still have to clean up after it.\nAI doesn\u0026rsquo;t know fatigue when working, but it has zero concept of \u0026ldquo;quota is running low, I\u0026rsquo;d better save my work.\u0026quot;\nThere are also a few other daily annoyances when multitasking:\nOpening four or five windows and forgetting which one is doing what: Every terminal looks exactly the same. You switch over and have to scroll the conversation a bit just to remember. Not knowing how much is left to run: If I dispatch a batch of agents right now, will they all get cut off halfway through? Forgetting which model is selected: I open Opus in the morning to handle a hard problem, then use it for chores in the afternoon, and the quota just evaporates. Aren\u0026rsquo;t there already plenty of status line tools out there? Yes, and they\u0026rsquo;re all great! ccusage, ccstatusline, and CCometixLine are all very mature works, and using them is totally fine. You can also find auto-resume scripts, but their approach is to stare at the screen waiting for the \u0026ldquo;hit the limit\u0026rdquo; message to appear, and then automatically click continue for you. The task breaks exactly where it dies; if a file is half-edited, it breaks right there.\nBut I wanted a bit more: a status line is made for humans to see, and humans sleep in the middle of the night; the one that really needs to see the alert is the AI that\u0026rsquo;s still running. Before hitting the wall, its behavior should change first: starting at 85%, no opening new large projects; at 93%, clean up the current steps and stop, then set up a scheduled job to resume from the same conversation after the quota recovers. So claude-pacer is a three-layer design:\nLayer one: a status line, for humans See all statuses in one line:\nSession Topic │ 5h ▓▓▓┃░░ 42%·2h13m left │ 7d ▓▓▓▓┃▓░ 71% │ Ctx ▓▓░░░░ 34% │ Fable 5·high Session topic: The session title generated by Claude Code itself. Open multiple windows, and each has a name tag. A time marker ┃ overlaid on the usage bar: If the solid bar passes the marker, you\u0026rsquo;re burning faster than the clock, and it\u0026rsquo;s time to stop. If it hasn\u0026rsquo;t reached the marker, you can safely keep dispatching work. Ctx: The context window fullness. You have an idea before it gets compacted. Model + reasoning effort hanging on the far right. You\u0026rsquo;ll see it before you forget to switch back. The width is adaptive. If the terminal gets narrow, it automatically switches to a compact version, so it won\u0026rsquo;t break the layout when viewed on a phone.\nLayer two: budget-guard, for AI This layer is the original motivation for the whole tool\nWhen the quota burns to 85%, the hook automatically injects a \u0026ldquo;start wrapping up\u0026rdquo; instruction into Claude\u0026rsquo;s context: finish the work at hand, don\u0026rsquo;t start any new large projects. At 93%, it\u0026rsquo;s a hard alert: cleanly wrap up the current steps, set up a scheduled job for a few minutes after the quota resets to automatically resume (continuing directly in the same conversation), report to the user, and end the turn.\nSo the ending of hitting the limit in the middle of the night changed: I wake up to a progress update left by the AI, and a scheduled job that automatically resumes once the quota recovers.\nLayer three: usage_verdict, for agents This layer was forced out of me by the AI\u0026rsquo;s own math 🤣. With the reset arithmetic of rolling windows, the AI calculates it wrong almost every time it reads the raw numbers. The window has actually already reset, but it sees a residual 92% in the file and gets too scared to move. Or the 7-day window shows 95%, but it actually resets earlier than the 5-hour window, so it\u0026rsquo;s not a limitation at all.\nRather than letting it reason through it every time, it\u0026rsquo;s better to hardcode the rules into a single-line verdict:\n$ python usage_verdict.py GO — 5h at 42%, 133 min left, projected ~61% at reset — headroom available GO/PACE/STOP — the agent just follows these three words, no need to calculate it itself.\nIf you want to use it It\u0026rsquo;s MIT open source, runs on Windows/macOS/Linux, and has zero dependencies outside of Node.js and Python:\ngithub.com/drpwchen/claude-pacer (complete Traditional Chinese documentation available)\nThe three layers can be used separately: if you just want the status line, install the status line; the alert hook is optional. To emphasize again, using someone else\u0026rsquo;s tool for the status line is also great. The focus of this set is the latter two layers: pushing the defense line from \u0026ldquo;humans staring at it\u0026rdquo; to \u0026ldquo;AI knowing it itself\u0026rdquo;.\nMy other AI tools are organized in this toolbox post, and this set will be added there later. If you have any questions or suggestions, feel free to leave a comment to discuss!\n","permalink":"https://drpwchen.com/en/posts/claude-pacer/","summary":"\u003cp\u003eI previously shared \u003ca href=\"/posts/ai-token-4-budget-dashboard/\"\u003ebuilding a money-saving dashboard for AI\u003c/a\u003e. Back then, I was mostly looking at \u0026ldquo;how much money I spent.\u0026rdquo; Using it now, I realized what really hurts isn\u0026rsquo;t the money, it\u0026rsquo;s the \u003cstrong\u003equota\u003c/strong\u003e: Claude Code\u0026rsquo;s subscription has 5-hour and 7-day rolling windows. Hit the limit, and it just stops dead in its tracks.\u003c/p\u003e\n\u003cp\u003eIn this post, I\u0026rsquo;ll share the open-source little tool we made for this: \u003cstrong\u003eclaude-pacer\u003c/strong\u003e (\u003ca href=\"https://github.com/drpwchen/claude-pacer\"\u003egithub.com/drpwchen/claude-pacer\u003c/a\u003e).\u003c/p\u003e\n\u003ch2 id=\"why-build-this\"\u003eWhy build this?\u003c/h2\u003e\n\u003cp\u003eIt started with getting cut off in the middle of the night a few times.\u003c/p\u003e","title":"AI running out of gas halfway through a midnight task? I built it a fuel gauge and automatic brakes"},{"content":" This is an article that I\u0026rsquo;ll keep updating.\nI open-sourced the tools I built and put them on GitHub. People have been telling me, \u0026ldquo;The stuff looks impressive, but I don\u0026rsquo;t even know what to do for step one.\u0026rdquo; Others asked, \u0026ldquo;What is GitHub? I click in and see a bunch of files, then what?\u0026rdquo;\nSo this post isn\u0026rsquo;t about introducing tools. It\u0026rsquo;s about walking you through getting your first one running.\nIf you\u0026rsquo;re already using Claude Code, skip straight to Section 4.\nLast updated: 2026-07-24\nTake 30 seconds to see if this post is for you What you\u0026rsquo;ll achieve after reading: On your own computer, you toss a paper\u0026rsquo;s DOI to the AI, and ten-odd minutes later you get a critical appraisal report with citation checks and a level of evidence. Or you throw a PDF textbook at it and have it organize the book into note after note, complete with citations.\nWhat you need to prepare:\nA computer (Mac or Windows both work, hospital/company computers are fine too, administrator privileges are not required) A paid Claude subscription, Pro is enough (about US$20/month). Free accounts don\u0026rsquo;t support Claude Code; this is a hard requirement. You don\u0026rsquo;t need to know how to code. Really. All you need is to know how to \u0026ldquo;copy and paste commands\u0026rdquo; and \u0026ldquo;not freak out when you see red error messages, just paste the whole thing back and ask the AI.\u0026rdquo; That\u0026rsquo;s it. If you can do those two things, keep reading 👇\n—\n1. Same person, the tools just grew up Let\u0026rsquo;s start with my own timeline, because I think this matters more than any tutorial:\nMarch: Brought AI onto my own computer for the first time. I did semantic search and automatically turned class recordings into notes. Back then, every time I did anything, I had to manually paste a \u0026ldquo;you can only answer based on the data I provide\u0026rdquo; prompt, watch it to make sure it wasn\u0026rsquo;t making things up, and click confirm at every step. It drove me crazy. April to May: Slowly ground book-converting, image-extracting, and OCR into a production line. Started turning repetitive tasks into single clicks. June: Set up a paper radar and a rehab course radar while prepping for the board examination. They would automatically push new stuff to me. July: Outpatient smart medical records, quota gatekeeping, and having two AIs review each other\u0026rsquo;s output. Started \u0026ldquo;managing a group of AIs.\u0026rdquo; I didn\u0026rsquo;t get smarter in between. The tools just grew up, plus I learned to write every pitfall I stepped in into a rule.\nI\u0026rsquo;m bringing this up to say: you right now are my March. And you\u0026rsquo;re luckier than I was back then. The tools you\u0026rsquo;re getting your hands on from day one are already the highly usable versions.\n2. Claude Code is not a chatbot This is where most people get stuck. The reason isn\u0026rsquo;t technical, it\u0026rsquo;s that the mindset hasn\u0026rsquo;t shifted.\nThe ChatGPT or Claude web version you usually use is someone who is \u0026ldquo;very good at talking.\u0026rdquo; You ask it a question, it answers you. It can\u0026rsquo;t see your files; you have to copy and paste to feed them to it.\nClaude Code is different. It runs in your computer\u0026rsquo;s terminal, and it has hands:\nIt can open files in your folders and read them. It can write new files and edit old ones. It can run programs, see the results, realize it broke, and go back and fix it itself. How big is the difference? Take a real example: I tell it \u0026ldquo;turn chapter 12 of this textbook into notes,\u0026rdquo; and it will go split the PDF itself, call OCR if it finds scanned pages, extract images again if it grabbed them poorly, and finally write a dozen notes and save them into my Obsidian. I only said that one sentence the entire time.\nThis is the \u0026ldquo;agent\u0026rdquo; everyone is talking about. In plain English: you hand off a goal, it thinks up the steps itself, gets to work itself, and checks the results itself.\nThere\u0026rsquo;s another key point many people don\u0026rsquo;t know: Claude Code doesn\u0026rsquo;t only run in \u0026ldquo;code folders.\u0026rdquo; Whichever folder you open it in, it can read and write the stuff there. Your transcript folder, your patient education leaflet folder, any of them work.\nOnce this clicks, the way you talk to it will completely change. You won\u0026rsquo;t ask \u0026ldquo;what does this paragraph mean\u0026rdquo; anymore. You\u0026rsquo;ll just say \u0026ldquo;organize the stuff in this folder for me.\u0026rdquo;\n3. Install in ten minutes, give yourself an early win In this section, we\u0026rsquo;re not installing my tools yet. Let\u0026rsquo;s get you a quick win first, otherwise it\u0026rsquo;s easy to give up if you get stuck on setup early on.\nInstall (one command, really) Good news: you don\u0026rsquo;t need to install Node.js, Git, or anything else first. One command handles it all automatically.\nWindows: Search for \u0026ldquo;PowerShell\u0026rdquo; in the Start menu, open it, paste this line and press Enter:\nirm https://claude.ai/install.ps1 | iex If the left side of your screen says C:\\\u0026gt; instead of PS C:\\\u0026gt;, it means you opened CMD. Paste this instead: curl -fsSL https://claude.ai/install.cmd -o install.cmd \u0026amp;\u0026amp; install.cmd \u0026amp;\u0026amp; del install.cmd\nMac: Search for \u0026ldquo;Terminal\u0026rdquo; in Spotlight, open it, paste this line and press Enter:\ncurl -fsSL https://claude.ai/install.sh | bash Check if it\u0026rsquo;s installed correctly Type claude --version. If you see a version number like 2.x.x (Claude Code), you\u0026rsquo;re good.\nThen type claude and press Enter. It\u0026rsquo;ll pop up your browser asking you to log in. Log in with your Claude Pro account, go back to the terminal, and once you see Login successful, you\u0026rsquo;re done. You won\u0026rsquo;t need to log in again.\nYour first words After installing, you\u0026rsquo;ll see a cursor waiting for your input. Don\u0026rsquo;t rush into big projects just yet. Find one of your own folders (with a few files in it), cd into it, and tell it:\nWhat\u0026#39;s in this folder? Check if there are any duplicate files for me. It\u0026rsquo;ll go look itself, figure it out itself, and report back to you.\nThis moment is important. You\u0026rsquo;ll feel for the first time, \u0026ldquo;Oh, it actually got to work, it\u0026rsquo;s not just chatting with me.\u0026rdquo; Once you have that feeling, the rest comes easy.\nWill it break my computer? A friend told me: \u0026ldquo;Running an agent means you first have to acknowledge the risk of it deleting the wrong things, and usually you also need some command-line skills. People with those skills have already installed it themselves, and those without probably wouldn\u0026rsquo;t dare use it.\u0026rdquo; He\u0026rsquo;s right, so this section fixes both issues at once.\nLet\u0026rsquo;s start with its built-in safeguards, which are actually smarter than you\u0026rsquo;d think:\nIt knows how to distinguish what\u0026rsquo;s important. Operations like reading files or searching are just \u0026ldquo;taking a look,\u0026rdquo; and it does them without bothering you. When you do get asked, it means this step is going to change something, and that\u0026rsquo;s exactly when it\u0026rsquo;s worth your time to take a look. So \u0026ldquo;constantly being asked\u0026rdquo; isn\u0026rsquo;t as annoying as it sounds, and it acts as your seatbelt when you\u0026rsquo;re a beginner. Don\u0026rsquo;t rush to turn it off. Files it edits itself can be restored. It automatically saves a restore point before every edit. You can revert it by typing /rewind (or pressing Esc twice), like loading a game save. But restore points have limits: they only cover files it changed using its \u0026ldquo;edit tool.\u0026rdquo; If it deletes files using commands (rm, del), they won\u0026rsquo;t go to the recycle bin; they vanish instantly, and /rewind won\u0026rsquo;t save them. That third point is something every tutorial should mention but rarely does. There are three layers of countermeasures:\nUse copies during your practice phase: create a practice folder, copy the files you want to process into it, and then get to work. By default, it treats the folder you opened it in as home turf. It\u0026rsquo;ll ask for your permission before touching anything outside (just agree, it\u0026rsquo;s not locked down). Turn your habits into its rules: just tell it straight up, \u0026ldquo;from now on, when deleting files for me, always move them to the recycle bin first, and save this in your rules file.\u0026rdquo; It\u0026rsquo;ll do it, and it\u0026rsquo;ll remember it in every conversation going forward (I\u0026rsquo;ll explain what the rules file is and how to grow it in the next post). Folders you\u0026rsquo;d cry over losing need backups: cloud sync or an external drive both work, or just tell it, \u0026ldquo;put this folder under git version control for me,\u0026rdquo; and let it buy the insurance for you itself. 💡 The one-sentence version: practice with copies, take a look when asked, route deletes to the recycle bin, and back up important stuff. Once you do these things, feel free to mess around safely. Even if something really goes wrong, you\u0026rsquo;ve only deleted a copy.\nWhat if I get stuck (this is actually lesson one) If it won\u0026rsquo;t install, or you see English error messages you don\u0026rsquo;t understand, don\u0026rsquo;t spend ages googling it yourself. Open the chat box on claude.ai and just ask like this:\n\u0026ldquo;I\u0026rsquo;m a total beginner who has never used a terminal, I\u0026rsquo;m using Windows, and I want to install Claude Code. Please teach me step by step in the simplest way possible.\u0026rdquo;\nIf you\u0026rsquo;re stuck on an error, copy and paste the whole thing to it, and add \u0026ldquo;ELI5 (explain like I\u0026rsquo;m 5) what this means and what I should do.\u0026rdquo;\nIt\u0026rsquo;s your on-call engineer. This very act of \u0026ldquo;asking it when you don\u0026rsquo;t know\u0026rdquo; is the most important skill.\n⚠️ Before you start playing, let\u0026rsquo;s draw one red line first: this is a cloud tool, what you type in will be sent to tech companies. For anything involving patient information, practice with fake or de-identified data first. Don\u0026rsquo;t put in a single API key or password. Build your intuition using fake data first, and only touch the real stuff when you can judge what\u0026rsquo;s okay to send and what isn\u0026rsquo;t.\nWhen you do start letting it touch your work stuff, read this post next: When AI can do everything, I went back and double-checked the keys to my house. That was my own record of taking stock of my keys and tokens, the kind of check that is too late if you only do it after a disaster happens.\nLearn in passing: understand what it\u0026rsquo;s doing, plus a few small commands You barely ever have to type commands yourself (just tell it to do it), but it\u0026rsquo;s very much worth it to understand what it\u0026rsquo;s currently doing. These are the only ones that actually show up often in the terminal:\nYou\u0026rsquo;ll see What it\u0026rsquo;s doing cd some_path Moving to that folder ls or dir Listing the files here mkdir Creating a new folder cp / copy Copying mv / move Moving or renaming rm / del ⚠️ Deleting, bypasses the recycle bin. Give it a second look when you see this before hitting agree Just glance over the first five, no need to memorize them. The only reflex you need to train is: pause for half a second when you see rm.\nThen there\u0026rsquo;s a batch of \u0026ldquo;slash commands\u0026rdquo; that you type directly to Claude Code itself. Typing / in the chat box will pop up a menu. Don\u0026rsquo;t memorize them, just recognize these few for now:\nCommand What it\u0026rsquo;s for /clear Change topics, give it a clean desk /resume Go back to a previous conversation and continue /rewind Regret pill: revert files it edited back to the restore point /context See how full its \u0026ldquo;desk\u0026rdquo; is right now (the colored grid) /usage See how much of your subscription quota you\u0026rsquo;ve used /doctor Tell it to check itself when things feel weird /help, /exit Ask for help, clock out 💡 The only hard stop in the subscription model is your quota. Once you start having the AI run longer tasks, you can check out claude-pacer, which I built. It turns /usage into a fuel gauge you can always see on your status bar. When it\u0026rsquo;s about to run out, it\u0026rsquo;ll automatically wrap things up and resume after the quota resets. Don\u0026rsquo;t bother installing it when you\u0026rsquo;re just starting out; just know it exists.\n4. What is GitHub? What are you actually looking at when you click in? My tools are all hosted on GitHub, so I need to spend a bit of time explaining it in this section.\nPlain English definition GitHub is a public library for storing code and tools, and it also conveniently records a complete history of \u0026ldquo;who changed which line and when\u0026rdquo; for everything.\nFor you, you just need to understand it as: everyone puts their finished tools up here publicly for free, and you can come grab them.\nYou don\u0026rsquo;t need to register for an account to download things. Registering is only for starring things or opening issue discussions.\nOn a page, you only need to look at four places Click into any project (called a repository on GitHub, or repo for short), and you\u0026rsquo;ll see a bunch of files. Don\u0026rsquo;t panic, there are only four places to look at:\nWhat you see What it is Should you care The big wall of text when scrolling down README: this is the manual, where the author spent the most effort writing ⭐ Just reading this is enough ★ Star in the top right Bookmark. The star count roughly reflects how many people found it useful Click it if you find it useful, it makes the author very happy 😊 Issues in the top row Asking questions, reporting broken stuff Ask here when you\u0026rsquo;re stuck, the author will see it Releases in the top row Packaged downloads of official versions If this is available, taking it is the most stable option You can ignore all the other tabs (Actions, Insights, Pull requests\u0026hellip;) for the foreseeable future.\nHow do you download things? Three methods Method 1: Just tell Claude Code to go get it (highly recommended)\nOpen claude in your terminal and tell it:\nGrab this repo https://github.com/drpwchen/paper-review-and-digest for me, and install it following the instructions in its README. Using an agent to install an agent\u0026rsquo;s tools—this is the correct way to use it 😆 Plus, it\u0026rsquo;ll read the README for you while it\u0026rsquo;s at it.\nMethod 2: Click Download ZIP on the webpage (most foolproof)\nThe green Code button → Download ZIP → unzip. Absolutely zero commands to learn.\nMethod 3: git clone (the standard way)\ngit clone https://github.com/drpwchen/paper-review-and-digest.git If it says it can\u0026rsquo;t find git, then you\u0026rsquo;ll need to install Git first (just download the installer and click next). Or just use Method 1 or Method 2; the result is exactly the same.\nHow do you judge if a tool is worth using? There\u0026rsquo;s a lot of stuff on the internet. I personally look at three things:\nIs the README clearly written: People who are too lazy to write a manual are usually too lazy to deal with your problems. Has it been updated recently (the last modified time is shown on the right side of the file list): Something untouched for two years is very likely incompatible with today\u0026rsquo;s environment. Does it have a LICENSE file: This is how the author authorizes you to use it. Mine are all MIT, which in plain English means \u0026ldquo;use it, change it, commercialize it however you want, I\u0026rsquo;m not responsible if something goes wrong.\u0026rdquo; 5. What is a skill? And what is MCP? Okay, you know how to use Claude Code now, and you understand GitHub. So what exactly is that pile of stuff I put up there?\nskill = Employee handbook Imagine you hired a very smart newbie. He can do anything, but he doesn\u0026rsquo;t know the rules for how your unit does things.\nHe certainly knows how to \u0026ldquo;critically appraise a paper,\u0026rdquo; but he\u0026rsquo;ll do it his own way. One way this time, another way next time, and he\u0026rsquo;ll very likely miss important steps. What you want is: follow the same workflow every single time, check what needs checking, and cite what needs citing.\nA skill is that employee handbook. It\u0026rsquo;s essentially a SKILL.md file, written in human language, saying \u0026ldquo;when you encounter this kind of task, do this for step one, do this for step two, and here are the situations where you stop and ask a human.\u0026rdquo; You drop it into the ~/.claude/skills/ folder, and Claude Code will read it itself when it\u0026rsquo;s time to use it.\nSo you\u0026rsquo;ll find that most of my repos aren\u0026rsquo;t \u0026ldquo;an app,\u0026rdquo; but rather a meticulously written workflow manual, plus a few small scripts that handle the math. Because the workflow itself is what\u0026rsquo;s truly valuable, not the code: it\u0026rsquo;s something I slowly figured out, finding out exactly where things break, only after reading hundreds of papers and organizing thousands of notes myself.\nBy the way, the design of skills is very clever: normally only the name and a one-line description are in front of him. He only loads the full content in when he actually uses it. So even if you put a massive reference manual inside a skill, it costs almost nothing when unused.\nBut that doesn\u0026rsquo;t mean you can install an infinite amount. The real cost lies in that one-line description: if you install dozens of them and the descriptions look similar, he\u0026rsquo;ll pick the wrong one, or fail to think of using it when he should. Just install what you\u0026rsquo;ll actually use, and write the description as \u0026ldquo;when you should call me.\u0026rdquo;\nWhen the day comes that you feel \u0026ldquo;I want to turn a workflow of my own into a skill,\u0026rdquo; there\u0026rsquo;s an official plugin called skill-creator. Install it, then just tell it, \u0026ldquo;help me turn this workflow into a skill using skill-creator.\u0026rdquo; It will walk you through clarifying the steps, write the file, and even test it for you. This was how I got started early on myself. Later, you\u0026rsquo;ll realize you can even skip this and just state your needs directly and it\u0026rsquo;ll handle it, but having your hand held the very first time you write a workflow into a skill makes a huge difference.\nMCP = External plug A skill teaches him \u0026ldquo;how to do it\u0026rdquo;; MCP lets him \u0026ldquo;reach the stuff.\u0026rdquo;\nMCP (Model Context Protocol) is a standard connector specification. Plug in an MCP server, and Claude gains a new ability: it can search PubMed, read your Gmail, or search your own note vault.\nIn a word: skills provide the workflow, MCP provides the interface.\n⚠️ MCP used to have a bad reputation: every connected server would stuff the manuals for all its tools into every conversation you had. The more you turned on, the more expensive it got. This has been fixed now. Claude Code defaults to using tool search, and tool specs only load when needed.\nSo the criteria for choosing an MCP is no longer about saving tokens, it\u0026rsquo;s about what it touches: it connects to your email, your files, your accounts. Ask \u0026ldquo;what of mine can this server access\u0026rdquo; before installing it. That is far more important than saving tokens.\n6. Hands-on: install your first tool Let\u0026rsquo;s use paper-review-and-digest as an example. The reason is it has the lowest barrier to entry. No extra stuff to install, no graphics card needed, just toss it a DOI and you get output.\nIt contains two skills inside:\n/paper-review: Can I trust this paper? Journal credibility, author track record, verifying reference authenticity, risk of bias, and level of evidence (GRADE). /paper-digest: What is this paper talking about? Reformatting the whole thing into easy-to-absorb teaching notes, with self-test cards at the end. Step 1: Tell Claude Code to install it for you Don\u0026rsquo;t type the commands yourself. Open claude in the terminal and paste this entire block to it:\nHelp me install https://github.com/drpwchen/paper-review-and-digest These are two Claude Code skills. Please install it according to its README: Put paper-review/ and paper-digest/ into my skills folder, copy config.example.yaml to config.yaml, and when you\u0026#39;re done, tell me if there\u0026#39;s anything else I need to fill in myself. It will go grab it itself, determine which path it should go to on your operating system itself, and copy the config file itself. All you have to do is hit agree when it asks \u0026ldquo;is this okay?\u0026rdquo;.\n💡 This isn\u0026rsquo;t being lazy, this is the correct way to use it. Manually typing paths is the step most prone to errors (Mac and Windows format them differently, the folder might not even exist yet), and he won\u0026rsquo;t make typos; plus, he can read the English in the README that you don\u0026rsquo;t understand.\nBy the way, this is also your general rule for installing any tools later on: throw the repo URL at him, and tell him to read the README and install it.\nStep 2: Check the config file After installing, he\u0026rsquo;ll probably tell you where the config file is. You can just ask him: \u0026ldquo;Do I need to fill anything in this config?\u0026rdquo;\nThe answer is usually: nothing to fill. The note vault path, library full-text access, review card websites—these are all optional. Leaving them blank just turns them off; the core critical appraisal features run just fine.\nStep 3: Run it Restart Claude Code and type:\n/paper-review 10.1002/pmrj.70039 This is a systematic review on neuromuscular training for knee osteoarthritis, published in physical medicine and rehabilitation (PM\u0026amp;R)\u0026rsquo;s very own journal, PM\u0026amp;R.\nThen just watch him work. He\u0026rsquo;ll go check the journal, check the authors, verify one by one whether the references actually exist, determine which risk of bias tool to use for this study design, and finally calculate the level of evidence.\nI actually ran this paper myself. The tool ultimately calculated the level of evidence as Very Low, which matches what the authors reported themselves in the article.\nAnd that level isn\u0026rsquo;t asking the model \u0026ldquo;what level do you think it is.\u0026rdquo; The model is only responsible for judging how severe each of the five domains is, and finally a script recalculates it from scratch according to GRADE rules. The DOIs in the references are also legitimately sent to CrossRef via API to confirm they exist. Because it\u0026rsquo;s a language model, not a calculator. The model judges, the script does the math. Dividing the labor this way is safe.\nThe first time you watch him finish a run, you\u0026rsquo;ll probably understand why I spent time building these things.\n7. The tools I open-sourced: two production lines My tools aren\u0026rsquo;t scattered pieces. They form two production lines plus a few peripherals:\n📚 The paper production line Stage Tool What it does Discovery paper-radar Automatically pulls from dozens of journal RSS feeds + PubMed searches, sorts them by your interests, and makes a private daily radar webpage. Fetching paper-fetch Give it a DOI, get a PDF: tries open access first, then the publisher\u0026rsquo;s official interface, and lastly goes through your institutional library proxy. Reading paper-review-and-digest Critical appraisal + content digestion (the one from the previous section). 📝 The note production line Stage Tool What it does Production textbook-to-note Turns a PDF textbook you legally acquired into a searchable knowledge base, then writes it into notes with citations, even extracting images for you. Updating note-supplement Used when you have new material to merge into old notes. The key is conflict detection: if the new and old information conflict, it won\u0026rsquo;t just quietly overwrite your original stuff. Search vault-search Semantic search for your Obsidian vault + related note recommendations, all running locally on your machine. So where exactly should I start? People who read papers → paper-review-and-digest, fastest payoff. People with a ton of PDF textbooks preparing for exams → textbook-to-note. People already using Obsidian who have so many notes they can\u0026rsquo;t find anything → vault-search. People who just want to play around and see what agents can do → ytscribe, fetching YouTube channel transcripts using speech recognition (ASR); totally unrelated to medicine, anyone can try it. 📦 Want to see the complete list of tools (not just ones I wrote myself, but also ASR, OCR, free hosting, home servers, etc.)? Go to this post: My complete AI toolbox\n8. What\u0026rsquo;s next You can install and run things now. The next step is using them well: that\u0026rsquo;s an entirely different beast. I wrote another post about it:\n👉 How I talk to AI agents: Three mental models, why the old ways of prompting are obsolete now, and how to write the pitfalls you step into into rules so it stops making those mistakes.\nIf you get stuck:\nProblems with the tools themselves → Just go open an Issue on that repo, I\u0026rsquo;ll see it. General usage questions → Leaving a comment under my Facebook post is fine. Want to ask in more detail, or want to see experiments I haven\u0026rsquo;t finished yet → I have a subscriber community, and I prioritize answering there (but no personal medical advice, no exceptions). Finally, as I always say: You don\u0026rsquo;t need to know how to do it first, you just need to know how to ask.\nThese tools are all things I use myself every single day. I open-sourced them because I felt they\u0026rsquo;d be useful to others; they\u0026rsquo;re not products. Taking them and modifying them to suit your own needs—that is their true intended use.\nIf you get stuck anywhere, or if you modify it into a better version, you\u0026rsquo;re more than welcome to let me know~ 😊\n—\n📍 Where you are on this path 1. Getting startedyou are here 2. Talking to agents 4. Picking tools: the AI toolbox 5. Using a single tool Want to see how the AI workflow posts connect? → 📊 AI Content Map\nThis article will be continuously updated. If a tool gets a major overhaul, or I step into a new pitfall, I\u0026rsquo;ll come back and add to it.\n","permalink":"https://drpwchen.com/en/posts/getting-started/","summary":"\u003c!-- Course participant exclusive opening (delete this for the public version)\n\u003e 👋 To the therapist partners from the July 27-28 class: this is our post-class extension pack.\n\u003e In class, we covered the mindset and CLAUDE.md. This post follows up on \"how to use tools built by others\"—the stuff I showed you in Module K but said to \"find me separately later.\"\n\u003e Just follow along. If you get stuck, ask for help as described at the end of section 3.\n--\u003e\n\u003cblockquote\u003e\n    \u003cp\u003eThis is an article that I\u0026rsquo;ll keep updating.\u003c/p\u003e","title":"Getting started with AI agents from scratch: installing, understanding GitHub, and running your first tool"},{"content":"The articles on this site about AI workflows aren\u0026rsquo;t just scattered pieces; they form a path: get it running first → then use it well → then pick your tools → finally, dive deep into a single tool.\nHover over (or click) any node to highlight the things connected to it; click to read it directly.\nLearning Path Paper Pipeline Note Pipeline Other Tools * Dashed lines separate the four levels; thick lines show \"sequential relationships within the same pipeline\" (discover → fetch → read, produce → update → search).\nWhat these four levels mean ① Getting Started: You can follow along even if you\u0026rsquo;ve never used a command line: install it, understand GitHub, and get a result out of your first tool. ② Using it Well: Installing it is just the beginning. The core concepts, how to write prompts, and how to turn the pitfalls you\u0026rsquo;ve encountered into rules. ③ Picking Tools: All the tools I actually use, in a complete list sorted by \u0026ldquo;what you want to do.\u0026rdquo; ④ Single Tools: The design trade-offs and actual usage behind each tool. If you\u0026rsquo;re a complete beginner, just follow along from ① Getting Started; if you\u0026rsquo;re already using Claude Code, you\u0026rsquo;ll get more out of starting straight from ② Talking to Agents.\nThree common reasons you\u0026rsquo;re here 🚀 I want to get startedGetting started: install, understand, and run your first result 🧰 I want to pick toolsAI toolbox roundup: a complete list sorted by \"what you want to do\" 🛠️ I want to see the tools you builtDevelopment tools: a portfolio of my own open-source projects All AI workflow articles The map above is a curated path; here are all the articles on the AI workflow topic, automatically listed from newest to oldest (for articles on other topics, please head to the article list or the other two entrance tiles on the homepage).\nAI running out of gas halfway through a midnight task? I built it a fuel gauge and automatic brakesThe most common way for AI to die running tasks autonomously at night isn't bad code, it's hitting the usage limit and getting cut off. claude-pacer solves this with a three-layer design: a status line for humans, a budget alert for AI, and a GO/PACE/STOP verdict for agents to run. Open source MIT.\n2026.07 Getting started with AI agents from scratch: installing, understanding GitHub, and running your first toolYou can follow along even if you've never used the command line: install Claude Code with one command, understand GitHub pages, and get your first open-source tool running and producing results.\n2026.07 How I talk to AI agents: three mindsets, four meta-skills, and a rules file that shouldn\u0026#39;t keep growingGetting the tools installed is just the beginning. Three mindsets, four meta-skills you can use right away, how to write prompts now, and what belongs in each of the three layers of constraints for AI.\n2026.07 Too Many Notes is No Notes: The Design of note-supplementMy note vault has only one rule: one note per topic. If the same thing is covered in five different places, it's the same as having no notes. The hard part is holding this line as sources pile up. note-supplement handles merging outside materials back into existing notes, without breaking the things you already got right.\n2026.07 My Complete AI Toolbox: Find the Tool for Whatever You Want to DoA complete list of the tools I actually use, categorized by need: AI assistants, speech-to-text, OCR, notes and knowledge base, paper tools, free website hosting, home servers and backup systems, plus the open-source scripts I wrote myself.\n2026.07 Cross-Textbook Automated Note-Generation Workflow: A Product of the Board ExaminationWith over forty designated reference books for the board examination, and the same concepts scattered across multiple books, how could anyone possibly finish reading them? I tuned AI to my note-taking workflow, letting it organize textbooks structurally and with evidence. Today I open-sourced the whole setup, and this post covers the five hurdles I cleared along the way.\n2026.07 The last piece of The Paper Trilogy: paper-fetch. Give it a DOI, and it fetches the full text itselfTo let AI read papers for you, you first need the full text. And what usually gets you stuck isn't the AI—it's permissions, publishers, and the library. paper-fetch uses a step-by-step route from open access, to official publisher APIs, to your own hospital library to turn a DOI into a full-text PDF, without taking any piracy routes.\n2026.07 My data, my benchmark: Swapping the speech recognition (ASR) engine for my lecture note systemMediaTek's official benchmark already proves Breeze-ASR-25 beats Whisper, but it isn't testing your task. Using a 180,000-word glossary built from hundreds of textbooks as a yardstick, I found it captures 49% more real vocabulary and runs faster. Another finding not in any model card: the time alignment of the Taiwanese version, Breeze-ASR-26, has regressed. Default decoding only segments once every 30 seconds, which outright breaks when making subtitles or aligning with slides, but enabling word-level timestamps saves it. The testing method is open-sourced.\n2026.07 My Open-Source Tool Was Targeted by a Bot Marketer!My open-source paper tool received a GitHub issue full of sincere praise. After checking, I found it was automated marketing spammed by a bot to 26 repos within two minutes. This post breaks down its tactics, the paid marketplace model behind it, and why running it with your own subscription is a better deal.\n2026.07 I turned my journal club \u0026#34;paper-reading brain\u0026#34; into an AI skill, and forced it not to bullshit from impressionsI took the entire workflow of a journal club critical appraisal and wrote it into two Claude Code skills. I even wrote two deterministic little scripts to hand over the calculation of evidence certainty and logical flaws to code, stopping the AI from bullshitting based on overall impressions. It's already open-sourced on GitHub.\n2026.07 Exam Practice Platform: Spaced Repetition, Wrong Bank, and Score ProjectionWhile prepping for the PM\u0026R board examination, I used an engineer's approach to solve an old problem: how to practice past exam questions without forgetting them right after. I built a small tool called \"Exam Navigator\", which uses FSRS to schedule spaced repetition reviews, categorizes wrong questions by failure type into a wrong bank, and can even project your score on exam day. It's now open source for anyone who needs it.\n2026.07 I Open-Sourced My Paper Reading RadarI took my clunky paper RSS setup and turned it into an online site that automatically fetches papers daily, ranks them by my interest, and learns my tastes over time. Selected papers are then automatically fetched, digested, and critically appraised. Now I've organized it into an open-source version on GitHub. Not just for medicine—any field with RSS feeds can fork it to build their own radar.\n2026.07 Why Does Your AI Get Slower and Dumber the Longer You Chat?AI has no memory. With every reply, it rereads the entire conversation from the beginning, which is why longer chats get slower, more expensive, and dumber. This post explains the mechanism using a taxi meter analogy, and gives everyone who chats with AI three ways to save that you can use today.\n2026.06 Organizing a clean desk for the AIThere's a cost you pay with every sentence: the config file residing right in front of the AI. Keep it lean, layer the memory, make good use of prompt caching to bill repeated content at one-tenth the price, and throw away the noise of successful commands directly. A clean desk doesn't just save money; the AI answers more accurately, too.\n2026.06 If an abacus works, don\u0026#39;t boot up the supercomputer: When to actually make AI think?Some jobs simply shouldn't be given to AI. Clear-cut, repetitive tasks belong to hardcoded scripts—they're fast, accurate, and practically free. Vague, judgment-heavy tasks are what you boot up AI for. Here's how I read my medical textbook PDFs as an example of making this tradeoff.\n2026.06 I installed a money-saving dashboard for my AIThe final part of the saving tokens series: not everything needs the smartest brain, and even for reading images, the cheapest model is often enough. Toss noisy chores to a clone to keep your desk clean, then install a dashboard, or even let the AI watch its own usage and pace the budget just right.\n2026.06 When AI Can Do It All, I Double-Check My Keys at HomeAfter handing over permissions to read files, execute commands, and connect to the internet to an AI assistant, I went back to inventory, lock, and revoke my scattered keys and tokens, putting together a few security habits for using AI.\n2026.06 Built a PM\u0026amp;R Continuing Education RadarI built a website, courses.drpwchen.com, that automatically aggregates courses and announcements from 17 rehabilitation-related societies and institutions. It updates every 3 hours, supports RSS or ntfy notifications, and is free with no login required.\n2026.06 I turned Obsidian into a second brain that \u0026#34;searches notes by meaning\u0026#34; (and open-sourced it)Obsidian's built-in search only looks for the exact words you type, but you rarely remember the words you used months ago. I cleaned up and open-sourced the \"semantic search trio\" I've been using for the past half-year. It's completely local and MIT-licensed.\n2026.06 Adding graph retrieval to my medical LLM Wiki, and it actually works this timeI threw a new paper on SQL-RAG at Claude to verify it myself: useless for a redundant textbook library, but a great fit for finding \"related notes\" in a sparse Obsidian medical note vault. After swapping the ranking to personalized PageRank, the proportion of correctly finding related notes jumped from 34% to 84%, and I put it straight into production.\n2026.06 ","permalink":"https://drpwchen.com/en/map/","summary":"Po-Wei Chen, MD\u0026rsquo;s relationship graph for AI workflow articles: from installation and getting started, core concepts, and picking tools, to deep dives into single tools. See the four-level learning path and two tool pipelines at a glance.","title":"AI Content Map"},{"content":" The previous post, Getting Started from Scratch, was about how to install it and get it running.\nThis post is about using it well. And that is completely different from just getting it to run.\nI\u0026rsquo;ve found that what really determines the outcome isn\u0026rsquo;t which model you use or whether you can code. It\u0026rsquo;s how you delegate tasks and how you set up guardrails. The stuff in this post isn\u0026rsquo;t tied to a specific tool; it applies even if you use ChatGPT (I\u0026rsquo;ll explain the differences in the last section).\nThree mindsets Mindset 1: It\u0026rsquo;s like a very smart, but memory-limited new hire It knows a lot, but it has a limited desk size. Cram too much in, and it\u0026rsquo;ll lose track of things and forget what you said earlier.\nIt\u0026rsquo;s easiest to understand if you think of it like a handoff: hit the key points, be clear, and don\u0026rsquo;t read the entire chart from start to finish.\nSo you need to actively help it keep its desk clean: explain a task clearly, and when it\u0026rsquo;s done, use /clear to start fresh. Don\u0026rsquo;t let unused stuff pile up along the way.\n(Why this happens and how to calculate the costs is something I covered across four posts in the AI Token Economics series, so I\u0026rsquo;ll just give the conclusion here.)\nMindset 2: Manage it with mechanisms, don\u0026rsquo;t just rely on its self-discipline This is where I think most people get it wrong: everyone writes rules in CLAUDE.md and then complains that it doesn\u0026rsquo;t listen.\nThe problem is that, according to the official documentation, that file is meant as \u0026ldquo;reference material,\u0026rdquo; not \u0026ldquo;enforced configuration.\u0026rdquo; The official docs are quite blunt about this:\nClaude treats them as context, not enforced configuration.\nThere are actually three layers of mechanisms to keep it in check, and they vary wildly in strength:\nLayer What it is Strength What belongs here ① hooks Intercepted and checked by your code right at the moment it tries to act ⭐⭐⭐ Programmatic enforcement; the model cannot ignore it \u0026ldquo;This must absolutely never happen\u0026rdquo; ② permissions The allow / deny / ask lists in settings.json ⭐⭐ Hard block, but only recognizes tools and command patterns \u0026ldquo;Ask me before doing this type of action / never allow this\u0026rdquo; ③ CLAUDE.md A text document it reads every time it starts working ⭐ Relies on its self-discipline; might be ignored Conventions and style: \u0026ldquo;We usually do it this way\u0026rdquo; ① hooks: Turn rules into code\nA hook is a piece of code attached to its lifecycle. The most commonly used one is PreToolUse: before it acts, it runs your check. If your code returns \u0026ldquo;reject,\u0026rdquo; the action cannot be executed.\nThe crucial difference is this: an action blocked by a hook doesn\u0026rsquo;t bounce back for the model to think up alternatives. It\u0026rsquo;s not a \u0026ldquo;discouragement\u0026rdquo;; it\u0026rsquo;s an \u0026ldquo;inability to act.\u0026rdquo;\nI have a hook myself that manages my notes formatting: non-compliant writes are rejected outright, and the model doesn\u0026rsquo;t even get the chance to write them in. Putting things like this in CLAUDE.md is useless, because it\u0026rsquo;ll forget them as the conversation gets long.\n② permissions: Set up your allowlists and denylists first\nThe permissions in settings.json have three states: allow (do it directly, no need to ask), ask (ask you every time), and deny (block it outright).\nA practical setup for beginners:\nPut irreversible things in deny: deletions, overwrites, sending data out. Better to overpopulate this column. Put safe operations you\u0026rsquo;re sick of seeing in allow: reading files, running tests, looking up data. Put these in allow so you don\u0026rsquo;t get prompt fatigue and start mindlessly clicking agree (which is the real risk). Leave everything else to the default ask. 💡 The most common beginner mistake is feeling that \u0026ldquo;clicking agree all the time is annoying\u0026rdquo; and just turning it all off. The right approach is the exact opposite: put safe things in allow so it can do them itself, and put dangerous things in deny so it can never do them. Only the rest require your judgment. Your attention should be reserved for those times when a decision is actually needed.\nWhen you get advanced, you\u0026rsquo;ll want to turn on \u0026ldquo;auto mode\u0026rdquo;. Know the cost first\nAfter using it for a while, you\u0026rsquo;ll inevitably find that getting asked at every step is too slow. Actually, the default mode is already auto-triage: read-only operations (reading files, searching) don\u0026rsquo;t ask to begin with; you only get asked when it\u0026rsquo;s going to touch something. There are a few gears above this: \u0026ldquo;don\u0026rsquo;t ask for edits,\u0026rdquo; all the way up to almost fully automatic. Before you shift up, you need to know three things:\nThe \u0026ldquo;don\u0026rsquo;t ask for edits\u0026rdquo; mode also green-lights common file commands like rm (delete). And files deleted by a command don\u0026rsquo;t go to the recycling bin, nor can /rewind save them, because restore points only cover modifications made via its editing tools. So the correct sequence for shifting gears is: set up your deny/ask lists first, then turn on auto mode. For example, set Bash(rm *) to ask, and then no matter what gear you\u0026rsquo;re in, deletions will always bounce back to you. Fully automatic mode isn\u0026rsquo;t running naked either: there\u0026rsquo;s a safety classifier in the background that blocks obviously out-of-bounds actions before execution (like irreversibly destroying files that existed before the work started, or sending sensitive data out). But that\u0026rsquo;s a safety net of last resort; it shouldn\u0026rsquo;t be your only one. The complete foolproof setup for beginners is covered in Section 3 of the Getting Started series. ③ CLAUDE.md comes last\nIt\u0026rsquo;s useful, but it\u0026rsquo;s the weakest of the three layers, and the longer the conversation, the easier it gets diluted. So what belongs there are \u0026ldquo;conventions,\u0026rdquo; not \u0026ldquo;red lines.\u0026rdquo; Red lines should go in the top two layers.\nI\u0026rsquo;ll dedicate Section 5 later to how to write this file, because most people (myself included, previously) get the direction wrong.\nMindset 3: Don\u0026rsquo;t over-veto it, but don\u0026rsquo;t over-trust it either This one is the most subtle, but I think it\u0026rsquo;s the most important.\nIts current level is roughly that of a very capable grad student. It reads fast, remembers a lot, knows a bit about everything, and if you delegate something to it, it really can get it done. You don\u0026rsquo;t need to do everything yourself, nor do you need to micromanage its every step.\nBut just like a human, it isn\u0026rsquo;t guaranteed not to make mistakes. And when it messes up, its tone is exactly the same as when it gets it right—that\u0026rsquo;s the real problem.\nI see two extremes, and neither gets things done well:\nOver-vetoing: You\u0026rsquo;re too scared to hand anything off, so you rewrite every sentence yourself. Then you\u0026rsquo;re just treating it like a faster typewriter, wasting its true capabilities. Over-trusting: You run it and use it directly, pasting it straight into a report. You only realize there\u0026rsquo;s a problem when something blows up and you discover it hallucinated that number. The right mindset isn\u0026rsquo;t \u0026ldquo;should I trust it?\u0026rdquo;, but asking: If this goes wrong, how would I know?\nIf the answer is \u0026ldquo;I wouldn\u0026rsquo;t know,\u0026rdquo; then what you need to do isn\u0026rsquo;t to stare at it, but to build a checkpoint:\nIf it can be coded, code it: Scores, statistics, dates—let code calculate them, don\u0026rsquo;t let it do mental math. If it can be verified, verify it: Does the citation actually exist? Hit an API and ask; don\u0026rsquo;t rely on its memory. Failures must be called out: If a check fails to run, it must explicitly state \u0026ldquo;this check wasn\u0026rsquo;t run.\u0026rdquo; It absolutely cannot quietly skip it. Because a check that wasn\u0026rsquo;t run reads exactly the same as \u0026ldquo;checked, and no issues found.\u0026rdquo; Irreversible actions need guardrails: This is what the three layers in Mindset 2 are doing. In a word: You aren\u0026rsquo;t a foreman; you\u0026rsquo;re designing a workflow. Humans make mistakes too, and in the hospital, we don\u0026rsquo;t rely on \u0026ldquo;everyone being very careful.\u0026rdquo; We rely on checklists, double-checking, and machine alarms. The same goes for the AI.\n—\nHow to write prompts now If you\u0026rsquo;ve read AI tutorials on the web before, you probably picked up a few tricks. They were useful in 2023, but now they\u0026rsquo;re mostly a waste of effort:\n❌ Assigning a persona up front, like \u0026ldquo;You are a senior therapist with 20 years of experience\u0026hellip;\u0026rdquo; ❌ Writing a wall of text, listing every requirement as 1, 2, 3, 4. ❌ Manually pasting data in, and adding a line like \u0026ldquo;only answer based on the content I provided.\u0026rdquo; What\u0026rsquo;s officially emphasized now are three entirely different things:\n✅ First priority: Give it a way to verify its own work This is the number one suggestion in the official best practices. The exact phrasing is to give Claude a check it can run itself: a test, a build, or a screenshot it can compare against.\nWhat\u0026rsquo;s the difference? For a task with an acceptance method, it will finish the work → run the check itself → see the results → fix it itself if it fails, iterating all the way until it passes. Without it, it can only submit the work when done, leaving you to check if it\u0026rsquo;s right or wrong.\nTranslated into a non-engineer\u0026rsquo;s version:\n❌ \u0026ldquo;Help me summarize these transcripts.\u0026rdquo; ✅ \u0026ldquo;Help me summarize these transcripts into SOAP format. When you\u0026rsquo;re done, check it yourself: each one must have these four sections, each section must have content, and highlight any missing ones for me.\u0026rdquo; That extra sentence is the acceptance criteria. It turns \u0026ldquo;done\u0026rdquo; into something that can be verified.\n✅ Give concrete context, not commands The official comparisons are really useful. Four ways to frame it:\nFraming ❌ Vague ✅ Concrete Scope \u0026ldquo;Write tests for me\u0026rdquo; \u0026ldquo;Write tests for the logout state edge case, and don\u0026rsquo;t use mocks\u0026rdquo; Source \u0026ldquo;Why is this designed this way?\u0026rdquo; \u0026ldquo;Look at its commit history and figure out how it became like this\u0026rdquo; Pattern \u0026ldquo;Add a calendar component\u0026rdquo; \u0026ldquo;Look at how the homepage components are written, and make one following the same pattern\u0026rdquo; Symptom \u0026ldquo;Fix the login bug\u0026rdquo; \u0026ldquo;Users report that login fails after idling. First, write a failing test to reproduce it, then fix it\u0026rdquo; See the common thread? They\u0026rsquo;re all about \u0026ldquo;what you want, where to look, and what counts as right,\u0026rdquo; rather than helping it set up a persona.\nRole-playing is almost entirely unnecessary now: it already knows how to write a SOAP note. Instead of wasting effort saying \u0026ldquo;You are a senior therapist,\u0026rdquo; you\u0026rsquo;re better off clarifying \u0026ldquo;who is this for, and what am I going to do with it.\u0026rdquo; That\u0026rsquo;s the information it can actually use to make judgments.\n✅ Complex tasks: Explore first, then plan, then execute The official guide breaks the workflow into four stages: Explore → Plan → Execute → Wrap up. The key is that the first two stages must be separated from the third, otherwise you\u0026rsquo;ll often end up with something that \u0026ldquo;did a great job, but solved the wrong problem.\u0026rdquo;\nIn practice, it\u0026rsquo;s just one sentence. For complex tasks, add this at the start: \u0026ldquo;Tell me how you plan to do this first, don\u0026rsquo;t execute yet.\u0026rdquo;\nLooking at the plan, you\u0026rsquo;ll spot what it misunderstood. Fixing it now is way cheaper than waiting until it\u0026rsquo;s done to fix it.\n—\nFour meta-skills you can use right away ① Make something that works first, then iterate: Don\u0026rsquo;t wait until you\u0026rsquo;ve learned everything to start. Run a crappy version first and tweak it. ② If you don\u0026rsquo;t get it, ask it: ELI5 / TL;DR: Paste the error message and add \u0026ldquo;explain it like I\u0026rsquo;m five.\u0026rdquo; Faced with a massive wall of text, tell it \u0026ldquo;give me a TL;DR\u0026rdquo; before deciding whether to dive deeper. ③ Outsource what you can, parallelize what you can: Toss repetitive stuff its way. Plus, you can open two windows at once—one doing the work, the other answering your questions—so you don\u0026rsquo;t have to just sit there waiting. ④ For things that need calculating, never ask it to do mental math: Scale scores, statistics, dates and days—always tell it to \u0026ldquo;write a script to calculate this for me.\u0026rdquo; Point ④ is the one I think the fewest people know about, yet it\u0026rsquo;s the easiest way things go wrong. It\u0026rsquo;s a language model, not a calculator. It\u0026rsquo;ll calculate it wrong and still sound incredibly confident.\nRemember this one phrase: Hand it the text, but make it calculate the numbers.\n—\nWhy it gets dumber the longer you chat Have you ever felt like, later in the chat, it seems to get dumber and starts forgetting what you said earlier?\nThe truth is: it actually doesn\u0026rsquo;t have memory. Every time you hit Enter, it rereads the entire thread from \u0026ldquo;the first sentence up to now\u0026rdquo; before answering you.\nIt isn\u0026rsquo;t remembering; it\u0026rsquo;s re-reading every single time. So the longer the conversation, the slower and more expensive each sentence becomes. Plus, its total attention capacity is fixed, so fluff dilutes the important stuff. (There\u0026rsquo;s a study where key information was buried in the middle of a long document, and the recall rate dropped to around 20%. I cover the details and data in AI Token Economics (Part 1).)\nIn a word: it didn\u0026rsquo;t break; you just buried the lead.\n🙋 Let\u0026rsquo;s clear up a beginner\u0026rsquo;s most common anxiety first: \u0026ldquo;Will starting a new chat make my old stuff disappear?\u0026rdquo; No. The old chats are still there, and the files are still there. Starting a new one just gives it a clean desk; it doesn\u0026rsquo;t delete anything.\nThree zero-cost habits:\nStart a new chat when changing topics (/clear) Don\u0026rsquo;t mindlessly paste in an entire PDF: Once you paste it, it gets recalculated every single round. You paste it once, and it hurts the whole session. Just let it read the file itself. Keep your questions clear and short: It saves your quota, and the answers are actually more accurate. Helping it keep its desk clean isn\u0026rsquo;t about saving money; it\u0026rsquo;s about keeping it in its smartest state at all times.\n—\nHow to write CLAUDE.md (most people get this wrong) CLAUDE.md is a manual placed in your folder that it reads every time it starts working. Put simply: if you find yourself repeating something every time, write it in there so you don\u0026rsquo;t have to anymore.\nLet me start with the most counterintuitive thing: it\u0026rsquo;s not better when it\u0026rsquo;s detailed; it\u0026rsquo;s more effective when it\u0026rsquo;s short.\nThe official advice is crystal clear:\nThe goal is to keep each CLAUDE.md under 200 lines. Longer files eat up more context and reduce adherence.\nA bloated CLAUDE.md will cause Claude to ignore your real instructions.\nAnd there\u0026rsquo;s one diagnostic phrase I think everyone should remember:\nIf you explicitly wrote a rule and it keeps ignoring it, it\u0026rsquo;s usually because the file is too long and the rule got drowned out.\nSo the approach of \u0026ldquo;it makes a mistake, I add a line\u0026rdquo; works in the short term, but in the long run, it breeds a manual that no one (including it) can finish reading, and then all the rules fail at once.\nWhat to do: Use the main file as a router, put the details outside The correct structure is: the main file only keeps \u0026ldquo;in what situation to look at which document,\u0026rdquo; and the details are broken out into their own files, loaded only when needed.\nThey officially provide two built-in mechanisms:\n@ citations: Write @docs/note-rules.md in CLAUDE.md, pushing the details to that file. .claude/rules/: Split the rules into multiple files, and you can even bind them to specific paths, so they only load when you touch those types of files. When irrelevant, they take up zero space. My own file is currently 93 lines. It contains almost no details, just a table saying \u0026ldquo;if creating notes → go look at the format rules file; if dispatching a sub-agent → go look at the dispatch protocol file.\u0026rdquo; The real meat is all out there in seven or eight files, totaling hundreds of lines, but they only get read in when they\u0026rsquo;re actually needed.\nSo what should you write, and what shouldn\u0026rsquo;t you? ✅ Do write ❌ Do not write Commands it couldn\u0026rsquo;t guess (how to run tests, how to deploy) Generic common sense (\u0026ldquo;Please write clean code\u0026rdquo;) Conventions that differ from defaults (\u0026ldquo;Reply in Traditional Chinese\u0026rdquo;) Things it can figure out just by looking (folder structure) Pitfalls you\u0026rsquo;ve stepped in (\u0026ldquo;Don\u0026rsquo;t touch this folder\u0026rdquo;) Long tutorials (just put a link) Why things are done this way (the rationale behind it) Frequently changing information And two practical details:\nDon\u0026rsquo;t handwrite the first version: Type /init in your folder, and it will look over your stuff and generate a draft for you. You just need to tweak it. Run /doctor regularly: It will check your CLAUDE.md and proactively suggest deleting paragraphs that \u0026ldquo;it can figure out by reading the code itself,\u0026rdquo; leaving only the real pitfalls and conventions. A final thought: more rules aren\u0026rsquo;t better; fewer rules are better, as long as those few short ones are actually followed.\n—\nHow I actually use these mindsets in medicine What I\u0026rsquo;ve talked about above are still general principles. But I want to talk about what this looks like when these principles actually land in clinical and research work. Because the margin of error for medical content is on a completely different level than \u0026ldquo;help me write a letter.\u0026rdquo;\n① Evidence levels shouldn\u0026rsquo;t be asked for; they should be calculated.\nMy critical appraisal tool outputs GRADE evidence levels. But that level isn\u0026rsquo;t generated by asking the model \u0026ldquo;what level do you think this paper is.\u0026rdquo; The model is only responsible for judging how serious the five domains are. The final level is recalculated by a piece of code following the GRADE rules. The level the model spits out itself is just for reference, and if the two don\u0026rsquo;t match, it throws a direct warning at me.\nThis is a mashup of Mindset 3 and Meta-skill 4: the model handles semantic judgment, and the code handles logic and arithmetic.\n② References must be confirmed by actually hitting an API.\nHow unreliable AI-generated citations are is an old story. So before doing any semantic matching, the DOI of every single reference is actually sent to CrossRef to ask, \u0026ldquo;Does this paper exist?\u0026rdquo; This blocks not just fabricated DOIs, but the much more insidious \u0026ldquo;the DOI is real, but it points to a completely different paper.\u0026rdquo;\n③ If a check didn\u0026rsquo;t run, it can\u0026rsquo;t be written as \u0026ldquo;no issues found.\u0026rdquo;\nThis is the rule I think is most important, yet least talked about. For every check the tool runs, if it fails (the network is down, the database query comes up empty), it must explicitly state \u0026ldquo;this check failed to run.\u0026rdquo; It absolutely cannot quietly skip it. Because a check that wasn\u0026rsquo;t run reads exactly the same as \u0026ldquo;checked, and no issues found.\u0026rdquo;\n④ When updating old notes, better to miss something than break something.\nAnother tool of mine merges new material into existing notes. While designing it, I realized something: missing new content is recoverable (you\u0026rsquo;ll see that material again later), but quietly changing something that was originally correct in an old note is irreversible, because you won\u0026rsquo;t ever go back to verify that specific line.\nSo its principle is \u0026ldquo;additions are cheap, modifications are expensive\u0026rdquo;: when old and new phrasings conflict, it doesn\u0026rsquo;t overwrite directly. Instead, it flags both versions side-by-side and waits for me to make the call.\n—\nDoes this apply to people using ChatGPT or other tools? Mostly, yes. It\u0026rsquo;s just under a different name.\nCompletely universal: The three mindsets, the four meta-skills, how to write prompts (give acceptance criteria, give concrete context, plan before executing), and keeping the chat clean. These are dictated by the nature of language models themselves, not the design of any specific product, so they apply everywhere.\nDifferent names, same things:\nMentioned in this post Equivalent in other tools CLAUDE.md ChatGPT\u0026rsquo;s Custom Instructions / Projects context, Gemini\u0026rsquo;s Gems, Cursor\u0026rsquo;s rules skill Custom GPTs, prompt templates, workflows across platforms MCP Plugins / connectors across platforms (MCP is now being adopted by others too) What\u0026rsquo;s currently exclusive to agentic tools: The hooks and permissions layer. Because only tools that \u0026ldquo;can actively alter things on your computer themselves\u0026rdquo; need guardrails at the exact moment of execution. Web-based chatbots won\u0026rsquo;t touch your files, so naturally, they don\u0026rsquo;t need them.\nSo if you\u0026rsquo;re using a web version right now, you can still take these mindsets with you. Someday when you start using tools that can act on their own, come back and review the three layers from Mindset 2.\n—\nFinally, and most easily skipped: Security The three-layer mechanism discussed earlier (hook / permissions / CLAUDE.md) manages \u0026ldquo;what it will do.\u0026rdquo; This section is about the other direction: what it can touch.\nLet\u0026rsquo;s start with the most basic line This is a cloud tool; whatever you type in gets sent to a tech company.\n❌ Involves patient info → Practice with dummy data or de-identified data first. ✅ Operations not involving patient info → Use freely: format conversions, writing patient education letters, organizing public data, automating repetitive workflows. Practice with dummy data to get the feel of it. Once you can judge what\u0026rsquo;s safe to send and what isn\u0026rsquo;t, then touch the real stuff.\nBut what you should really worry about isn\u0026rsquo;t \u0026ldquo;what I typed in\u0026rdquo; When you start using an agent that can act on its own, the risk takes on a different shape. It can read your files, execute commands, and connect to the internet. Put these three things together, and it means anything on your computer that isn\u0026rsquo;t locked down is something it might read, or even send out.\nI\u0026rsquo;m not talking theory here; this is something I actually went back and audited myself. I tracked down all the scattered keys, tokens, and passwords, and either re-locked them or revoked them.\nI ended up finding four issues, each of which I originally thought was \u0026ldquo;probably fine\u0026rdquo;:\nAn unlocked skeleton key A password casually pasted into a chat Two long-forgotten keys sitting in my notes A plaintext secret key, paired with an unguarded AI The full process—how I scanned for them, how I patched them, and a few habits I\u0026rsquo;ve kept—is written in this post:\n👉 When AI can do anything, I went back to double-check the locks on my house\nIf you plan to let AI touch your work stuff, I\u0026rsquo;d suggest reading it once before you do. It\u0026rsquo;s the kind of check that is too late to do after something goes wrong.\nAnd one more thing I want to be blunt about What these tools produce is material, not conclusions. The evidence level is there to help you orient yourself quickly, not to decide for you whether to follow it. At the end of the day, your name is attached to that clinical judgment, and you still have to read that paper yourself.\n—\nHaving written all this, I can actually circle back to that opening sentence: the hard part was never \u0026ldquo;how to ask,\u0026rdquo; it\u0026rsquo;s \u0026ldquo;how to design the workflow.\u0026rdquo; Treat a prompt like you\u0026rsquo;re talking to a smart colleague: speak plainly, be clear about what you want, and be clear about what counts as done. What you actually need to spend effort on is putting the red lines into the mechanisms, handing off the math to the code, and setting up a checkpoint you can see wherever things might go wrong.\nYou don\u0026rsquo;t need to learn it all first; you just need to know how to ask 😊\n—\n📍 Where you are on this path 1. Getting started 2. Talking to agentsyou are here 4. Picking tools: the AI toolbox 5. Using a single tool Want to see how the AI workflow posts connect? → 📊 AI Content Map\n","permalink":"https://drpwchen.com/en/posts/talking-to-agents/","summary":"\u003cblockquote\u003e\n    \u003cp\u003eThe previous post, \u003ca href=\"/posts/getting-started/\"\u003e\u003cem\u003eGetting Started from Scratch\u003c/em\u003e\u003c/a\u003e, was about how to install it and get it running.\u003c/p\u003e\n\u003cp\u003eThis post is about \u003cstrong\u003eusing it well\u003c/strong\u003e. And that is completely different from just getting it to run.\u003c/p\u003e\n\u003cp\u003eI\u0026rsquo;ve found that what really determines the outcome isn\u0026rsquo;t which model you use or whether you can code. It\u0026rsquo;s \u003cstrong\u003ehow you delegate tasks and how you set up guardrails\u003c/strong\u003e. The stuff in this post isn\u0026rsquo;t tied to a specific tool; it applies even if you use ChatGPT (I\u0026rsquo;ll explain the differences in the last section).\u003c/p\u003e","title":"How I talk to AI agents: three mindsets, four meta-skills, and a rules file that shouldn't keep growing"},{"content":"Why \u0026ldquo;too many notes\u0026rdquo; and \u0026ldquo;no notes\u0026rdquo; are the same thing Let me start with a rule I decided on early and haven\u0026rsquo;t changed since: in my note vault, there can only be one note per topic.\nIt\u0026rsquo;s not about being a neat freak. It\u0026rsquo;s because if the same thing is covered in five different places, I have to open five files when I look something up, and figure out which version actually counts. That organization work didn\u0026rsquo;t disappear, it was just left intact for my future self. And my future self is usually seeing patients in clinic or rushing to finish slides, with no time to do this. The chaos caused by too much information is the exact same pain as not having enough information.\nThis rule is easy to follow when you only have one source of material. The hard part is later, as sources pile up, and none of them will stop and wait for me:\nTextbooks → textbook-to-note, turning my own PDF textbooks into structured notes with citations (repo) Papers → paper-radar for tracking, paper-fetch for grabbing full texts, paper-review-and-digest for critical appraisal and content summary Lectures → haven\u0026rsquo;t cleaned this one up yet, currently the only branch I haven\u0026rsquo;t open-sourced These tools all solve the same problem: turning outside stuff into readable material. They bumped up the material output, but that \u0026ldquo;one note per topic\u0026rdquo; rule didn\u0026rsquo;t get easier to keep because of it. It got harder.\nSo the whole architecture is two layers, with a very hard line between them:\nSource library: Everything from the outside gets dumped in here, kept as-is, ready to trace back at any time. It can be messy, repetitive, or contradictory, because its only job is \u0026ldquo;preserving evidence\u0026rdquo;. Topic notes: The part that belongs to me. There is always only one note per topic, kept in an isolated folder, written to the same template. It\u0026rsquo;s the only copy I trust, and the only one I\u0026rsquo;ll actually use. Source material is not notes\nOnce this line blurs, your note vault degrades into a slightly prettier downloads folder.\nAnd the act of merging material content back into topic notes is the border between these two layers. note-supplement, which this post is about, does exactly that.\nThat was also the part of the pipeline I got stuck on the longest. When writing a new note from scratch, if AI does a bad job you can tell at a glance: messy structure, no citations, empty content. But \u0026ldquo;supplementing new material into an already existing note\u0026rdquo; is different. I have thousands of notes, and every single one is the result of me seriously verifying things at some point in the past.\nWhy \u0026ldquo;update my note\u0026rdquo; is such a dangerous phrase The intuitive approach is to throw new material at the AI and say \u0026ldquo;update this note for me.\u0026rdquo; I had to get burned a few times before I figured out where the problem lay:\nThe real risk of having AI update your notes isn\u0026rsquo;t that it misses new content, but that it very quietly changes the things you already got right in your old notes.\nAnd you won\u0026rsquo;t notice, because the output still looks like a good note.\nThe costs of these two errors are completely asymmetrical:\nMissing new content: Recoverable. The next time you read the same material, or the same topic comes up again, you still have a chance to add it. Breaking old content: Irrecoverable. Because you have already verified that content, you won\u0026rsquo;t go verify it a second time. From then on, it stays in your note vault in its wrong form, carrying the trust you yourself gave it. Once you see this asymmetry clearly, the design for the whole tool comes down to one sentence.\nDesign principle: additions are cheap, modifications are expensive In every round, note-supplement checks the material against the existing note for three things:\nWhat is not in the note and can be added What is different between the two sides What is already in the note but not mentioned in the material (these are strictly left alone) Then it categorizes every change first, before deciding who has the authority to execute it.\nAuto-approved: additions with citations Adding one more piece of cited content won\u0026rsquo;t hurt the note. So changes like \u0026ldquo;add factual bullet with citation\u0026rdquo; are written directly and logged in the changelog.\n(I later removed one item from auto-approval: turning scattered bullets into a table. It looks like just formatting, but actually it\u0026rsquo;s stuffing every fact back into a column. That\u0026rsquo;s a rewrite, not an addition. And column misalignment is a silent failure—the output even looks tidier than the original. Now it has to ask before doing that.)\nNo \u0026ldquo;destructive\u0026rdquo; rulings: factual contradictions This part is where I made the most changes, and it was the biggest design flaw in the first version of the tool.\nThe rules for the first version were written very stubbornly: send to review for any factual contradiction, no matter how strong the evidence looks on either side, strictly no auto-ruling. Sounds very responsible. After running it for a while, I realized two things:\nFirst, a pending review list isn\u0026rsquo;t a safety mechanism, it\u0026rsquo;s a procrastination mechanism. Once the list gets long, you just click your way through it. The so-called \u0026ldquo;leave it for you to judge\u0026rdquo; practically equals \u0026ldquo;auto-apply, but with extra clicks.\u0026rdquo; And every item on the report is followed by a line saying \u0026ldquo;My recommendation is\u0026hellip;\u0026rdquo; That line anchors you, and most of the time you just click along with it. I\u0026rsquo;m not the one judging; it\u0026rsquo;s judging, just with more polite formatting.\nSecond, not making a decision is itself a decision. During the time a conflict sits in the list, that potentially outdated old claim in the note is still the only version written there and trusted by me. The practical effect of \u0026ldquo;no ruling\u0026rdquo; is \u0026ldquo;the old one automatically wins\u0026rdquo;, and I never actively chose that policy.\nSo v1.1 took a different stance: it\u0026rsquo;s not about not ruling, it\u0026rsquo;s about not destroying. Contradictions are first categorized on two axes:\nType: Is it a new edition of the same book or the same guideline replacing an old one (that\u0026rsquo;s not a real controversy)? Are two separately credible sources genuinely saying different things? Or does the note lack a citation entirely while the material has one? Risk: What happens if this value is wrong. Dosages, thresholds, contraindications, and red flags count as high risk; prevalence, naming history, and background knowledge count as low risk. This axis is an adjustable knob, with different scales for different fields. Medical notes are just at the strictest end of the dial. Then it routes by category: new editions replacing old ones are updated directly, but the old value is kept in place with strikethrough, along with its original citation and date—not a single word disappears. Low-risk divergences are written directly into the note as an in-place block:\n\u0026gt; [!conflict]- ⚖️ Unresolved: natural history of adhesive capsulitis (flagged on 2026-07-23) \u0026gt; - **A (Existing)**: self-limiting, resolves in 12–18 months `(Citation, Year)` \u0026gt; - **B (New material)**: a significant proportion of patients have residual symptoms after three years `(Citation, Year)` \u0026gt; - Handle this the next time you read this note: delete this block, keep the version you adopt (or keep both with added conditions) The original wording for both sides is there, the citations are there, the flagged date is there. Neither side gets deleted. It doesn\u0026rsquo;t interrupt me, but it doesn\u0026rsquo;t disappear either. The timing of the review shifts from \u0026ldquo;the moment of writing\u0026rdquo; to \u0026ldquo;the next time I read it.\u0026quot; That\u0026rsquo;s when my attention is at its best and my context is most complete; looking at a list right after running a batch is exactly the worst time.\nOnly high-risk contradictions will stop and ask me on the spot, and at most five questions at a time. Anything beyond that is still written as the block above, and honestly reported by the numbers in the changelog. I\u0026rsquo;ll read five questions seriously; I won\u0026rsquo;t read thirty.\nThere\u0026rsquo;s also a patch I missed for a long time before realizing: if a note has a pending high-risk contradiction, any additions that rely on this disputed fact (in the same paragraph, or content where that value is a premise) are held back together, waiting to be written in until after I make my decision. Otherwise, by the time I open the note to make a ruling, the note has already been altered a round beforehand.\nWhat about the concern from the first version, where the cost of a misjudgment is \u0026ldquo;I won\u0026rsquo;t go verify that point again in the future\u0026rdquo;? That concern wasn\u0026rsquo;t overturned, it was bypassed: none of the rulings delete anything. The old value is still there, still carrying its citation and date. If I ever discover I made the wrong call this time, I can still trace it back.\nAlways wait for human review: refactoring and opening new notes Moving paragraphs, merging sections, and determining \u0026ldquo;this should be a new note\u0026rdquo; all require an understanding of the entire note vault. It\u0026rsquo;s not something single-note comparisons can decide.\nscatter mode: one piece of material, a whole batch of notes Supplementing single notes only solved half the problem. In practice, what\u0026rsquo;s more common is one piece of material affecting a dozen notes: a comprehensive review lecture, a guideline update. This is exactly the most common scenario under the \u0026ldquo;three sources flowing into one note vault\u0026rdquo; architecture.\n--scatter mode extracts all concepts from the material, finds every related note, and then applies the tiering above, note by note:\nChange type Tier Handling Addition with citation T1 Auto-write Turn existing bullets into table T2 Leave for human review (downgraded from T1 in v1.1) Factual conflict Route by category New replaces old → in-place update keeping old value / Low risk → write in-place conflict block / High risk → ask on the spot, max 5 questions at once Paragraph refactoring T2 Leave for human review Needs new note opened T3 Leave for human review The goal of tiering isn\u0026rsquo;t automation, it\u0026rsquo;s allocating attention. The mechanical eighty percent is done automatically, and you only look at the twenty percent that requires judgment. After each run it gives you a changelog: which notes were touched, what got added to each, how conflicts were resolved, what you vetoed.\nDon\u0026rsquo;t trust the model when it says \u0026ldquo;I did it\u0026rdquo; Once the material gets long, the language model\u0026rsquo;s attention dilutes, an entire paragraph gets skipped, and the output looks perfectly normal. I talked about the mechanism for this in the chat gets dumber the longer you talk post; the difference is back then we were talking about conversation quality, while here we\u0026rsquo;re hitting a wall where a chunk of content is actually missing. And if you ask it afterward, \u0026ldquo;Did you finish supplementing everything?\u0026rdquo;, it will say yes.\nSo the rule here is just as important as the earlier one: don\u0026rsquo;t trust the model\u0026rsquo;s self-reporting, only trust the things it leaves behind that you can audit.\nForced item-by-item closure coverage list Every heading in the material has to be listed out and closed item by item: produced N items, already covered, or absolutely nothing. For any heading that yields \u0026ldquo;absolutely nothing\u0026rdquo;, it must go back and re-read it once before calling it a day. When a whole section under a heading produces nothing at all, it\u0026rsquo;s usually not because the section is actually empty, but because attention dropped.\nAnd this list is part of the output, not its own scratchpad. Here\u0026rsquo;s the difference: self-checking on a scratchpad can\u0026rsquo;t be verified, but a delivered list can be audited.\nStructure-blind reverse scan The remedy in the first version was: take the draft items produced in the first pass as search terms, and go back to re-read the material. This approach is completely backward. Keywords derived from \u0026ldquo;things you already found\u0026rdquo; can only retrieve content you half-found; for a whole chunk of a topic that went completely unnoticed, you don\u0026rsquo;t even know what words to search for. What it missed is invisible to itself.\nSo the second round ignores chapter structure entirely, directly listing every item \u0026ldquo;present in the material, missing from the note.\u0026rdquo; If either lens catches it, it counts.\nThis also patched another hole: newly added content isn\u0026rsquo;t just compared against the section it\u0026rsquo;s going into, but against the entire note. An item written into \u0026ldquo;Treatment\u0026rdquo; could totally clash with a number in \u0026ldquo;Background.\u0026rdquo; If you only compare against the same section, you\u0026rsquo;ll never see it.\nThe parts actually guarded by code Things involving judgment are handed off to the model, but if it can be checked with code, don\u0026rsquo;t check it with the model:\nscripts/gate_check.py: mechanical checks run before writing, including broken links, broken embeds, leftover citation placeholders, tables interrupted by prose, duplicate embeds. Purely syntax layer, requiring no judgment, so the model\u0026rsquo;s attention shouldn\u0026rsquo;t be wasted on it. benchmarks/: 14 sets of material/note pairs with deliberately planted defects, each set coming with a gold standard answer (how many items to add, which ones are conflicts, what the risk tier is). After changing the workflow, I can actually run it once to see if it regressed, instead of relying on a feeling that \u0026ldquo;it seems better.\u0026rdquo; No overlap between the two layers\nThe model layer handles semantics, the code layer handles formatting and verifiability. This way the entire pipeline can actually be considered to have a harness, rather than just being a very long set of instructions.\nA few other details I added only after actually failing Ask first if the material itself is credible Categorize the material before comparing: handouts I organized myself, textbook chapters, and peer-reviewed materials count as one category; AI-generated summaries and someone else\u0026rsquo;s notes from unknown origins count as another. The moment the latter shows up, all auto-writes for the whole round are downgraded to manual confirmation. This is a property of the document, not a property of item-by-item judgment. An untraceable piece of material doesn\u0026rsquo;t become traceable just because a few of its points sound reasonable.\nAnd the bottom-line rule has no exceptions: every piece of content written into a note must come with a citation. Anything without a citation is marked as AI inference, and isn\u0026rsquo;t allowed to mix in.\nThe material and the target are two different universes Unorganized raw material folders (inbox, lecture transcripts) can never become the targets for supplementation. Without this rule, AI will very happily go \u0026ldquo;supplement\u0026rdquo; your unprocessed junk, growing a second, crappier note vault right next to your real one. That\u0026rsquo;s exactly what I said at the start about \u0026ldquo;too many notes is no notes\u0026rdquo;, except this time you built it yourself.\nEmpty paragraph scanning With permanent notes written to a template, there are always a few paragraphs that stay empty for years on end. So before comparing, the tool first lists the empty paragraphs in the target note, and suggests where to supplement them from (the evidence paragraph → literature search; the mechanism paragraph → corresponding textbook chapter), asking all at once.\nHow to use it This is a skill file for Claude Code (essentially a markdown playbook, the workflow can be ported to any agent framework that can read it):\nCopy skills/note-supplement/SKILL.md to your project and save it as .claude/commands/note-supplement.md Swap out the three placeholders at the top: {NOTES_DIR} (your permanent notes folder), {SOURCES_DIRS} (material folders), {SEARCH} (your search tool) Run /note-supplement \u0026lt;material file\u0026gt; in your note vault Having a semantic search index makes \u0026ldquo;finding the right target note\u0026rdquo; a lot more accurate. I use my own open-sourced vault-search (you can also pair it with that graph RAG setup), but it runs fine with Grep at the start too.\nRepo (MIT, README has English and Chinese versions): https://github.com/drpwchen/note-supplement\nI\u0026rsquo;ve organized other tools along this pipeline in my My AI Toolbox post.\nA little reflection The goal of the entire pipeline has only been one thing from start to finish: information on the outside can be vast, but once it lands on my end it has to converge into a single copy. Those earlier tools handle turning sources into material, this one handles the convergence, and this convergence step is the hardest part, and the easiest place to mess up.\nIt was also while doing this step that my thoughts on \u0026ldquo;having AI do things for me\u0026rdquo; changed a bit.\nI originally thought a good AI tool was about doing a little more: understanding a little more, deciding a little more, asking me a little less. Only after finishing this did I realize that on \u0026ldquo;things that have been accumulating for a long time,\u0026rdquo; the value of a good tool is actually knowing what it shouldn\u0026rsquo;t do, identifying the asymmetrical risks, letting cheap actions pass, and stopping the expensive actions to hand them back to humans.\nBut this revision dialed it back another layer. I originally thought \u0026ldquo;stopping and handing it back to humans\u0026rdquo; was the finish line for being responsible. I later realized that was just moving the responsibility to a place I wouldn\u0026rsquo;t seriously read. Throwing all the hard problems into a pending review list is formally very responsible, but practically it\u0026rsquo;s outsourcing judgment to fatigue. The real question to ask isn\u0026rsquo;t \u0026ldquo;Should this be decided by a human?\u0026rdquo;, but rather \u0026ldquo;Is this worth interrupting this person right now?\u0026rdquo;. I\u0026rsquo;ll read five questions seriously at a time; the rest, leave them in place in a way that won\u0026rsquo;t break anything, and we\u0026rsquo;ll talk about it the next time I read it.\nThis logic actually has no necessary connection to medical notes. Any system that \u0026ldquo;has already accumulated a batch of credible content, and needs to continuously pump new data in\u0026rdquo; applies here. The only difference is which notch that risk knob is turned to. I wrote about this separately in the repo\u0026rsquo;s docs/the-pattern.md.\nIf you\u0026rsquo;re also dealing with the problem of \u0026ldquo;old and new data fighting each other,\u0026rdquo; you\u0026rsquo;re very welcome to chat with me; if you think I got something wrong, you\u0026rsquo;re even more welcome to correct me.\nBuy me a boba! —\n📍 Where you are on this path 1. Getting started 2. Talking to agents 4. Picking tools: the AI toolbox 5. Using a single toolyou are here Want to see how the AI workflow posts connect? → 📊 AI Content Map\n","permalink":"https://drpwchen.com/en/posts/note-supplement/","summary":"\u003ch2 id=\"why-too-many-notes-and-no-notes-are-the-same-thing\"\u003eWhy \u0026ldquo;too many notes\u0026rdquo; and \u0026ldquo;no notes\u0026rdquo; are the same thing\u003c/h2\u003e\n\u003cp\u003eLet me start with a rule I decided on early and haven\u0026rsquo;t changed since: \u003cstrong\u003ein my note vault, there can only be one note per topic.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eIt\u0026rsquo;s not about being a neat freak. It\u0026rsquo;s because if the same thing is covered in five different places, I have to open five files when I look something up, and figure out which version actually counts. \u003cmark\u003eThat organization work didn\u0026rsquo;t disappear, it was just left intact for my future self.\u003c/mark\u003e And my future self is usually seeing patients in clinic or rushing to finish slides, with no time to do this. The chaos caused by too much information is the exact same pain as not having enough information.\u003c/p\u003e","title":"Too Many Notes is No Notes: The Design of note-supplement"},{"content":" I was recently preparing an introductory AI lecture for our therapist colleagues, and thought I\u0026rsquo;d put together an advanced list of all the tools I normally use and the programs I\u0026rsquo;ve written. This way, when you want to do something, you can quickly look up \u0026ldquo;who to go to for this function.\u0026rdquo; It\u0026rsquo;s also something I\u0026rsquo;ve always wanted to organize for myself, so I\u0026rsquo;m taking this chance to write it all out.\nThis post doesn\u0026rsquo;t pick an audience and leaves nothing out. I\u0026rsquo;m listing everything from AI assistants down to my home backup system. To use it, first find the category for your need, then look at the table in that section. The ones marked ⭐ are programs I wrote myself and have open-sourced; feel free to just take them. The ones marked \u0026ldquo;Free\u0026rdquo; are those I actually use within their free tiers. (I love free stuff too much, I pay for almost none of this XD)\nTable of Contents 1. Main AI and Engines — AI Assistants and Main Collaborators・Free Cloud and Local AI Engines 2. Audio and Document Processing — Speech-to-Text・Text-to-Speech・OCR 3. Learning and Knowledge Management — Notes and Personal Knowledge Base・Papers and Clinical Evidence・Exam Practice 4. Publishing: Websites and Email — Website Hosting and Cloudflare・Custom Domain Email and Sending 5. Automation and Self-Hosted Backbone — Automation, Scheduled Jobs and Notifications・Home Server and Smart Home・Backups and UPS How to Start? 1. Main AI and Engines AI Assistants and Main Collaborators Tool What it does Free? Claude Code An AI agent that can read/write files, run code, and actually \u0026ldquo;get things done.\u0026rdquo; The center of all my workflows. Subscription claude.ai Web version. For asking in a clean chat when stuck, or quick lookups on my phone. Free tier available Gemini Great breadth for searching, natively eats PDFs and images. I use it as a second opinion. Free tier available OpenAI Codex For finding different solutions when stuck on code, or adversarial code review. Available on free ChatGPT accounts herdr Multiplex terminal manager. Lets several AI tasks run long-term in the background, switchable anytime. ✅ ⭐ claude-pacer A fuel gauge + auto-brake for Claude Code: status bar shows usage, wraps things up before hitting the limit, automatically resumes when quota resets. ✅ Open-source Claude Code is one of the few things on this list I pay for, and pay for gladly. It\u0026rsquo;s not just chat; I built this blog and almost all the tools below with it. I use other AIs for second opinions: Gemini for research, Codex for nitpicking. Note that data on Gemini\u0026rsquo;s free tier is used for training, so don\u0026rsquo;t feed it sensitive content. For Codex, remember to go to settings and turn off training.\nOnce my workload got bigger, herdr let me run several Claude Code tasks in parallel: transcribing a lecture over here, organizing notes over there, without interfering with each other. Running multiple tasks for a long time, I found the most common cause of death wasn\u0026rsquo;t code errors, it was getting decapitated by usage limits. So I made claude-pacer: there\u0026rsquo;s a fuel gauge in the status bar to see how much quota is left. When it\u0026rsquo;s running low, the AI will wrap up its current work, save it, and automatically resume when the quota resets. The full story is in this post.\nMindset\nPick one main tool and use it deeply; use the rest as second opinions. Bouncing around between tools won\u0026rsquo;t build a workflow.\nFree Cloud and Local AI Engines When writing automation scripts, a lot of the \u0026ldquo;grunt work\u0026rdquo; (categorizing, extracting keywords, translating) doesn\u0026rsquo;t need the smartest models. The free tiers from these providers are enough:\nTool What it does Free? Groq The fastest free inference. Has quotas for both open-source models and Whisper transcription. ✅ Free tier Cloudflare Workers AI If your site is hosted on Cloudflare, you can use it with a few lines of code. Surprisingly good at Traditional Chinese. ✅ Free tier Gemini API Strongest multimodal; ⚠️ free tier uses data for training. ✅ Free tier Ollama Run open-source models (embeddings, vision models) locally. Data never leaves your machine. ✅ My division of labor: high-value work requiring judgment goes to Claude; massive amounts of mechanical grunt work go to free APIs; sensitive data always stays on local models.\n2. Audio and Document Processing My main use case is turning lecture and class recordings into transcripts and then organizing them into notes, so this is where I\u0026rsquo;ve invested the most.\nSpeech-to-Text Tool What it does Free? faster-whisper Whisper running on the local GPU. Any audio with personal data goes through this. ✅ Open-source Breeze-ASR-25 MediaTek\u0026rsquo;s Taiwanese Mandarin + mixed Chinese-English fine-tuned version. My default engine. ✅ Open-source Groq Whisper Cloud transcription. Transcribes a 33-minute lecture in 10 seconds. Roughly 8 hours of quota per day. ✅ Free tier ⭐ asr-benchmark Benchmark which engine suits your field using \u0026ldquo;your own data,\u0026rdquo; no human transcripts required. ✅ Open-source ⭐ ytscribe Fetch transcripts for a whole YouTube channel: grabs subtitles if they exist, fills in with local Whisper if they don\u0026rsquo;t. ✅ Open-source I fell into a trap while picking an engine: online leaderboards are tested on \u0026ldquo;other people\u0026rsquo;s data,\u0026rdquo; which might be completely irrelevant to your use case. So I wrote asr-benchmark: build a glossary from literature in your field, and measure how many \u0026ldquo;real terms each engine catches, and how many non-existent terms it hallucinates.\u0026rdquo; In my medical lecture scenarios, Breeze-ASR-25 caught specialized terms at a significantly higher rate than vanilla Whisper, so I made it my default. The full method is in this post: My Data, My Benchmark.\nText-to-Speech Tool What it does Free? BreezyVoice MediaTek\u0026rsquo;s Taiwanese Mandarin voice synthesis. Can clone voices and fix pronunciation errors using Bopomofo. ✅ Open-source I use BreezyVoice to pre-generate my home voice announcements: the morning briefing and the laundry completion reminder are all in its voice, routed through Category 5\u0026rsquo;s Home Assistant to play out loud.\nOCR and Document Processing Tool What it does Free? Surya OCR Main OCR. Best quality for dense academic documents, runs locally. ✅ Open-source PaddleOCR-VL Fills the gap for pages with particularly dense tables. ✅ Open-source Ollama + Vision Models Local vision-language models for image descriptions and checking extracted image quality. ✅ Open-source Note\nGeneral-purpose AIs (the kind where you tell ChatGPT \u0026ldquo;read this image for me\u0026rdquo;) will skip words when doing verbatim OCR. They confidently skip parts they can\u0026rsquo;t see clearly. For official documents, please use a dedicated OCR engine.\n3. Learning and Knowledge Management Notes and Personal Knowledge Base Tool What it does Free? Obsidian My second brain, thousands of medical notes; pure markdown saved on my own computer. ✅ ⭐ vault-search A semantic search plugin + MCP server that lets Obsidian search notes by \u0026ldquo;meaning.\u0026rdquo; ✅ Open-source ⭐ textbook-to-note Turns my PDF textbooks into an AI-searchable knowledge base + structured notes with images. ✅ Open-source Obsidian LiveSync Self-hosted multi-device note sync, replacing the official paid sync. ✅ Open-source vault-search runs entirely locally, notes never leave your machine, and the AI can directly query your notes vault (the original story is in this post). textbook-to-note was my core tool for preparing for the board examination; I just open-sourced it recently: intro post here.\nPapers and Clinical Evidence I wrote the first three myself. They link up perfectly into a \u0026ldquo;discover → download → read\u0026rdquo; assembly line, and they are also my most used series on GitHub:\nTool What it does Free? ⭐ paper-radar Discover: Automatically aggregates dozens of journal/PubMed feeds + scores them by interest. ✅ Open-source ⭐ paper-fetch Download: Feed it a DOI, and it automatically walks through \u0026ldquo;Open Access → Publisher API → Institutional Proxy\u0026rdquo; to grab the full text. ✅ Open-source ⭐ paper-review-and-digest Read: Journal club-style critical appraisal + quick digest and organization, as two Claude Code skills. ✅ Open-source Zotero Reference management. ✅ OpenEvidence Clinical evidence Q\u0026amp;A AI. Answers come with literature citations, free for healthcare professionals. ✅ (Requires medical credentials) ⭐ openevidence-tools Lets Claude search OpenEvidence directly + verifies its citations one by one. ✅ Open-source Unpaywall / CrossRef / PubMed Free open academic APIs. They are the bedrock of the tools above. ✅ The Paper Trilogy has an intro post for each: paper-radar, paper-fetch, and paper-review-and-digest.\nOpenEvidence is handy, but the citations the AI provides must be verified, so I wrote the verification process into a tool too (oe-verify inside openevidence-tools): it fetches the original text for every single citation and compares them, directly flagging any mistakes.\nExam Practice Tool What it does Free? ⭐ exam-practice Past paper practice platform: spaced repetition algorithm (FSRS), mistake notebook, percentile analysis. ✅ Open-source Those preparing for the national medical licensing exam or the board examination can self-host a copy; the introduction is in this post.\n4. Publishing: Websites and Email This blog, along with a few small sites I\u0026rsquo;ve made (Rehab Course Radar, etc.), are all hosted on free services. My only monthly cost is the domain fee. The Cloudflare ecosystem is the core:\nWebsite Hosting and Cloudflare Tool What it does Free? Hugo Static site generator, turns markdown into a website. ✅ Open-source Cloudflare Pages Free static site hosting, auto HTTPS + global CDN. ✅ Cloudflare Workers Small backends for websites: forms, buttons, APIs. ✅ Free tier Cloudflare D1 Serverless SQL database. Stores the interactive state of the website. ✅ Free tier Cloudflare R2 Object storage (for PDFs, images, etc.), no egress fees. ✅ Free 10GB Cloudflare Zero Trust: Tunnel Safely exposes services on my home computer to the internet, without needing a static IP or poking holes in the firewall. ✅ Cloudflare Zero Trust: Access Locks down private small sites so \u0026ldquo;only my email can log in.\u0026rdquo; ✅ Free tier Umami Open-source self-hosted analytics. Replaces Google Analytics, keeping visitor data in your own hands. ✅ Open-source These two Zero Trust tools are worth singling out: Tunnel lets me safely connect back to services running at home (analytics, push notifications, photo library) from the outside; Access lets me lock down sites I\u0026rsquo;m not ready to make public (my paper radar, personal dashboard) so only I can log in. Both are free, and they\u0026rsquo;re godspends for self-hosted tinkerers.\nCustom Domain Email and Sending If you want to send and receive emails as yourname@yourdomain, it\u0026rsquo;s actually completely free:\nTool What it does Free? Cloudflare Email Routing Receiving: Routes emails sent to your custom domain to Gmail. ✅ SMTP2GO Sending: Set up as \u0026ldquo;Send mail as\u0026rdquo; in Gmail, so you can send emails using your custom domain address. ✅ 1,000 emails per month gmail-multi-mcp Let AI read and send emails: Claude helps me search emails, organize them, and draft replies; I review them before sending. ✅ Open-source For the Gmail MCP, I use the open-source version and add my own key encryption for protection. Once hooked into Claude Code, things like \u0026ldquo;find me that registration confirmation email from last month\u0026rdquo; can be solved with a single sentence.\n5. Automation and Self-Hosted Backbone Automation, Scheduled Jobs and Notifications Tool What it does Free? Oracle Cloud Always Free Currently the most generous free cloud host. My radar site scrapers and scheduled jobs run on it 24/7. ✅ ntfy Open-source push notifications. Sends a notification to your phone with one line of code. All my automations eventually converge here. ✅ Open-source Uptime Kuma Self-hosted service monitoring. Notifies me immediately if any site goes down. ✅ Open-source ⭐ fbpost A CLI to post to FB and reply to comments via commands. Lets AI act as my social media manager (I review before posting). ✅ Open-source Google Apps Script When creating Google Forms, I ask AI to write the code directly, paste it, and run it. Generates dozens of questions in a minute. ✅ Course registrations opening, paper updates, server anomalies, typhoon work/class cancellations—they all follow the same pattern: \u0026ldquo;a scheduled job on Oracle checks it → if there\u0026rsquo;s a change, ntfy pushes it to my phone.\u0026rdquo; I write it once and use it forever.\nHome Server and Smart Home The self-hosted track is my hobby, and it\u0026rsquo;s also the foundation for many of the services above:\nTool What it does Free? Proxmox VE Home virtualization platform. Slices a small mini-PC into many virtual machines to run various services. ✅ Open-source Home Assistant Smart home hub. Over two hundred automations: lights, dehumidifiers, voice announcements, scraper notifications. ✅ Open-source Immich Self-hosted Google Photos alternative. Over 70,000 photos, AI semantic search + facial recognition search. ✅ Open-source NAS (Synology) The home storage center: the resting place for photos, files, and backups. Hardware cost Home Assistant is worth a special mention: it\u0026rsquo;s connected to my AI tool workflow. The morning briefing uses BreezyVoice\u0026rsquo;s synthesized voice to announce today\u0026rsquo;s schedule, and when the washing machine is done, it yells at me in Chinese to go hang the laundry 🤣. Immich is the solution for \u0026ldquo;finding photos\u0026rdquo;: I can find a photo just by describing it in a sentence, and facial recognition automatically groups people, without ever handing my photos over to the cloud.\nBackups and UPS The more you play with self-hosted stuff, the more seriously you have to treat \u0026ldquo;what happens when it breaks.\u0026rdquo; I configure things according to the 3-2-1 rule (three copies of data, two different media, one off-site):\nTool What it does Free? NAS Scheduled Backup Automatically backs up databases and config files of various services to the NAS. ✅ WireGuard Lightweight VPN. Connects NAS units in two different locations for off-site backup. ✅ Open-source UPS ×2 Keeps the NAS and host running during a power outage so they can shut down safely. Hardware cost Off-site backup uses WireGuard to connect the NAS units in my Hualien and Tainan homes into an encrypted tunnel, syncing automatically every night. The UPS actually came in handy on the eve of a typhoon; the real-world test log of that time is in this post.\nHow to Start? It\u0026rsquo;s a long list, but don\u0026rsquo;t start with the tools, start with your pain points. Think about the one thing you do repeatedly every week that takes the most time, go back to the corresponding category, and ignore the rest for now.\nMy own sequence grew organically like this too: first it was study notes (textbook-to-note), then papers (The Paper Trilogy), and only then did the websites, automation, and this whole home setup slowly grow out of it. Every tool is here because it solved a real problem at the time; that\u0026rsquo;s why they stayed.\nIf you have any questions, feel free to leave a comment or email me, and you\u0026rsquo;re also welcome to just open a GitHub issue~\nBuy me a boba! 📍 Where you are on this path 1. Getting started 2. Talking to agents 4. Picking tools: the AI toolboxyou are here 5. Using a single tool Want to see how the AI workflow posts connect? → 📊 AI Content Map\n","permalink":"https://drpwchen.com/en/posts/my-ai-toolbox/","summary":"\u003c!-- Maintenance: When a new open-source tool goes live, besides data/tools.yaml, come back here to add a row to the corresponding category (see publish-blog skill Notes for the release SOP). --\u003e\n\u003cp\u003eI was recently preparing an introductory AI lecture for our therapist colleagues, and thought I\u0026rsquo;d put together an advanced list of all the tools I normally use and the programs I\u0026rsquo;ve written. This way, when you want to do something, you can quickly look up \u0026ldquo;who to go to for this function.\u0026rdquo; It\u0026rsquo;s also something I\u0026rsquo;ve always wanted to organize for myself, so I\u0026rsquo;m taking this chance to write it all out.\u003c/p\u003e","title":"My Complete AI Toolbox: Find the Tool for Whatever You Want to Do"},{"content":"Origin I\u0026rsquo;ve loved taking notes since medical school and have accumulated thousands of medical notes over the years. But honestly, with information so easy to get and so much to learn now, it\u0026rsquo;s become hard to keep every note at the same quality using my own structure.\nOn the other hand, in an era of ever-increasing information, trustworthy, high-quality sources have ironically become precious, which makes textbooks a great source of information. However, there are over forty designated reference books for the physical medicine and rehabilitation (PM\u0026amp;R) board examination, and the same concept might be scattered across different chapters in several books. Actually reading through all of them is almost impossible.\nLuckily we have AI these days. Large language models (LLMs) excel at this kind of long-context processing, but tossing hundreds of textbooks at them all at once is still unrealistic. That\u0026rsquo;s when I paired good content search with database management, and clearly explained my note-taking workflow and tuned the AI to it. Avoiding hallucinations, this ensures the AI generates notes structurally and with evidence, so I only need to focus on absorbing the compiled, high-density information into my brain.\nSo this turned into a massive textbook LLM Wiki project: converting books into AI-readable formats, accurately locating target chapters, organizing and presenting them by my structure, pulling important images from textbooks into the notes, and finally integrating them with existing notes.\nI open-sourced it today, and this post covers the hurdles I cleared along the way.\nHurdle 1: Converting books into AI-readable formats Throwing PDFs directly at a large model has a few pitfalls: it\u0026rsquo;s slow and expensive (reading a thousand-page book page by page has a hefty token cost); it will casually skip over scanned pages or pages with broken font encoding, and you won\u0026rsquo;t even realize your notes are missing things; and images just disappear.\nMy solution was to keep all the heavy lifting on my local machine: text extraction uses PyMuPDF, about 0.13 seconds per page, 0 tokens. Scanned pages run through a local OCR pipeline (Surya → PaddleOCR-VL → local vision model), and only if all those fail does the large model step in itself. Two details are particularly unique:\nSilent failure detection: Using rules like font risk and character density to catch pages that \u0026ldquo;look like text was extracted, but are actually gibberish.\u0026rdquo; Double-column sorting: Textbooks are often in a double-column layout. Direct extraction tangles sentences from the left and right columns together, and gibberish detection won\u0026rsquo;t catch this. We implemented column detection to ensure correct reading order. Hurdle 2: Chopping books into searchable units The books are converted, but how does the AI find the content? Traditional indexes aren\u0026rsquo;t enough, because a topic is often scattered across several chapters; adding tags manually isn\u0026rsquo;t practical either, as it\u0026rsquo;s impossible to maintain and doesn\u0026rsquo;t slice things finely enough. The answer is semantic embedding: converting content into vectors, searching by meaning instead of keywords.\nThere\u0026rsquo;s an easily overlooked design choice here: chunking isn\u0026rsquo;t a mindless fixed word count. Cut too small and you lose context; cut too large and you dilute the semantics. We chose to chunk according to heading structure, preserving the upper-level chapter context for each chunk, so every piece pulled back by the search is a complete concept with a beginning and an end.\nHurdle 3: Finding the right book among dozens The foundation of cross-book searching is the vault-search method I open-sourced previously (the introduction to that post is here), using local LanceDB plus bge-m3 embeddings, so data never leaves your computer.\nOn top of this, we added another layer: weighting for key bibliographies. Designated books for the board examination and official society textbooks get higher scores during searches, and there\u0026rsquo;s also weighting based on publication year. For the same topic, the AI will prioritize citing your most trusted sources.\nHurdle 4: Establishing the note-writing algorithm and principles The tools are there, but what really determines note quality is the workflow design:\nDraft blind first: The AI doesn\u0026rsquo;t look at my existing notes initially, independently pulling complete data from textbooks to write a draft, and only merging at the end. This prevents interference from the structure and content of old notes. Templates drive the extraction: Every topic type has a fixed template. This design is crucial; the AI knows what to look for in the books, and I know what sections to expect every time I read, making absorption much faster. I included the five bilingual (Chinese/English) templates I use daily directly in the repo, so you can adapt them for yourself. Sections designed for understanding: Like the Summary at the start and the management algorithm at the end. Their existence itself aids understanding; they aren\u0026rsquo;t just data dumps. No citation, no dice: Every claim is cited down to the book title and chapter. Anything the AI fills in with its own knowledge is strictly labeled as an inference. Hurdle 5: Extracting images from books This is the hardest part of the entire system because every book has a different layout logic. Our approach was to start with a universal method (geometric matching: captions and the nearest images claiming each other), paired with a deterministic audit: whitespace checks, text bleed checks. It only passes if it clears the rules—the AI\u0026rsquo;s word isn\u0026rsquo;t final—and it runs completely locally in a token-saving way.\nWhen we hit an extraction error on a specific book, we fix the extraction logic for that book, and it won\u0026rsquo;t mess up on that book again. This setup has evolved through many versions, but honestly, it\u0026rsquo;s still experimental. I wouldn\u0026rsquo;t dare say it applies to all books yet, and everyone is very welcome to help improve it!\nBonus: Plugging in external evidence sources In my own version, the note-taking workflow can connect further outward: like plugging into OpenEvidence for clinical evidence supplements, or querying the National Health Insurance Research Database (NHIRD) for reimbursement guidelines.\nWe spun off the OpenEvidence query-plus-verify component and open-sourced it as a separate little project, openevidence-tools.\nA special thanks here to Dr. Lin htlin222. I originally wrote my own browser automation to connect to OE, but after getting blocked, I found his work. The key concepts that later made this verification system truly viable almost all came from his recent updates: OE\u0026rsquo;s origin field is obfuscated; once decoded, you can tell which database the content was pulled from, making it possible to predict the probability of a misplaced citation. Even the naming of the transitive citation failure mode (where a review cites someone else\u0026rsquo;s numbers, but OE credits the review) and the entire verification architecture were his doing. What we added was the half he hadn\u0026rsquo;t done—namely, what OE actually missed. The details are in the repo\u0026rsquo;s acknowledgments and NOTICE. Just a reminder: you absolutely must verify, because OE does make citation errors.\nOther external sources are designed as pluggable extension stages in the workflow documentation, so anyone who needs them can connect data sources from their own fields. I previously baked this same \u0026ldquo;no bluffing from memory\u0026rdquo; principle into my paper reading toolkit, which you can read about here.\nUsage: Toss the repo to your AI The people who\u0026rsquo;d come use this system probably bring their own AI assistants anyway, so the repo includes an AGENTS.md file, which is deployment instructions written directly for the AI. To use it, just throw the repo at Claude Code (or any coding agent) and say:\n\u0026ldquo;Read AGENTS.md and help me install it.\u0026rdquo;\nThe repo is here: github.com/drpwchen/textbook-to-note, under the MIT license. The tool itself does not include any book content, so please use legally acquired books (open-licensed OpenStax textbooks are great for testing).\nConclusion: Learning has never been this easy After finishing this system, getting a fast, deep, textbook-level understanding of a specialized topic became something that happens at the push of a button.\nI sometimes wonder what notes will look like in the future. Maybe they\u0026rsquo;ll lean more towards recording \u0026ldquo;that flash of inspiration when reading something,\u0026rdquo; rather than the grueling work of organizing and summarizing. Though to be honest, AI can already find connections in my knowledge map that I hadn\u0026rsquo;t thought of before 🤣\nLearning has become easier than ever; even a few years ago, I wouldn\u0026rsquo;t have dared to imagine this kind of convenience. This system isn\u0026rsquo;t limited to physical medicine and rehabilitation (PM\u0026amp;R), and I think it isn\u0026rsquo;t even limited to medicine—I hope it helps everyone who needs to learn!\nIf you find a bug or have suggestions for improvement, you\u0026rsquo;re more than welcome to open an issue or PR to make this system better and better!\n—\n📍 Where you are on this path 1. Getting started 2. Talking to agents 4. Picking tools: the AI toolbox 5. Using a single toolyou are here Want to see how the AI workflow posts connect? → 📊 AI Content Map\n","permalink":"https://drpwchen.com/en/posts/textbook-to-note/","summary":"\u003ch2 id=\"origin\"\u003eOrigin\u003c/h2\u003e\n\u003cp\u003eI\u0026rsquo;ve loved taking notes since medical school and have accumulated thousands of medical notes over the years. But honestly, with information so easy to get and so much to learn now, \u003cstrong\u003eit\u0026rsquo;s become hard to keep every note at the same quality using my own structure.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eOn the other hand, in an era of ever-increasing information, \u003cstrong\u003etrustworthy, high-quality sources have ironically become precious, which makes textbooks a great source of information.\u003c/strong\u003e However, there are over forty designated reference books for the physical medicine and rehabilitation (PM\u0026amp;R) board examination, and the same concept might be scattered across different chapters in several books. Actually reading through all of them is almost impossible.\u003c/p\u003e","title":"Cross-Textbook Automated Note-Generation Workflow: A Product of the Board Examination"},{"content":"Recently I was spending time with an older adult, and he said to me: \u0026ldquo;Life really doesn\u0026rsquo;t need to be that long. I\u0026rsquo;m already in my 80s, why would I still go exercise and work out? I already go out and walk several times a day, that\u0026rsquo;s already very good!\u0026rdquo;\nHonestly, the first half—\u0026ldquo;life doesn\u0026rsquo;t need to be that long\u0026rdquo;—stumped me. That\u0026rsquo;s a question about the meaning of life, not something I can answer in a few sentences in clinic. But the second half—\u0026ldquo;walking several times is enough\u0026rdquo;—happens to be my own specialty, and I\u0026rsquo;m confident about this: walking is great, but for an 80-something older adult, relying just on walking really isn\u0026rsquo;t quite enough. I\u0026rsquo;ll start from here in the rest of this post.\nI posted this dilemma on Facebook, and my senior colleague Shun-Chin Chang alone replied with a long string of fantastic ideas: motivational interviewing, \u0026ldquo;reablement\u0026rdquo; in geriatrics, and something I\u0026rsquo;d never even heard of called \u0026ldquo;gerotranscendence.\u0026rdquo; He even reminded me of the dilemma where an older adult with dementia \u0026ldquo;feels great,\u0026rdquo; but the family is actually struggling hard to care for them. These angles were way deeper than my original confusion.\nSo I did a very fun thing for this era: I took these concepts he threw out and fed them to Claude one by one. I asked it to fact-check and pull key points from the 250+ textbooks I\u0026rsquo;d turned into a database, as well as papers on PubMed, and organize them into notes together. This post is the lay version of those notes. I broke the whole thing down into five questions, asking everything from \u0026ldquo;should they exercise at all\u0026rdquo; all the way to \u0026ldquo;what if they just don\u0026rsquo;t want to?\u0026rdquo; (There are also more complete notes after each topic that you can click into to read.)\nAfter walking so much every day, do they still need to \u0026ldquo;exercise\u0026rdquo;? This question is my own specialty, so I can speak with confidence. Conclusion first: walking is great, but relying solely on walking is not enough. Walking is an excellent starting point for aerobic activity; it helps cardiopulmonary function, is low-risk, and can be done anytime. Official guidelines also list it as the preferred aerobic activity for those over 65. But for an 80-something older adult, it has three holes it just can\u0026rsquo;t patch.\nFirst, it has limited benefit for sarcopenia. Muscle loss starts in middle age, and by age 80, muscle mass has already dropped by about 30%. Low-intensity cardio like walking can\u0026rsquo;t really stop it; to truly fight sarcopenia, you have to rely on resistance training.\nSecond, the evidence for walking preventing falls is actually insufficient. This is pretty counterintuitive; I originally thought walking more would make you steadier too. But geriatric rehabilitation textbooks put it very bluntly: there is no scientific evidence supporting that brisk walking reduces fall risk. Doing walking or resistance training \u0026ldquo;alone\u0026rdquo; probably has no significant effect on falls; they must be paired with balance training. What really drops fall injuries by 32 to 40% and fractures by 40 to 66% is multicomponent exercise—that is, resistance, balance, and aerobic all together.\nThird, what aging drains the fastest is muscle power, and walking doesn\u0026rsquo;t train that. Muscle power has the most direct functional relationship with \u0026ldquo;whether you can step out in time to steady yourself the moment you trip.\u0026rdquo; It declines faster than general muscle strength, and requires specialized, fast-effort training.\nSo is resistance training still useful in your 80s? Yes, and it\u0026rsquo;s still effective into your 90s. Classic evidence in geriatric rehabilitation shows that even entering the ninth decade of life, muscle weakness can still be reversed by strength training. As for safety, the risk mainly comes from poorly designed programs, not the training itself. Frail older adults just need to avoid testing their max weight limits and avoid holding their breath when exerting effort. Those who are truly very weak, or even bedbound, can also start with bed exercises. \u0026ldquo;It\u0026rsquo;s never too early, and it\u0026rsquo;s never too late.\u0026rdquo;\nThere\u0026rsquo;s also a concept I think is very important and worth calling out: exercise guidelines actually don\u0026rsquo;t have a separate version for \u0026ldquo;80 and older.\u0026rdquo; The WHO, ACSM, and US physical activity guidelines all use \u0026ldquo;65 and older\u0026rdquo; as a single group, and instead stratify by functional status (whether there\u0026rsquo;s frailty, whether there\u0026rsquo;s sarcopenia, whether the heart and lungs can handle it) rather than cutting it by age. In other words, what determines the exercise prescription is \u0026ldquo;this person\u0026rsquo;s physical condition,\u0026rdquo; not \u0026ldquo;how old they are.\u0026rdquo;\nWhy is \u0026ldquo;telling older adults to exercise\u0026rdquo; often useless? Because we often use tools from the wrong stage. I need to talk about a very practical framework here: the Transtheoretical Model\u0026rsquo;s five stages of behavior change—from precontemplation, contemplation, preparation, action, to maintenance.\nThe crucial mismatch goes like this: an older adult who says \u0026ldquo;I\u0026rsquo;m already in my 80s, why would I still exercise\u0026rdquo; is actually currently in the precontemplation stage—meaning they have absolutely no intention of changing yet. Yet the things we\u0026rsquo;re most used to doing—drafting plans, setting up programs, asking for commitments—are actually tools only meant for the preparation to action stages. When the tool doesn\u0026rsquo;t match the stage, talking more is just a waste of breath.\n(So what about \u0026ldquo;talking about the consequences of not exercising\u0026rdquo;? That actually is something you should do in the precontemplation stage to awaken their awareness of the problem. The point is to let them realize it themselves, not to use it as a command for them to start exercising tomorrow. I\u0026rsquo;ve organized exactly what to do in each stage in this note: The Five Stages of Behavior Change.)\nFurthermore, precontemplation doesn\u0026rsquo;t mean laziness. Textbooks point out that the cause of precontemplation is often a lack of information or frustration from past failed attempts. Behind the older adult\u0026rsquo;s phrase \u0026ldquo;why would I still exercise,\u0026rdquo; there might be the helplessness of having tried and given up before, rather than simply not caring.\nWhether an older adult sustains an exercise routine is most heavily determined by their perceived health status; and the biggest barrier is often the fear that exercising will cause injury, pain, or make their body worse. There\u0026rsquo;s also a very subtle barrier unique to old age: when family members say, \u0026ldquo;Don\u0026rsquo;t get too tired, I\u0026rsquo;ll do it,\u0026rdquo; it sounds like care, but it actually communicates \u0026ldquo;you\u0026rsquo;re too old and too frail,\u0026rdquo; which ironically pushes the older adult away from exercising.\nSo how should we even bring it up? The answer is Motivational Interviewing. The core is drawing out the other person\u0026rsquo;s own reasons for wanting to change, rather than instilling them. This is also the method my senior colleague mentioned, and I specifically dug out Miller and Rollnick\u0026rsquo;s 2023 original text.\nIts spirit can be remembered with the four letters PACE: Partnership, Acceptance, Compassion, and Empowerment. Of these, I think \u0026ldquo;Empowerment\u0026rdquo; is the most crucial: believing that the older adult inherently has the ability to change. Our role isn\u0026rsquo;t to stuff them with things they lack, but to validate and help them leverage the abilities they already have, while respecting their right to choose for themselves.\nThere is a very handy technique called the Importance Ruler: ask the older adult, \u0026ldquo;On a scale of 0 to 10, how important is exercise to you?\u0026rdquo; Say they answer 4; the next thing to ask is, \u0026ldquo;Why a 4, and not a 0?\u0026rdquo;, letting them voice out their own \u0026ldquo;reasons for already being at a 4.\u0026rdquo; Conversely, if you ask, \u0026ldquo;Why not an 8 or a 10?\u0026rdquo;, you\u0026rsquo;ll only prompt them to list out a bunch of reasons why they don\u0026rsquo;t want to change. The direction is exactly opposite.\nThere is also a very practical distinction: when the older adult keeps pushing back and doesn\u0026rsquo;t want to move, you first have to distinguish whether they are still ambivalent (normal ambivalence—just catch it with listening and reflecting, no need to argue), or if the doctor-patient relationship itself has hit a snag (they feel misunderstood—this is when you need to step back and rebuild trust, rather than continuing to lecture).\n(I\u0026rsquo;ve organized the complete steps for motivational interviewing into a note: Motivational Interviewing: How to Talk About Change With People Who Don\u0026rsquo;t Want To.)\nWhat if the older adult just feels \u0026ldquo;this is fine\u0026rdquo;? Then we have to first admit: they have the right not to exercise, and sometimes \u0026ldquo;living comfortably\u0026rdquo; really is more important than \u0026ldquo;living long.\u0026rdquo;\nLet\u0026rsquo;s talk about the rights thing first. The AMA\u0026rsquo;s ethical stance is very clear: patients with decision-making capacity have both the legal and moral right to refuse treatment, and refusing treatment does not equal denying the illness, nor does it equal having suicidal ideation. In a rehab setting, refusal can be obvious (not showing up for therapy) or it can be subtle (not doing a home exercise program). These people are often slapped with a \u0026ldquo;noncompliant\u0026rdquo; label, but this actually ignores their autonomy over their own bodies. In a facility, \u0026ldquo;noncompliance\u0026rdquo; is sometimes the only way an older adult can still exert control over their life. We can try hard to encourage and persuade, but we can\u0026rsquo;t force or deceive.\nNext is a concept someone brought up in the comments that I find the most beautiful: gerotranscendence. This is a theory proposed by Tornstam in 1989. Funny enough, I checked all 250+ of my textbooks on rehab and geriatric medicine, and not a single one includes this concept. Not even the geriatric psychiatry textbooks have it; it only lives in gerontology journals.\nSo what is it talking about? It posits that a positive psychological shift occurs in late old age: moving away from a highly materialistic, rational worldview toward a more transcendent perspective. This manifests as a decreased fear of death, placing more value on a few meaningful relationships, and enjoying solitude and meditation more. This isn\u0026rsquo;t passive withdrawal, but an active psychological development. In other words, the body slowly declines, but the mind is calm, rich, and wise—this in itself is a respectable and desirable old age.\nTo be honest, the empirical evidence for this theory is still very thin. There are currently only 8 intervention studies on promoting gerotranscendence, 3 of which are RCTs (two of them even done in Taiwan). They generally show that weekly themed group activities can enhance gerotranscendence and slightly improve depression, but the samples are small, the follow-up is short, the level of evidence is on the low side, and it can\u0026rsquo;t be used as a routine recommendation yet. Also, there was a very endearing finding: when you actually go ask older adults, most of them don\u0026rsquo;t understand abstract words like \u0026ldquo;transcendence\u0026rdquo; or \u0026ldquo;solitude\u0026rdquo; at all, and even directly interpret \u0026ldquo;solitude\u0026rdquo; as the negative \u0026ldquo;loneliness.\u0026rdquo; No matter how beautiful a theory is, when it hits the frontlines of patient education, you still have to speak plain human language. (I summarized this concept separately in a note: Gerotranscendence: The Body Declines, But the Mind Can Be Richer.)\nThis also echoes the spirit of reablement mentioned in the comments. I really like the definition of reablement: within a person\u0026rsquo;s limited abilities, helping them maximize their function to use on the things they themselves find valuable. In plain English, it\u0026rsquo;s \u0026ldquo;helping older adults live the life they want to live.\u0026rdquo; So the goal is never to forcefully drag the older adult to pursue \u0026ldquo;maximum function,\u0026rdquo; but to first figure out what kind of life they want, and then treat exercise as a means to serve that life.\nBut what if they have dementia and say \u0026ldquo;I\u0026rsquo;m fine\u0026rdquo;? At this point, you can\u0026rsquo;t just listen to the older adult alone. Someone in the comments brought up a very real clinical exception: older adults with mild to moderate dementia (CDR 1 to 2) are often very cheerful and accepting of fate. Ask them anything, and they\u0026rsquo;ll say, \u0026ldquo;I\u0026rsquo;m great, no problems,\u0026rdquo; but the family is actually already struggling immensely with caregiving.\nBehind this is a mechanism called anosognosia (lack of insight), and it ranks alongside language issues and memory impairment as one of the top three hurdles when taking a history for dementia. So when taking a history, you absolutely must find a reliable family member for corroboration, and it\u0026rsquo;s best to ask more than one, because even the family members themselves might distort things due to their own depression or denial; this goes both ways. (Anosognosia is an independent huge topic, which I\u0026rsquo;ve organized into another note: Anosognosia in Dementia; also be careful, an older adult \u0026ldquo;taking things lightly\u0026rdquo; is sometimes actually geriatric depression.)\nSo how do you balance \u0026ldquo;respecting patient autonomy\u0026rdquo; and \u0026ldquo;the caregiver is about to collapse\u0026rdquo;? Geriatric psychiatry textbooks offer a framework that I think is highly practical: do a separate \u0026ldquo;unmet needs\u0026rdquo; assessment for both the patient side and the caregiver side. Research has found that unmet needs on the patient side can be as high as 99%, and the caregiver side is also at 97%. Furthermore, caregiver stress can predict the older adult later moving into a facility, and unmet caregiver needs are also tied to a drop in their own quality of life.\nMore importantly, this is not a zero-sum game of \u0026ldquo;patient vs caregiver.\u0026rdquo; The sentence about care goals in the textbook writes for both sides at the same time: preserve the patient\u0026rsquo;s dignity, and make the caregiver\u0026rsquo;s life a little easier. In fact, properly training and supporting the caregiver, and improving the environment, can in turn reduce the behavioral and psychological symptoms of dementia (BPSD) in the older adult. This is a two-way positive feedback loop.\nFinal thoughts Going around in this huge circle, I realized the older adult\u0026rsquo;s question \u0026ldquo;why would I still exercise\u0026rdquo; actually hid five layers of problems: should they move (yes, but move right), how to talk about it so it works (first see what stage they\u0026rsquo;re in), how to bring it up (motivational interviewing), do they have the right to say no (yes), and do they actually know their own condition (if there\u0026rsquo;s dementia, you have to look at the caregiver).\nAnd the most fundamental sentence actually has nothing to do with medicine: if a lot of patient education doesn\u0026rsquo;t take the individual\u0026rsquo;s state into account, it might just be preaching from on high. What truly brings change isn\u0026rsquo;t constantly talking about how great exercise is or how terrifying not moving is, but first figuring out what the other person is thinking.\nA good half of this post is my senior colleague Chang\u0026rsquo;s wisdom. He gave me so many angles all on his own; all I did was fact-check each concept, add citations, and organize them into notes (also thanks to the friends who discussed it together in the comments section). And the reason I could turn over topics spanning exercise physiology, behavioral psychology, geriatric medicine, and dementia care all in one afternoon is because I handed them to Claude, having it fact-check, pull key points, and make notes from the 250+ textbooks and PubMed papers we\u0026rsquo;d turned into a database. This way of working—\u0026ldquo;handing the reading and summarizing to AI, and focusing myself on how to use it\u0026rdquo;—is also something I really want to share lately. If there are any misunderstandings in the content, corrections are very welcome.\nThe more complete notes for each topic, as well as the reference papers and textbooks, are in the comments section.\n","permalink":"https://drpwchen.com/en/posts/talking-elders-exercise/","summary":"\u003cp\u003eRecently I was spending time with an older adult, and he said to me: \u0026ldquo;Life really doesn\u0026rsquo;t need to be that long. I\u0026rsquo;m already in my 80s, why would I still go exercise and work out? I already go out and walk several times a day, that\u0026rsquo;s already very good!\u0026rdquo;\u003c/p\u003e\n\u003cp\u003eHonestly, the first half—\u0026ldquo;life doesn\u0026rsquo;t need to be that long\u0026rdquo;—stumped me. That\u0026rsquo;s a question about the meaning of life, not something I can answer in a few sentences in clinic. But the second half—\u0026ldquo;walking several times is enough\u0026rdquo;—happens to be my own specialty, and I\u0026rsquo;m confident about this: walking is great, but for an 80-something older adult, relying just on walking really isn\u0026rsquo;t quite enough. I\u0026rsquo;ll start from here in the rest of this post.\u003c/p\u003e","title":"Do you still need to exercise at 80? An older adult stumped me, so I actually checked the textbooks"},{"content":"Let me say the most important thing first: when some elders \u0026ldquo;take things lightly, have fewer friends, and like to be quiet by themselves,\u0026rdquo; it doesn\u0026rsquo;t necessarily mean something is wrong; it might be a healthy shift in mindset. Gerontology calls this \u0026ldquo;gerotranscendence\u0026rdquo;: the body slowly declines, but the mind actually becomes calmer and knows more clearly what it wants.\nThis post is an extension of Does an 80-year-old still need to exercise?, written for those of you worrying about why your older family members are getting \u0026ldquo;more and more indifferent.\u0026rdquo;\nThere is a calmness that means healthy aging Researchers studying aging have observed that many people, as they reach late old age, naturally show these changes:\nThey aren\u0026rsquo;t as afraid of dying. They\u0026rsquo;ll look back, sort through their lives, and make peace with the past. They accept themselves more. They no longer care as much about winning or losing, saving face, or what others think. Quality over quantity with friends: They don\u0026rsquo;t like big, noisy gatherings, but they really cherish a few people they can talk to. Sitting quietly alone is recharging for them, not loneliness. If your older family member is like this, and they are living comfortably, eating and sleeping well, and still have connections with people they care about, it might not be \u0026ldquo;withdrawal.\u0026rdquo; They might have just found the pace of life they want.\nLook at it from another angle\nWe often judge how well an older person is doing by \u0026ldquo;whether they\u0026rsquo;re still active,\u0026rdquo; as if not going out or socializing is a decline. But for some elders, a quiet life is exactly what they want. Figure out what kind of life they want to live first, and then talk about how exercise and activities can fit in. That\u0026rsquo;s the right order.\nBut be careful: \u0026ldquo;taking it lightly\u0026rdquo; can also be depression This is the most important reminder in this post. A healthy calmness and a depressive \u0026ldquo;I don\u0026rsquo;t want anything\u0026rdquo; might look similar on the surface, but they are fundamentally different. Here are a few clues to help tell them apart:\nHealthy calmness: They are \u0026ldquo;satisfied.\u0026rdquo; Talking about the past feels warm. They still have an interest in the people and things they care about. They are enjoying life, just with a milder flavor. Red flags: They are \u0026ldquo;empty.\u0026rdquo; They\u0026rsquo;ve stopped doing things they used to love, can\u0026rsquo;t eat or sleep well, say they are useless or a burden, or have aches and pains all over but no cause can be found. If you can\u0026rsquo;t tell, bring them in for an evaluation\nDepression in older adults often doesn\u0026rsquo;t look like depression (see the post on geriatric depression). Mistaking depression for \u0026ldquo;they\u0026rsquo;ve let go\u0026rdquo; leaves a treatable illness untreated. When you\u0026rsquo;re not sure, bringing them to a doctor for an evaluation is always the right move.\nHow family can support them Respect their pace. You don\u0026rsquo;t need to force them to \u0026ldquo;go out more and make more friends\u0026rdquo; for them to be healthy. Quality of companionship matters more than frequency: Having the few people they value show up regularly beats a room full of noise. Listen to their stories of the past. Reviewing one\u0026rsquo;s life is a very natural and meaningful thing at this stage. Being a good listener is great companionship. Keep an eye out for the red flags mentioned above. Calmness and depression—one needs respect, the other needs treatment. Further reading: Full post on \u0026ldquo;Does an 80-year-old still need to exercise?\u0026rdquo;, Geriatric depression\nThe bottom line: gerotranscendence posits that healthy aging isn\u0026rsquo;t just about \u0026ldquo;maintaining physical function,\u0026rdquo; but also includes a mindset shift—the body slowly declines, but the mind can move toward calmness, richness, and a deeper connection with the world. This is what might be hiding behind an older patient saying \u0026ldquo;I\u0026rsquo;m fine as I am\u0026rdquo; in that Does an 80-year-old still need to exercise? post.\nInterestingly, I checked the 200-plus textbooks I have on physical medicine and rehabilitation (PM\u0026amp;R) and geriatric medicine, and even textbooks on geriatric psychiatry, and this concept is almost never included. It mainly lives in gerontology journal literature. So the content below is based on three papers.\nWhat is this? Proposed by Swedish scholar Tornstam in 1989. It suggests that when people reach late old age, they will (or can) experience a mindset shift: moving from a very materialistic, realistic worldview to a more \u0026ldquo;transcendent\u0026rdquo; perspective. This shift has three dimensions:\nCosmic connection: A stronger sense of connection between oneself and the universe, nature, and past generations. The fear of death decreases, and they will re-understand their childhood and life. Coherence of self: They accept their complete selves more. Egocentrism decreases, and they look back on the past with less regret. Redefining relationships (solitude): They treat solitude as a time for contemplation and rest. They become much pickier about making friends, preferring quality over quantity. Tornstam estimated that only about 20% of people will reach this state \u0026ldquo;naturally.\u0026rdquo; Most people get there slower, or even get \u0026ldquo;stuck\u0026rdquo;—if a person holds onto midlife values and pacing all the way into old age, they might actually get stuck in depression and anxiety.\nSource: Abreu et al. 2023, J Appl Gerontol; Abreu et al. 2025, Gerontologist. Original theory: Tornstam L. Gerotranscendence: A Developmental Theory of Positive Aging. Springer; 2005.\nCan it be \u0026ldquo;promoted\u0026rdquo;? The evidence is still thin A 2023 scoping review was the first to specifically look at \u0026ldquo;how to promote gerotranscendence.\u0026rdquo; It included 8 studies, 3 of which were randomized controlled trials. Two of them were actually done in Taiwan (one in an institution, one in the community).\nThese interventions were mostly weekly themed groups, lasting about 25 to 120 minutes each time, for 6 to 8 weeks. The content was a mix of knowledge sharing, experience sharing, and open discussion. The results generally showed: they can increase the level of gerotranscendence (especially the \u0026ldquo;cosmic connection\u0026rdquo; dimension), slightly improve depression, and boost life satisfaction. But to be brutally honest: the sample sizes were small, follow-up times were short, and the level of evidence is on the low side (most studies were rated low quality). So right now, it looks more like a \u0026ldquo;promising adjunct\u0026rdquo; rather than a routine recommendation. Source: Abreu et al. 2023, J Appl Gerontol 42(9):2036-47.\nDo older adults understand it themselves? A very important gap A 2025 qualitative study talked to 18 Portuguese older adults about this theory and found something crucial for patient education:\nBefore explanation, most of the older adults couldn\u0026rsquo;t understand these abstract terms at all. The most obvious one was \u0026ldquo;solitude\u0026rdquo;; almost everyone immediately took it as the negative \u0026ldquo;loneliness.\u0026rdquo; After explanation, most could agree with the core concepts, but they also brought up things the theory missed: their concern for \u0026ldquo;future generations (grandchildren)\u0026rdquo; is just as strong as for the past; the fear of death doesn\u0026rsquo;t necessarily decrease; and a moderate amount of regret is actually a form of learning. Plus, there are cultural differences. Solitude is viewed positively in Scandinavia and some Asian studies, but in cultures that heavily emphasize family, it\u0026rsquo;s often seen as negative. The conclusion: The spirit of this theory mostly holds up, but when applying it to different cultures and explaining it to everyday older adults, you have to be really careful with terminology. Don\u0026rsquo;t just throw out words like \u0026ldquo;transcendence\u0026rdquo; and \u0026ldquo;cosmic.\u0026rdquo;\nSource: Abreu et al. 2025, Gerontologist.\nClinical application and boundaries It reminds us of one thing: For an older adult whose body is declining but whose mind is calm and rich, constantly pushing them to \u0026ldquo;maximize function\u0026rdquo; isn\u0026rsquo;t necessarily right. Sometimes, figuring out what kind of life they want first, and then using exercise and rehabilitation as a means to serve that life, is the correct order. This is actually the same spirit as \u0026ldquo;reablement\u0026rdquo; in geriatric medicine—helping older adults live the lives they want to live. But we have to hold the line: The current evidence isn\u0026rsquo;t strong enough for it to replace standard depression or quality-of-life interventions. If an older adult\u0026rsquo;s \u0026ldquo;taking everything lightly\u0026rdquo; is actually depression (geriatric depression often presents atypically; see my geriatric depression notes), then what needs treating is the depression. We shouldn\u0026rsquo;t romanticize it as \u0026ldquo;transcendence.\u0026rdquo; Telling these two apart is the most crucial step clinically. Further reading: Full post on \u0026ldquo;Does an 80-year-old still need to exercise?\u0026rdquo;\n","permalink":"https://drpwchen.com/en/notes/gerotranscendence/","summary":"\u003cdiv class=\"note-ver note-ver-lay\"\u003e\u003cp\u003eLet me say the most important thing first: \u003cmark\u003ewhen some elders \u0026ldquo;take things lightly, have fewer friends, and like to be quiet by themselves,\u0026rdquo; it doesn\u0026rsquo;t necessarily mean something is wrong; it might be a healthy shift in mindset.\u003c/mark\u003e Gerontology calls this \u0026ldquo;gerotranscendence\u0026rdquo;: the body slowly declines, but the mind actually becomes calmer and knows more clearly what it wants.\u003c/p\u003e\n\u003cp\u003eThis post is an extension of \u003ca href=\"/posts/talking-elders-exercise/\"\u003eDoes an 80-year-old still need to exercise?\u003c/a\u003e, written for those of you worrying about why your older family members are getting \u0026ldquo;more and more indifferent.\u0026rdquo;\u003c/p\u003e","title":"Gerotranscendence: The Body Declines, But the Mind Can Grow Richer"},{"content":"Let\u0026rsquo;s start with the most important point: When older adults with dementia say \u0026ldquo;I\u0026rsquo;m fine, no problem,\u0026rdquo; it\u0026rsquo;s often not stubbornness, nor a refusal to face reality. It\u0026rsquo;s that their brain literally cannot detect its own decline. In medicine, this is called impaired insight, and it\u0026rsquo;s a part of dementia itself.\nThis is an extension of the post Do 80-Year-Olds Still Need to Exercise?, written for those of you who are caring for a family member with dementia and feeling frustrated that \u0026ldquo;they won\u0026rsquo;t admit it and won\u0026rsquo;t listen.\u0026rdquo;\nThey aren\u0026rsquo;t doing it on purpose What hurts many families the most is feeling that the older adult \u0026ldquo;is clearly declining but stubbornly refuses to admit it,\u0026rdquo; refusing to listen, as if they\u0026rsquo;re fighting the whole family. But please remember one thing first:\nIt\u0026rsquo;s \u0026ldquo;broken,\u0026rdquo; not \u0026ldquo;stubborn\u0026rdquo;\nThere is a system in the brain responsible for \u0026ldquo;monitoring your own status,\u0026rdquo; and dementia breaks this system too. So they aren\u0026rsquo;t seeing the problem and denying it; rather, their brain simply isn\u0026rsquo;t receiving the signal that \u0026ldquo;I am declining.\u0026rdquo; It\u0026rsquo;s like a car with a broken dashboard—it\u0026rsquo;s running out of gas, but the fuel gauge still points to full.\nUnderstanding this cuts a lot of conflict in half: arguing with them that \u0026ldquo;you clearly can\u0026rsquo;t remember\u0026rdquo; is like yelling at a broken fuel gauge. It\u0026rsquo;s useless, and it\u0026rsquo;s not fair.\nThree common misunderstandings from family \u0026ldquo;They\u0026rsquo;re faking it or avoiding it\u0026rdquo;: Most of the time, they aren\u0026rsquo;t. This \u0026ldquo;not knowing they are sick\u0026rdquo; appears very early in dementia and eventually happens to almost everyone as the disease progresses. It\u0026rsquo;s a part of the disease. \u0026ldquo;They\u0026rsquo;ll get it if I explain it a few more times\u0026rdquo;: Unlikely. Because the problem isn\u0026rsquo;t that they \u0026ldquo;didn\u0026rsquo;t hear you,\u0026rdquo; but that the brain cannot update itself with the fact that \u0026ldquo;I am declining.\u0026rdquo; Constantly correcting and reminding them usually just leads to fights. \u0026ldquo;It\u0026rsquo;s so sad they don\u0026rsquo;t even know\u0026rdquo;: There is a counterintuitive finding worth knowing: patients who still \u0026ldquo;know\u0026rdquo; they are declining are actually more prone to depression and anxiety. A certain degree of unawareness isn\u0026rsquo;t necessarily a bad thing for the patient\u0026rsquo;s mood. What families can do Don\u0026rsquo;t waste energy trying to \u0026ldquo;convince them they\u0026rsquo;re sick.\u0026rdquo; Put your energy into practical safety and living arrangements: someone managing the meds, someone checking the stove, someone helping watch the finances. Go along with them, don\u0026rsquo;t butt heads. Instead of saying \u0026ldquo;you have dementia and can\u0026rsquo;t drive,\u0026rdquo; say \u0026ldquo;I\u0026rsquo;ll drive you today, it\u0026rsquo;s on my way.\u0026rdquo; The goal is to get things done safely, not to win a debate. When seeing a doctor, a family member must tag along. Because older adults will \u0026ldquo;report the good news and hide the bad\u0026rdquo; when describing their own condition, the doctor needs the family to provide a true picture of their daily life. If possible, bringing the observations of two family members is even better; everyone sees things from a different angle. Caregivers must look after their own well-being. Caring for older adults like this is especially exhausting. This is a fact backed by research, not a sign that you aren\u0026rsquo;t good enough. Ask for help when you\u0026rsquo;re tired. Respite care and family support groups are completely valid resources. When to be on high alert\nWhen older adults \u0026ldquo;feel they are doing fine\u0026rdquo; but are actually engaging in dangerous behaviors, such as getting into more fender-benders, leaving the stove on, taking meds incorrectly, or missing doses, you can no longer wait for them to \u0026ldquo;figure it out themselves.\u0026rdquo; You need to directly block the risks through their environment and discuss it with the medical team.\nAn easily confused situation Sometimes when older adults \u0026ldquo;say they are fine and don\u0026rsquo;t care about anything,\u0026rdquo; it\u0026rsquo;s actually not dementia, but depression. Depression in older adults often doesn\u0026rsquo;t look like depression and is easily mistaken for normal aging. You can check out my notes on geriatric depression for more on that.\nFurther reading: Full article on Do 80-Year-Olds Still Need to Exercise?, Geriatric depression\nBottom line up front: When older adults with dementia say \u0026ldquo;I\u0026rsquo;m fine, no problem,\u0026rdquo; it\u0026rsquo;s often not stubbornness or evasion, but a neurological \u0026ldquo;anosognosia\u0026rdquo; (impaired insight) — their brain literally cannot detect its own decline. This is the mechanism behind the dilemma in the Do 80-Year-Olds Still Need to Exercise? post, where the older adult feels fine but the family is struggling.\nLet me say one thing first: I searched through the two hundred or so physical medicine and rehabilitation (PM\u0026amp;R) and geriatric medicine textbooks I have on hand, and coverage on \u0026ldquo;anosognosia in dementia\u0026rdquo; is almost non-existent. (The anosognosia in textbooks is mostly about post-stroke insight, which is a different mechanism.) So this post is mostly propped up by review articles on PubMed. I\u0026rsquo;ve tried to cite the papers wherever possible.\nThree easily confused terms Anosognosia: Neurological unawareness. The brain network responsible for \u0026ldquo;monitoring and updating self-status\u0026rdquo; is broken, so they cannot detect their own deficits. This is not a motivation issue; you can\u0026rsquo;t fix it with persuasion or counseling alone. (Tagai 2020, PMID 31930617) Denial: Psychological defense. Facing the loss and shame brought on by \u0026ldquo;I am declining,\u0026rdquo; they use denial to protect themselves. This is emotional; theoretically, psychological intervention can partially loosen it. General lack of insight: The broadest term. It doesn\u0026rsquo;t assume a cause; it could be neurological, psychological, or simply that they were never told. Clinically, these three can coexist in the same person. It\u0026rsquo;s hard to separate them completely. But holding onto one broad principle is useful: anosognosia is \u0026ldquo;broken,\u0026rdquo; not \u0026ldquo;stubborn.\u0026rdquo; This distinction directly impacts how you explain things to the family.\nHow it happens Anosognosia in dementia isn\u0026rsquo;t just one broken brain area, but a dysregulation of an entire \u0026ldquo;self-monitoring/self-updating\u0026rdquo; network. Systematic reviews indicate that it\u0026rsquo;s associated with structural atrophy or functional dysconnectivity in the frontal lobe (inferior frontal, anterior cingulate cortex [ACC], orbitofrontal), medial temporal lobe (including the hippocampus), and the default mode network (DMN) (Hallam 2020, PMID 32679396; Mondragón 2019, PMID 31161466). One theory (the Cognitive Awareness Model, CAM) splits it into three types: the core metacognitive system is broken, the executive/comparator mechanism is broken, and the memory system is so broken that it \u0026ldquo;cannot update evidence of their decline into their self-concept\u0026rdquo; (Tagai 2020, PMID 31930617).\nA practical point for differential diagnosis: anosognosia in frontotemporal dementia (FTD) is usually more severe than in Alzheimer\u0026rsquo;s disease (AD), and even when given feedback, they have a very hard time revising their self-evaluation. This can be used as an auxiliary clue to differentiate AD from FTD (DeLozier 2015, PMID 26705377).\nWhen it starts and how severe it gets It starts very early: Anosognosia can be measured and is clinically significant even in the mild cognitive impairment (MCI) stage. Insight might even start declining before objective cognitive tests show abnormalities (Kelleher 2015, PMID 26643996; Cappa 2024, PMID 39051174). Almost everyone gets it eventually: As the disease progresses, both the incidence and severity increase, and eventually almost all dementia patients will experience it (Wilson 2016, PMID 27438597). But \u0026ldquo;severe dementia = completely unaware\u0026rdquo; is an oversimplification: Even in severe AD, lower-level sensory awareness is relatively preserved, while higher-level awareness varies by person and situation (O\u0026rsquo;Shaughnessy 2020, PMID 31942805). Clinical assessment In clinics and research, the most common approach is the \u0026ldquo;patient-caregiver discrepancy method\u0026rdquo;: the patient self-evaluates on a questionnaire, the primary caregiver evaluates on the same one, and the larger the gap between the two, the more severe the anosognosia (common scales include the AQ-D). There are also clinician ratings, and the discrepancy method between \u0026ldquo;how the patient predicts they will perform on a test vs. their actual performance.\u0026rdquo; (Tondelli 2018, PMID 29867398)\nBut the discrepancy method has a major pitfall: the caregiver\u0026rsquo;s own burden and level of depression systematically influence the scores they give the patient (the more tired the caregiver is, the more they tend to rate the patient as having \u0026ldquo;less insight\u0026rdquo;). So the discrepancy score cannot simply be taken as an objective indicator of the patient\u0026rsquo;s status alone; you have to look at the caregiver\u0026rsquo;s condition at the same time (Perales 2016, PMID 27258415). This leads directly into the next section.\nKey clinical takeaways You must have a reliable family member during history taking, and it\u0026rsquo;s best to ask more than one. Because the patient might not give an accurate account due to anosognosia, and a single family member\u0026rsquo;s account might be skewed by their own depression or denial. Asking an extra person helps calibrate for errors on both the patient\u0026rsquo;s and the family\u0026rsquo;s side. This is also the only place I found in textbooks that directly addresses this (APA Geriatric Psychiatry 6e, Ch.8 History Taking). Anosognosia increases caregiver burden. This is one of the most consistent pieces of evidence, and it is independent of the patient\u0026rsquo;s cognition and function (Turró-Garriga 2012, PMID 22555993). A counterintuitive but vital finding: patients who still have insight actually have higher depression and anxiety (Kelleher 2015, PMID 26643996). In other words, a certain degree of \u0026ldquo;unawareness\u0026rdquo; isn\u0026rsquo;t necessarily bad for the patient\u0026rsquo;s mood. Keep this in mind when explaining things to the family and when deciding \u0026ldquo;whether and how fully to inform the patient.\u0026rdquo; In communication, framing it as \u0026ldquo;the brain\u0026rsquo;s function is broken\u0026rdquo; rather than \u0026ldquo;they are throwing a tantrum and refusing to admit it\u0026rdquo; can reduce a lot of family conflict. Two evidence gaps to be honest about I specifically looked up two things highly relevant to rehabilitation, and it turns out there are no direct studies on PubMed:\nThe direct link between anosognosia and \u0026ldquo;driving safety\u0026rdquo;: No dedicated literature; we can only infer it indirectly using the \u0026ldquo;judgment\u0026rdquo; sub-item in dementia assessment scales. Anosognosia and \u0026ldquo;adherence to rehabilitation / home exercise\u0026rdquo;: Also no direct studies. The reasonable guess is \u0026ldquo;if they don\u0026rsquo;t feel they are declining, they will underestimate the need to exercise,\u0026rdquo; but right now this is just clinical reasoning without empirical backing. Calling out these two gaps is more honest than pretending we have the answers.\nFurther reading: Full article on Do 80-Year-Olds Still Need to Exercise?, Geriatric depression (sometimes \u0026ldquo;not caring about anything\u0026rdquo; is actually depression; you need to differentiate)\n","permalink":"https://drpwchen.com/en/notes/anosognosia-dementia/","summary":"\u003cdiv class=\"note-ver note-ver-lay\"\u003e\u003cp\u003eLet\u0026rsquo;s start with the most important point: \u003cmark\u003eWhen older adults with dementia say \u0026ldquo;I\u0026rsquo;m fine, no problem,\u0026rdquo; it\u0026rsquo;s often not stubbornness, nor a refusal to face reality. It\u0026rsquo;s that their brain literally cannot detect its own decline.\u003c/mark\u003e In medicine, this is called impaired insight, and it\u0026rsquo;s a part of dementia itself.\u003c/p\u003e\n\u003cp\u003eThis is an extension of the post \u003ca href=\"/posts/talking-elders-exercise/\"\u003e\u003cem\u003eDo 80-Year-Olds Still Need to Exercise?\u003c/em\u003e\u003c/a\u003e, written for those of you who are caring for a family member with dementia and feeling frustrated that \u0026ldquo;they won\u0026rsquo;t admit it and won\u0026rsquo;t listen.\u0026rdquo;\u003c/p\u003e","title":"Impaired Insight in Dementia: When the Patient Says \"I'm Fine\""},{"content":"Let\u0026rsquo;s start with the most important thing: depression in older adults often doesn\u0026rsquo;t look like \u0026ldquo;depression.\u0026quot; They might not cry or say they\u0026rsquo;re sad. Instead, it turns into aches and pains all over, poor appetite, bad sleep, and a lack of energy for everything. And so it\u0026rsquo;s very easy for the whole family (sometimes even physicians) to write it off as \u0026ldquo;that\u0026rsquo;s just what happens when you get old,\u0026rdquo; and quietly miss it.\nThis is a follow-up to Do 80-Year-Olds Still Need to Exercise?, written for those of you who feel the older adults in your family have been \u0026ldquo;a bit off lately, but I can\u0026rsquo;t quite put my finger on it.\u0026rdquo;\nWhat depression looks like in older adults Depression in young people is relatively easy to spot: low mood, crying, saying negative things. Older adults are different:\nSpeaking through the body: Constantly complaining of fatigue, poor sleep, poor appetite, and aches and pains all over. They see many specialists and do lots of tests, only to be told there\u0026rsquo;s no major problem. Not admitting to a \u0026ldquo;bad mood\u0026rdquo;: Ask them, \u0026ldquo;Are you depressed?\u0026rdquo; and they\u0026rsquo;ll say no. But ask, \u0026ldquo;Do you feel hopeless? Exhausted? Disinterested in everything?\u0026rdquo; and they\u0026rsquo;ll nod. Faint but persistent: It\u0026rsquo;s not loud sobbing or breakdowns, but a lingering \u0026ldquo;lack of drive\u0026rdquo; that lasts for weeks. They no longer want to do the things they used to love. How to ask at home\nDon\u0026rsquo;t ask, \u0026ldquo;Are you depressed?\u0026rdquo; Instead, ask specific things: \u0026ldquo;Have you been sleeping well lately?\u0026rdquo; \u0026ldquo;Are you still doing [something they used to enjoy]?\u0026rdquo; \u0026ldquo;Do you feel like you\u0026rsquo;re dragging everyone down?\u0026rdquo; That last one is especially important. If an older adult frequently says they\u0026rsquo;re a burden, please take it seriously and take them to see a doctor.\n\u0026ldquo;Failing memory\u0026rdquo; isn\u0026rsquo;t always dementia Depression can also make an older adult\u0026rsquo;s memory worse and their reactions slower, looking a lot like dementia. These two things require a physician to differentiate, because the management is completely different. Plus, when the depression is treated, cognition often improves along with it. So rather than guessing at home whether it\u0026rsquo;s dementia, it\u0026rsquo;s better to take them to a doctor for an evaluation to check for both possibilities.\nThere\u0026rsquo;s also an opposite scenario: an older adult becomes \u0026ldquo;detached from everything and stops fighting for things.\u0026rdquo; The family worries it\u0026rsquo;s depression, but it could also be a healthy shift in mindset. You can read my notes on gerotranscendence for that. When you can\u0026rsquo;t tell the difference, getting a medical evaluation is the safest bet.\nThe one thing to be most alert about Suicide risk in older adults is higher than you think\nOlder adults are less likely to voice suicidal thoughts, but when they actually attempt it, the lethality rate is much higher than in young people. Furthermore, research has found that many older adults had seen a physician within a week to a month before they passed away. So \u0026ldquo;seeing a doctor\u0026rdquo; doesn\u0026rsquo;t mean they are \u0026ldquo;safe.\u0026quot; If an older adult has said things like \u0026ldquo;there\u0026rsquo;s no point in living\u0026rdquo; or \u0026ldquo;I\u0026rsquo;m a burden to everyone,\u0026rdquo; please tell their physician directly. Don\u0026rsquo;t assume they\u0026rsquo;re just making passing remarks.\nTreatment: Medications work, and exercise really works too Medications: Antidepressants are effective for older adults, but the dosage usually starts at less than half of a young adult\u0026rsquo;s dose and is titrated slowly. And you have to wait 6 to 12 weeks to see the full effect. This waiting period is when people are most likely to give up. Family support and encouragement are crucial—don\u0026rsquo;t let them stop the medication on their own. Exercise: This is something many people don\u0026rsquo;t know: research shows that for late-life depression, regular exercise can be just as effective as medication. It doesn\u0026rsquo;t have to be intense at first. Start with activities they can manage and enjoy, like a 15-minute walk every day. It\u0026rsquo;s even better if they can be active with others, because simply \u0026ldquo;having company\u0026rdquo; has its own antidepressant effect. A quick reminder: Lack of energy is itself a symptom of depression, so don\u0026rsquo;t force them by saying \u0026ldquo;you\u0026rsquo;re just lazy.\u0026rdquo; Set smaller goals. Aim for any movement first, then aim for more. Further reading: Do 80-Year-Olds Still Need to Exercise? (Full Article), Anosognosia in Dementia\nLet\u0026rsquo;s start with the bottom line: late-life depression often doesn\u0026rsquo;t look like \u0026ldquo;depression\u0026rdquo;—it presents more frequently as physical discomfort, lack of energy, and memory decline, so it\u0026rsquo;s easily missed and chalked up to \u0026ldquo;normal aging\u0026rdquo; or \u0026ldquo;dementia.\u0026rdquo; This is an important piece of background for the topic Do 80-Year-Olds Still Need to Exercise?: when an older adult becomes \u0026ldquo;detached from everything,\u0026rdquo; you first need to distinguish whether that is the peace of gerotranscendence or depression.\nClinical presentation: Atypical from early-onset depression Somatic complaints are often the chief complaint (masked depression): Fatigue, poor sleep, poor appetite, aches and pains all over. They rarely volunteer that \u0026ldquo;my mood is bad.\u0026rdquo; Depressive symptoms are present in 8 to 20% of community-dwelling older adults, and up to 37% of older adults in primary care settings. Many haven\u0026rsquo;t reached the threshold for a formal diagnosis but are already experiencing functional impact. (Seffinger Orthopedic Medicine 4e) Many older adults will deny \u0026ldquo;depression\u0026rdquo; but admit to other things: Ask if their mood is bad, they\u0026rsquo;ll say no. But ask if they feel hopeless, exhausted, disinterested in everything, or sleep poorly, and they\u0026rsquo;ll nod. So you have to ask about these specific symptoms directly, not just ask about mood. Emotional presentation is more \u0026ldquo;faint but persistent\u0026rdquo;: Unlike young people who might have obvious breakdowns or crying spells, their low mood is continuous and observable; it\u0026rsquo;s not fleeting. Differentiating from dementia There used to be a term called \u0026ldquo;pseudodementia,\u0026rdquo; referring to cognitive decline caused by depression that improves once the depression is treated. This term is now considered outdated, because the relationship between depression and cognition is much more complex than a \u0026ldquo;fake dementia that just needs curing\u0026rdquo;—some people\u0026rsquo;s cognitive deficits do not fully recover, and they might even progress to true dementia later on. (APA Geriatric Psychiatry 6e)\nThere is a practical clue for differentiation: if a memory test uses \u0026ldquo;contextual material\u0026rdquo; (like telling a short story and then asking for details), older adults with depression usually do fairly well, whereas those with neurodegenerative dementia perform noticeably worse. (Ibid.) Also, a quick reminder: when cognition is already very poor (e.g., MMSE ≤ 15), the accuracy of most depression screening tools drops. At this point, clinical judgment is more important than scores.\nThere is also a specific subtype called vascular depression: late-onset depression associated with cerebral small vessel disease. A Korean study found that about half of older adults meeting the criteria for major depression also met the criteria for vascular depression. (APA Geriatric Psychiatry 6e)\nScreening tools: Choosing the right scale for patients with dementia Geriatric Depression Scale (GDS): Commonly used, but it requires the patient to be able to answer questions reliably, so it is not suitable for older adults with moderate to severe dementia. Cornell Scale for Depression in Dementia (CSDD): 19 items, scored based on the caregiver\u0026rsquo;s observation of the patient over the past week, not relying on patient self-report. Therefore, it is especially suitable for older adults with comorbid dementia. Research shows it\u0026rsquo;s the only one that maintains accuracy in both \u0026ldquo;demented\u0026rdquo; and \u0026ldquo;cognitively normal\u0026rdquo; populations. (Masiero Geriatric Rehabilitation) Yale Single-Question Screen: When pressed for time, simply ask, \u0026ldquo;Do you often feel sad or depressed?\u0026rdquo; You can then follow up by asking if they feel like a burden to their family, to assess for suicidal ideation. (Poduri Geriatric Rehabilitation) Suicide: The clinic is a crucial line of defense The suicide risk in late-life depression is particularly alarming, and the pattern is different from young people:\nOlder adults are less likely to spontaneously verbalize suicidal thoughts. But once they attempt it, the lethality rate is very high: there is roughly 1 death for every 4 attempts, and they tend to use highly lethal methods. The crucial point: Many older adults who die by suicide had seen a physician within a week or a month before their death. In other words, primary care and PM\u0026amp;R clinics are actually vital touchpoints for suicide prevention—it\u0026rsquo;s not just psychiatry that needs to pay attention. (Ray Geriatric Rehabilitation Manual) Management: Careful prescribing, strong evidence for exercise A few older-adult-specific caveats regarding medications:\nSSRIs are first-line, but their fall risk is actually no lower than older tricyclic antidepressants. Switching to an SSRI does not mean the fall risk automatically drops; it still needs to be evaluated together. (Mitra Principles of Rehabilitation Medicine) Also, drugs like paroxetine increase the risk of hyponatremia in older adults. The suggested starting dose is only 1/2 to 1/3 of that for young adults, because hepatic and renal clearance slows down in older adults. Antidepressants take 6 to 12 weeks to show an effect. Patients are prone to giving up during this waiting period, so regular follow-ups for companionship and encouragement are necessary. (Seffinger) The evidence for exercise as a treatment is actually very solid, which is a great entry point for PM\u0026amp;R:\nA classic randomized controlled trial (Blumenthal 1999) found that when older adults with major depression underwent exercise training, although antidepressants worked faster initially, by week 16, the effect of exercise was just as good as medication. High-intensity resistance training is more effective than low-intensity (Singh 1997), and it simultaneously improves muscle strength, morale, and quality of life. Even for frail older adults who are over 85 or recently discharged, accumulating about 4 hours of activity per week (which can be broken down into 15-minute walks) can still reduce depression and loneliness. When prescribing exercise for older adults with depression, remember: fatigue and lack of energy are themselves depressive symptoms that will block exercise participation. So goals should be set very small and easily achievable. Aim for just getting started, choose activities they like, and try to arrange group sessions (social connection has an antidepressant effect in itself). Treat exercise as an adjunct to medication and psychotherapy, not a replacement right from the start. (McArdle Exercise Physiology; Brukner Sports Medicine) Distinct from depression in dementia You need to differentiate between two scenarios: one is primary depression presenting with cognitive complaints (what this piece is about), and the other is primary dementia where depression is a comorbid neuropsychiatric symptom (up to half will experience depression during the course of dementia, and it\u0026rsquo;s very common early on). The assessment tools (the latter uses Cornell) and treatment considerations for the two are different; don\u0026rsquo;t mix them up. Older adults with dementia saying \u0026ldquo;I\u0026rsquo;m perfectly fine\u0026rdquo; involves another mechanism; see Anosognosia in Dementia.\nFurther reading: Do 80-Year-Olds Still Need to Exercise? (Full Article)\n","permalink":"https://drpwchen.com/en/notes/geriatric-depression/","summary":"\u003cdiv class=\"note-ver note-ver-lay\"\u003e\u003cp\u003eLet\u0026rsquo;s start with the most important thing: \u003cmark\u003edepression in older adults often doesn\u0026rsquo;t look like \u0026ldquo;depression.\u0026quot;\u003c/mark\u003e They might not cry or say they\u0026rsquo;re sad. Instead, it turns into aches and pains all over, poor appetite, bad sleep, and a lack of energy for everything. And so it\u0026rsquo;s very easy for the whole family (sometimes even physicians) to write it off as \u0026ldquo;that\u0026rsquo;s just what happens when you get old,\u0026rdquo; and quietly miss it.\u003c/p\u003e","title":"Late-Life Depression: The Disease Easily Mistaken for \"Normal Aging\""},{"content":"First, the most important sentence: the harder you push someone to change, the more they will defend \u0026ldquo;not changing\u0026rdquo;; letting them state their own reasons for wanting to change is how change actually happens. This conversational method is called \u0026ldquo;motivational interviewing.\u0026rdquo; Healthcare professionals use it to talk to patients about quitting smoking, exercising, and controlling blood sugar, but it works just as well for persuading your parents to exercise or your partner to see a doctor.\nThis post is an extension of Do 80-Year-Olds Still Need to Exercise?, written for those of you who have tried to persuade a family member a hundred times, only to end up in a fight every time.\nWhy persuading them backfires Imagine someone constantly telling you, \u0026ldquo;You just need to sleep early, this isn\u0026rsquo;t working.\u0026rdquo; What\u0026rsquo;s your first reaction? Probably, \u0026ldquo;No I don\u0026rsquo;t, I have my own schedule.\u0026rdquo; When people are being persuaded, they automatically defend their current selves. If you\u0026rsquo;ve given all the reasons \u0026ldquo;to change,\u0026rdquo; they only have the reasons \u0026ldquo;not to change\u0026rdquo; left to say. And as they talk, they convince themselves even more that they don\u0026rsquo;t need to change.\nSo the direction needs to be reversed: lecture less, let them talk more, and catch that tiny fraction of \u0026ldquo;wanting to change\u0026rdquo; in their words.\nA different approach: three concrete steps Validate first, get curious second. Don\u0026rsquo;t point out the problem the moment you open your mouth. Genuinely validate what they\u0026rsquo;re already doing: \u0026ldquo;You walk to get groceries every day, no wonder your legs are still pretty strong.\u0026rdquo; Then use open questions to get them to talk more: \u0026ldquo;Is there anywhere you want to go or anything you want to do recently?\u0026rdquo; Reflect their words back to them. Whatever they say, repeat it back in your own words: \u0026ldquo;So you\u0026rsquo;re worried you might get hurt if you move around?\u0026rdquo; This makes them feel heard and willing to keep talking. Catching their feelings isn\u0026rsquo;t the same as agreeing with their conclusions, but arguing will only slam the door shut. Amplify the \u0026ldquo;want\u0026rdquo; signal when you hear it. When they say \u0026ldquo;I do want to move a bit\u0026rdquo; or \u0026ldquo;I can\u0026rsquo;t keep going on like this,\u0026rdquo; that is the most precious moment. Follow up by asking: \u0026ldquo;Oh? How so?\u0026rdquo; Let them flesh out the reasons themselves. The reasons they come up with are more powerful than you telling them a hundred times. A very useful question: the ruler\nAsk them: \u0026ldquo;On a scale of 0 to 10, how important is it to you to be able to walk to your granddaughter\u0026rsquo;s wedding?\u0026rdquo; If they say 4, ask, \u0026ldquo;Why is it a 4, and not a 0?\u0026rdquo; They\u0026rsquo;ll naturally talk about why they care. Never ask the reverse, \u0026ldquo;Why isn\u0026rsquo;t it a 10?\u0026rdquo; That will just force them to come up with a bunch of excuses for why they can\u0026rsquo;t do it. The direction is exactly the opposite.\nA sample conversation Scenario: An elder in their 80s feels walking every day is enough and doesn\u0026rsquo;t want to \u0026ldquo;exercise specifically.\u0026rdquo;\nElder: I\u0026rsquo;m in my 80s, what\u0026rsquo;s there to exercise for? Walking out the door a few times a day is plenty.\nFamily member: You walk a few times every day, no wonder you\u0026rsquo;re so spry. (Validate first) By the way, your granddaughter is getting married next year, didn\u0026rsquo;t you say you wanted to walk her down the aisle?\nElder: Well of course I have to do that.\nFamily member: You\u0026rsquo;ll have to stand for quite a while that day. Do you think your current leg strength will hold up for the whole day? (Leave the decision up to them)\nElder: \u0026hellip;Now that you mention it, maybe I do need to train my legs a bit more.\nNotice that the final sentence, \u0026ldquo;need to train my legs a bit more,\u0026rdquo; was said by them. Starting the conversation from here on how to train, versus starting from \u0026ldquo;you just need to go exercise,\u0026rdquo; are two entirely different conversations.\nFinally: they have the right to say no Even if you use all the right methods, the other person might still not want to change. Adults with the capacity to judge inherently have the right to decide their own lifestyle, including not exercising. We can continue to care and look for chances to talk again, but we can\u0026rsquo;t force or trick them. If you preserve the relationship, you preserve the chance to speak up next time.\nIf you want to know \u0026ldquo;whether they\u0026rsquo;re actually willing to change right now and what approach to take,\u0026rdquo; you can read this alongside the five stages of behavior change.\nFurther reading: Do 80-Year-Olds Still Need to Exercise? full article\nTo summarize in one sentence: the core of motivational interviewing isn\u0026rsquo;t \u0026ldquo;persuading the other person to change,\u0026rdquo; but \u0026ldquo;eliciting the person\u0026rsquo;s own reasons for wanting to change.\u0026rdquo; The harder you push, the more they will defend the status quo; conversely, let them state their own reasons for wanting to change, and change will happen. This is the conversational strategy for dealing with older adults who don\u0026rsquo;t want to exercise, as discussed in the post Do 80-Year-Olds Still Need to Exercise?.\nBelow, we\u0026rsquo;ll break down an interview into six steps.\nStep 1: Cultivating the right attitude Skills divorced from attitude turn into manipulation, so we must talk about attitude first. The attitude of motivational interviewing has four elements: partnership, acceptance, compassion, and empowerment.\nPartnership: Collaborating with the person. It\u0026rsquo;s like dancing together, not a tug-of-war. Acceptance: Catching their thoughts without judgment. Note that acceptance does not equal agreement; you can catch their feelings without endorsing their choices. Compassion: Genuinely starting from what is best for the person. Empowerment: Believing the person already possesses the capabilities and resources needed to change. Your role isn\u0026rsquo;t to \u0026ldquo;give them what they lack,\u0026rdquo; but to validate and help them leverage the abilities they already have, while respecting their right to autonomous choice. Empowerment is an \u0026ldquo;attitude.\u0026rdquo; \u0026ldquo;Eliciting\u0026rdquo; in Step 3 below is the concrete skill to practice this attitude.\nSource: Miller \u0026amp; Rollnick, Motivational Interviewing: Helping People Change and Grow, 4th ed. (2023) Ch.1.\nStep 2: The four tasks of an interview With the right attitude, an interview sequentially (though you can loop back) moves through four tasks, with each task answering a question:\nEngaging: Can we talk together? First, make them willing to talk to you. Focusing: What are we talking about? Identify the shared goal for this session. Evoking: Why do you want to change? Elicit their own reasons. Planning: How will you do it? Have them take the lead in setting concrete steps. The key is the order: trying to focus without first building rapport feels like an interrogation; trying to plan without eliciting motivation feels like coercion. Most failed patient education skips the first two steps and rushes straight to step four to write checklists and set schedules. And one sentence is worth remembering: a plan they haven\u0026rsquo;t nodded to isn\u0026rsquo;t a plan.\nSource: Miller \u0026amp; Rollnick 4e Ch.2, Ch.7.\nStep 3: How to listen and ask There are four fundamental skills used throughout the process: open-ended questions, affirmations, reflections, and summaries.\nOpen-ended questions: Ask questions that can\u0026rsquo;t be answered with \u0026ldquo;yes/no,\u0026rdquo; getting them to talk more. Affirmations: Genuinely affirm their efforts, especially their past successful experiences with change; this nurtures their confidence. Reflections: Repeat back the content and emotion you heard in your own words to check your understanding (\u0026ldquo;Do you mean\u0026hellip;?\u0026rdquo;). This is the most core skill; it makes them feel heard and willing to keep talking. Summaries: String together both sides of what they\u0026rsquo;ve said, helping them see their own ambivalence. Also used to wrap up and move to the next step. When you reach the \u0026ldquo;evoking\u0026rdquo; step, these skills aren\u0026rsquo;t used neutrally; they are used directionally to respond to and amplify their change talk.\nSource: Miller \u0026amp; Rollnick 4e Ch.4, Ch.6.\nStep 4: Hearing the signals for change When they start making change talk (like \u0026ldquo;I do want to move a bit\u0026rdquo; or \u0026ldquo;I can\u0026rsquo;t keep going on like this\u0026rdquo;), these are signals of change. Once you hear them, use the previous skills to reinforce them. These signals come in two layers:\nPreparatory layer (still brewing) Desire: \u0026ldquo;I want to get a bit healthier.\u0026rdquo; Ability: \u0026ldquo;I can probably do this.\u0026rdquo; Reasons: \u0026ldquo;If I don\u0026rsquo;t move, my knees will get stiffer.\u0026rdquo; Need: \u0026ldquo;I need to stand longer for my grandson\u0026rsquo;s wedding.\u0026rdquo; Mobilizing layer (getting moving) Commitment: \u0026ldquo;Okay, I\u0026rsquo;ll start next week.\u0026rdquo; Willing to try: \u0026ldquo;I can think about it.\u0026rdquo; Taking steps: \u0026ldquo;I already went for a walk yesterday.\u0026rdquo; Hearing the \u0026ldquo;preparatory layer\u0026rdquo; means they\u0026rsquo;re still brewing. Hearing the \u0026ldquo;mobilizing layer\u0026rdquo; means you can head toward \u0026ldquo;planning.\u0026rdquo;\nSource: Miller \u0026amp; Rollnick 4e Ch.6, Ch.10.\nStep 5: What to do when you\u0026rsquo;re stuck When they remain stuck or keep arguing back, first distinguish which kind of stuck it is, because the solutions are opposites:\nOne kind is \u0026ldquo;they are still ambivalent.\u0026rdquo; They say \u0026ldquo;I don\u0026rsquo;t want to, I can\u0026rsquo;t do it.\u0026rdquo; This is half of normal ambivalence. The approach is to catch it using listening and reflection. Don\u0026rsquo;t argue, don\u0026rsquo;t force it, and it will loosen up on its own. The other kind is \u0026ldquo;your relationship has hit a snag.\u0026rdquo; They get defensive or feel misunderstood. This isn\u0026rsquo;t an issue with \u0026ldquo;change,\u0026rdquo; it\u0026rsquo;s an issue with \u0026ldquo;you.\u0026rdquo; The approach is to step back and rebuild rapport, instead of continuing to preach the logic of changing. Getting the target wrong will only make things stiffer: constantly repairing the relationship with someone who is \u0026ldquo;still ambivalent\u0026rdquo; is unnecessary, and constantly lecturing someone when \u0026ldquo;the relationship has hit a snag\u0026rdquo; will only make things worse.\nSource: Miller \u0026amp; Rollnick 4e Ch.14.\nStep 6: Using a ruler for a little nudge A very useful skill is turning abstract motivation into a number you can talk about: \u0026ldquo;On a scale of 0 to 10, how important is exercise to you?\u0026rdquo;\nSuppose they say \u0026ldquo;4.\u0026rdquo; The next thing to ask is, \u0026ldquo;Why is it a 4, and not a 0?\u0026rdquo; This forces them to articulate the reasons why they \u0026ldquo;already have 4 points\u0026rdquo;—these are all signals of change.\nA common mistake is asking the reverse, \u0026ldquo;Why isn\u0026rsquo;t it an 8 or 10?\u0026rdquo; That will just force them to come up with a bunch of \u0026ldquo;reasons why they can\u0026rsquo;t,\u0026rdquo; sending you in the exact opposite direction. You can also ask about confidence: \u0026ldquo;How confident are you that you can do it?\u0026rdquo; If their confidence score is very low, first ask, \u0026ldquo;What could help bump that score up a bit?\u0026rdquo; before moving forward.\nSource: Miller \u0026amp; Rollnick 4e Ch.6, Fig 6.1.\nA verbatim clinical demonstration Scenario: An elder in their 80s who walks every day but doesn\u0026rsquo;t want to \u0026ldquo;exercise specifically.\u0026rdquo; (Dialogue adapted for demonstration).\nElder: I\u0026rsquo;m in my 80s, what\u0026rsquo;s there to exercise for? Walking out the door a few times a day is plenty.\nPhysician: You walk a few times every day, no wonder you look so spry, not like you\u0026rsquo;re in your 80s at all. (Affirmation) Walking is really good for you. I\u0026rsquo;m curious, besides walking, is there anywhere else you want to go or anything you want to do recently? (Open-ended question)\nElder: Not really\u0026hellip; though my granddaughter is getting married next year, I\u0026rsquo;d like to be able to stand a bit longer to see her get married.\nPhysician: You want to stand properly and be with your granddaughter throughout that day. (Reflection) That sounds quite important to you.\nElder: Well of course.\nPhysician: If we use a scale of 0 to 10, how important is it to you that \u0026ldquo;your legs can hold up for that day\u0026rdquo;? (Ruler)\nElder: A 10, obviously.\nPhysician: A 10. Do you feel that relying just on your current walking will be enough to hold up? Or do you want to train just a bit more? (Evoking change signals, leaving the autonomy up to them)\nElder: \u0026hellip;Now that you mention it, maybe I do need to train my legs a bit more.\nAt this point, the elder themselves stated \u0026ldquo;need to train my legs a bit more\u0026rdquo;—these are their words, not shoved onto them by the physician. Only then do you have ground to discuss how to train.\nDo not forget: patients have the right to refuse The spirit of motivational interviewing respects the other person\u0026rsquo;s autonomy from the start. A person with capacity inherently has the right to refuse. Refusal doesn\u0026rsquo;t equal denying their illness, nor does it imply suicidal ideation. In a rehabilitation setting, refusal can be very subtle (like not doing home exercises). These individuals are often labeled \u0026ldquo;non-compliant,\u0026rdquo; ignoring their right to bodily autonomy. In a facility, being \u0026ldquo;non-compliant\u0026rdquo; is sometimes the only way an elder can still exercise control over their life. We can try hard to encourage and persuade, but we cannot coerce or deceive.\nSource: Lewis, Geriatric Rehabilitation Manual 4e Ch.17 \u0026quot;The Right to Refuse\u0026quot;.\nAs for how to judge which stage of change the person is in, see the five stages of behavior change.\nFurther reading: Do 80-Year-Olds Still Need to Exercise? full article\n","permalink":"https://drpwchen.com/en/notes/motivational-interviewing/","summary":"\u003cdiv class=\"note-ver note-ver-lay\"\u003e\u003cp\u003eFirst, the most important sentence: \u003cmark\u003ethe harder you push someone to change, the more they will defend \u0026ldquo;not changing\u0026rdquo;; letting them state their own reasons for wanting to change is how change actually happens.\u003c/mark\u003e This conversational method is called \u0026ldquo;motivational interviewing.\u0026rdquo; Healthcare professionals use it to talk to patients about quitting smoking, exercising, and controlling blood sugar, but it works just as well for persuading your parents to exercise or your partner to see a doctor.\u003c/p\u003e","title":"Motivational Interviewing: How to Talk to People Who Don't Want to Change"},{"content":"Let\u0026rsquo;s start with the most important point: telling people to exercise rarely works, not because you haven\u0026rsquo;t said enough, but because you\u0026rsquo;re talking to the wrong \u0026ldquo;stage.\u0026quot; Psychology research shows that when someone changes a habit (starting to exercise, quitting smoking, or controlling their diet), they go through five stages, and what works at each stage is completely different. Throwing an exercise routine at someone who hasn\u0026rsquo;t even considered moving is like pitching a loan to someone who isn\u0026rsquo;t looking to buy a car. It\u0026rsquo;s bound to fail.\nThis is a follow-up to Do 80-Year-Olds Still Need to Exercise?, written for those of you exhausted from trying to talk your family into moving.\nFigure out where they are first Take \u0026ldquo;regular exercise\u0026rdquo; as an example. The five stages look like this:\nHaven\u0026rsquo;t thought about it: \u0026ldquo;I\u0026rsquo;m in my 80s, why would I exercise?\u0026rdquo; No intention of changing at all. Thinking about it: \u0026ldquo;I mean, I\u0026rsquo;ve been meaning to move around a bit\u0026hellip;\u0026rdquo; The thought is there, but no action yet. Getting ready: They\u0026rsquo;re asking questions, bought shoes, looking into classes, and want to start soon. Taking action: They\u0026rsquo;ve actually started exercising regularly, but for less than six months. They could quit at any time. Making it a habit: They\u0026rsquo;ve kept it up for over six months. Exercise is now part of their life. Key Concept\nThe things we love doing most—making routines, setting plans, getting them to commit—are actually tools meant for steps 3 and 4. But most of the family members causing you headaches are still at steps 1 or 2. When the tool doesn\u0026rsquo;t match the stage, talking more is just wasted effort, and it hurts the relationship.\nSay different things at each step They haven\u0026rsquo;t thought about it (Step 1): The only goal here is to get them to \u0026ldquo;start thinking.\u0026rdquo; You can chat about the benefits of exercise and the risks of being sedentary, but keep the tone as sharing, not commanding. If they say they don\u0026rsquo;t have time, tell them walking can be broken down into 10-minute chunks. Get them to think about \u0026ldquo;what they could do if their legs were stronger,\u0026rdquo; like going grocery shopping on their own or attending their granddaughter\u0026rsquo;s wedding. Do not bring up an exercise routine here. They are thinking about it (Step 2): Turn \u0026ldquo;thinking\u0026rdquo; into \u0026ldquo;daring.\u0026rdquo; Brainstorm together to remove their concerns (fear of falling, fear of getting tired). Emphasize that even the smallest step counts: \u0026ldquo;Just walk with me to the end of the alley for now.\u0026rdquo; They are getting ready (Step 3): Now it\u0026rsquo;s time to make a plan. Together, set a goal so small it can\u0026rsquo;t fail, and be as specific as possible: \u0026ldquo;Walk with mom for 15 minutes every day after dinner.\u0026rdquo; They are taking action (Step 4): The focus is keeping them going. Praise specific progress, switch up activities so they don\u0026rsquo;t get bored, and find them a workout buddy—that works best. They\u0026rsquo;ve made it a habit (Step 5): Give them occasional encouragement and exercise with them. That\u0026rsquo;s enough. Relapse is Normal\nStopping or slipping backward is a normal part of the change process, not a total failure. Don\u0026rsquo;t lecture them with \u0026ldquo;I knew you\u0026rsquo;d quit halfway.\u0026rdquo; Just pick up from whatever step they fell back to.\nWhy small goals matter so much Because the \u0026ldquo;confidence that I can do this\u0026rdquo; grows slowly over time. If someone experiences failure when their confidence is still fragile, they will retreat entirely, which is worse than never starting. That\u0026rsquo;s why starting goals need to be so small they\u0026rsquo;re almost impossible to fail. Not \u0026ldquo;exercise three times a week for 30 minutes each time,\u0026rdquo; but \u0026ldquo;walk to the end of the alley with me today.\u0026rdquo; Succeed once, gain a bit of confidence, and slowly add from there.\nFor exactly what words to use when starting the conversation, and how to handle rejection, see the piece on motivational interviewing.\nFurther reading: Full article: Do 80-Year-Olds Still Need to Exercise?\nThe bottom line first: \u0026ldquo;Telling people to exercise\u0026rdquo; rarely works, not because you haven\u0026rsquo;t said enough, but because you\u0026rsquo;re addressing the wrong stage. The Transtheoretical Model breaks the process of changing a behavior down into five stages, and what you should do at each stage is entirely different. This is the framework behind why patient education so often turns into preachy nagging, as mentioned in Do 80-Year-Olds Still Need to Exercise?.\nThe Five Stages Using \u0026ldquo;regular exercise\u0026rdquo; as an example, the boundaries between the five stages primarily look at intention (the earlier stages) and action (the later stages):\nStage Definition Precontemplation No intention to start regular exercise within the next 6 months Contemplation Intends to start within the next 6 months Preparation Intends to start within the next 30 days, usually has taken some specific steps (bought shoes, asked at the clinic) Action Has been exercising regularly, but for less than 6 months Maintenance Has been exercising regularly for over 6 months Source: ACSM's Guidelines for Exercise Testing and Prescription 12e (2025) Ch.12; Magee, Pathology \u0026amp; Intervention in MSK Rehab 2e Ch.1.\nThe Key: Assess the Stage First, Then Decide What to Say The older patient saying, \u0026ldquo;I\u0026rsquo;m in my 80s, why would I exercise?\u0026rdquo; is in precontemplation: they have no intention of changing. Meanwhile, the things we\u0026rsquo;re most used to doing—drafting exercise plans, writing routines, signing contracts—are actually tools meant for the preparation to action stages. If the tool doesn\u0026rsquo;t match the stage, talking more is just wasted effort.\nLet\u0026rsquo;s clear up a common misunderstanding here: which stage is \u0026ldquo;explaining the consequences of not exercising and the benefits of exercising\u0026rdquo; actually for? The answer is precontemplation. Discussing consequences and benefits with someone who has no intention of changing is exactly one of the methods used to push them from precontemplation to contemplation. So the point isn\u0026rsquo;t \u0026ldquo;don\u0026rsquo;t talk about consequences,\u0026rdquo; but rather \u0026ldquo;talk about consequences to raise awareness of the problem, not as a command demanding they start exercising tomorrow.\u0026rdquo;\nWhat to Do at Each Stage (This is Crucial) Below are the intervention strategies corresponding to the transitions between each stage, adapted from ACSM Box 12.1.\nPrecontemplation → Contemplation The goal is to raise awareness and loosen the \u0026ldquo;this has nothing to do with me\u0026rdquo; mindset:\nProvide information on the benefits of regular exercise. Address their perceived barriers. For example, if they say they \u0026ldquo;have no time,\u0026rdquo; tell them \u0026ldquo;exercise can be broken down into shorter, accumulated bouts; you don\u0026rsquo;t have to do it all at once.\u0026rdquo; (That\u0026rsquo;s right, handling \u0026ldquo;no time\u0026rdquo; is for this stage, not later.) Ask them to imagine what it would feel like to be active, and emphasize short-term, easily achievable benefits: sleeping better, feeling less stiff, having more energy. Explore who is affected by their lack of exercise, such as their spouse or children. Contemplation → Preparation They\u0026rsquo;re starting to waver. This stage is about turning \u0026ldquo;wanting to\u0026rdquo; into \u0026ldquo;daring to\u0026rdquo;:\nWork together to find specific solutions to overcome barriers to exercise. Assess their confidence (self-efficacy), and start using techniques to build it up. Emphasize that even a very small step counts. Encourage them to view themselves as a \u0026ldquo;healthy, active person.\u0026rdquo; Preparation → Action Now it\u0026rsquo;s finally time to \u0026ldquo;make a plan\u0026rdquo;:\nDraft an exercise plan together that fits their goals, using a goal-setting worksheet or contract to turn it into a formal commitment. Use rewards to reinforce every step they take. Teach them self-monitoring, such as logging exercise time and distance. Continue discussing how to overcome whatever hurdles they feel are in their way. Action → Maintenance They are already moving. This stage is about preventing them from quitting halfway:\nProvide positive, specific feedback on their progress. Look for different types of activities together to prevent burnout. Encourage them to find workout buddies, or even lead others in being active. Discuss what rewards can be used to maintain motivation. Source: ACSM 12e Ch.12, Box 12.1 \u0026quot;Example Strategies to Facilitate Stage Transitions\u0026quot;.\nOne important reminder: The stages are not a one-way street. A person might slip backward during their attempts (reducing or stopping exercise), but this doesn\u0026rsquo;t mean everything has to start over from scratch, back to precontemplation. They can pick back up from any stage, and our role is to help them positively restart.\nThe Three Underlying Mechanisms Besides the five stages, the Transtheoretical Model has three very practical concepts that help us understand \u0026ldquo;why\u0026rdquo; we do it this way.\n1. Ten Processes of Change: \u0026ldquo;Thoughts\u0026rdquo; Early, \u0026ldquo;Behaviors\u0026rdquo; Late To push someone forward, there are ten specific methods (processes of change), broadly divided into two categories. The earlier stages (precontemplation to preparation) primarily use \u0026ldquo;cognitive/emotional\u0026rdquo; methods, while the later stages (preparation to maintenance) primarily use \u0026ldquo;behavioral\u0026rdquo; methods.\nType Method Plain Language Cognitive/Emotional (Early) Consciousness Raising Letting them know about \u0026ldquo;not exercising\u0026rdquo; and its consequences Cognitive/Emotional Dramatic Relief Evoking an emotional response to those consequences (worry, regret) Cognitive/Emotional Environmental Reevaluation Thinking about how this affects the people and environment around them Cognitive/Emotional Social Liberation Noticing opportunities in society that support change (community trails, health trends) Cognitive/Emotional Self-Reevaluation Connecting \u0026ldquo;who I am\u0026rdquo; to this behavior (imagining the active vs. inactive self) Behavioral (Late) Self-Liberation Making a commitment to change (setting goals, going public) Behavioral Reinforcement Management Using rewards to reinforce each achievement Behavioral Helping Relationships Building a support system (family, friends, peers) Behavioral Counterconditioning Substituting positive behaviors for old habits Behavioral Stimulus Control Managing the environment, avoiding situations that encourage inactivity This explains why constantly \u0026ldquo;drafting routines\u0026rdquo; (a behavioral method) for someone in precontemplation doesn\u0026rsquo;t work—they are still in the stage where they need to \u0026ldquo;loosen their thoughts.\u0026rdquo;\n2. The Scale of Pros and Cons: Decisional Balance Decisional balance refers to the tug-of-war in someone\u0026rsquo;s mind between the \u0026ldquo;pros of changing\u0026rdquo; and the \u0026ldquo;cons/hassles of changing.\u0026rdquo; This scale tips as the stages progress:\nPrecontemplation: Cons \u0026gt; Pros. They feel the hassle and effort of exercising outweigh the benefits, so they don\u0026rsquo;t bother moving. Contemplation: The two sides draw closer. Preparation: Pros and Cons are roughly equal. Action, Maintenance: Pros \u0026gt; Cons. So what patient education should do early on is actually help them add weight to the \u0026ldquo;pros\u0026rdquo; side and dismantle the concerns on the \u0026ldquo;cons\u0026rdquo; side (like \u0026ldquo;no time\u0026rdquo; or \u0026ldquo;fear of injury\u0026rdquo;). Only then will the scale slowly tip toward change.\n3. Confidence Grows Along the Way: Self-Efficacy Self-efficacy (the confidence that one can do it) is lowest in precontemplation and highest in maintenance, increasing steadily along the way. This is also why the transition from \u0026ldquo;contemplation to preparation\u0026rdquo; specifically emphasizes building confidence early. Confidence is still fragile here; if they encounter failure before their confidence is solid, it will be crushed, causing them to fall back to an earlier stage. That\u0026rsquo;s why you have to start with goals so small they\u0026rsquo;re almost impossible to fail.\nBack to the 80-Year-Old Patient He\u0026rsquo;s in precontemplation. So the right approach isn\u0026rsquo;t forcing a workout routine on him, but using precontemplation methods first: validate his habit of walking every day, get him to think about what else he wants to do, and gently dismantle concerns like \u0026ldquo;no time\u0026rdquo; or \u0026ldquo;fear of injury,\u0026rdquo; making him willing to take a step toward \u0026ldquo;contemplation\u0026rdquo; on his own. As for how exactly to have that conversation, you can check out my notes on motivational interviewing.\nFurther reading: Full article: Do 80-Year-Olds Still Need to Exercise?\n","permalink":"https://drpwchen.com/en/notes/stages-of-change/","summary":"\u003cdiv class=\"note-ver note-ver-lay\"\u003e\u003cp\u003eLet\u0026rsquo;s start with the most important point: \u003cmark\u003etelling people to exercise rarely works, not because you haven\u0026rsquo;t said enough, but because you\u0026rsquo;re talking to the wrong \u0026ldquo;stage.\u0026quot;\u003c/mark\u003e Psychology research shows that when someone changes a habit (starting to exercise, quitting smoking, or controlling their diet), they go through five stages, and \u003cstrong\u003ewhat works at each stage is completely different\u003c/strong\u003e. Throwing an exercise routine at someone who hasn\u0026rsquo;t even considered moving is like pitching a loan to someone who isn\u0026rsquo;t looking to buy a car. It\u0026rsquo;s bound to fail.\u003c/p\u003e","title":"The Five Stages of Behavior Change: Why \"Telling People to Exercise\" Rarely Works"},{"content":"When I shared my critical appraisal tool a while ago (to have Claude help with critical appraisal and summarizing content), a friend gave me a very honest reply: the tool is nice, but having to dig up the PDF yourself every single time is actually the most annoying part.\nIt really is. To let AI read papers for you, you first need the full text. And when it comes to getting the full text, what usually gets you stuck isn\u0026rsquo;t the AI—it\u0026rsquo;s permissions, publishers, and the library.\nSo the last piece of The Paper Trilogy, and the most painful one, is finally filled today: paper-fetch (open source under MIT). Give it a DOI, and it will walk the whole route itself to grab the full-text PDF.\nStage Tool What it does Discover learning radar paper-radar Feed new papers via RSS/PubMed, sort by interest Download paper-fetch DOI → full-text PDF Appraise paper-review-and-digest Critical appraisal, content summary —\nHow does it work? A ladder from cheap to troublesome The whole design comes down to one sentence: take the cheapest, most legitimate route first, and only drop down when it fails.\nTier 1: open access Unpaywall, Semantic Scholar, PMC/Europe PMC, and the citation_pdf_url meta tag hidden in the article\u0026rsquo;s webpage (which is exactly what Google Scholar uses to index PDFs). This tier requires zero API keys and works out of the box; you just need to put your email in the config file. For those without library resources, I\u0026rsquo;ve hooked up every source I could.\nTier 2: Official publisher text-mining APIs Elsevier, Wiley, and Springer all have APIs officially open for text mining. You just go apply for a key yourself; it\u0026rsquo;s a completely permitted channel. This tier has absolutely nothing to do with piracy—people just rarely know it exists.\nTier 3: Your own hospital library\u0026rsquo;s off-campus connection Log in with your own account and grab the journals your hospital already subscribes to. It simply automates the string of clicks you\u0026rsquo;d normally do by hand, rather than bypassing paywalls.\nTier 4: Surrender, but surrender usefully If everything fails, it will print out the library\u0026rsquo;s SFX/OpenURL link for you to click manually, instead of just throwing an error and calling it a day.\nNo Sci-Hub, no piracy routes. Every tier is a path you\u0026rsquo;re already entitled to walk.\n—\nWhat took the most time? Figuring out every publisher\u0026rsquo;s temper This is what I feel is the most shareable part of the whole project. Turning a DOI into a PDF sounds like one line of code, but in reality, every publisher does it differently, and there\u0026rsquo;s no documentation to check. You just have to bash your head against it paper by paper. I\u0026rsquo;ve currently figured out and validated against real articles over 20 different routes, which converge into four shapes.\nShape 1: URL templates The ones with rules to follow are the happiest; you just construct the PDF URL directly from the DOI. Wiley, Springer/BMC, NEJM, Sage, Taylor \u0026amp; Francis, AJR, Radiology, and World Scientific all fall into this category.\nShape 2: Reading citation_pdf_url When you meet a new publisher, try this one first. Many websites don\u0026rsquo;t have rules for DOI-to-PDF, but they\u0026rsquo;ll honestly write a \u0026lt;meta name=\u0026quot;citation_pdf_url\u0026quot;\u0026gt; right in the article page\u0026rsquo;s HTML, telling you directly where the PDF is (because this is how Google Scholar indexes them). Just resolve the DOI to the article page, read that meta tag, and fetch it with the Referer. Absolutely zero reverse engineering needed. This is how I got JAMA, Oxford, Nature, and Pediatrics.\nShape 3: \u0026ldquo;Headed\u0026rdquo; browsers required It\u0026rsquo;s still reading the meta tag, but Cloudflare will block it. There\u0026rsquo;s something I misjudged here at first: I originally wrote in the documentation that BMJ was a \u0026ldquo;hard WAF block, dead end,\u0026rdquo; only to realize later that it only blocks headless browsers. I actually opened a browser with a visible screen, honestly navigated over, and it passed on the first try. AJNR and J Nucl Med were saved by this exact same trick.\nA conclusion of certain death is worth re-verifying every once in a while.\nShape 4: Multi-step signed URLs Platforms like LWW/Ovid won\u0026rsquo;t give you a fixed URL. PDF links are issued for one-time use, and you have to walk through a string of pages in order to get them. This type is the most annoying, but it\u0026rsquo;s still passable.\n—\nWhen it fails to fetch, whose fault is it really? There\u0026rsquo;s another really punishing trap: an article you don\u0026rsquo;t subscribe to will make a perfectly good route return a page of HTML or a 403, which looks exactly like the code is broken. So you go running to fix something that isn\u0026rsquo;t broken at all.\nSo I added a holdings.py layer to the tool: it saves the library\u0026rsquo;s A–Z e-journal list (journal, platform, covered years) as a local lookup table. Then, for every paper, it uses the DOI to grab the ISSN and year from CrossRef, and one look tells you whether you actually have access to this paper. Confirm permissions first, then go back to judge whether the route is broken.\nTwo practical details:\nCoverage is journal-by-journal and year-by-year. The library might have only subscribed to a single issue of a journal in the 1990s, or it might not include online first, so \u0026ldquo;we subscribe to this one\u0026rdquo; isn\u0026rsquo;t nearly enough. \u0026ldquo;Not in the list\u0026rdquo; does not equal \u0026ldquo;no access.\u0026rdquo; JAMA isn\u0026rsquo;t in our e-journal list at all (it\u0026rsquo;s hung at the database layer), but a proxy test actually fetches it. So when there\u0026rsquo;s no data found, I just warn and try anyway. Every library\u0026rsquo;s A–Z page looks different, so I didn\u0026rsquo;t include a scraper; I just provided the field specs for the data table. You can scrape it yourself, or just ask the library directly for an export file—either works.\n—\nTo be honest, it\u0026rsquo;s not ready to use out of the box I want to be clear about this, so people don\u0026rsquo;t clone it with expectations only to be disappointed:\nYou have to put your own hospital library\u0026rsquo;s endpoints in the config (link resolver, off-campus authentication portal, proxy host). These aren\u0026rsquo;t secrets; they\u0026rsquo;re public information for your library. You have to apply for a few publisher API keys (free, but you have to fill out forms). I left the login() in the library proxy tier blank. Because every hospital\u0026rsquo;s login flow is different (EZproxy, OpenAthens/Shibboleth, VPN, and self-built portals are the four major families), you really can only wire this part up yourself. But this is exactly what makes this era fun There\u0026rsquo;s an AGENTS.md in the repo, which is an instruction manual written specifically for AI to read: what this tool is, how to help the user deploy it, how to verify it post-deployment, and what the red lines are (no faking other institutions\u0026rsquo; endpoints, no hardcoding credentials in configs, no removing rate limits for mass downloads, no adding Sci-Hub routes). The docstrings in the code are also written to \u0026ldquo;teach you the method\u0026rdquo; rather than just \u0026ldquo;make it run.\u0026rdquo;\nSo you don\u0026rsquo;t need to know how to code. Toss the repo to Claude and tell him, \u0026ldquo;help me hook this up to our hospital library,\u0026rdquo; and he\u0026rsquo;ll read AGENTS.md, ask you for endpoints, walk you through devtools to check the login flow, and fill out login(). That\u0026rsquo;s exactly how I wrote it with him myself.\n—\nA red line: don\u0026rsquo;t mass scrape in parallel The library tier is strictly one by one, waiting 15 seconds between each paper.\nThis isn\u0026rsquo;t me being pedantic. Once publishers detect systematic mass downloads, they block the IP for the entire hospital, hurting all your colleagues in the whole hospital. The rate limiting in the tool is to protect this shared resource, so please don\u0026rsquo;t remove it.\n—\nTo my colleagues at Hualien Tzu Chi Hospital The Tzu Chi version (endpoints filled in, ready to run) is another private repo. If you want to try it out, DM me your GitHub email and I\u0026rsquo;ll add you.\nFrom discovery, to download, to critical appraisal, this pipeline is finally cleared all the way through. If I\u0026rsquo;ve misunderstood anything here, corrections are always welcome~\n—\n📍 Where you are on this path 1. Getting started 2. Talking to agents 4. Picking tools: the AI toolbox 5. Using a single toolyou are here Want to see how the AI workflow posts connect? → 📊 AI Content Map\n","permalink":"https://drpwchen.com/en/posts/paper-fetch/","summary":"\u003cp\u003eWhen I shared my \u003ca href=\"/posts/paper-tools/\"\u003ecritical appraisal tool\u003c/a\u003e a while ago (to have Claude help with critical appraisal and summarizing content), a friend gave me a very honest reply: the tool is nice, but having to dig up the PDF yourself every single time is actually the most annoying part.\u003c/p\u003e\n\u003cp\u003eIt really is. \u003cstrong\u003eTo let AI read papers for you, you first need the full text.\u003c/strong\u003e And when it comes to getting the full text, what usually gets you stuck isn\u0026rsquo;t the AI—it\u0026rsquo;s permissions, publishers, and the library.\u003c/p\u003e","title":"The last piece of The Paper Trilogy: paper-fetch. Give it a DOI, and it fetches the full text itself"},{"content":"Introduction: Why official scores aren\u0026rsquo;t enough My workflow for turning recorded lectures into notes goes in a straight line: transcript → matching slides → final summary.\nThe foundation of this line is automatic speech recognition (ASR). However much it mishears, every subsequent layer of notes will be just as wrong. Originally, I was using OpenAI\u0026rsquo;s Whisper large-v3.\nThe starting point for all this was actually me scrolling on my phone and seeing MediaTek Research announce their Taiwanese model, Breeze-ASR-26. A Taiwanese model is intriguing enough on its own, but clicking through, I learned they had already released Breeze-ASR-25 last year. Fine-tuned from Whisper-large-v2, it was optimized specifically for Taiwanese Mandarin and Mandarin-English code-switching, and open-sourced under Apache 2.0. Medical lectures happen to be ground zero for Mandarin-English code-switching. I had somehow missed this for a whole year.\nSo I was facing two models at once, and their official data was completely asymmetrical.\nBreeze-ASR-25 provided a full report card, with word error rate (WER, lower is better):\nDataset Breeze-ASR-25 Whisper-large-v3 Whisper-large-v2 CSZS-zh-en (Mandarin-English code-switching) 13.01 26.43 29.49 ASCEND-MIX (Mandarin-English code-switching) 16.38 25.13 21.01 ASCEND-ZH (Mandarin) 16.04 17.41 17.49 CommonVoice16-zh-TW (Taiwanese Mandarin) 7.97 8.95 9.84 ML-lecture-2021-long (Long audio lectures) 4.98 6.41 6.13 (The official columns say WLV3-Auto / WLV2-Auto, meaning Whisper with automatic language detection turned on.)\nIt even beat the large-v3 I was using at the time, and the two code-switching rows were just overwhelming. I have no need to prove this part again.\nAnd Breeze-ASR-26? It only had one score for Taiwanese—but that one was solid. The official benchmark compared its Taiwanese character error rate (CER, lower is better) against four systems:\nSystem Taiwanese CER Breeze-ASR-26 30.13 MOE Taiwanese Romanization Input 30.70 Yating Transcript 32.11 Google Gemini 3 Flash 32.52 Breeze-ASR-25 49.99 It beat Gemini 3 Flash on Taiwanese, and it beat Yating. This is real capability; it shouldn\u0026rsquo;t be ignored.\nBut its report card ended right there:\nNo Mandarin benchmark No English benchmark No code-switching benchmark No timestamp/alignment data at all In other words, aside from Taiwanese, the official docs didn\u0026rsquo;t say a word about its performance in any other scenario. Yet it was fine-tuned from the very same Whisper family; it\u0026rsquo;s a sibling to 25. So is it \u0026ldquo;25 plus Taiwanese,\u0026rdquo; or did it \u0026ldquo;sacrifice other things for Taiwanese\u0026rdquo;? Nobody knew, because nobody had tested it.\n(Let\u0026rsquo;s be clear upfront: it never claimed to have capabilities beyond Taiwanese, so what follows isn\u0026rsquo;t a teardown. It\u0026rsquo;s just filling in the pieces the official docs left out.)\nThis is why I had to do it myself. Three questions, and the official benchmark couldn\u0026rsquo;t answer a single one:\nCan it catch my domain terminology? The official test used everyday conversational corpora like ASCEND and CommonVoice, not physical medicine and rehabilitation (PM\u0026amp;R) lectures stuffed with nucleus pulposus, piriformis, and spondylolisthesis. Do the timestamps align with the slides? My notes rely on timestamps to paste every sentence onto its corresponding slide. The transcript can be as accurate as you want, but if it can\u0026rsquo;t segment paragraphs, it\u0026rsquo;s useless. And neither model card mentioned this. What happens when you take that Taiwanese model into non-Taiwanese scenarios? They didn\u0026rsquo;t test it, so I did. An official benchmark is their exam. It tests what they care about, not what you care about—and the things they didn\u0026rsquo;t test are usually exactly what will break your system.\nMethods If there\u0026rsquo;s no gold standard, build your own yardstick The ideal reference standard is a human-refined transcript. I don\u0026rsquo;t have one, and I didn\u0026rsquo;t want to handcraft one just for testing. So I switched to two yardsticks that can be computed programmatically.\nYardstick 1: Domain vocabulary glossary (measuring vocabulary quality)\nAutomatically extracted over 180,000 English terms from hundreds of physical medicine and rehabilitation (PM\u0026amp;R) textbooks (keeping any word that appeared more than three times in these books). Compared each model\u0026rsquo;s output against the glossary to calculate two numbers: capture (how many real, existing terms it caught) and garbage (how many fake words it generated that aren\u0026rsquo;t in the glossary). The two numbers must be looked at together: a model that completely fails to hear any English would have a perfect precision of 100%, but it wouldn\u0026rsquo;t have captured anything. This yardstick doesn\u0026rsquo;t measure \u0026ldquo;medical term accuracy,\u0026rdquo; but something more fundamental: does the word this model spit out actually exist in the physical medicine and rehabilitation (PM\u0026amp;R) literature, or did it just make it up? Invented words like motibra, grutius, or idioma are instantly exposed when checked against the glossary.\nYardstick 2: Paragraph granularity (measuring timestamp usability)\nSlides change roughly every 1 to 2 minutes, so the transcript must be chopped finely enough to match them. Threshold: At least 10 segments per minute, with a median segment gap of no more than 8 seconds. This yardstick later weeded out one model, and it was a problem that only this yardstick could catch. A model must pass both checks. If you only measure vocabulary, you\u0026rsquo;ll end up putting a model into your pipeline that \u0026ldquo;hears every word right, but smears the whole paragraph together.\u0026rdquo;\nTesting discipline Three rules, all learned the hard way:\nn ≥ 3, test variables separately. Single-sample measurements suffer from three biases simultaneously: instrumental error, confirmation bias, and the argument from silence where \u0026ldquo;not documented\u0026rdquo; is treated as \u0026ldquo;model can\u0026rsquo;t do it.\u0026rdquo; In my first round, I only used one audio clip to test the waters, and all three of my conclusions were later overturned (including \u0026ldquo;Breeze is twice as slow,\u0026rdquo; which was purely an instrumental error from loading two models into the same process and having them fight for memory on an 8GB GPU). This is exactly the same pitfall you have to watch out for when reading a diagnostic study in clinical practice. One model, one process. Following from the above, this is the source of instrumental error, and a hard limit of an 8GB GPU. Leave the scoring to code, not the model. If you let a large language model (LLM) pick its own examples to compare, what it notices will naturally skew toward supporting the new model, bringing confirmation bias right along with it. Full-population statistics must be hardcoded into the scripts. Corpora 15 clips × 8 minutes each (6 classroom lectures + 9 case discussions), plus 6 English lectures; the retest for paragraph granularity was 4 clips. All were recordings of actual physical medicine and rehabilitation (PM\u0026amp;R) lectures, not read-aloud speech corpora.\nResults 1. The model: Breeze-ASR-25 wins outright, and it\u0026rsquo;s faster Setting Real term capture Fake words Precision Segments / minute GPU time / hr of audio Whisper large-v3 (old default) 435 51 89.2% 24.4 3.4 min Breeze-ASR-25 (model swap only) 587 29 94.5% 18.2 3.4 min Breeze-ASR-25 + tuned settings (new default) 649 37 93.7% 19.4 3.0 min Breeze-ASR-26 (Taiwanese ver., same settings, for comparison) 182 8 81.6% 2.2 3.0 min It captured 49% more real terms, and it was faster. The official benchmark said it was better on general corpora; my data confirmed this advantage extends to medical domain terminology, which was the part they didn\u0026rsquo;t—and couldn\u0026rsquo;t possibly—test for me.\nIt\u0026rsquo;s worth noting that part of the gain came from the settings. Swapping the model wasn\u0026rsquo;t the only variable.\nThe last row is the Taiwanese version, Breeze-ASR-26. I included it to answer the inevitable \u0026ldquo;what about 26?\u0026rdquo; question: on Mandarin medical lectures, it only caught 182 real terms—less than a third of Breeze-ASR-25.\nBut this number can\u0026rsquo;t be taken literally; I misread it myself at first.\nWhere did the 182 come from: did it not understand, or was my yardstick blind? Someone asked me (an excellent challenge): could it be that Breeze-ASR-26 was transcribing the English as Chinese, so my English glossary couldn\u0026rsquo;t catch it?\nLooking at the raw output, the answer is yes, a huge portion of it was. Same audio clip:\nSpeaker said Breeze-ASR-25 Breeze-ASR-26 Whisper large-v3 interlamina interlamina 印特拉蜜拉 英特拉米拉 facet phase (misheard) 防震、法西 發射 It transliterated the English terminology into Chinese characters. This is actually exactly the design written on its model card: outputs Chinese characters, not Taiwanese orthography.\nIt becomes clearer when quantified (same batch of 15 clips):\nTotal chars Chinese chars English words Breeze-ASR-25 31,537 18,514 1,293 Breeze-ASR-26 27,579 19,617 313 Whisper large-v3 28,593 18,038 985 Its output volume didn\u0026rsquo;t collapse; it actually had the most Chinese characters of the three. It was only the English that tanked. It wasn\u0026rsquo;t failing to speak; it just switched to speaking in Chinese characters. (By the way, having the most Chinese characters doesn\u0026rsquo;t mean its Mandarin is better—\u0026ldquo;印特拉蜜拉\u0026rdquo; alone takes up 5 characters.)\nSo that 182 mixes two things: genuinely not hearing it, and hearing it but writing it in characters. My English glossary could only see the failure of the latter; it couldn\u0026rsquo;t see whether the model actually understood it or not.\nDid the conclusion change? No, but the reasoning is completely different.\nFor my purposes, this is still a failure: my notes need interlamina, not \u0026ldquo;印特拉蜜拉\u0026rdquo;. For searching the literature, matching slides, or showing to colleagues, transliterated characters are completely useless. So the conclusion that you shouldn\u0026rsquo;t use Breeze-ASR-26 for Mandarin medical lectures remains unchanged.\nBut the correct way to say it isn\u0026rsquo;t \u0026ldquo;it doesn\u0026rsquo;t understand English terminology,\u0026rdquo; but rather \u0026ldquo;it will transliterate English terms into Chinese characters, and that\u0026rsquo;s not the output format I want.\u0026rdquo; These two statements grade the model very differently, and I initially wrote the former.\nAs a side note, Whisper large-v3 also transliterates (\u0026ldquo;英特拉米拉\u0026rdquo;, \u0026ldquo;發射\u0026rdquo;), just much less frequently. This is a common ailment of the Whisper family, and 26 amplified it.\n2. Settings: Both switches are \u0026ldquo;Off\u0026rdquo; Breeze-ASR-25 Setting Real term capture Fake words Precision GPU time / hr of audio Default (VAD on, condition on) 587 29 94.5% 3.4 min VAD off + condition off (Adopted) 649 37 93.7% 3.0 min VAD off + beam size 10 604 21 96.4% 5.1 min Voice activity detection (VAD) → Off. Its original intent is to cut out silence and only feed in the segments with sound. But pauses in lectures, breaths, and the gaps while flipping slides were often swallowed whole, taking half a word from either side down with them. With it off, the model listens from start to finish, and the boundaries don\u0026rsquo;t get butchered. condition_on_previous_text → Off. This parameter tells the model to use the output of the previous segment as the context for the next one. Theoretically, it makes the text coherent; practically, once a segment is misheard, the error is fed in as \u0026ldquo;previous context,\u0026rdquo; and everything that follows gets it wrong too. In severe cases, the whole paragraph gets stuck in an infinite loop of the same sentence. With it off, every segment is decoded independently, and the errors aren\u0026rsquo;t contagious. In an actual test of 2,236 lines of output, silence hallucinations (inventing a \u0026ldquo;Thanks for watching\u0026rdquo; when nobody is speaking) and repetitive loops occurred 0 times each.\nThe third row\u0026rsquo;s beam size 10 is very interesting: it had the highest precision across the board (96.4%), but it was almost twice as slow, and it captured 45 fewer terms. The extra compute traded off for a more conservative output, not a better one, so I didn\u0026rsquo;t adopt it.\nAlso, turning off VAD had a side effect: faster-whisper\u0026rsquo;s batch mode doesn\u0026rsquo;t support VAD being off, so it automatically falls back to sequential decoding. It actually ended up being faster (3.0 vs 3.4 minutes) because it saved the overhead of chunking and stitching.\n3. Negative results: Two smart-sounding ideas both lost Negative results are still results, and writing them down saves someone else from stepping on the same landmine. The following were all measured using the same batch of 15 clips and the same yardstick.\nFeeding terminology prompts (hotwords/initial_prompt): No upside, only cost\nI prepared 25 physical medicine and rehabilitation (PM\u0026amp;R) terms (like prolotherapy, nucleus pulposus, piriformis, sacroiliac) and fed them in using faster-whisper\u0026rsquo;s hotwords:\nSetting Real term capture Fake words Precision Breeze-ASR-25 (no prompt) 587 29 94.5% Breeze-ASR-25 + hotwords 580 36 91.6% Whisper large-v3 (no prompt) 435 51 89.2% Whisper large-v3 + hotwords 446 56 88.2% First, look at what it didn\u0026rsquo;t do: the real term capture barely budged (587→580, 435→446). The main selling point of feeding a glossary—making it easier for the model to catch the proper nouns you care about—didn\u0026rsquo;t happen at all.\nThen look at what it did do: both models saw an increase in fake words (29→36, 51→56), and precision dropped.\nThe failure mechanism is worth noting more than the score: a prompt isn\u0026rsquo;t a dictionary; it\u0026rsquo;s a \u0026ldquo;pull.\u0026rdquo; It yanks the sound the model hears toward the word you gave it, and if it can\u0026rsquo;t quite reach, it spawns a mangled new typo—and that\u0026rsquo;s exactly where the new fake words came from: Breeze started spitting out sacroilar and buteroli, and large-v3 spit out paravertibone. These words simply didn\u0026rsquo;t exist in the versions without the prompt.\nThe ultimate irony was that nucleus pulposus and prolotherapy, the very words I wanted to save the most, were written out letter-for-letter in the prompt and still didn\u0026rsquo;t get caught.\nIt\u0026rsquo;s a weak guide, not a dictionary lookup. If you really want domain vocabulary, you should fine-tune the model, not pass it cheat sheets during inference.\nTaking the union of two models: Lost on every front\nn=15 Real term capture Fake words Precision GPU time / hr of audio Breeze-ASR-25 only 587 29 94.5% 3.0 min large-v3 + Breeze union 571 147 80.5% 6.0 min The real terms didn\u0026rsquo;t increase, but the fake words became 5 times as many, and it took twice the compute. The reason is simple: a union sucks in all the words the other model invented out of thin air. The merge logic has been deleted.\nBut I did pick up a byproduct here: the agreement rate between the two models on a word-by-word basis is an excellent confidence indicator. Normal paragraphs had a character agreement rate between 88% and 91%; one paragraph dropped to 57%, and when I went back and listened, it was off-mic chatter where both models were hallucinating. Now, anything below 75% gets flagged for manual review and isn\u0026rsquo;t written directly into the notes.\nEnglish lectures: A tie, so unify\nFor the English clips (6 clips), Breeze and large-v3 were practically tied (1535 vs 1537 words), precision was slightly better (98.6% vs 97.8%), and there were no Chinese hallucinations. Since it didn\u0026rsquo;t lose, I just unified everything to Breeze, leaving me with one less pipeline to maintain.\n4. The time alignment regression in Breeze-ASR-26 (The main new finding of this post) This section is something you won\u0026rsquo;t find on the official model card.\nFirst, let\u0026rsquo;s look at what the two official docs say. The Breeze-ASR-25 model card treats time alignment as a selling point:\nEnhanced time alignment, suitable for automatic captioning.\nBut in the model card for the Taiwanese Breeze-ASR-26, it doesn\u0026rsquo;t say a single word about timestamps, alignment, or captioning. It only mentions one thing: it used about 10,000 hours of synthetic Taiwanese speech for training, dropping the character error rate (CER) on the Taiwanese benchmark from Breeze-ASR-25\u0026rsquo;s 49.99% down to 30.13%.\nMeasuring it with Yardstick 2, there\u0026rsquo;s a reason it was \u0026ldquo;not mentioned\u0026rdquo;:\nModel (Default decoding) Segments / minute Median segment length Matches slides? Whisper large-v3 24.4 ~2 sec ✅ Breeze-ASR-25 18.2 ~2 sec ✅ Breeze-ASR-26 1.8 - 2.2 30.0 sec ❌ Notice that median segment length: a flat 30.0 seconds, and the max value is also 30.0 seconds. That isn\u0026rsquo;t its sentence-breaking habit; that happens to be exactly the length of Whisper\u0026rsquo;s decoding window.\nIn other words, it wasn\u0026rsquo;t predicting paragraph boundaries at all. Whisper relies on a special \u0026ldquo;timestamp token\u0026rdquo; to decide where a sentence ends, but after Breeze-ASR-26 was fine-tuned on synthetic Taiwanese corpora, this ability regressed, so it just spits out the entire 30-second window in one chunk. Take a 10-minute audio clip for example: Breeze-ASR-25 chopped it into 253 segments; Breeze-ASR-26 only cut out 20.\nAt this point, my original conclusion was: it\u0026rsquo;s unusable. But that conclusion was also wrong.\nBecause timestamp tokens are only one of the paths Whisper uses to generate timestamps. The other path is called word timestamps, which runs on the model\u0026rsquo;s internal cross-attention, bypassing timestamp tokens completely. And I hadn\u0026rsquo;t flipped this switch on once.\nOnce turned on, same audio clip, same model (n=4 clips):\nBreeze-ASR-26 Segments / minute Passes the ≥10 threshold? Default decoding 1.8 - 2.2 ❌ All failed Word-level timestamps on, re-segmented by pauses 10.0 - 10.7 🟡 Passed 3 out of 4 The word-level timestamps themselves were healthy: time monotonically increasing, coverage near 100%, almost zero zero-length words. The tradeoff was that decoding was 1.29x slower.\nSo the correct way to put it isn\u0026rsquo;t \u0026ldquo;Breeze-ASR-26 can\u0026rsquo;t align timestamps,\u0026rdquo; but \u0026ldquo;it can\u0026rsquo;t with its default settings.\u0026rdquo; This is a settings issue, not a ceiling on the model\u0026rsquo;s capabilities.\nDiscussion What this means for anyone wanting to use Breeze-ASR-26 If you plan on using Breeze-ASR-26 for anything that requires timestamps (Taiwanese subtitles, transcript alignment, matching slides, editing positioning), take note: its default paragraph segmentation is broken, and you must turn on word_timestamps to use it. That is the most practical sentence in this entire post, and it isn\u0026rsquo;t written in any official documentation.\nAs for whether you should switch to 26 for Mandarin content: no. It transliterates English terminology into characters (interlamina → 印特拉蜜拉), and my notes need the original English words so they can be searched and matched to slides. Besides, even if you salvage the granularity by turning on word-level timestamps, it only barely scrapes past the 10-segment-per-minute threshold; Breeze-ASR-25 natively has 18 or more. \u0026ldquo;Technically viable\u0026rdquo; and \u0026ldquo;worth the switch\u0026rdquo; are two different things.\nBut please note the scope of that sentence: I\u0026rsquo;m saying \u0026ldquo;it\u0026rsquo;s not suited for my kind of code-switched medical lectures that need English terminology.\u0026rdquo; It beat Gemini 3 Flash on its home turf (Taiwanese), and that\u0026rsquo;s its own achievement, which I\u0026rsquo;m not here to negate.\nLimitations (Please don\u0026rsquo;t over-interpret my results) I didn\u0026rsquo;t test Taiwanese. My corpus doesn\u0026rsquo;t contain a single Taiwanese audio clip. Breeze-ASR-26\u0026rsquo;s CER of 30.13% is MediaTek\u0026rsquo;s number, not something I measured, so I won\u0026rsquo;t endorse it, nor will I trash-talk it. I tested the paragraph granularity of a Taiwanese model using Mandarin audio. The regression of timestamp tokens comes from the model weights, so theoretically it should happen the exact same way on Taiwanese audio, but that\u0026rsquo;s an inference, not a result I measured. If you really want to use it for Taiwanese, you\u0026rsquo;ll still have to record a clip and test it yourself. My yardstick is blind to transliteration. This is the most important lesson I learned this time. An English glossary can only judge \u0026ldquo;did the model write this term in English\u0026rdquo;; it cannot judge \u0026ldquo;did the model actually understand it.\u0026rdquo; When Breeze-ASR-26 wrote interlamina as \u0026ldquo;印特拉蜜拉\u0026rdquo;, my yardstick gave it a 0—even though it actually heard the sound right. Giving it a 0 for my use case (notes need to be searchable and slide-matched) is correct, but if what you want is \u0026ldquo;did it understand it,\u0026rdquo; this yardstick will systematically underestimate any model that leans toward outputting Chinese characters. Before you use it, check: are you measuring \u0026ldquo;did it understand it,\u0026rdquo; or \u0026ldquo;did it write it in the format you want\u0026rdquo;? I was measuring the latter. The glossary isn\u0026rsquo;t a perfect reference standard. It collects \u0026ldquo;words that have appeared in the literature,\u0026rdquo; so it\u0026rsquo;s mixed with general English words; it\u0026rsquo;s not a pure medical terminology list. But it maps directly to the outcome I care about: was the key information heard, and is the model making things up. My yardstick isn\u0026rsquo;t necessarily your yardstick. If you care about latency, punctuation, speaker diarization, or emotion, then you need to swap in a yardstick for that. How should you actually use official benchmarks? They aren\u0026rsquo;t useless; they answer \u0026ldquo;is this model good?\u0026quot; What they can\u0026rsquo;t answer is \u0026ldquo;is this model good for my task?\u0026quot; This time, it saved me the verification work of \u0026ldquo;is 25 actually better than Whisper,\u0026rdquo; but it also missed two things that were make-or-break for me: domain terminology, and time alignment.\nAnd for one of those, even the unwritten parts of the model card were hiding information. Breeze-ASR-25 specifically wrote \u0026ldquo;Enhanced time alignment, suitable for automatic captioning,\u0026rdquo; and Breeze-ASR-26 didn\u0026rsquo;t say a word. I didn\u0026rsquo;t read that signal at the time; the yardstick read it for me.\nThe process is actually very simple: clearly define the result you want → find the yardstick to measure it (maybe more than one) → multiple samples, test variables separately → record the negative results too.\nAnd one more sentence to add: when the yardstick measures a \u0026ldquo;fail,\u0026rdquo; first ask, is the model incapable, or did I not set it up right? On the Breeze-ASR-26 hurdle, the answer was the latter. The score will tell you there\u0026rsquo;s a problem, but it won\u0026rsquo;t tell you whose fault it is. That step you have to take apart and look at yourself.\nI open-sourced this yardstick I\u0026rsquo;ve packaged the entire testing method into a repo, which you can take and use to test your own recordings:\n👉 github.com/drpwchen/asr-benchmark\nInside are the scripts to build the glossary (just point it at your own corpus), the scoring scripts for both yardsticks, and the scripts to run the \u0026ldquo;model × setting\u0026rdquo; matrix—including the variants I tried that didn\u0026rsquo;t work, so you can reproduce the negative results yourself, no need to take my word for it.\nI also included my own 187,000-word glossary as an example, so you can take it for a spin without having to prep your own corpus first; my fellow physical medicine and rehabilitation (PM\u0026amp;R) colleagues can just use it directly. But if you\u0026rsquo;re in another domain, please use the script to build your own glossary. Taking a physical medicine and rehabilitation (PM\u0026amp;R) yardstick to measure a cardiology lecture is just using the wrong yardstick to begin with, which is exactly the point this whole post is trying to make.\n—\nModel links: Breeze-ASR-25, Breeze-ASR-26. I previously used this same approach of \u0026ldquo;testing with my own data\u0026rdquo; on graph RAG and a skill for reading papers. If you\u0026rsquo;re interested, you can check them out together.\n—\n📍 Where you are on this path 1. Getting started 2. Talking to agents 4. Picking tools: the AI toolbox 5. Using a single toolyou are here Want to see how the AI workflow posts connect? → 📊 AI Content Map\n","permalink":"https://drpwchen.com/en/posts/my-data-my-benchmark/","summary":"\u003ch2 id=\"introduction-why-official-scores-arent-enough\"\u003eIntroduction: Why official scores aren\u0026rsquo;t enough\u003c/h2\u003e\n\u003cp\u003eMy workflow for turning recorded lectures into notes goes in a straight line: \u003cstrong\u003etranscript → matching slides → final summary\u003c/strong\u003e.\u003c/p\u003e\n\u003cp\u003eThe foundation of this line is automatic speech recognition (ASR). However much it mishears, every subsequent layer of notes will be just as wrong. Originally, I was using OpenAI\u0026rsquo;s Whisper large-v3.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe starting point for all this was actually me scrolling on my phone and seeing MediaTek Research announce their Taiwanese model, Breeze-ASR-26.\u003c/strong\u003e A Taiwanese model is intriguing enough on its own, but clicking through, I learned they had already released Breeze-ASR-25 last year. Fine-tuned from Whisper-large-v2, it was optimized specifically for \u003cstrong\u003eTaiwanese Mandarin and Mandarin-English code-switching\u003c/strong\u003e, and open-sourced under Apache 2.0. Medical lectures happen to be ground zero for Mandarin-English code-switching. I had somehow missed this for a whole year.\u003c/p\u003e","title":"My data, my benchmark: Swapping the speech recognition (ASR) engine for my lecture note system"},{"content":"The paper tool paper-review-and-digest I shared earlier had only been open-sourced for a few days when it received its first GitHub issue! I was actually quite happy to get my first issue, and I was even more surprised when I opened it: they didn\u0026rsquo;t just read my code, but accurately pointed out the parts of the design I was most proud of.\nHe said he appreciated the \u0026ldquo;hard split between the model and deterministic checks\u0026rdquo;: grade_judge.py doesn\u0026rsquo;t trust the level of evidence reported by the model itself, but recalculates it from the downgrade items; argdown_lint.py catches argumentative leaps like \u0026ldquo;jumping from surrogate endpoints to hard endpoints.\u0026rdquo; Then he said he built an online portal for me, so visitors don\u0026rsquo;t need to install Claude Code and can just upload a PDF to run the critical appraisal workflow. He even made a promotional image:\nWow, someone read my project this carefully, and even made a web version and such a pretty picture for me?\nWait, is this a real person? Happiness aside, something felt off. This website had a free tier and a credit-based billing system; the business model was too complete to be just a side project. I figured since I had Claude, I\u0026rsquo;d just ask it to look into the background of this enthusiastic netizen.\nAs it turned out, the plot twist came faster than I thought 🤣. The evidence Claude listed:\nWithin two minutes, this account posted issues to 26 repos. All of them were paper reading tools: arxiv-summarizer, paper_agent, PaperAgent\u0026hellip; Mine was 13th. The day before, there was another wave targeting Claude Skills repos. The tracking parameters in the link directly spell out the campaign name: 20260708-paper-reading-comprehension-assistants. This was a marketing batch run by a scheduled job, not a spontaneous response. The account was only created this March, has 0 followers, yet has 140 repos. GitHub\u0026rsquo;s search API refuses to search for this account (user cannot be searched), which usually means the account has already been flagged as spam by the platform. That piece of technical praise that made my day was automatically generated by an LLM reading each repo one by one. Scraping a repo and feeding it to a model is very cheap, which is exactly why it reads \u0026ldquo;like a real person.\u0026rdquo; The last sentence, \u0026ldquo;Feel free to close this if it isn\u0026rsquo;t relevant,\u0026rdquo; is standard rhetoric for spam accounts to lower their report rate. The corner of the promotional image has small text labeling my repo, and it even grabs the star count in real time. It\u0026rsquo;s exquisitely made; but clicking into the page on his website, the author field lists his own name. The MIT license certainly allows for commercial use, but this way of crediting is a bit sketchy. Come to think of it, this business could actually work After I finished cursing, I thought about it seriously, and this model is actually quite impressive. I actually registered and looked at the billing page, and the entire business model was laid out right in front of me: registration gives you 500 credits, and running a paper analysis deducts around 38 credits, which converts to less than 2 NTD. The free tier is enough for you to run it a dozen times, and once you\u0026rsquo;re hooked, four top-up channels—Stripe, PayPal, WeChat Pay, and Alipay—are lined up waiting for you.\nWhat\u0026rsquo;s even more interesting is a line of text on the page: \u0026ldquo;Earn by sharing: add a skill, configure billing.\u0026rdquo; It turns out this isn\u0026rsquo;t just a tool website, it\u0026rsquo;s a skill marketplace platform: anyone can list a skill, set a price, and the platform takes a cut. So that bot posting issues to 26 repos wasn\u0026rsquo;t just to drive traffic, it wanted to recruit every original author as its supplier, getting them to go back and claim the page that was pre-emptively listed. Listing your stuff for you without permission first, then inviting you to claim it and share the profits—this is a classic marketplace cold-start tactic.\nBots automatically making money seems to actually be viable. The entire production line—from finding targets, reading code, writing customized praise, posting issues, and making promotional images, all the way to running the marketplace—requires almost zero human labor. This is probably also a landscape that will become increasingly common moving forward: for every piece of \u0026ldquo;sincere feedback\u0026rdquo; we receive, it\u0026rsquo;s worth taking a moment first to wonder if a model wrote it.\nA few points worth noting\nUploaded PDFs stay on their servers (they say themselves that \u0026ldquo;every session leaves a usage record\u0026rdquo;); if you upload paid full texts or unpublished manuscripts, where that data goes is completely unknown. Topping up also means handing your payment information to a company that only appeared three months ago.\nActually, running it with your own subscription is a better deal Finally, back to the tool itself. If you have a need for critical appraisal or content organization for papers, you actually don\u0026rsquo;t need to go buy credits on someone else\u0026rsquo;s website:\nRunning it with your own Claude subscription is better in both quality and cost: They charge less than 2 NTD a pop, but the trade-off is that it\u0026rsquo;s mostly running cheap models with shallow workflows behind the scenes. If you run it yourself, you can use the full critical appraisal pipeline, citations will actually be verified against Crossref, and the level of evidence is calculated by the program, not just whatever the model says. It\u0026rsquo;s customizable: Whether you want Chinese or English, how deep you want it to go, or whether you want a 30-second summary or a full critical appraisal, you make the call. You don\u0026rsquo;t need to upload PDFs to servers of unknown origin; the full text stays on your own computer. The tool is open-source and free to begin with, so feel free to just fork it and modify it into your own version. If you find it helpful, please give it a star ⭐ so more people can see the original version before the bot marketers come knocking~ Pair it with the previous paper learning radar together, and the entire path from selecting a paper to reading it can be automated.\nIf I\u0026rsquo;ve misunderstood anything, corrections are welcome.\n(Repo link: github.com/drpwchen/paper-review-and-digest)\n","permalink":"https://drpwchen.com/en/posts/github-bot-marketing/","summary":"\u003cp\u003eThe \u003ca href=\"/posts/paper-tools/\"\u003epaper tool paper-review-and-digest\u003c/a\u003e I shared earlier had only been open-sourced for a few days when it received its first GitHub issue! I was actually quite happy to get my first issue, and I was even more surprised when I opened it: they didn\u0026rsquo;t just read my code, but accurately pointed out the parts of the design I was most proud of.\u003c/p\u003e\n\u003cp\u003eHe said he appreciated the \u0026ldquo;hard split between the model and deterministic checks\u0026rdquo;: \u003ccode\u003egrade_judge.py\u003c/code\u003e doesn\u0026rsquo;t trust the level of evidence reported by the model itself, but recalculates it from the downgrade items; \u003ccode\u003eargdown_lint.py\u003c/code\u003e catches argumentative leaps like \u0026ldquo;jumping from surrogate endpoints to hard endpoints.\u0026rdquo; Then he said he built an online portal for me, so visitors don\u0026rsquo;t need to install Claude Code and can just upload a PDF to run the critical appraisal workflow. He even made a promotional image:\u003c/p\u003e","title":"My Open-Source Tool Was Targeted by a Bot Marketer!"},{"content":"The paper learning station I shared earlier had \u0026ldquo;Quality\u0026rdquo; and \u0026ldquo;Content\u0026rdquo; buttons, but I didn\u0026rsquo;t release the backend implementation back then. It was basically a platform with a frontend web page, but you still had to organize the backend yourself. But for my own setup, of course the backend still had to be wired to AI to reduce the cognitive load. So here I\u0026rsquo;m sharing those two backend skills to help speed up everyone\u0026rsquo;s learning!\n—\nOne handles \u0026ldquo;is this paper credible?\u0026rdquo; The first is called paper-review. It does the kind of critical appraisal you see in a journal club.\nAutomatically picking the right tool by study design It picks the recommended critical appraisal tool based on the paper\u0026rsquo;s category: a randomized controlled trial uses Cochrane RoB 2, an observational study uses ROBINS-I, a systematic review uses AMSTAR-2, and diagnostic accuracy uses QUADAS-2. It doesn\u0026rsquo;t just brute-force a universal checklist. This sounds obvious, but you know most \u0026ldquo;AI reads papers for you\u0026rdquo; tools actually just cram everything into one universal checklist.\nCitation check: confirming the literature \u0026ldquo;actually exists\u0026rdquo; first My favorite step is the citation check. It first goes to CrossRef to confirm that every cited paper \u0026ldquo;actually exists,\u0026rdquo; then compares \u0026ldquo;what the paper says this citation is about\u0026rdquo; with \u0026ldquo;what the citation is actually about.\u0026rdquo;\nWhy check if it exists first? Because without auditing, the accuracy of AI-generated citations is actually only 40 to 80 percent. Fake DOIs and attributing things to the wrong author happen way more than you\u0026rsquo;d think. So this step is a very cheap but highly useful idiot-proof measure.\nStatistical significance does not equal clinical significance There\u0026rsquo;s another point I insisted on: statistical significance does not equal clinical significance. So it takes the effect size and compares it against the scale\u0026rsquo;s minimal clinically important difference (MCID). If the p-value is less than 0.05 but it completely misses the MCID, it will just say so directly.\nOverall, it draws on Dr. Hsieh-Ting Lin\u0026rsquo;s sharing and what I learned before in evidence-based medicine. You can also add whatever parts you think are important.\n—\nThe point: I don\u0026rsquo;t let AI score based on \u0026ldquo;impressions\u0026rdquo; This is the part I personally found the most interesting this time.\nAt first, I let Claude calculate the level of evidence (GRADE) and judge whether \u0026ldquo;the conclusion exceeds what the data can support\u0026rdquo; on its own. But I later felt this was wrong, because letting a language model give a score \u0026ldquo;based on overall vibes\u0026rdquo; means it can talk a great game, but you have no way to check how it actually got there.\nSo I just wrote two deterministic little scripts, separating \u0026ldquo;judgment\u0026rdquo; and \u0026ldquo;calculation\u0026rdquo;:\ngrade_judge.py: turning GRADE into arithmetic The language model is only responsible for evaluating five domains (risk of bias, inconsistency, indirectness, imprecision, publication bias), giving \u0026ldquo;not serious / serious / very serious\u0026rdquo; for each. The actual final grade is calculated by the script adding them up, not stated by the model itself. The model\u0026rsquo;s self-reported grade is just for reference; if it doesn\u0026rsquo;t match what the script calculates, the script will jump out and warn you, \u0026ldquo;These two don\u0026rsquo;t match, go back and re-check a certain domain.\u0026rdquo;\nIt will even block GRADE rule errors for you. For example, once an observational study is downgraded in any domain, it is not allowed to be upgraded again. The model easily misremembers this rule; the script doesn\u0026rsquo;t.\nargdown_lint.py: turning logical flaws in conclusions into something checkable This script is even more fun. The language model labels the paper\u0026rsquo;s conclusion and each \u0026ldquo;finding used to support the conclusion\u0026rdquo; with a type (Is this direct evidence from a randomized controlled trial? Or just correlation? Or just a surrogate marker? Or just a secondary outcome?), and then the script judges whether this inferential leap is legal.\nFor example, \u0026ldquo;using improvements in surrogate markers to claim efficacy for real clinical endpoints,\u0026rdquo; \u0026ldquo;using correlation to claim causality,\u0026rdquo; \u0026ldquo;using a single study to claim \u0026lsquo;consistently shown\u0026rsquo;\u0026quot;—these are all the favorite hiding spots for paper spin. When the script catches it, it just highlights it in red and reports a flaw.\nThe division of labor is very clear: the language model does the semantic judgment it\u0026rsquo;s good at, and the script does the deterministic logic it\u0026rsquo;s good at. Only this way is the resulting conclusion not just a \u0026ldquo;feels rigorous\u0026rdquo; vibe, but something you can actually lay out and check step by step.\n—\nOne handles \u0026ldquo;what this paper is about\u0026rdquo; The second is called paper-digest. This one doesn\u0026rsquo;t judge quality at all, it just does one thing: lets me absorb the entire content into my brain at top speed.\nIt uses a three-tier structure: 30 seconds for a one-sentence takeaway, 5 minutes for the key points of each section, and if you want details, read down into the full content. And it swaps skeletons depending on the paper type—empirical studies, reviews, guidelines, technical papers each have their own way of being organized, not shoehorned into the same template.\nMost importantly, it will force me to do active recall. After organizing, it generates a few self-test cards and pushes them to my own review site, using the same spaced repetition idea as Exam Practice Platform. Because I know my own bad habit very well: making beautiful notes and then never going back to remember them 😅. So I specifically designed this skill so that \u0026ldquo;organizing isn\u0026rsquo;t the end, recalling is.\u0026rdquo;\nAnd it has a hard rule: if it can\u0026rsquo;t get the full text, it just stops. It\u0026rsquo;s not allowed to generate a seemingly complete summary just from the abstract. Because a \u0026ldquo;content summary\u0026rdquo; generated from an abstract is exactly what\u0026rsquo;s easiest to fool yourself with.\n—\nAn honest reminder These two things were originally tied deeply to my personal system (my Obsidian, my Zotero, my self-hosted review site). This time I extracted all these private settings into a config file so others can fill in their own, but it\u0026rsquo;s more like a case study of \u0026ldquo;how a clinician wrote the critical appraisal workflow in his head into an AI skill,\u0026rdquo; rather than a product you can just download and run blindly.\nWhat you can actually take and use directly, and what is valuable to anyone, are those two deterministic scripts and that \u0026ldquo;picking tools by study design\u0026rdquo; look-up table.\nIt is not medical advice, and it cannot replace you reading papers yourself. It is a second reader that refuses to let \u0026ldquo;sounds reasonable but is actually wrong\u0026rdquo; critical appraisals pass.\nIf there are misunderstandings, you\u0026rsquo;re welcome to share or correct me. I\u0026rsquo;ve put the code and full English and Chinese instructions on GitHub:\n👉 https://github.com/drpwchen/paper-review-and-digest\nIf this tool saved you time, you\u0026rsquo;re also welcome to buy me a boba tea so the servers can keep spinning 🧡\nBuy me a boba! —\n📍 Where you are on this path 1. Getting started 2. Talking to agents 4. Picking tools: the AI toolbox 5. Using a single toolyou are here Want to see how the AI workflow posts connect? → 📊 AI Content Map\n","permalink":"https://drpwchen.com/en/posts/paper-tools/","summary":"\u003cp\u003eThe \u003ca href=\"/posts/paper-radar/\"\u003epaper learning station\u003c/a\u003e I shared earlier had \u0026ldquo;Quality\u0026rdquo; and \u0026ldquo;Content\u0026rdquo; buttons, but I didn\u0026rsquo;t release the backend implementation back then. It was basically a platform with a frontend web page, but you still had to organize the backend yourself. But for my own setup, of course the backend still had to be wired to AI to reduce the cognitive load. So here I\u0026rsquo;m sharing those two backend skills to help speed up everyone\u0026rsquo;s learning!\u003c/p\u003e","title":"I turned my journal club \"paper-reading brain\" into an AI skill, and forced it not to bullshit from impressions"},{"content":"While prepping for the PM\u0026amp;R board examination, I used an engineer\u0026rsquo;s approach to solve an old problem for myself: how exactly should I practice past exam questions so I don\u0026rsquo;t forget them right after? I ended up building a small tool called \u0026ldquo;Exam Navigator,\u0026rdquo; and figured I\u0026rsquo;d tidy it up and open it up to share with anyone who needs it.\n🔗 Live Demo (built-in demo account, ready to play): https://exam-demo.drpwchen.com 🔗 Source code: https://github.com/drpwchen/exam-practice\nWhy build one myself? When prepping for a written exam, one of the most effective methods is to repeatedly practice past questions and reinforce the ones you get wrong. Everyone knows the logic, but actually doing it has two pain points.\nFirst, simply looking at questions and testing yourself gets tiring quickly, and you unconsciously keep practicing what you \u0026ldquo;already know,\u0026rdquo; while your actual weaknesses get skipped over.\nSecond, figuring out \u0026ldquo;when to review which question\u0026rdquo; is impossible to schedule with a human brain. Will you remember the question you practiced today in three days? What about a week later? Nobody knows, so you just end up redoing everything, which is terrible for efficiency.\nI remembered the memory algorithms I used when memorizing English vocabulary and thought: aren\u0026rsquo;t past questions just a kind of \u0026ldquo;flashcard to remember\u0026rdquo;? So I got to work.\nWhat can it do? Turns PDF exams into a playable question bank: Past exams are mostly PDFs. I wrote an import pipeline that automatically slices out the questions, options, and answers, and extracts image questions (X-rays, ultrasounds, scales) along with them. Explanations are shown directly as a \u0026ldquo;screenshot of that page\u0026rdquo; to avoid text recognition messing up the options or answers.\nSchedules review times for each question using FSRS: FSRS stands for Free Spaced Repetition Scheduler, a spaced repetition algorithm. Based on your \u0026ldquo;correctness, confidence, and time spent\u0026rdquo; for each answer, it estimates your memory curve for that question, then tosses it back for you to practice at the sweet spot where you are \u0026ldquo;about to forget it, but can still salvage it.\u0026rdquo;\nPractice with colleagues in the department: You can see your peers\u0026rsquo; progress and the \u0026ldquo;most commonly missed questions by everyone.\u0026rdquo; Studying alone is lonely; knowing everyone else is stuck on the same question actually brings a strange sense of comfort 😅.\nGoal setting: On the Dashboard, you can see your current practice progress and accuracy. It also has a goal-setting feature to pin down how many questions you need to finish within a certain number of days.\nProjects your score for exam day: This is my personal favorite feature. The system uses your accuracy in each subject, multiplies it by that subject\u0026rsquo;s actual exam weight, and multiplies it again by how much FSRS estimates you\u0026rsquo;ll remember \u0026ldquo;by exam day\u0026rdquo; to calculate a projected score. It also includes confidence intervals and a comparison of two scenarios: \u0026ldquo;keep reviewing\u0026rdquo; versus \u0026ldquo;stop reviewing completely.\u0026rdquo; Watching your projected score slowly climb as you review is very tangible feedback.\nA quick look 📱 🏠 Homepage 📄 Original PDF exam view ⚙️ Practice settings ✍️ Quiz view 👥 Everyone\u0026rsquo;s wrong bank 📌 Personal wrong bank (categorized by failure type) 📊 Dashboard overview 🎯 Score projection Some little design details As I built it, I found a few details quite interesting:\nNot all wrong questions are created equal. I categorized wrong questions into four types: Dead zones (repeatedly missed), Easily forgotten (memory retention drops too fast), Blind spots (highly confident but wrong, i.e., overconfidence), and New mistakes (missed recently). You can target just one type of weakness and treat the root cause. Questions are drawn from a mix of three pools. 70% due for review, 20% unseen new questions, and 10% starred by yourself, balancing consolidating the old with taking in the new. Options are shuffled every time. To prevent you from just memorizing \u0026ldquo;the answer is the third one\u0026rdquo; instead of actually knowing it. Open for non-commercial use, contact for commercial use I cleaned it up into an open-source version and wiped the real hospital data, replacing it with synthetic demo data, so anyone can clone it down and see the full functionality. Friends from other specialties are also welcome to fork it and adapt it for your own specialty\u0026rsquo;s version. You don\u0026rsquo;t need to touch the engine or scheduled jobs, just swap out the question bank and categories.\nFor licensing, I chose something a bit specific: completely free for non-commercial use. You can freely use, modify, and self-host it for personal studying, practicing with classmates, or teaching and research at non-profit institutions like schools or hospitals. But if you want to use it for commercial profit (like cram schools or paid platforms), you\u0026rsquo;ll need to get a separate license. It\u0026rsquo;s a bit of protection for myself, ensuring this effort isn\u0026rsquo;t just taken for free to make money.\nWrapping up This started out just as a side project to make exams a bit easier for myself (and my peers), but it somehow grew into a fairly complete system. If you\u0026rsquo;re also preparing for a board examination, feel free to click the Demo and play around, or just fork it and make your own version.\nIf it helps you, come back and let me know, or drop a star ⭐ on GitHub — it\u0026rsquo;ll make my day. Let\u0026rsquo;s make this exam journey a little smarter!\nIf this tool saves you some time, you\u0026rsquo;re also welcome to buy me a boba tea to keep the servers spinning 🧡\nBuy me a boba! —\n📍 Where you are on this path 1. Getting started 2. Talking to agents 4. Picking tools: the AI toolbox 5. Using a single toolyou are here Want to see how the AI workflow posts connect? → 📊 AI Content Map\n","permalink":"https://drpwchen.com/en/posts/exam-practice-platform/","summary":"\u003cp\u003eWhile prepping for the PM\u0026amp;R board examination, I used an engineer\u0026rsquo;s approach to solve an old problem for myself: how exactly should I practice past exam questions so I don\u0026rsquo;t forget them right after? I ended up building a small tool called \u0026ldquo;Exam Navigator,\u0026rdquo; and figured I\u0026rsquo;d tidy it up and open it up to share with anyone who needs it.\u003c/p\u003e\n\u003cp\u003e🔗 Live Demo (built-in demo account, ready to play): \u003ca href=\"https://exam-demo.drpwchen.com\"\u003ehttps://exam-demo.drpwchen.com\u003c/a\u003e\n🔗 Source code: \u003ca href=\"https://github.com/drpwchen/exam-practice\"\u003ehttps://github.com/drpwchen/exam-practice\u003c/a\u003e\u003c/p\u003e","title":"Exam Practice Platform: Spaced Repetition, Wrong Bank, and Score Projection"},{"content":"A while back, I shared the paper reading site I built for myself, and I got quite a few messages asking, \u0026ldquo;Can I use this too?\u0026rdquo; and \u0026ldquo;How exactly does it work?\u0026rdquo; I\u0026rsquo;ll explain it clearly in this post, and while I\u0026rsquo;m at it, I\u0026rsquo;ll let you know that I\u0026rsquo;ve organized it into an open-source version and put it on GitHub.\nFirst, the problem I wanted to solve.\nAs a physiatrist, there are dozens of journals I want to track, along with a few authors I really want to follow and a couple of topics I\u0026rsquo;m always keeping an eye on. The traditional approach is to dump a bunch of RSS subscriptions into a reader or a notes app. As a result, hundreds of papers pile up every day, and it quickly turns into a garbage dump of \u0026ldquo;I\u0026rsquo;ll never finish reading this, and I don\u0026rsquo;t even know where to start.\u0026rdquo; In the end, you either get anxious or just give up reading altogether.\nWhat I wanted wasn\u0026rsquo;t to \u0026ldquo;read more,\u0026rdquo; but a radar that would filter and rank for me first, letting me focus my attention only on the handful of papers I really should read. So, I built this site. It operates roughly in these layers.\n1. Automated fetching: gathering dozens of sources into one stream Every morning, the server automatically fetches dozens of sources: journal RSS feeds, plus \u0026ldquo;author tracking\u0026rdquo; and \u0026ldquo;topic tracking\u0026rdquo; using PubMed searches. Some journals have terrible RSS feeds or outright block bots, so I bypass them using PubMed queries instead. I can still grab them, and they come with DOIs, which makes downstream processing easier. After pulling everything in, it automatically deduplicates them into a clean list.\n2. Interest scoring, and it gets to know me better over time This is my favorite layer. Every paper gets scored by an \u0026ldquo;interest model,\u0026rdquo; bubbling the ones I\u0026rsquo;m most likely interested in to the top and sinking the noise to the bottom.\nMore importantly, it learns. When I\u0026rsquo;m scrolling on my phone, I give a thumbs-up to what I like and skip what I don\u0026rsquo;t. These reactions feed back into tweaking the model\u0026rsquo;s weights. The longer I use it, the better it understands my tastes, and the more accurate the sorting gets. This \u0026ldquo;you teach it, it rewards you\u0026rdquo; loop is what I think makes it smarter than plain RSS.\n3. Full-text in three tiers: confirming \u0026ldquo;can I get it?\u0026rdquo; upfront When you see something you want to read, the most annoying part is often \u0026ldquo;I found it, but I can\u0026rsquo;t open the full text.\u0026rdquo; So I have it automatically tag each paper\u0026rsquo;s acquisition difficulty upfront:\n🟢 Open Access: Automatically downloads the PDF for me. 🏥 Institutional subscription: Automatically checks if my affiliated library subscribes to this journal and whether I can get this paper right now. 📎 Self-supplied: If it\u0026rsquo;s neither of the above, it provides a link for me to grab it myself, or lets me drop the PDF straight in. This way, I know whether I can actually read each paper right as I scroll, without having to click into them one by one to test my luck.\n4. A private site just for me The whole site is locked down. Only I can get in; it\u0026rsquo;s not open to the public, and it doesn\u0026rsquo;t have my name on it. It\u0026rsquo;s my personal reading desk. Whether I open it on my phone or computer, it\u0026rsquo;s in the exact same state. What I checked off on the MRT yesterday, I can still see when I open it at the hospital today. The interface is just paper cards, carrying the badges mentioned above, plus a few action buttons.\n5. Check the boxes, and it handles the rest This is the closed loop that ties everything together. When I see something I like, I just check \u0026ldquo;digest content\u0026rdquo; or \u0026ldquo;critical appraisal.\u0026rdquo; With that simple signal, it automatically fetches the full text, digests the key points into notes, performs the critical appraisal, and finally files it into my own notes system. If I\u0026rsquo;m out and see a good paper someone shared, I can drop it right into this webpage, and it processes it for me just the same.\nSo my reading went from being \u0026ldquo;drowned in hundreds of papers\u0026rdquo; to \u0026ldquo;scrolling daily, checking a few boxes, and reading the digested highlights.\u0026rdquo; The time and energy saved is far more than I imagined.\nOpen-sourcing it, and you\u0026rsquo;re welcome to build your own radar I cleaned up my code and put it on GitHub, with instructions in both Chinese and English:\n👉 https://github.com/drpwchen/paper-radar\nIt\u0026rsquo;s not just for medicine. Any source with RSS—papers, news, blogs—can be forked and adapted into a radar for your own field. If you want to self-host one, just follow the instructions.\nA quick note: for the papers the radar picks out for me, the downstream work is handed off to two other tools responsible for \u0026ldquo;critical appraisal\u0026rdquo; and \u0026ldquo;digesting.\u0026rdquo; I later open-sourced those parts too, which I wrote about in this post. The radar handles the picking, the skill handles the reading, and connecting the two ends makes for a complete paper reading workflow.\nFinally, on a personal note. I\u0026rsquo;ve had this idea in my head for a long time. Before I stepped into vibe coding, I saw Yi-Cheng Wu, MD (sports medicine, rehabilitation medicine) build a similar platform. I was envious and curious at the time, thinking, \u0026ldquo;I wish I had one of those.\u0026rdquo; I never expected that I\u0026rsquo;d actually be able to build it with my own hands now, let alone clean it up and share it with everyone.\nGoing from a thought of envying someone else, to building it myself, and then open-sourcing it for others to use—it\u0026rsquo;s a truly amazing feeling, and I\u0026rsquo;m very happy 😊\nIf you also often find yourself drowning in endless information, you\u0026rsquo;re welcome to check it out. Dropping a star ⭐ while you\u0026rsquo;re there would be a huge encouragement to me.\nIf this tool has saved you time, you\u0026rsquo;re also welcome to buy me a boba to keep the server spinning 🧡\nBuy me a boba! —\n📍 Where you are on this path 1. Getting started 2. Talking to agents 4. Picking tools: the AI toolbox 5. Using a single toolyou are here Want to see how the AI workflow posts connect? → 📊 AI Content Map\n","permalink":"https://drpwchen.com/en/posts/paper-radar/","summary":"\u003cp\u003eA while back, I shared the paper reading site I built for myself, and I got quite a few messages asking, \u0026ldquo;Can I use this too?\u0026rdquo; and \u0026ldquo;How exactly does it work?\u0026rdquo; I\u0026rsquo;ll explain it clearly in this post, and while I\u0026rsquo;m at it, I\u0026rsquo;ll let you know that I\u0026rsquo;ve organized it into an open-source version and put it on GitHub.\u003c/p\u003e\n\u003cp\u003eFirst, the problem I wanted to solve.\u003c/p\u003e\n\u003cp\u003eAs a physiatrist, there are dozens of journals I want to track, along with a few authors I really want to follow and a couple of topics I\u0026rsquo;m always keeping an eye on. The traditional approach is to dump a bunch of RSS subscriptions into a reader or a notes app. As a result, hundreds of papers pile up every day, and it quickly turns into a garbage dump of \u0026ldquo;I\u0026rsquo;ll never finish reading this, and I don\u0026rsquo;t even know where to start.\u0026rdquo; In the end, you either get anxious or just give up reading altogether.\u003c/p\u003e","title":"I Open-Sourced My Paper Reading Radar"},{"content":"📖 Saving Tokens series (four parts): Part 1: Why your AI gets dumber the more you chat · Part 2: Don\u0026rsquo;t boot up a supercomputer if an abacus will do · Part 3: Setting up a clean desk for your AI · Part 4 (this post, the finale)\nWe\u0026rsquo;ve arrived at the final post of the series. Over the first three parts, we went from \u0026ldquo;why your AI gets dumber the more you chat\u0026rdquo; all the way to \u0026ldquo;when not to use AI\u0026rdquo; and \u0026ldquo;how to clean up its desk.\u0026rdquo; This post is about the moment you actually spend the money: how to make every penny count.\nThing 1: Not everything needs the smartest brain (but what you save is so you can afford the good one) AI models come in tiers. Take Claude for example: from cheap to expensive, it\u0026rsquo;s roughly Haiku, Sonnet, Opus. The price difference is huge.\nIf you pay by usage, the most straightforward way to save is \u0026ldquo;assigning the right tier to the right job\u0026rdquo;: for chores like changing formats, renaming files, or simple sorting, just hand it over to the cheapest Haiku. Use the middle-tier Sonnet for everyday writing and looking up information. Only deploy the most powerful Opus for tough tasks that truly require deep reasoning.\nThere\u0026rsquo;s a misconception a lot of people have that I want to specifically mention here: \u0026ldquo;looking at an image\u0026rdquo; doesn\u0026rsquo;t mean \u0026ldquo;using the most expensive model.\u0026rdquo; When you just want the AI to \u0026ldquo;look at an image, recognize what\u0026rsquo;s in it, and read the text on it\u0026rdquo;—a recognition task—the cheapest Haiku is usually entirely sufficient, and it\u0026rsquo;s ridiculously cheap. It\u0026rsquo;s only when you need it to \u0026ldquo;understand a complex medical diagram or interpret the logic behind a chart\u0026rdquo;—a visual task requiring reasoning—that it\u0026rsquo;s worth upgrading. The real standard for picking a model is \u0026ldquo;how much thinking does this task need,\u0026rdquo; not \u0026ldquo;does it need to look at an image.\u0026rdquo;\nThough honestly, these days I mostly just use the most powerful Opus directly, XD.\nWhy? Because I found that under the current subscription plan, after putting in all the effort to save tokens from the first three posts, I actually don\u0026rsquo;t run out of my quota, and the quality of the most powerful model is noticeably better. So for me, rather than penny-pinching over which tier to use for every little thing, it\u0026rsquo;s better to take the saved quota and let the best model do everything.\nI think this might actually be the one thing I wanted to say most in this whole series: saving tokens is never about being stingy. I cut out the waste, hand off what should be handled by scripts to scripts, and keep the desk clean. The savings I get from doing this are exactly what let me afford to \u0026ldquo;use the best brain on every problem I care about.\u0026rdquo; Saving is so you can spend generously where it counts.\nTwo more advanced little tricks before we move on:\nMake the AI cut the fluff; you can do this once and for all. AI \u0026ldquo;output\u0026rdquo; is several times more expensive than \u0026ldquo;input\u0026rdquo; (up to five times for Opus), so asking it for concise answers saves money directly. And you don\u0026rsquo;t need to repeat this every time. Just write it into its long-term instructions (that\u0026rsquo;s the resident config file from Part 3, or \u0026ldquo;custom instructions\u0026rdquo; in chat apps), telling it to get straight to the point by default and avoid long essays. Set it once, save every time after. Thinking depth is adjustable, too. The same model can be configured for \u0026ldquo;how deep to think\u0026rdquo;—keep it shallow for simple things, and only turn on deep thinking for hard things. The point is always: spend your effort where it\u0026rsquo;s truly hard. Thing 2: Toss noisy chores into the room next door Some jobs spit out a ton of process messages: running a round of tests, scraping a long document, or processing a pile of logs. If you let all this noise pile up in the main conversation, the desk gets flooded immediately (going back to Part 3, the moment a desk gets messy, it gets expensive and dumb).\nMy approach is to send a \u0026ldquo;clone\u0026rdquo; to do this in the room next door. The clone has its own independent workspace. All of its processes, noise, and drafts stay in that room, and only the final conclusion comes back to my main conversation.\nIt\u0026rsquo;s like asking an assistant to research data all day—you don\u0026rsquo;t need to see every page they flipped through, you just want them to hand you a one-page summary at the end.\nBut there\u0026rsquo;s a trade-off here, I have to be honest: deploying a clone costs money in itself, and the clone burns through a round of tokens on its own. The official docs even warn that workflows using clones heavily can cost several times more than flying solo. So the rule is: only deploy a clone when the value of \u0026ldquo;keeping the main desk clean\u0026rdquo; outweighs the cost of \u0026ldquo;hiring an extra clone.\u0026rdquo; Don\u0026rsquo;t toss everything to a clone.\n(From start to finish in this post, you\u0026rsquo;ll notice that saving tokens doesn\u0026rsquo;t have a single brainless trick; every move is a trade-off. That\u0026rsquo;s exactly what makes it fun.)\nThing 3: Install a dashboard that runs a meter for me After talking about all these ways to save, the final piece of the puzzle is: you have to see how much you\u0026rsquo;re spending.\nInvisible expenses are the most dangerous. So I installed a little open-source tool called cc-budget (developed by boyand, you can find it on GitHub).\nAt the very bottom of my workspace, it keeps a persistent dashboard, telling me in real-time:\nWhat percentage of my quota I\u0026rsquo;ve used in the past 5 hours and 7 days Roughly how much this current job cost And a \u0026ldquo;pace marker\u0026rdquo; that tells me if I\u0026rsquo;ll overspend burning at this current rate When I get close to my usage cap, it pops up to remind me: it\u0026rsquo;s time to lower the firepower, or just take a break and wait for the quota to recharge. It won\u0026rsquo;t forcefully block me (a hard block interrupts work); it\u0026rsquo;s a dashboard that watches the meter and taps me on the shoulder at the right time.\nGoing a step further: letting the AI watch the dashboard while it works But the most interesting use for this dashboard actually isn\u0026rsquo;t for me to look at.\nI often just tell Claude one thing directly: \u0026ldquo;You watch the usage, work at an on-pace rhythm, and use up to about 95% of this period\u0026rsquo;s quota.\u0026rdquo;\nMeaning, I hand budget awareness directly over to the AI, letting it watch the dashboard and adjust its working firepower on its own:\nWhen the quota is still loose, go for it—you can fire up the more expensive models, deploy more clones, and think a bit deeper. The closer we get to the cap, automatically dial it back: drop the thinking depth, deploy fewer clones, and save the final effort for the most important part, wrapping up exactly at 95% of the budget without wasting or blowing past it. This is equivalent to letting the AI hit the gas and the brakes itself, rather than me standing by manually shouting \u0026ldquo;slow down, slow down\u0026rdquo; the whole time.\nAnd this, actually, is exactly the microcosm of this whole series: the highest level of saving tokens is making this awareness automatic, not relying on you to remember it every second.\nThe whole series, converging into one principle Four posts in, if you only take away one sentence, I hope it\u0026rsquo;s this one:\nDon\u0026rsquo;t make your AI reread and redo a bunch of stuff it doesn\u0026rsquo;t actually need.\nFor folks chatting with AI on their phones: start a new chat when you change topics, don\u0026rsquo;t just dump long text in, and speak clearly. For heavy users like me who bring AI into their life and work: streamline resident configs, leverage caching, use scripts instead of AI when you can, pick the right tier of brain, deploy clones to keep the desk clean, install a dashboard to watch expenses, and even let the AI spend the budget on pace by itself. Did you notice? These two lists are actually doing the exact same thing.\nBecause whether it\u0026rsquo;s in the chat app on your phone, or in the tools running a bunch of clones on my computer, the underlying physics are the same: every time the AI answers, it has to reread everything in front of it, and the cost grows exponentially.\nSo saving tokens is never about being stingy. It\u0026rsquo;s about letting your AI be fast, cheap, and smart on the problems that truly matter to you.\nThanks for reading all the way here. If this series has been useful to you, feel free to share it with friends who are also using AI 🙌\n—\n⬅️ Previous post: Setting up a clean desk for your AI 🔁 Back to Part 1: Why your AI gets dumber the more you chat\nReferences boyand. cc-budget: Budget intelligence for Claude Code. GitHub. https://github.com/boyand/cc-budget Anthropic. Pricing. Claude Platform Docs. https://platform.claude.com/docs/en/about-claude/pricing Anthropic. Effective context engineering for AI agents. https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents ","permalink":"https://drpwchen.com/en/posts/ai-token-4-budget-dashboard/","summary":"\u003cp\u003e📖 Saving Tokens series (four parts): \u003ca href=\"/posts/ai-token-1-chat-gets-dumber/\"\u003ePart 1: Why your AI gets dumber the more you chat\u003c/a\u003e · \u003ca href=\"/posts/ai-token-2-script-vs-llm/\"\u003ePart 2: Don\u0026rsquo;t boot up a supercomputer if an abacus will do\u003c/a\u003e · \u003ca href=\"/posts/ai-token-3-clean-desk/\"\u003ePart 3: Setting up a clean desk for your AI\u003c/a\u003e · Part 4 (this post, the finale)\u003c/p\u003e\n\u003cp\u003eWe\u0026rsquo;ve arrived at the final post of the series. Over the first three parts, we went from \u0026ldquo;why your AI gets dumber the more you chat\u0026rdquo; all the way to \u0026ldquo;when not to use AI\u0026rdquo; and \u0026ldquo;how to clean up its desk.\u0026rdquo; This post is about the moment you actually spend the money: \u003cstrong\u003ehow to make every penny count.\u003c/strong\u003e\u003c/p\u003e","title":"I installed a money-saving dashboard for my AI"},{"content":"📖 Token Saving Series (4 parts): Part 1: Why your AI gets dumber the longer you chat · Part 2 (This post) · Part 3: Clearing a clean desk for your AI · Part 4: I built a budget dashboard for my AI\nIn the previous post, we talked about how longer AI chats get more expensive and dumber, along with three ways to save right now. This post takes it a step further to discuss a more fundamental divide:\nSome jobs simply shouldn\u0026rsquo;t be given to AI.\nSounds a bit contrarian, but this is exactly my core mindset for using AI cheaply and accurately.\nTwo tools: the abacus and the supercomputer There are actually two completely different paths when handing things off to a computer.\nOne is hardcoded scripts. You figure out the rules upfront, write them as steps, and then it just runs them. Like an abacus, the rules for moving the beads are fixed. Calculate ten or a hundred times, the answer is always the same.\nThe other is making AI think (LLMs). You describe what you need, it \u0026ldquo;understands,\u0026rdquo; and then generates an answer. Like a supercomputer, it can take on anything vague or requiring judgment, but every time you boot it up, it burns power.\nMany people\u0026rsquo;s instinct is: AI is so strong now, just throw everything at it.\nThis is exactly the root of burning money and time.\nOne table to understand the tradeoff Aspect Hardcoded script (Abacus) Making AI think (Supercomputer) Accuracy 100% certain. Same input always yields the same result. Drifts. Asking the same question twice might give different answers, or it might hallucinate with a straight face. Handling ambiguity Can only do things with clear rules. Can handle semantics, judgments, exceptions, and that \u0026ldquo;you know what I mean\u0026rdquo; gray area. Cost Practically zero. You pay for tokens every time it runs. Speed Milliseconds. Done in a blink. Seconds, and it gets slower the longer the chat. Prep work You have to think through and write the rules correctly first. Just speak and use. Zero setup. See it? Neither is inherently better; it\u0026rsquo;s just about which fits the task.\nThings with clear rules that repeat a lot go to the abacus: fast, accurate, and free.\nThings that need judgment, are vague, or differ slightly every time—that\u0026rsquo;s when it\u0026rsquo;s worth booting up the supercomputer.\nA real example: how I read my medical textbook PDFs I have a lot of textbook PDFs, and I often need to fish content out of them.\nIf I just threw every page straight at the AI, that\u0026rsquo;s treating the supercomputer like a printer: paying for \u0026ldquo;looking at the image plus reading the text\u0026rdquo; on every single page. It\u0026rsquo;s terrifyingly expensive (as I\u0026rsquo;ll explain in a later post, throwing a PDF directly at AI can burn a thousand or two tokens per page).\nMy approach is layered:\nFirst, use a free little script to extract the text directly from the PDF. This step is pure abacus, zero cost. If it doesn\u0026rsquo;t extract cleanly (scans, handwriting), only then do I upgrade to using optical character recognition (OCR) on my local machine. This runs on my own computer and doesn\u0026rsquo;t cost a dime in AI fees. I only send the image to AI when I truly need it to \u0026ldquo;understand what this diagram is saying.\u0026rdquo; What\u0026rsquo;s better is that the judgment of \u0026ldquo;did this page extract cleanly?\u0026rdquo; is also done by a script: count the word count, look at the gibberish ratio, check the fonts. The rules are clear, no need to bother AI at all.\nThe result: 99% of the workload gets eaten by the abacus. The supercomputer only shows up for the 1% that genuinely requires judgment.\nSo what exactly did I turn into scripts? Take a few of my real-life examples, and you\u0026rsquo;ll find they have something in common: clear rules, repetition, or a need for precision.\nThose \u0026ldquo;interceptors\u0026rdquo; are scripts themselves. In part three, I\u0026rsquo;ll mention the little gadgets I attach to AI, like \u0026ldquo;discard the output for successful commands\u0026rdquo; or \u0026ldquo;ban throwing PDFs to AI as images.\u0026rdquo; These judgments are entirely hardcoded scripts. AI doesn\u0026rsquo;t intervene at all. Math and stats must use scripts. This is crucial: AI is actually really bad at precise calculations. Ask it to calculate a long string of numbers, and it might get it wrong while sounding completely authoritative. My return on investment (XIRR) and various spreadsheet calculations are all handed off to scripts. The answers are precise and free. Never ask AI to do mental math for things that need calculating. File conversions. Converting PDFs to text, Word docs to my notes, extracting audio tracks from video, batch resizing images—these all have standard workflows. Write a script to run them, zero AI cost. (Yes, even the four cover images for this series were resized at once with a one-line script.) Scraping data on a schedule. I have a few little bots keeping an eye on rehab course registrations, new papers, and even typhoon day-off announcements. They run automatically on a schedule and only notify me if there\u0026rsquo;s a change. These are pure script-based scheduled jobs, no need for AI to stay awake and stare. Boring batch chores. Renaming a bunch of files at once, moving folders, tidying up lists—anything where the rules can be explained in one sentence gets hardcoded. See the line there? As long as a task has \u0026ldquo;clear rules,\u0026rdquo; \u0026ldquo;repeats,\u0026rdquo; or \u0026ldquo;requires precision,\u0026rdquo; it should be a script, not AI. Only after handing all of this over to scripts does AI have the bandwidth to focus on what it\u0026rsquo;s truly good at: judging, understanding, and generating.\n\u0026ldquo;The cheapest call is the one you don\u0026rsquo;t have to make\u0026rdquo; I really like this saying. Every time you make AI think, it\u0026rsquo;s an inference tax.\nGitHub published some data themselves: they pulled out a \u0026ldquo;clear rules, no AI judgment needed\u0026rdquo; step from an automated workflow and used a script instead, and their token usage dropped by 62%. The exact same task, done the exact same way, just giving the abacus parts back to the abacus.\nThis is also why, when people ask me \u0026ldquo;Will AI replace a lot of jobs?\u0026rdquo;, my feeling is: the strongest parts of AI actually make me see more clearly \u0026ldquo;what things really don\u0026rsquo;t need AI at all.\u0026rdquo; Giving the right job to the right tool—that\u0026rsquo;s the real skill.\nSummary Clear rules and repeats? Use a script. Fast, accurate, and free. Vague and needs judgment? Then use AI. A complex task should usually be broken apart: hardcode what can be hardcoded, and only hand the small chunk that needs brainpower to AI. Starting in the next post, I\u0026rsquo;ll walk you through my \u0026ldquo;heavy usage\u0026rdquo; setup on my computer, starting with how to clear a clean desk for your AI. That\u0026rsquo;s where saving tokens really shows its mettle.\n—\n⬅️ Previous: Why your AI gets dumber the longer you chat ➡️ Next: Clearing a clean desk for your AI\nReferences GitHub Blog (2025). Improving token efficiency in GitHub Agentic Workflows. ","permalink":"https://drpwchen.com/en/posts/ai-token-2-script-vs-llm/","summary":"\u003cp\u003e📖 Token Saving Series (4 parts): \u003ca href=\"/posts/ai-token-1-chat-gets-dumber/\"\u003ePart 1: Why your AI gets dumber the longer you chat\u003c/a\u003e · Part 2 (This post) · \u003ca href=\"/posts/ai-token-3-clean-desk/\"\u003ePart 3: Clearing a clean desk for your AI\u003c/a\u003e · \u003ca href=\"/posts/ai-token-4-budget-dashboard/\"\u003ePart 4: I built a budget dashboard for my AI\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIn the previous post, we talked about how longer AI chats get more expensive and dumber, along with three ways to save right now. This post takes it a step further to discuss a more fundamental divide:\u003c/p\u003e","title":"If an abacus works, don't boot up the supercomputer: When to actually make AI think?"},{"content":"📖 The Token Saving Series (4 parts): Part 1: Why your AI gets dumber the more you chat · Part 2: If an abacus works, don\u0026rsquo;t boot up a supercomputer · Part 3 (This post) · Part 4: I built a budget dashboard for my AI\nThe first two posts were still at the \u0026ldquo;everyone can use this\u0026rdquo; level. Starting with this one, I\u0026rsquo;ll show you the setup on my computer that I\u0026rsquo;ve endlessly tinkered with.\nFirst, some background. Aside from chatting with AI on my phone, what I use more often is a tool called Claude Code: it runs in my computer\u0026rsquo;s terminal, can read my files directly, edit my notes, and automate a bunch of things for me. You can think of it as \u0026ldquo;an AI assistant living in my computer that can actually do things.\u0026rdquo;\nBecause it can do so much and runs so often (a single task can easily call the AI dozens or hundreds of times), the payoff for saving tokens here is magnified many times over. And the first principle of saving tokens is exactly the same as organizing a desk:\nOnly keep what you need right now on your desk, and put everything else in drawers.\nThe residency tax: a cost you pay with every single sentence I have a file called CLAUDE.md. It contains my long-term rules for the AI: what format to use for my notes, which folders not to touch, and what my preferences are.\nThis file has a specific trait: it gets loaded right at the start of every session, and stays right in front of the AI for the entire workflow, never put away.\nThis means if this file has 5,000 tokens, then whether I only ask two sentences today or chat for two hundred, I\u0026rsquo;m repeatedly paying for those 5,000 tokens behind every single sentence.\nI call it the \u0026ldquo;residency tax.\u0026rdquo; Every line is a tax.\nSo I deliberately compress it to about 95 lines, keeping only the truly stable, absolutely necessary rules. Meeting minutes, design processes, and long explanations are all moved elsewhere, only called up when needed.\nBy the way, I always write these \u0026ldquo;AI-only\u0026rdquo; config files in English. That\u0026rsquo;s because Chinese is more expensive in token calculation (Chinese expressing the same meaning usually eats up more tokens than English), while I use Chinese for notes meant for humans. Cost savings for the AI, readability for humans. Everyone wins.\nDrawers: layer your memory, don\u0026rsquo;t spread it all on the desk I built a memory system for my AI, but the point isn\u0026rsquo;t \u0026ldquo;the more it remembers, the better.\u0026rdquo; The point is layering:\nWhat\u0026rsquo;s truly used every day goes on the top layer, loaded automatically at the start of every session. What\u0026rsquo;s only used occasionally goes into drawers, pulled out only when needed. What hasn\u0026rsquo;t been touched in a long time gets archived. I also made a \u0026ldquo;usage heat\u0026rdquo; score: frequently read memories get a high score and stay on the desk; the cold ones automatically sink. This way, the desk always has only the most relevant papers for the current moment.\nThe logic is the same as the abacus in the last post: this heat sorting is calculated by code, without bothering the AI.\nThis is also a useful insight for people using the mobile chat version: ChatGPT\u0026rsquo;s \u0026ldquo;Memory\u0026rdquo; and \u0026ldquo;Custom instructions\u0026rdquo; features aren\u0026rsquo;t free magic. They\u0026rsquo;re invisible content automatically pasted in before every conversation, taking up space and being recalculated with every sentence just the same. So memory needs to be lean; cramming more in isn\u0026rsquo;t better.\nAn almost free ultimate move: make the AI \u0026ldquo;remember\u0026rdquo; what it read last time This trick is called prompt caching. It\u0026rsquo;s a built-in mechanism from Claude, and the one I think is most worth letting more people know about.\nThe principle is this: if the content you send this time starts with a large chunk exactly the same as last time (like that resident config file, or that long document), the system doesn\u0026rsquo;t have to recalculate it. It just reads it directly from the cache. And the price of reading from the cache is only one-tenth of the normal price (saving about 90%).\nBut there\u0026rsquo;s an easy landmine to step on: it compares from the very beginning. If even a single word at the start changes, the entire cache after it is invalidated and billed fresh.\nThe most common trap is someone stuffing a \u0026ldquo;current time\u0026rdquo; or something else that changes every time at the top of that resident config file. As a result, because that time line is different every single time, the entire cache is trashed, and they pay ten times the price for nothing without even knowing it.\nSo the top of my config file is always stable, unchanging content. Anything that might change gets pushed to the back. This one small detail saves a considerable amount of money.\nTwo small contraptions I hooked up myself Since Claude Code allows me to write \u0026ldquo;interceptors\u0026rdquo; to automatically handle things before and after the AI acts, I hooked up two that I really like:\nContraption 1: no nagging reports for successful commands. Every time the AI finishes running a command (like saving or moving a file), that command often spits out a huge string of \u0026ldquo;I did this and that\u0026rdquo; messages. If it succeeded, I don\u0026rsquo;t need to see any of this nonsense. So I set up an interceptor: when a command succeeds, throw its output string straight in the trash; only leave the message if there\u0026rsquo;s an error. The desk is instantly clean, and tokens are saved.\nContraption 2: no throwing PDF images directly to the AI. Echoing the last post, I wrote an interceptor that directly blocks the action of \u0026ldquo;sending a PDF page as an image to the AI,\u0026rdquo; forcing it to go through local text extraction first. Block the expensive path, and it has no choice but to take the cheap one.\nWrapping up: clean is cheap All the tricks in this post really boil down to one sentence: only keep what the AI needs right now on its desk.\nKeep config files lean, because they are a residency tax you pay on every sentence. Layer memory: common stuff on the desk, cold stuff in drawers. Use prompt caching well, so repeated content only costs a tenth of the price. Throw away successful noise directly; don\u0026rsquo;t let it take up space. A clean desk doesn\u0026rsquo;t just save money; the AI answers more accurately, too (remember \u0026ldquo;gets dumber the more you cram\u0026rdquo; from the first post? Same logic).\nThe next post is the final one in this series, and also the one I think is the most fun: how I pick the right level of brain for the AI, and how I built myself a budget dashboard that pops up to warn me \u0026ldquo;you\u0026rsquo;re burning money too fast today.\u0026rdquo;\n—\n⬅️ Previous post: If an abacus works, don\u0026rsquo;t boot up a supercomputer ➡️ Next post: I built a budget dashboard for my AI\nReferences Anthropic. Prompt caching. Claude Platform Docs. https://platform.claude.com/docs/en/build-with-claude/prompt-caching Anthropic. Effective context engineering for AI agents. https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents ","permalink":"https://drpwchen.com/en/posts/ai-token-3-clean-desk/","summary":"\u003cp\u003e📖 The Token Saving Series (4 parts): \u003ca href=\"/posts/ai-token-1-chat-gets-dumber/\"\u003ePart 1: Why your AI gets dumber the more you chat\u003c/a\u003e · \u003ca href=\"/posts/ai-token-2-script-vs-llm/\"\u003ePart 2: If an abacus works, don\u0026rsquo;t boot up a supercomputer\u003c/a\u003e · Part 3 (This post) · \u003ca href=\"/posts/ai-token-4-budget-dashboard/\"\u003ePart 4: I built a budget dashboard for my AI\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe first two posts were still at the \u0026ldquo;everyone can use this\u0026rdquo; level. Starting with this one, I\u0026rsquo;ll show you the setup on my computer that I\u0026rsquo;ve endlessly tinkered with.\u003c/p\u003e","title":"Organizing a clean desk for the AI"},{"content":"📖 Token Saving Series (4 parts in total): Part 1 (this post) · Part 2: If an Abacus Works, Don\u0026rsquo;t Boot Up a Supercomputer · Part 3: Organizing a Clean Desk for AI · Part 4: I Installed a Budget Dashboard for AI\nYou\u0026rsquo;ve definitely had this experience: you chat with ChatGPT or Claude for an afternoon, and the longer it goes, the more sluggish it gets. It replies slower, suddenly \u0026ldquo;forgets\u0026rdquo; what you said earlier, or even starts talking in circles.\nMany people think their internet is slow, or the AI has crashed. It hasn\u0026rsquo;t. Behind this is a truth that most people don\u0026rsquo;t know, but once you do, it will immediately change how you use it.\nTruth 1: AI actually has no \u0026ldquo;memory\u0026rdquo; We intuitively think that AI is like a human, that it \u0026ldquo;remembers\u0026rdquo; the conversation as we chat.\nIt doesn\u0026rsquo;t.\nEvery time you hit send, the AI rereads your entire conversation from the very first sentence to the present, all over again, and only then replies with the next sentence. It doesn\u0026rsquo;t just pick up where it left off; it rereads the whole conversation every single time.\nSo you can imagine: the longer the conversation, the more it has to reread before answering each sentence. This is why it gets slower the more you chat.\nTruth 2: You\u0026rsquo;re actually constantly paying, you just don\u0026rsquo;t see the bill The unit AI uses to process text is called a token (roughly a character or half a word). Every token you input, and every token it outputs, is being billed behind the scenes.\nThe easiest analogy to remember is: a token is AI\u0026rsquo;s taxi meter. The longer the distance (word count), the higher the fare.\nYou don\u0026rsquo;t see this bill in a subscription-based App, but it shows up in front of you with a different face: that \u0026ldquo;you have reached your message limit for today\u0026rdquo; prompt, and the \u0026ldquo;why is it getting slower\u0026rdquo; feeling. Behind the limits and the lag is the computational load of tokens.\nAnd this bill doesn\u0026rsquo;t add up linearly. When the conversation length doubles, the computational load you pay for isn\u0026rsquo;t double, it\u0026rsquo;s closer to quadruple (this is a mathematical property of the AI\u0026rsquo;s internal mechanics). No wonder the lag in long conversations feels like it\u0026rsquo;s exploding.\nTruth 3: The more you cram in, the dumber it gets This is the most counterintuitive point, but the most useful one.\nAI\u0026rsquo;s \u0026ldquo;attention\u0026rdquo; is limited, and all of its attention added up always equals one whole. The more content you cram in, the thinner the attention allocated to each key point gets diluted. Extra fluff will steal focus that should have gone to the critical questions.\nI\u0026rsquo;m not just making this up. A famous study, Lost in the Middle (Liu et al., 2024), found a U-shaped curve: AI remembers information best when it\u0026rsquo;s placed at the beginning or end of the conversation; but for key points buried in the middle, the probability of remembering them drops to only about 20%. No wonder it constantly forgets the things you said in the middle.\nAnother study by Chroma in 2025 tested 18 mainstream models and found that all of them degraded in performance as the input grew longer. This phenomenon is called context rot.\nSo the conclusion is simple: less is more. Give AI just enough information, and it won\u0026rsquo;t just be cheaper and faster, it will answer more accurately too.\nWhat can I do today? Three tricks, zero cost, immediate results Trick 1: When changing topics, start a new chat This is the most effective and most easily overlooked trick. After you finish chatting with it about a travel itinerary, and then want it to help you edit your resume, don\u0026rsquo;t continue in the same chat. Start a new one.\nThe old conversation is not only unhelpful for the new topic, but it will also force the tone and assumptions from the previous topic in as interference. Starting a new chat is like wiping a whiteboard full of old equations clean before writing again; the AI will actually be smarter.\nMany people worry: if I start a new chat, will my old data disappear? It won\u0026rsquo;t. The old conversation is still sitting quietly in your sidebar, where you can find it anytime. Starting a new chat just makes it so that \u0026ldquo;the AI in this new chat\u0026rdquo; can\u0026rsquo;t see the old ones, it doesn\u0026rsquo;t delete them.\nTrick 2: Don\u0026rsquo;t mindlessly paste in entire PDFs or long articles Every word you paste in counts toward the bill, and it gets counted again in every subsequent round of conversation. Pasting a long PDF when you really only need one paragraph from it is like dragging the weight of the entire document along with every following sentence.\nJust paste the specific paragraph you actually want to ask about.\nTrick 3: State your questions clearly and concisely This doesn\u0026rsquo;t just save money, it also makes the answers more accurate (remember Truth 3?). Instead of giving it a massive chunk of background and vaguely asking \u0026ldquo;what do you think?\u0026rdquo;, it\u0026rsquo;s better to just state exactly what you want clearly.\nWhy do I care about this? I\u0026rsquo;m a physiatrist, and I normally use AI heavily: organizing notes, looking up literature, automating a bunch of life chores. The deeper I use it, the more I realize that \u0026ldquo;saving tokens\u0026rdquo; is basically training myself to \u0026ldquo;speak clearly and organize my work cleanly.\u0026rdquo;\nInterestingly, as I later moved from using AI in phone chat Apps all the way to more advanced tools on my computer, I found that every money-saving action I take in the advanced tools is essentially exactly the same as these three tricks above, just with different names.\nIt\u0026rsquo;s the same underlying principle that applies everywhere from phones to terminals. In the next post, I\u0026rsquo;ll talk about a critical dividing line: when should you tell AI to use its brain, and when should you not use AI at all?\n—\n➡️ Next post: If an Abacus Works, Don\u0026rsquo;t Boot Up a Supercomputer: When Should You Tell AI to Use Its Brain?\nReferences Liu, N. F., et al. (2024). Lost in the Middle: How Language Models Use Long Contexts. Transactions of the Association for Computational Linguistics, 12:157–173. arXiv:2307.03172 Chroma Research (2025). Context Rot: How Increasing Input Tokens Impacts LLM Performance. 📍 Where you are on this path 1. Getting started 2. Talking to agentsyou are here 4. Picking tools: the AI toolbox 5. Using a single tool Want to see how the AI workflow posts connect? → 📊 AI Content Map\n","permalink":"https://drpwchen.com/en/posts/ai-token-1-chat-gets-dumber/","summary":"\u003cp\u003e📖 Token Saving Series (4 parts in total): Part 1 (this post) · \u003ca href=\"/posts/ai-token-2-script-vs-llm/\"\u003ePart 2: If an Abacus Works, Don\u0026rsquo;t Boot Up a Supercomputer\u003c/a\u003e · \u003ca href=\"/posts/ai-token-3-clean-desk/\"\u003ePart 3: Organizing a Clean Desk for AI\u003c/a\u003e · \u003ca href=\"/posts/ai-token-4-budget-dashboard/\"\u003ePart 4: I Installed a Budget Dashboard for AI\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eYou\u0026rsquo;ve definitely had this experience: you chat with ChatGPT or Claude for an afternoon, and the longer it goes, the more sluggish it gets. It replies slower, suddenly \u0026ldquo;forgets\u0026rdquo; what you said earlier, or even starts talking in circles.\u003c/p\u003e","title":"Why Does Your AI Get Slower and Dumber the Longer You Chat?"},{"content":"Lately I\u0026rsquo;ve been relying more and more on Claude Code to manage my digital life. From organizing my Obsidian notes to maintaining a bunch of self-hosted services at home (OpenWrt router, AdGuard Home, Synology NAS, Oracle cloud instance, Home Assistant), down to the various automations running themselves in the middle of the night, I hand almost everything over to it. He can do more and more, and I seriously thought about something the other day that I hadn\u0026rsquo;t thought through before: I\u0026rsquo;ve given an AI assistant that can read files on my computer, execute commands, and connect to the internet such vast permissions. If something goes wrong one day, how wrong could it go?\nFirst things first: With such vast permissions, what could go wrong? So I asked Claude to help me look into this from the ground up. We found that the risks of an AI assistant (agent) generally fall into a few categories:\nThe lethal trifecta: Reading files, executing commands, connecting to the internet. These three are fine on their own, but put together, if the AI is tricked, it has the ability to read your secrets and send them out. Indirect prompt injection: In plain English, this is a malicious command hidden in a webpage or a file. When the AI helps you read data, it secretly tells the AI to do things you never asked it to do, like digging out your keys and sending them out. Conversations are kept: The things you casually paste into the chatbox are actually recorded somewhere. Magnified old problems: Keys scattered everywhere, permissions given too broadly, accidentally saving secrets into git. My takeaway after looking this up is that these aren\u0026rsquo;t hypothetical academic risks, they are things that actually happen. Plus, with more and more friends around me starting to play with AI agents and self-hosted services, I figured I\u0026rsquo;d write down and share what I\u0026rsquo;ve found and done, hoping it helps those walking down the same path.\nThe checks and scans we did With the direction set, Claude and I went through things one by one:\nCount exactly how many \u0026ldquo;keys\u0026rdquo; and tokens I had, and where they were scattered. I shouldn\u0026rsquo;t have counted; it was a bit embarrassing. Turns out it\u0026rsquo;s messier than I thought. Use a tool called gitleaks to scan the git history of my own notes vault and all my projects, checking if my hand ever slipped and committed a key. Lay out the \u0026ldquo;who can log into who\u0026rdquo; relationship across every host at home (in cybersecurity, this is called lateral movement, meaning whether an attacker can jump to the next machine after compromising one). Check the permission settings I gave the AI, and what was actually left in those past chat logs. The problems we found, and how we patched them This section feels a bit like a confession 😅, but I think honestly writing out the pitfalls is much more useful than pretending I did it right from the start.\nProblem 1: An unlocked master key I had an SSH (Secure Shell, for logging into hosts remotely) key that didn\u0026rsquo;t even have a password, and the same key could open almost all the hosts in my house. It was essentially an unlocked master key; whoever picked it up could open the whole house.\nHow we handled it: We added a passphrase to it, and used a mechanism called ssh-agent so I only have to type it once, and automations still run smoothly afterwards. It covers both security and convenience. Then we changed it from \u0026ldquo;one key opens the whole house\u0026rdquo; to \u0026ldquo;one key does only one thing\u0026rdquo; (this trick is called forced command, which specifies that logging in with this key can only execute a pre-set command, and cannot get a normal shell).\nProblem 2: Passwords casually pasted into chats For convenience in the past, I had pasted tokens directly into the chatbox with the AI, so they were left in the local logs. For things that have \u0026ldquo;already leaked,\u0026rdquo; rather than chasing down copies one by one, the cleanest approach is to directly rotate the old key, issue a new one, and have the old one invalidated on the spot. All those copies out there become waste paper.\nProblem 3: Two forgotten keys lying in my notes This hit home the most this time. I used gitleaks to scan my note history and actually dug up two real keys I had casually jotted down years ago and had completely forgotten about. Turns out the biggest hole is often not some advanced attack, but \u0026ldquo;the past you who wanted convenience.\u0026rdquo;\nThe fix is the same: remove and rotate. Then I installed an automated scan, so this kind of thing gets blocked before it enters git from now on.\nProblem 4: Plaintext secrets and an unguardrailed AI Some secrets were sitting in plaintext, and the permissions I gave the AI had no guardrails. We did three things: we moved the secrets into the OS\u0026rsquo;s built-in encrypted vault (called DPAPI on Windows, Keychain on Mac), set up a \u0026ldquo;no-read zone\u0026rdquo; for the AI, explicitly forbidding it from touching those keys and password files, and changed every token to only give \u0026ldquo;just enough\u0026rdquo; minimum permissions. That way, even if a key accidentally leaks, the damage it can cause is boxed in tightly.\nBy the way, this spring cleaning also dug up an old service I retired a long time ago but was still silently running. I casually turned it off and cleaned it up, freeing up a chunk of hard drive space. Unexpectedly healing 😄\nA few takeaways I want to keep, beyond just getting the job done Tools and commands will go out of date, but after this cleanup, there are a few mindsets I feel are more lasting, and these are what I really want to share:\nTreat the AI like a \u0026ldquo;highly capable new colleague who needs to be managed first.\u0026rdquo; Decide what the AI can\u0026rsquo;t do before deciding what it can do. I think this default of \u0026ldquo;limit first, authorize later\u0026rdquo; is what we need most in the AI agent era. Instead of chasing down every leaked copy, let the old stuff \u0026ldquo;fail all at once.\u0026rdquo; The power of rotating keys is that you don\u0026rsquo;t have to worry about which corners they were copied to. Convenience and security aren\u0026rsquo;t an either/or choice. Like adding a password to a key but using an agent to maintain the automation, that\u0026rsquo;s an example of me wanting both. Most of the time, if you\u0026rsquo;re willing to put in a little extra thought, you can have both. Security is a habit, not a one-time project. Finishing this time isn\u0026rsquo;t the end, but rather installing a few good habits and keeping them running from now on. Finally, sharing a little knowing smile: you might notice that I haven\u0026rsquo;t posted what my home network looks like, which host is what, or what accounts I use in this entire post. The reason is exactly what this whole post is about 😆\nNext time, I want to talk about how I save tokens (which really means saving money) when using AI. After all, using it like this every day adds up to a real expense 🤣. I\u0026rsquo;ll share it later~\n(I\u0026rsquo;m not a cybersecurity pro, just a physician who loves self-hosted stuff sharing his own cleanup and reflections. If I got something wrong, corrections are welcome.)\n📍 Where you are on this path 1. Getting started 2. Talking to agentsyou are here 4. Picking tools: the AI toolbox 5. Using a single tool Want to see how the AI workflow posts connect? → 📊 AI Content Map\n","permalink":"https://drpwchen.com/en/posts/ai-agent-secrets-audit/","summary":"\u003cp\u003eLately I\u0026rsquo;ve been relying more and more on Claude Code to manage my digital life. From organizing my Obsidian notes to maintaining a bunch of self-hosted services at home (OpenWrt router, AdGuard Home, Synology NAS, Oracle cloud instance, Home Assistant), down to the various automations running themselves in the middle of the night, I hand almost everything over to it. He can do more and more, and I seriously thought about something the other day that I hadn\u0026rsquo;t thought through before: \u003cstrong\u003eI\u0026rsquo;ve given an AI assistant that can read files on my computer, execute commands, and connect to the internet such vast permissions. If something goes wrong one day, how wrong could it go?\u003c/strong\u003e\u003c/p\u003e","title":"When AI Can Do It All, I Double-Check My Keys at Home"},{"content":"Last December, I took Neurodynamic Solutions (NDS) Level 1 and Level 2, taught by Michael Shacklock himself in Taiwan. Shacklock is the founder of the clinical neurodynamics system, and having him walk us through demonstrations step-by-step was a rare opportunity. After finishing both levels, I had taken over a hundred pages of notes, and it completely changed the way I look at \u0026ldquo;nerve pain.\u0026rdquo;\nTo be honest, very few courses out there truly target nerves for treatment, which is one of the reasons I went out of my way to take NDS.\nSimply put, neurodynamics deals with movement-related nerve pain. Its premise is intuitive: nerves aren\u0026rsquo;t fixed wires; they slide, stretch, and get compressed by surrounding tissues as our joints move. When this interaction of mechanics and blood flow goes wrong, they get inflamed, become sensitive, and start to hurt.\n1. Turns out my usual nerve exams weren\u0026rsquo;t standard enough The first shock was realizing that the nerve tension tests I used to do (like SLR, upper limb neurodynamic test) were actually never rigorous enough.\nThis system heavily emphasizes position, position, position. Each joint must be moved into a fixed, ergonomic posture, added on slowly one by one, and locked in place once moved, to truly feel the change in nerve tension and ensure reproducibility. There are also details like \u0026ldquo;test the asymptomatic side first, move only one joint at a time, stop as soon as symptoms (P1) or resistance (R1) appear.\u0026rdquo; Only after standardizing could I reliably judge: is this a musculoskeletal problem, or a nerve problem?\n2. Designing exams and treatments starting from \u0026ldquo;how nerves actually move\u0026rdquo; What fascinated me most about this class was that it doesn\u0026rsquo;t start from abstract diagnoses, but goes back to anatomy, looking at how nerves actually move during each action.\nTo give a few points that overturned my understanding: nerves move toward the \u0026ldquo;joint being tensioned\u0026rdquo; (convergence), so even with a slider technique, if you move the wrong joint, the nerve actually isn\u0026rsquo;t sliding relatively at all; what we thought was a \u0026ldquo;cervical slider\u0026rdquo; (moving the neck and arm together) actually produces zero relative motion for the nerve, because the intervertebral foramen moves together with it. Or, taking spinal cord movement into account, finding out that tensioning the contralateral nerve actually relaxes the ipsilateral nerve root. These are all deduced straight from mechanics, rather than memorizing mnemonics.\nThen, dividing the interface (the muscles, ligaments, and bones surrounding the nerve) into open / close, dividing the nerve\u0026rsquo;s own issues into tension / sliding / pathophysiology, and using a 2x2 box to think \u0026ldquo;is the nerve itself diseased, or is it caused by interface compression\u0026rdquo;—the whole clinical reasoning suddenly became much more organized.\n3. Whether injecting or not, I have more patient education and home exercises to teach As a physiatrist, we often think about whether to do an injection or which modalities to use. But this class reminded me that nerve issues have an incredibly rich set of manual therapy and home exercises we can teach. After an injection, maybe we could try teaching the patient some exercises, and perhaps get an even better result?\nMoreover, the instructor cited research proving that as long as the movement quality and dosage of home exercises equal that of manual therapy, the effects are the same—or even better if done enough. What left the deepest impression in class was a pilot RCT on acute herniated intervertebral disc (HIVD) patients: just repeatedly doing a static opener (opening the intervertebral foramen to decompress the nerve and allow blood flow, as shown below) for sixteen days cut opioid use in half and drastically dropped pain scores. This means many patients don\u0026rsquo;t actually need to rush into injections or surgery; you can just give them a set of evidence-based homework to do themselves at home.\nRef: Shacklock M, Rade M, Poznic S, Marčinko A, Fredericson M, Kröger H, Kankaanpää M, Airaksinen O. Treatment of Sciatica and Lumbar Radiculopathy with an Intervertebral Foramen Opening Protocol: Pilot Study in a Hospital Emergency and In-patient Setting. Physiother Theory Pract. 2023 Jun;39(6):1178-1188. doi: 10.1080/09593985.2022.2037797\n4. No obvious nerve symptoms doesn\u0026rsquo;t mean no neurodynamic issues (especially in athletes) The final takeaway filled a gap in my assessment toolbox.\nIn the past, I always figured: if the patient has no numbness, no weakness, and a normal neurological exam, we\u0026rsquo;ve probably ruled out nerve problems. But this system told me that someone with entirely normal standard exams might still have neurodynamic abnormalities; they just haven\u0026rsquo;t crossed their \u0026ldquo;demand\u0026rdquo; threshold to be provoked yet. This is especially important for high-performance athletes—a nerve tightness so small it\u0026rsquo;s asymptomatic for regular people might be enough to impair performance for an athlete requiring extremely high function.\nSo the course designed a whole set of advanced tests (Level 3), using longer levers, changing the movement sequence, or asking patients to go do the provoking activity first before coming back for testing, to dig out these \u0026ldquo;hidden\u0026rdquo; problems. Shacklock said: for musculoskeletal patients who haven\u0026rsquo;t improved after two or three weeks of treatment, you have to look back and wonder if it\u0026rsquo;s a neurodynamic problem. This gave me a completely new angle to re-examine those stuck cases.\nSummary After taking NDS, my biggest shift wasn\u0026rsquo;t learning a few new manual techniques, but putting on a new pair of glasses for looking at nerves: starting from mechanics and anatomy, standardizing the exams, making the reasoning clear, and doing the exercise education right. For colleagues looking to treat \u0026ldquo;movement-related nerve pain,\u0026rdquo; I highly recommend this system.\n","permalink":"https://drpwchen.com/en/posts/neurodynamic-solutions/","summary":"\u003cp\u003eLast December, I took Neurodynamic Solutions (NDS) Level 1 and Level 2, taught by Michael Shacklock himself in Taiwan. Shacklock is the founder of the clinical neurodynamics system, and having him walk us through demonstrations step-by-step was a rare opportunity. \u003cstrong\u003eAfter finishing both levels, I had taken over a hundred pages of notes, and it completely changed the way I look at \u0026ldquo;nerve pain.\u0026rdquo;\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eTo be honest, very few courses out there truly target nerves for treatment, which is one of the reasons I went out of my way to take NDS.\u003c/p\u003e","title":"\"Neurodynamic Solutions: Turns out my nerve exams have never been standard enough\""},{"content":"Ever since becoming a resident, looking for continuing education courses has hit the same pain point every time: ultrasound, manual therapy, foot and ankle, neuro, pediatric rehab\u0026hellip; The courses are scattered across a dozen society and institution websites. I\u0026rsquo;d have to refresh the sites every few days, and I was never sure if I\u0026rsquo;d actually seen a particular post before.\nLater on, I set up web scrapers for these course pages in my Home Assistant at home to automatically notify me of new courses, and things finally got a lot easier. But realizing I\u0026rsquo;d be completing residency soon, this little tool sitting at home wouldn\u0026rsquo;t be able to keep reminding the junior residents. Figuring I had Claude anyway, I just asked it to scrape all the courses and announcements from these 17 rehab-related societies and institutions, aggregate them in one place, update automatically every 3 hours, and put it on the web for everyone to use.\nAnd so, this website was born:\n👉 https://courses.drpwchen.com\nWhat\u0026rsquo;s on the site:\n📅 Latest courses: See everything on one page. You can sort by event date, exclude past events, and filter by category and source. 🗓️ Event calendar: See at a glance what courses are happening this month. 📣 Latest announcements: Catches the latest announcements from the various societies too. 🔔 Subscribe for notifications: If you want to be notified, you can subscribe via RSS or ntfy. New courses get pushed to you automatically, so you don\u0026rsquo;t have to patrol the websites yourself. A few notes:\nThe data is automatically aggregated from the public announcement pages of each society and institution. It only shows titles and links, routing you back to the original site. This is an unofficial aggregation; please refer to the original announcements for the actual information. No login required. Clicking on an event directly opens the original announcement page. It\u0026rsquo;s purely a tool I built for myself that I\u0026rsquo;m opening up, hoping it helps everyone in our specialty too~\nIf you notice any missing societies or institutions, or if you think of any features, feel free to let me know and I\u0026rsquo;ll add them in! 🙌\nIf this tool has saved you some time, feel free to buy me a boba tea to keep the server spinning 🧡\nBuy me a boba! —\n📍 Where you are on this path 1. Getting started 2. Talking to agents 4. Picking tools: the AI toolbox 5. Using a single toolyou are here Want to see how the AI workflow posts connect? → 📊 AI Content Map\n","permalink":"https://drpwchen.com/en/posts/rehab-course-radar/","summary":"\u003cp\u003eEver since becoming a resident, looking for continuing education courses has hit the same pain point every time: ultrasound, manual therapy, foot and ankle, neuro, pediatric rehab\u0026hellip; The courses are scattered across a dozen society and institution websites. I\u0026rsquo;d have to refresh the sites every few days, and I was never sure if I\u0026rsquo;d actually seen a particular post before.\u003c/p\u003e\n\u003cp\u003eLater on, I set up web scrapers for these course pages in my Home Assistant at home to automatically notify me of new courses, and things finally got a lot easier. But realizing I\u0026rsquo;d be completing residency soon, this little tool sitting at home wouldn\u0026rsquo;t be able to keep reminding the junior residents. Figuring I had Claude anyway, I just asked it to scrape all the courses and announcements from these 17 rehab-related societies and institutions, aggregate them in one place, update automatically every 3 hours, and put it on the web for everyone to use.\u003c/p\u003e","title":"Built a PM\u0026R Continuing Education Radar"},{"content":"A minor annoyance that bothered me for a long time I\u0026rsquo;m a heavy Obsidian user, with thousands of notes sitting in my vault.\nBut there\u0026rsquo;s one really inconvenient thing: Obsidian\u0026rsquo;s built-in search only looks for the exact words you type.\nThe problem is, how would I remember what words I used back then for a note written three years ago? I\u0026rsquo;m thinking \u0026ldquo;how to manage a flaccid bladder,\u0026rdquo; but the note says Neurogenic Bladder → flaccid type → intermittent catheterization. The words don\u0026rsquo;t match, so the search returns a blank page. The worst part is, there were several times when I thought I hadn\u0026rsquo;t written about it, so I rewrote the whole thing, only to find out later that a more complete version had been lying there all along 😅\nSo I took some time to wire up a tool for my vault to \u0026ldquo;search notes by meaning\u0026rdquo;. I\u0026rsquo;ve used it for half a year, and now I\u0026rsquo;ve cleaned it up and open-sourced it.\nThe trio It\u0026rsquo;s not one massive feature, but three small tools, each with its own job, sharing the same index.\n🔍 Vault Search — Find the right paragraph with a single sentence The core one. You ask a question in natural language, and it returns the note paragraphs that are closest in semantic meaning, instead of doing keyword matching.\nIf I type \u0026ldquo;how to manage flaccid bladder after spinal cord injury,\u0026rdquo; it pulls up the Neurogenic Bladder note directly, even if none of those Chinese characters appear in the note. It looks at the meaning, not the words.\nThe results are automatically split into two tiers: \u0026ldquo;Primary Matches\u0026rdquo; and \u0026ldquo;Other Matches.\u0026rdquo; They can also be collapsed and previewed, so you don\u0026rsquo;t have to click them open one by one.\n🔗 Related Notes — Wire up the nerves for your notes This is a sidebar that updates in real-time. When I read a note or select a chunk of text, it automatically pops up related notes on the side.\nTo me, this is a \u0026ldquo;surprise generator.\u0026rdquo; A lot of things \u0026ldquo;I completely forgot I wrote\u0026rdquo; just get connected this way. When I\u0026rsquo;m writing a new note, three to five old notes will pop up on the side reminding me \u0026ldquo;hey, you can actually link to this,\u0026rdquo; slowly weaving scattered cards into a net.\n💬 Vault Chat — Chat directly with your own notes This is the familiar RAG: it searches for related notes first, then feeds the content to the AI to answer. But I deliberately designed three modes:\nVault mode: Answers based on your notes only. You don\u0026rsquo;t have to worry about the AI making things up. Hybrid mode: Primarily uses your notes, supplementing with the AI\u0026rsquo;s own knowledge when insufficient, and clearly marks what is \u0026ldquo;supplemental.\u0026rdquo; Free mode: Doesn\u0026rsquo;t search notes; pure free chat, and it can also look up PubMed literature. After every answer, it lists which notes were cited, which you can click open to verify with one tap. For fields like medicine where \u0026ldquo;wrong answers have consequences,\u0026rdquo; traceable sources are something I care about deeply.\nClick on any citation, and you can also see the exact original note segment it fed to the AI. The entire chain of reasoning is laid out for inspection.\nHow it works (for the curious) Simply put:\nAn indexer program crawls the entire vault, chunks every note by heading, uses a local embedding model (bge-m3, bilingual English-Chinese) to convert them into vectors, and stores them in LanceDB, a local vector database. After that, it\u0026rsquo;s all incremental updates—only modified notes are recalculated. When searching, it converts your question into a vector, finds the closest paragraphs, and then re-weights them with a set of ranking logic (trusted folders get a boost, newer notes rank higher). A FastAPI service exposes these for the Obsidian plugin to use; there\u0026rsquo;s also an MCP server so coding agents like Claude Code can directly call \u0026ldquo;search my vault\u0026rdquo; as a tool. The embeddings run entirely locally, so your notes never leave your computer during a search. For people keeping patient-related content or any notes they don\u0026rsquo;t want on the cloud, this is the bottom line.\nWhy I insist on \u0026ldquo;local-first\u0026rdquo; This system was originally built around a home PC with a GPU that\u0026rsquo;s always on + a Claude subscription. But when I cleaned up the open-source version, I deliberately dismantled these \u0026ldquo;assumptions,\u0026rdquo; because most people won\u0026rsquo;t happen to have this exact setup. So:\nNo GPU? Doesn\u0026rsquo;t matter. bge-m3 runs fine on a CPU. The initial indexing for a large vault will be slightly slower, but the search itself is instant. No Claude subscription? Just use Vault mode for chat. The whole thing runs on a local model, zero cost. No always-on machine? Just spin up the server when you open Obsidian. Want to use it on your phone too? Run the server on a home PC or NAS, set an API key, and your phone can connect back to search your notes. There\u0026rsquo;s a complete \u0026ldquo;adjust to your environment\u0026rdquo; mapping table in the README that spells out these alternatives clearly.\nWho is this for Even though I\u0026rsquo;m a physician and use it to study for exams, this tool is completely field-agnostic. A researcher\u0026rsquo;s paper repository, a lawyer\u0026rsquo;s statute notes, an engineer\u0026rsquo;s technical docs, or simply a personal wiki built up over years—as long as it\u0026rsquo;s a pile of markdown notes, it works.\nCompletely free, MIT-licensed, with full installation instructions in English and Chinese. If you also frequently \u0026ldquo;can\u0026rsquo;t search up notes you wrote yourself,\u0026rdquo; feel free to give it a try, and you\u0026rsquo;re welcome to join in making it better.\n👉 GitHub: github.com/drpwchen/vault-search\nIf this tool saved you some time, you\u0026rsquo;re also welcome to buy me a boba tea to keep the servers spinning 🧡\nBuy me a boba! —\n📍 Where you are on this path 1. Getting started 2. Talking to agents 4. Picking tools: the AI toolbox 5. Using a single toolyou are here Want to see how the AI workflow posts connect? → 📊 AI Content Map\n","permalink":"https://drpwchen.com/en/posts/obsidian-vault-search/","summary":"\u003ch2 id=\"a-minor-annoyance-that-bothered-me-for-a-long-time\"\u003eA minor annoyance that bothered me for a long time\u003c/h2\u003e\n\u003cp\u003eI\u0026rsquo;m a heavy Obsidian user, with thousands of notes sitting in my vault.\u003c/p\u003e\n\u003cp\u003eBut there\u0026rsquo;s one really inconvenient thing: \u003cstrong\u003eObsidian\u0026rsquo;s built-in search only looks for the exact words you type.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThe problem is, how would I remember what words I used back then for a note written three years ago? I\u0026rsquo;m thinking \u0026ldquo;how to manage a flaccid bladder,\u0026rdquo; but the note says \u003ccode\u003eNeurogenic Bladder → flaccid type → intermittent catheterization\u003c/code\u003e. The words don\u0026rsquo;t match, so the search returns a blank page. The worst part is, there were several times when I thought I hadn\u0026rsquo;t written about it, so I rewrote the whole thing, only to find out later that a more complete version had been lying there all along 😅\u003c/p\u003e","title":"I turned Obsidian into a second brain that \"searches notes by meaning\" (and open-sourced it)"},{"content":"Background: What I was already using When studying for the board examination, I set up a RAG (Retrieval Augmented Generation) pipeline for myself. Using semantic search to look at similarity, I turned hundreds of physical medicine and rehabilitation (PM\u0026amp;R) textbooks and my own notes into something I could search and query. I use it for reading in Obsidian, while also letting Claude find what I need via MCP.\nIts weakest point right now is connecting knowledge across different documents. So a few days ago, when I saw someone share a newly published paper, SAG (SQL-Retrieval Augmented Generation), claiming that adding SQL and graph concepts on top of semantic search makes cross-document search easier—with effects similar to GraphRAG but easier to build and maintain—my eyes lit up.\nIn this day and age, naturally, I just threw the paper link to Claude, asked it to read the paper, pull the original author\u0026rsquo;s GitHub, understand the approach, and then use my own data to reproduce the whole pipeline and actually run a benchmark XD\nPaper: Wu et al., SAG: SQL-Retrieval Augmented Generation with Query-Time Dynamic Hyperedges, arXiv:2606.15971. Code: github.com/Zleap-AI/SAG-Benchmark\nStep 1: Choosing a model (Tears of an RTX-3070) The most critical step in the whole pipeline is using an LLM to extract \u0026ldquo;events + entities\u0026rdquo; from each text chunk and save them to a database. The original paper used Qwen, so I compared local Qwen (qwen3.5:4b) with cloud-based Claude Haiku.\nIt turned out Haiku\u0026rsquo;s information extraction capability was clearly better. The entity graph was denser and the naming more consistent (which is important for linking with SQL later), and it seemed very cheap. This matches my previous experience. Maybe my RTX-3070 is just too weak; it can\u0026rsquo;t run slightly larger models (tears of an era). Just using Haiku is fast and good!\nBy the way, I can use Haiku without an API subscription: I just dispatch Claude\u0026rsquo;s subagent to do it, running within my existing quota.\nThree findings on textbooks I used neurorehabilitation textbooks as a test corpus, designed a batch of clinical questions, and pitted SAG head-to-head against the original semantic search. The results came in three rounds:\nRound 1, a single book: A tie. Semantic search was already strong enough; the multi-hop mechanism had no room to shine.\nRound 2, cross-book, but all keywords were explicitly stated in the question: Still a tie. Because the question already spelled out \u0026ldquo;stroke, spasticity, gait,\u0026rdquo; semantic search fetched the relevant passages on its own.\nRound 3, cross-book, but only asking about one end, deliberately omitting the middle hop (e.g., just asking \u0026ldquo;how to manage equinovarus,\u0026rdquo; expecting it to link to the underlying spasticity mechanism and treatment on its own): SAG finally won, and won by a lot.\nImplicit bridge questions (only giving one end) Semantic baseline SAG Across 3 books 75% 100% I was quite happy at this point, thinking the advantage should be even bigger with more books. So I increased the corpus to 13 books. As a result, the advantage shrank instead of growing:\nImplicit bridge questions Semantic baseline SAG Gap 3 books 75% 100% +25pp 13 books 79% 83% +4pp The reason is that as books increase, they become redundant. The same concept appears repeatedly across many books, so semantic search can bump into it without relying on that graph. The scenario where SAG truly thrives is when \u0026ldquo;clues are rare, hiding in only one or two places,\u0026rdquo; which is the exact opposite of my hundreds of highly repetitive textbooks.\nSo for a textbook library, this is a feature that doesn\u0026rsquo;t need to be added.\nThe twist: So where is the \u0026ldquo;sparse\u0026rdquo; data? My note vault Since it thrives on sparse data, I thought of my own Obsidian medical note vault (about 2,510 notes). Each concept often only appears in one or two notes—perfectly sparse.\nAnd the key is: my notes were already connected with wiki links, which is actually a knowledge graph I built manually (the exact kind of graph GraphRAG tries to generate automatically). In other words, the graph SAG has to spend LLM calls to extract, I mostly already had for free.\nThe problem was that I lost a lot of links when moving over from Evernote, so the graph was broken. When I measured it, I found that 86% of my \u0026ldquo;link targets\u0026rdquo; were dead ends (pointing to non-existent notes, or only appearing once). Only 700 or so could actually act as a \u0026ldquo;bridge\u0026rdquo;.\nRestoring the links first (purely mechanical, no review needed) I asked Claude to write a small tool that scanned through every note. Whenever the text literally mentioned the title of another note, it automatically added a [[link]] at the first occurrence. This was deterministic matching, not semantic judgment, so I basically didn\u0026rsquo;t have to review them line by line.\nI hit a landmine along the way worth noting: at first, I included \u0026ldquo;aliases\u0026rdquo; in the matching, which resulted in a massive explosion of acronym mismatches. For example, \u0026ldquo;WHO (World Health Organization)\u0026rdquo; got linked to \u0026ldquo;Wrist-Hand Orthosis\u0026rdquo;, whose alias is WHO. The English word \u0026ldquo;was\u0026rdquo; got linked to the acronym WAS. Later I narrowed it down to \u0026ldquo;only link titles + safe aliases (multi-word phrases or Chinese translations, like tennis elbow → lateral epicondylitis)\u0026rdquo; to keep it clean. In the end, it safely restored thousands of links. Earning these links was a win in itself. Obsidian\u0026rsquo;s backlinks, graph view, and navigation all improved together.\nFinding related notes: 34% → 60% Then I tested the real use case: opening a note and automatically finding other related notes.\nrecall@10 (finding correct related notes) Semantic search SAG (Graph) Proportion of correct matches 34% 60% Almost doubled. And looking at actual examples makes the difference clear:\nOpening [Sono - Ankle]: The graph method linked to Haglund\u0026rsquo;s, supinated foot, Achilles tendinopathy, and sinus tarsi syndrome (all things you\u0026rsquo;d encounter when scanning an ankle); semantic search drifted from ankle instability to the knee, ACL, and even acetabulum. Opening [CVA (stroke)]: The graph method linked to spinal cord injury, transverse myelitis, traumatic brain injury, and post-stroke CRPS (the whole neurorehabilitation landscape); semantic search just spun around the literal word \u0026ldquo;stroke\u0026rdquo;. The graph method links to notes that are \u0026ldquo;conceptually truly related\u0026rdquo;, while semantic search is easily led astray by literal similarity.\nHaving Claude the grad student check the literature: 60% → 84% At this point I thought, there\u0026rsquo;s no way this is the only new paper adding \u0026ldquo;SQL to RAG\u0026rdquo;, so I asked Claude the grad student to continue searching the literature. Sure enough, hybrid retrieval of \u0026ldquo;semantics + graph\u0026rdquo; has been a red ocean over the past year or two:\nKG²RAG (NAACL 2025): Semantics provide seed chunks → knowledge graph expansion. HopRAG (ACL 2025): Starts with semantic similarity → multi-hop neighbor exploration → pruning. LinearRAG (2025): Explicitly says \u0026ldquo;using LLMs to extract relations and build graphs is expensive and unstable\u0026rdquo;, advocating for lightweight, relation-free graphs. Perfectly endorsing our approach. MiniRAG (2025): Lightweight graph RAG for small models, saving 75% storage. LightRAG (EMNLP 2024): Dual-level (local/global) hybrid retrieval. Our stuff isn\u0026rsquo;t novel. But that\u0026rsquo;s good news; it means the direction is right and we can stand directly on the shoulders of giants.\nAfter comparing, the most worthwhile thing to copy was the ranking method. My initial ranking was very naive, just \u0026ldquo;counting how many shared links\u0026rdquo;; switching to the personalized PageRank from the LinearRAG/HippoRAG school (starting from seed notes, doing a \u0026ldquo;random walk with restart\u0026rdquo; along the links, letting scores diffuse and aggregate along the graph), the results jumped another big step:\nRanking method (same wiki link graph) recall@10 Semantic baseline 34% Shared link count (naive) 60% personalized PageRank 84% It was consistent across different Ks (@5: 23% → 46%; @10: 34% → 60% → 84%; @20: 45% → 72%). Moreover, it doesn\u0026rsquo;t use an LLM at all and is instantaneous (pure numpy). In other words, between the graph source (readymade wiki links) and the ranking method (PageRank), the latter is the true key to widening the gap.\nI also grabbed LightRAG (an off-the-shelf Graph RAG engine) for comparison: Stuffing my wiki link graph in using its insert_custom_kg API worked (without using its own LLM extraction), but it had to use an LLM to extract keywords for every query. It took about 20 seconds per run, much slower, and wasn\u0026rsquo;t any better for \u0026ldquo;finding related\u0026rdquo;. So I\u0026rsquo;m leaving LightRAG for \u0026ldquo;freeform Q\u0026amp;A\u0026rdquo;, and using our lightweight setup for \u0026ldquo;finding related notes\u0026rdquo;.\nAnd then I put it straight into production Finally, I asked Claude to wire this PageRank sorting into my own vault-search system (a local MCP server + Obsidian plugin):\nAdded a pure PageRank \u0026ldquo;find related\u0026rdquo; tool. Swapped the pure semantic ranking previously used for \u0026ldquo;finding related notes\u0026rdquo; with a \u0026ldquo;semantics + PageRank\u0026rdquo; fusion (using reciprocal rank fusion to combine the two rankings). Because my plugin\u0026rsquo;s \u0026ldquo;related notes\u0026rdquo; panel was already hitting that API, I didn\u0026rsquo;t even have to change the plugin, the whole thing just got better together 😄\nConclusion Textbook library (large, redundant): No need to add it; semantic search is already good enough. Note vault (small, sparse, with existing manual links): A great fit. It runs entirely on my existing wiki links, zero LLM extraction, zero maintenance drift. Already in production. Two key variables: One is \u0026ldquo;how to ask\u0026rdquo; (relying on note links to chain related notes is stronger than free-text search); the other is \u0026ldquo;how to rank\u0026rdquo; (PageRank-style diffusion \u0026gt; simply counting links). Plus, I conveniently restored my broken note links along the way. Being able to throw a whole paper to an LLM like this, asking it to read, learn, test, and finally wire it into the system for me, is genuinely so convenient and fun. Just scrolling through Facebook, and I casually verified a new method on my own system and put it into production 😆\nNext post, I\u0026rsquo;ll lay out exactly how this whole vault-search is built: Obsidian plugin + local MCP server, semantics + graph, how to index and how to query. That\u0026rsquo;s what I\u0026rsquo;m actually using every day.\nReferences SAG: Wu et al., SAG: SQL-Retrieval Augmented Generation with Query-Time Dynamic Hyperedges, arXiv:2606.15971 (github.com/Zleap-AI/SAG-Benchmark) KG²RAG: Zhu et al., Knowledge Graph-Guided Retrieval Augmented Generation, NAACL 2025 HopRAG: Liu et al., HopRAG: Multi-Hop Reasoning for Logic-Aware Retrieval-Augmented Generation, ACL 2025 LinearRAG: Zhuang et al., LinearRAG: Linear Graph Retrieval Augmented Generation on Large-scale Corpora, 2025 (github.com/DEEP-PolyU/LinearRAG) MiniRAG: Fan et al., MiniRAG: Towards Extremely Simple Retrieval-Augmented Generation, 2025 (github.com/HKUDS/MiniRAG) LightRAG: Guo et al., LightRAG: Simple and Fast Retrieval-Augmented Generation, EMNLP 2024 (github.com/HKUDS/LightRAG) HippoRAG: Gutiérrez et al., HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models, NeurIPS 2024 —\n📍 Where you are on this path 1. Getting started 2. Talking to agents 4. Picking tools: the AI toolbox 5. Using a single toolyou are here Want to see how the AI workflow posts connect? → 📊 AI Content Map\n","permalink":"https://drpwchen.com/en/posts/vault-graph-rag/","summary":"\u003ch2 id=\"background-what-i-was-already-using\"\u003eBackground: What I was already using\u003c/h2\u003e\n\u003cp\u003eWhen studying for the board examination, I set up a RAG (Retrieval Augmented Generation) pipeline for myself. Using semantic search to look at similarity, I turned hundreds of physical medicine and rehabilitation (PM\u0026amp;R) textbooks and my own notes into something I could search and query. I use it for reading in Obsidian, while also letting Claude find what I need via MCP.\u003c/p\u003e\n\u003cp\u003eIts weakest point right now is connecting knowledge across different documents. So a few days ago, when I saw someone share a newly published paper, \u003cstrong\u003eSAG (SQL-Retrieval Augmented Generation)\u003c/strong\u003e, claiming that adding SQL and graph concepts on top of semantic search makes cross-document search easier—with effects similar to GraphRAG but easier to build and maintain—my eyes lit up.\u003c/p\u003e","title":"Adding graph retrieval to my medical LLM Wiki, and it actually works this time"},{"content":"I finished the board examination last weekend, and I\u0026rsquo;m finally going to be a PM\u0026amp;R attending physician!\nAfter more than a decade in Hualien, taking the train back and forth to Taipei for classes so many times, I made myself a Taiwan Railways gold member early on. Recently, while preparing for a hospital promotion, I asked Claude to scrape and organize all the PM\u0026amp;R courses I\u0026rsquo;ve taken over the years. Adding up the online and offline ones, I found out the total broke 150! I never expected to have racked up so much tuition expense without even realizing it 🤣\nI still remember during my R1 year, the editor-in-chief of Braddom (one of the most important textbooks in PM\u0026amp;R), Prof. Cifu, came to the Taiwan Academy of Physical Medicine and Rehabilitation annual meeting to give a talk on \u0026ldquo;How to be an outstanding physiatrist.\u0026rdquo; He talked about how, since becoming an attending physician, he switched fields about every ten years, and managed to reach the top in each one. I was curious what advice he\u0026rsquo;d give to residents, so I raised my hand and asked. He said: get exposed to all sorts of fields, and don\u0026rsquo;t limit yourself to just one. Looking back over these four years, I don\u0026rsquo;t think I let his advice down. Pediatric rehab, neuro, orthopedics, musculoskeletal ultrasound, manual therapy, and so on, I learned whatever I had the chance to. It\u0026rsquo;s been a very fulfilling four years. Especially thinking back on it right after the exam, I really know so much more than I used to. I\u0026rsquo;m very happy for myself, and very grateful.\nI\u0026rsquo;m really quite happy that I got to do my training at Hualien Tzu Chi Hospital. Surgical simulations, prolotherapy medical missions in Hualien and Taitung, pediatric rehab case conferences, weekly musculoskeletal ultrasound and cardiopulmonary teaching, plus fully-funded trips to the AAP in the US and ISPRM in Australia, as well as short-term training at NTU Hospital, Taipei Veterans General Hospital, and Linkou Chang Gung. Along the way, I watched how many respected mentors see patients, and ran into quite a few masters, including the highly revered Prof. Lien, Braddom\u0026rsquo;s editor-in-chief Prof. David X. Cifu, and associate editor Prof. Henry Lew. Being able to see these masters in person was incredibly lucky.\nIf there\u0026rsquo;s one step that took this \u0026ldquo;no limits\u0026rdquo; idea the furthest over these four years, it was probably this February. While studying for the exam, I kept hearing about vibe coding and lobsters, and I couldn\u0026rsquo;t resist starting to use Claude Code. Within two days I upgraded my plan from pro to max. I used it to completely redesign my way of \u0026ldquo;studying\u0026rdquo;: I built a personal knowledge base that I could Q\u0026amp;A with anytime, and also made a review site for grinding past exam questions. Crossing all the way from clinical medicine to engineering, I unexpectedly discovered that the only real limit is probably just imagination! I was too embarrassed to say I was playing with AI before the exam, but now that it\u0026rsquo;s over, I can talk about it a lot more with everyone~\nStarting in August, I\u0026rsquo;ll be staying at Hualien Tzu Chi Hospital as an attending physician. It\u0026rsquo;s a new chapter, so please continue to give me your guidance!\n","permalink":"https://drpwchen.com/en/posts/rehab-specialist-board-2026/","summary":"\u003cp\u003eI finished the board examination last weekend, and I\u0026rsquo;m finally going to be a PM\u0026amp;R attending physician!\u003c/p\u003e\n\u003cp\u003eAfter more than a decade in Hualien, taking the train back and forth to Taipei for classes so many times, I made myself a Taiwan Railways gold member early on. Recently, while preparing for a hospital promotion, I asked Claude to scrape and organize all the PM\u0026amp;R courses I\u0026rsquo;ve taken over the years. Adding up the online and offline ones, I found out the total broke 150! I never expected to have racked up so much tuition expense without even realizing it 🤣\u003c/p\u003e","title":"Completing PM\u0026R Residency"},{"content":"One of my original intentions in becoming a physiatrist was hoping to help patients recover and improve their quality of life with more than just medications. I was fortunate earlier this year to attend a lecture by Dr. Tso-Liang Wang, president of the Somategrity Academy. He shared insights from his many years of practicing manual therapy and how he uses it to help patients improve. In Dr. Wang, I saw my ideal image of a physiatrist, and I also heard him highly recommend a brand new course in Taiwan—DAI Osteopathy (D\u0026rsquo;Ambrogio Institute).\nDAI is one of the three major systems under IAHE, alongside the Upledger Institute (craniosacral therapy) and the Barral Institute (visceral manipulation). And after finishing this six-day course, I actually felt this was a major learning milestone this year! I tried this technique on a friend, and it brought his long-standing finger stiffness down from an 8 to a 1 or 2. I\u0026rsquo;m documenting my thoughts on the course here to share with the physicians and therapists around me, and to recruit friends who are willing to let me practice on them or who want to learn together~\nHonored to take a photo with Dr. Kerry D\u0026rsquo;Ambrogio (left) and Dr. Tso-Liang Wang (right).\nCourse Features This was my first manual therapy course. I can\u0026rsquo;t use my own experience to compare what makes this class special, but over these six days I asked the physicians and therapists around me, and they unanimously gave it extremely high praise! Here\u0026rsquo;s a synthesis of insights shared by experienced classmates:\nTypical manual therapy courses mostly have their own systems, focusing on different individual areas, like the spine, fascia, viscera, etc. But after learning many maneuvers, there\u0026rsquo;s usually no clear answer on how to comprehensively evaluate the patient as a whole, or how to pick the most suitable technique. It seems like you have to finish learning all the moves and then fumble around on your own to figure out when to use them.\nThe instructor, Dr. Kerry D\u0026rsquo;Ambrogio, integrated his expertise as a physical therapist, doctor of osteopathy, and acupuncturist to bring forth a highly structured knowledge system infused with a spirit of scientific experimentation. It\u0026rsquo;s as if we finally have a reference manual for the intricate human body.\nDr. D\u0026rsquo;Ambrogio is very admirable. Clinically, he values patient progress and continuously reflects and improves with every treatment. In his teaching, he structures knowledge clearly and accessibly, earnestly answers every question, and holds nothing back. He has turned treatment and teaching into his life\u0026rsquo;s work—it\u0026rsquo;s what he most happily pours himself into every day. He currently sees 15 to 20 patients a day and teaches 48 classes a week!\nThe Core of DAI Osteopathy The Concepts of Whole-Person and Self-Healing Shoulder discomfort isn\u0026rsquo;t necessarily just a shoulder problem.\nHumans have the capacity to self-heal. We can improve the body\u0026rsquo;s recovery by clearing the path for tissue healing. What\u0026rsquo;s needed on this path to self-healing? We need nutrient supply, waste removal, and tissue mobility. Nutrients and waste require our circulation system to be in good shape, including the arteries, veins, and lymphatics. Tissue mobility involves our fascia, muscles, bones, and joints.\nThe systems mentioned above are body-wide. If we only focus on the painful shoulder and don\u0026rsquo;t address its perfusion and tissues, we\u0026rsquo;ll be working twice as hard for half the result. Therefore, Dr. D\u0026rsquo;Ambrogio classifies lesions into two types: systemic and specific. Systemic problems require full-body adjustments to heal properly, making up about 70-80% of all lesions. This is especially true for chronic pain patients, who often have issues throughout their bodies and require a systemic perspective to treat.\nThe method for distinguishing between systemic and specific problems is the essence of this course! In class, we learned a quick full-body evaluation. In just 3 to 5 minutes, we can rapidly determine whether systemic treatment is appropriate.\nEvaluate, Treat, Re-evaluate The reason I say Dr. D\u0026rsquo;Ambrogio approaches clinical practice with a scientific spirit is that he does a very complete evaluation for every patient. After truly understanding the patient\u0026rsquo;s condition, he provides structured treatment, and then comprehensively re-evaluates the patient\u0026rsquo;s response. He said if he only had 20 minutes to treat a patient, he\u0026rsquo;d rather spend 15 minutes evaluating and the remaining 5 minutes treating, just to ensure he knows what he\u0026rsquo;s treating.\nThis process allows him to try adjusting different parameters during each treatment, see the outcomes, and further achieve better results. It was only after practical application on thousands of patients that this effective system gradually took shape.\nAt the heart of this is the core philosophy of \u0026ldquo;repeated reassessment.\u0026rdquo; Besides the quick full-body evaluation, the class also taught assessment methods specific to lymph and tension. This allows us to grasp the patient\u0026rsquo;s actual changes and gives us a way to keep improving ourselves.\nWhat left a deep impression was when we asked him in class if there were any \u0026ldquo;shortcuts\u0026rdquo; to make treatments faster. Although he shared his thoughts, he also told us not to just think about shortcuts. We have to do complete evaluations. That\u0026rsquo;s the only way we can learn what works and what doesn\u0026rsquo;t over the course of treatment after treatment.\nTechnique Features In DAI\u0026rsquo;s systemic treatment, thrust techniques aren\u0026rsquo;t used. Instead, everything is very gentle. Dr. D\u0026rsquo;Ambrogio said we need to imagine being as gentle and rhythmic as putting a child to sleep. That\u0026rsquo;s how we activate the patient\u0026rsquo;s parasympathetic nervous system, dilate peripheral capillaries, and improve perfusion and lymphatic return.\nDuring the class, I gradually developed a feel for it and understood the \u0026ldquo;feather barrier\u0026quot;—the point where we feel the very first hint of tension. In the DAI system, we don\u0026rsquo;t push tissues to their absolute tightest; we stop when it\u0026rsquo;s just a little tight. And amazingly, without being pushed to maximum tightness, the tissues actually slowly release!\nDAI incorporates concepts from Osteopathy. So, aside from directly pulling tissues tight, we also take them in the opposite direction toward looseness. It\u0026rsquo;s like pulling a drawer: when it won\u0026rsquo;t open, push it closed first, and it\u0026rsquo;ll be easier to open. In practice, bringing contracted tissues closer together really does help them relax!\nDoubts in Class, and a Magical Discovery What was amazing was that in a class of over 20 people, when the instructor talked about different lesion presentations, he could accurately point out classmates who had those exact presentations, calling them to the front to do a live evaluation for everyone to see.\nBy the second day of class, I couldn\u0026rsquo;t help but ask the instructor how on earth he was doing that. He said this is the third part of his course—\u0026ldquo;Energy.\u0026rdquo; The instructor would mentally ask himself, \u0026ldquo;Does this person have this problem?\u0026rdquo; and then observe his own body\u0026rsquo;s response. An even more advanced version is asking, \u0026ldquo;Who in the room has this problem?\u0026rdquo; or \u0026ldquo;Where is this person\u0026rsquo;s problem?\u0026rdquo; and then observing where his eyes lead him to look.\nThis testing method, which sounds almost metaphysical, comes from his background in acupuncture and traditional Chinese medicine. The instructor said he also built this intuitive training through the aforementioned \u0026ldquo;repeated reassessment.\u0026rdquo; Every time he tests using energy, he follows up with an actual physical evaluation to confirm it. When confirmed correct, he trusts his intuition more; and trusting yourself more improves your accuracy.\nEnergy Treatment Demonstrations Right after bringing up the concept of \u0026ldquo;energy,\u0026rdquo; the instructor did two \u0026ldquo;energy treatment\u0026rdquo; demonstrations in class.\nThe first was on a physiatrist. The instructor checked his hip range of motion, then pulled the energy of the psoas major out from his waist from a distance, stretched it in the air, gave it a twist, and said, \u0026ldquo;Done.\u0026quot; The instructor immediately rechecked the hip range of motion, and it had actually increased! During the pre- and post-tests, the instructor asked me to come up and verify if it was real. I did indeed feel the increase in mobility, and the physiatrist also clearly felt his hip loosen up.\nIn the second treatment, the instructor said he pulled out the subject\u0026rsquo;s pericardium. He said he felt anger and frustration there. After a twist of his hand, just like the previous subject, the fascial mobility of the respiratory diaphragm improved. After the treatment, the instructor mentioned that the body is our final physical manifestation. In his understanding, energy, emotions, and cognition come before it. Our cognition affects our emotions, our emotions affect our energy, and our energy affects our body.\nI followed up: we treated the energy, but does he also treat the emotions and cognition? He replied that he does indeed have lots of conversations with subjects during treatment, using dialogue to resolve the stuck emotions and cognition in their minds. This coincides perfectly with the \u0026ldquo;mind-body medicine\u0026rdquo; practiced by Dr. Jui-Yun Hsu. Back when I shadowed her clinic, I frequently saw her look at a painful joint, point out the emotion or story stuck inside it, and guide the patient to resolve it, after which the pain disappeared.\nThings like this are indeed hard to explain with current science. But as Dr. D\u0026rsquo;Ambrogio demonstrated, he looks at every effect through very practical and complete evaluations. If this kind of treatment is indeed effective, maybe it\u0026rsquo;s just that current science can\u0026rsquo;t formulate a reasonable explanation yet. It doesn\u0026rsquo;t mean it doesn\u0026rsquo;t exist. Of course, we could try doing more double-blind studies to see if there\u0026rsquo;s a placebo effect. But on the other hand, I\u0026rsquo;m also really looking forward to Dr. D\u0026rsquo;Ambrogio\u0026rsquo;s future energy balancing courses (please bring them in, Dr. Wang!). If we could evaluate with a single glance and treat with a single twist just like him, how fast our treatments could be!\nFinal Thoughts As Dr. Wang said, I\u0026rsquo;m truly lucky to be exposed to such a complete manual therapy course, with hands-on practice and holistic concepts, in my second year as a resident, during my very first manual therapy learning experience. I\u0026rsquo;m so grateful. I can\u0026rsquo;t finish sharing all my thoughts, and I wrote over 13,000 words of notes alone~ I\u0026rsquo;m really looking forward to interested friends around me coming to learn together!\n","permalink":"https://drpwchen.com/en/posts/dai-osteopathy-course-review/","summary":"\u003cp\u003eOne of my original intentions in becoming a physiatrist was \u003cstrong\u003ehoping to help patients recover and improve their quality of life with more than just medications\u003c/strong\u003e. I was fortunate earlier this year to attend a lecture by Dr. Tso-Liang Wang, president of the \u003ca href=\"https://www.somategrity.com\"\u003eSomategrity Academy\u003c/a\u003e. He shared insights from his many years of practicing manual therapy and how he uses it to help patients improve. \u003cstrong\u003eIn Dr. Wang, I saw my ideal image of a physiatrist, and I also heard him highly recommend a brand new course in Taiwan—\u003ca href=\"https://www.dambrogioinstitute.com/index.php\"\u003eDAI Osteopathy\u003c/a\u003e (D\u0026rsquo;Ambrogio Institute).\u003c/strong\u003e\u003c/p\u003e","title":"A Physiatrist's Learning of the DAI Osteopathy Course"},{"content":"I went to the US in February to attend the Association of Academic Physiatrists (AAP) annual meeting. This was my first international PM\u0026amp;R conference, a rare trip abroad post-pandemic, and my very first time in the US. The whole 12-day trip was full of takeaways, from professional PM\u0026amp;R insights to cultural shocks.\nEven though two months have passed, I still felt I should write something to document this trip. The differences I saw abroad made what I took for granted in Taiwan feel unusual, and they\u0026rsquo;ve been lingering in my mind since I got back. I hope to share my takeaways through these words with other residents and readers.\nSneaking in a Disney photo first—still gotta have some fun!\nThe AAP Physiatry \u0026lsquo;23 venue\nPart I: An Active Social Atmosphere In the US, it seems like anyone can chat with anyone. Whether waiting for a bus or taking an elevator, if you make eye contact, a conversation just naturally starts. Thinking back to Taiwan, these situations might feel awkward, for fear of disturbing someone by speaking up. But Americans seem naturally good at small talk, always able to converse effortlessly.\nThis social trait was on full display at the annual meeting. The conference dedicated a lot of time specifically to networking, including dinners, resident parties, and mentorship events. No icebreakers needed; everyone just naturally started getting to know the people around them.\nEven when it wasn\u0026rsquo;t a designated networking time—take the poster presentations, for example. Around 5 PM every day, the venue would set up several snack tables and a pop-up bar area where you could grab food and all sorts of alcohol (the selection was complete!). Then, people would weave through the poster area, chatting with presenters and attendees. I honestly felt that maybe they cared less about the poster content itself, and more about the networking process!\nThe poster venue had someone freshly baking s\u0026rsquo;mores cookies. Maximum calories!\nAlso, during the dinner banquet, which was a standard buffet, there were only a few seats. The rest of the space had high tables set up so people could walk around and chat. If you heard an interesting topic, you could just join the conversation. If you didn\u0026rsquo;t feel like talking, you could walk over to the performance area. They actually brought in a band and dancers to play pop music for everyone. Toward the end of the night, people even gathered in front of the band to dance. Watching those senior lecturers who taught during the day grooving to the music felt very warm and relaxed—like I\u0026rsquo;d accidentally crashed an American party?\nEveryone dancing before the AAP banquet wrapped up\nAfter a fun chat, I often heard, \u0026ldquo;Wow, this is great, let\u0026rsquo;s definitely keep in touch. If there\u0026rsquo;s any opportunity, let\u0026rsquo;s collaborate!\u0026rdquo; Through this, I seemed to realize that all those cross-hospital projects and research studies were actually sparked in conversations at conferences like this. American medicine keeps pushing itself forward through this very process.\nAttending this meeting and meeting people from hospitals all over the US felt like it opened up more possibilities for the future. It was exciting and inspiring!\nPart II: A Society of Respect and Praise, and People Bursting with Confidence and Fulfillment\nThe most surprising discovery on this US trip was that three doctors told me they wake up every day inspired by their dreams. When talking about what they love, they would just go on and on, unable to stop, their eyes completely lighting up!\nIf it was just one person, I\u0026rsquo;d think it was a one-off, but three is quite special. Throughout the trip, I didn\u0026rsquo;t see a single physiatrist who disliked their job. How can so many people enjoy their work this much? PM\u0026amp;R isn\u0026rsquo;t even among the top-paying specialties for doctors in the US, so there must be a reason! I observed my surroundings, read some articles analyzing American culture, and maybe found some answers.\nI remember the day before the conference started, there was a training workshop for residents. We learned things like ultrasound, nerve conduction studies, and spasticity management. Besides residents, medical students attended too. During the process, the instructors would always ask our names first, and they wouldn\u0026rsquo;t just ask and forget—they actually remembered our names, making you feel like a \u0026ldquo;somebody.\u0026rdquo; We had a lot of interaction with the instructors during the workshop, and whether our answers were right or wrong, we always got very positive encouragement. Praises like \u0026ldquo;Brilliant!\u0026rdquo;, \u0026ldquo;Awesome!\u0026rdquo;, and \u0026ldquo;Good job!\u0026rdquo; were literally flying everywhere. Even if you didn\u0026rsquo;t know much, you were encouraged to feel like you had a lot of potential!\nAn entertaining lesson on Botox treatment for migraines\nAlso, people naturally praise themselves. If they do something right, they\u0026rsquo;ll tell themselves, \u0026ldquo;Great job!\u0026rdquo; From a Chinese cultural perspective, this might seem too immodest, but in an American society where individualism prevails, everyone respects themselves as much as they respect others. As long as it doesn\u0026rsquo;t infringe on anyone else, stating your own strengths is the most natural thing in the world.\nI think in this highly communicative society, operating with respect and praise is a major factor in making everyone feel good and driven! Of course, there might be selection bias in the people I met this time—only those in a particularly good headspace would come to an annual meeting. Still, this observation showed me what changes I can make within myself if I want to be someone who wakes up inspired by dreams every day, and someone who can motivate the friends around me. :)\nPart III: PM\u0026amp;R Annual Meeting, Expanding Horizons\nThis annual meeting was almost entirely Americans. I was the only Taiwanese person. Toward the last two days of the conference, I met the only Malaysian and the only Peruvian. I think the few of us were truly rare species at the meeting. At a conference like this, I saw a lot of developments in American PM\u0026amp;R. Coming from Hualien, it honestly felt like stepping into a whole new world of wonders! (But of course, as a first-year resident, I don\u0026rsquo;t have a completely comprehensive understanding of PM\u0026amp;R in Taiwan yet, so I can only share based on what I know.)\nThe American AAP clearly puts a lot of heart into it. The meeting has at least 5 sessions/events running concurrently and spans four whole days. From medical students, residents, and fellows to attending physicians, everyone should find it rewarding! Plus, it was held in California this year, right next to the world\u0026rsquo;s first Disneyland. Next year it\u0026rsquo;s in Orlando, right next to the world\u0026rsquo;s largest Disney World. Maybe physiatrists just really love Disney, haha!\nSeveral speakers on stage getting each other drunk while bluntly spilling secrets from their resident days\nThere are currently 463 PM\u0026amp;R resident spots per year in the US, and the number is still growing. Proportionally, 463 residents for a population of 330 million is slightly lower than Taiwan\u0026rsquo;s 40 residents for 23 million people. But with such a large base number and an atmosphere that encourages open development, the physiatrists here have incredible diversity!\nAt the meeting, there was a physiatrist who specializes in pelvic rehabilitation. She handles conditions like incontinence and sexual dysfunction, and in her lecture, she thoroughly explained how to examine and analyze the pelvic floor with incredible depth. Some doctors love music and dance, so they started researching enriched environment rehabilitation. They studied whether incorporating music and rhythm into routine rehab, or adding dance, could enhance rehab outcomes—and the results actually showed it works. Other teams use AI to analyze gait and movement to develop telehealth, meaning in the future, we could rapidly gather more information just from the way a patient walks into the clinic.\nI also saw that the US has many fellowships, like sports medicine, spinal intervention, cardiopulmonary, etc. Taiwan has corresponding specialties for these, but to my knowledge, we might not have developed complete fellowship training yet. Unfortunately, after asking the directors, we can\u0026rsquo;t join the fellowships without a US medical license. Most institutions, however, warmly welcome us to do an observership.\nAmong these subspecialties, a rather unique one is lifestyle medicine. I guess this is a subspecialty particularly needed in the US. They incorporate psychologists and other professionals to help patients improve lifestyle habits—losing weight, quitting smoking, sleeping, exercising, and so on—stopping diseases before they even start. This perfectly aligns with what international PM\u0026amp;R master Prof. Cifu promoted about a Balance life and encouraging good habits in patients during the Taiwan PM\u0026amp;R annual meeting right after.\nI really love the concept of lifestyle medicine. These were actually the goals I always wanted to achieve during health education sessions with my college service club. I learned a lot of behavior change models back then in hopes of really making a difference. But after becoming a resident, I\u0026rsquo;ve been busy learning new things, and pushing for lifestyle changes hasn\u0026rsquo;t exactly been the focus of a busy clinical workload. Between all these factors, it felt like I had fewer and fewer chances to do patient education. Seeing that you can still take this very seriously within a hospital system felt novel and moving, showing me what\u0026rsquo;s possible for the future. I think someday, I\u0026rsquo;ll still have the chance to use these health education skills and knowledge to help my patients. :)\nLastly, I want to share that the barrier to attending the annual meeting isn\u0026rsquo;t as high as you might think. The most interesting poster I saw this time analyzed the fate of posters previously presented at AAP. Guess how high the final publication rate is? The actual poster publication rate is remarkably low, only 18%. For resident posters specifically, it\u0026rsquo;s a mere 8.3% that get truly published! Submitting a poster is more like an admission ticket for residents, letting us come and join this annual grand event. I think this tells us that submitting a poster to the annual meeting really doesn\u0026rsquo;t require an incredibly impressive or complete study. I saw someone write about a \u0026ldquo;Resident wellness program\u0026rdquo; where she got residents together to play board games every month for a year and analyzed everyone\u0026rsquo;s satisfaction. Even with half the data missing, it was successfully accepted for presentation. After returning to Taiwan, when having dinner with Prof. Cifu, the editor-in-chief of PM\u0026amp;R\u0026rsquo;s most important textbook (a huge honor), he mentioned that even just proposing a research concept, without actually finishing the study, can be accepted!\nA poster analyzing the publication success rate of posters (Even this works as a poster!)\nI want to recommend AAP to my fellow PM\u0026amp;R residents here—it\u0026rsquo;s highly worth attending. Don\u0026rsquo;t worry about the state of your poster. Everyone is here to network and learn, so just take the plunge and come!\nFeel free to contact me if you want to know more about anything!!\nFinally, showing off Prof. David X. Cifu\u0026rsquo;s autograph. I really need to hit the books now!\n","permalink":"https://drpwchen.com/en/posts/aap-physiatry-23-first-trip-usa/","summary":"\u003cp\u003eI went to the US in February to attend the Association of Academic Physiatrists (AAP) annual meeting. This was my first international PM\u0026amp;R conference, a rare trip abroad post-pandemic, and my very first time in the US. The whole 12-day trip was full of takeaways, from professional PM\u0026amp;R insights to cultural shocks.\u003c/p\u003e\n\u003cp\u003eEven though two months have passed, I still felt I should write something to document this trip. The differences I saw abroad made what I took for granted in Taiwan feel unusual, and they\u0026rsquo;ve been lingering in my mind since I got back. I hope to share my takeaways through these words with other residents and readers.\u003c/p\u003e","title":"First Time in the US, First International PM\u0026R Conference at AAP Physiatry '23"},{"content":"When reading papers or doing research and hitting a non-significant result, I always remember what my statistics teacher said: \u0026ldquo;Not significant means we cannot reject the null hypothesis, not that the two are the same.\u0026rdquo; We\u0026rsquo;ve also learned that the ability to detect a difference between the two is called statistical power. So, if we calculate the power of the data, and if this \u0026ldquo;ability to detect a difference\u0026rdquo; is greater than 80%, but we still get a non-significant result, does that mean the two groups of data are really similar?\nI used to believe that, but the more I calculated, the weirder it felt Until I calculated it a few more times myself and realized that power is actually deeply tied to the p-value. Both power and p-value are affected by sample size, standard deviation, and mean difference. When the mean difference between the two groups is very close and p-value \u0026gt; 0.05, it indicates a high degree of overlap in the data distributions of the two groups. Using these results to calculate power will, of course, yield a very low power.\n(To clarify further, power calculated after the experiment is done is called post-hoc power, which is our topic today. The power we use when calculating the required sample size to collect is simply called power, and that\u0026rsquo;s an important and necessary step.)\nPost-hoc power is actually affected by the p-value I started reading more articles and found that calculating post-hoc power is indeed influenced by the p-value (after all, they are calculated using the same sample size, standard deviation, and mean difference). When p-value \u0026gt; 0.05, if we calculate post-hoc power hoping to reach 0.8, we actually need a p-value less than 0.0065 to get there. Isn\u0026rsquo;t this self-contradictory!\nSo if we don\u0026rsquo;t calculate post-hoc power, what else can we do? First, we can calculate partially post-hoc power, a method proposed in this paper. Sure, the name is strange—how can something be partially post-hoc? What it mentions is that the mean difference we use to calculate power should be replaced by the minimal clinically important difference (MCID). This detaches it from the p-value. When interpreting, instead of saying, \u0026ldquo;We have post-hoc power % confidence to detect a significant difference between these two groups,\u0026rdquo; it becomes, \u0026ldquo;We have post-hoc power % confidence to detect a significant difference of at least the MCID between these two groups.\u0026rdquo;\nSecond, we can look at the confidence interval of the results alongside the \u0026ldquo;minimal clinically important difference\u0026rdquo; (MCID). Take height, for example: let\u0026rsquo;s assume a meaningful MCID is 5 cm. If we want to know the height difference between two classes, and we get a 95% confidence interval of [-2cm, 3cm] for the difference, we can determine that it includes 0, so it\u0026rsquo;s a non-significant result. Moreover, the range of the confidence interval doesn\u0026rsquo;t include +5cm or -5cm, meaning even if there is a difference, it doesn\u0026rsquo;t reach a meaningful magnitude. But if we get [-10cm, 20cm], then not only is it non-significant, but it also indicates the difference could be anywhere from 10 cm shorter to 20 cm taller. In that case, we wouldn\u0026rsquo;t really dare to say there\u0026rsquo;s no difference between the two groups.\nThird, we can use a Bayesian model. This is less common in clinical research, and people are generally less familiar with interpreting it. Statistics falls into two broad categories. The first is traditional statistics, which calculates probability by looking at distributions; the t-tests and ANOVAs we usually use belong here. The second is Bayes\u0026rsquo; theorem, where you first subjectively assign a likely probability or value (a prior), and then, after collecting cases, calculate what the likely probability becomes. This is a major category distinct from traditional statistics, and my personal understanding isn\u0026rsquo;t deep enough either, so if you\u0026rsquo;re interested, please just Google it yourself~\nThree alternatives: which method is better to use? According to the methodology paper I found, partially post-hoc power is still considered to be based on post-hoc power calculations, so it will still be affected by the collected data. A confidence interval combined with MCID is very easy to interpret and very versatile, making it a good option. A Bayesian model is probably the best way to express the actual situation, but most people aren\u0026rsquo;t familiar with it.\nLooking at it this way, interpreting the confidence interval ends up being the most practical. And this actually aligns nicely with the latest approach to rating imprecision proposed by the Cochrane GRADE guidelines in September 2022. For this item, GRADE doesn\u0026rsquo;t look at the p-value; instead, it looks at whether the 95% confidence interval crosses the upper or lower limits of the MCID to make a judgment. If you\u0026rsquo;re interested, you can check out this newly published video.\nRef:\nJohn J. Dziak, Lisa C. Dierker, and Beau Abar. The Interpretation of Statistical Power after the Data have been Gathered. Curr Psychol. 2020 Jun; 39(3): 870–877. Linan Zeng, Gordon Guyatt. Updated GRADE guidance for imprecision rating using a minimally contextualized approach. YouTube. Cochrane Training. 2022 Sep. ","permalink":"https://drpwchen.com/en/posts/ebm-post-hoc-power-analysis/","summary":"\u003cp\u003eWhen reading papers or doing research and hitting a non-significant result, I always remember what my statistics teacher said: \u0026ldquo;\u003cstrong\u003eNot significant means we cannot reject the null hypothesis, not that the two are the same.\u003c/strong\u003e\u0026rdquo; We\u0026rsquo;ve also learned that the ability to detect a difference between the two is called statistical power. So, if we calculate the power of the data, and if this \u0026ldquo;ability to detect a difference\u0026rdquo; is greater than 80%, but we still get a non-significant result, does that mean the two groups of data are really similar?\u003c/p\u003e","title":"[EBM] Should I calculate study power when results are not significant? Misleading post-hoc power"},{"content":"I got my American College of Sports Medicine (ACSM-CPT) certification!\nI guess I\u0026rsquo;m someone who really learns through my body. Back in college, I especially loved anatomy because I could feel those structures on myself. By observing my body, I could feel the presence of each part, try to see how they change under different conditions, and verify what the textbooks said.\nDuring my internship, learning about exercise prescription in PM\u0026amp;R was really interesting too. Even though I\u0026rsquo;m not a particularly sporty person, it gave me another discipline where I could observe the body. Trying to dissect the mechanics of a movement and imagining what\u0026rsquo;s happening inside is really fascinating! Maybe that\u0026rsquo;s also why I eventually chose PM\u0026amp;R~\nI\u0026rsquo;m starting PM\u0026amp;R this September, so I figured I\u0026rsquo;d use this time to build up my sports medicine knowledge, and get a certification along the way to pressure myself to keep studying. After looking around online, ACSM seemed very suitable for people with a medical background. It also has the lowest pass rate among the top five certifications—53% for US test-takers (masochistic much? XD). So I signed up for Professor Lin Chia-Chih\u0026rsquo;s ACSM-CPT course in May, and managed to pass the exam on the very last day of the month!!\nI\u0026rsquo;m genuinely thrilled, because the questions were more flexible than I expected. They also tested a lot on US law, insurance, and even psychology. There isn\u0026rsquo;t much shared online about the exam questions, so I wanted to share my experience and tips to give anyone interested a point of reference~\nACSM-CPT Prep ACSM-CPT Prep (Part 1): Introduction ACSM-CPT Prep (Part 2): Resources ACSM-CPT Prep (Part 3): Question Scope ACSM-CPT Prep (Part 4): The Process and Exam Day ","permalink":"https://drpwchen.com/en/posts/acsm-cpt-prep-1-introduction/","summary":"\u003cp\u003eI got my American College of Sports Medicine (ACSM-CPT) certification!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/images/63419ccfb03a-_E5_9C_96_E7_89_87.jpg\"\u003e\u003cimg alt=\"ACSM CPT score report\" loading=\"lazy\" src=\"/images/5ab629e96860-_E5_9C_96_E7_89_87.jpg\" title=\"ACSM CPT score report\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI guess I\u0026rsquo;m someone who really learns through my body. Back in college, I especially loved anatomy because I could feel those structures on myself. By observing my body, I could feel the presence of each part, try to see how they change under different conditions, and verify what the textbooks said.\u003c/p\u003e\n\u003cp\u003eDuring my internship, learning about exercise prescription in PM\u0026amp;R was really interesting too. Even though I\u0026rsquo;m not a particularly sporty person, it gave me another discipline where I could observe the body. Trying to dissect the mechanics of a movement and imagining what\u0026rsquo;s happening inside is really fascinating! Maybe that\u0026rsquo;s also why I eventually chose PM\u0026amp;R~\u003c/p\u003e","title":"ACSM-CPT Prep (Part 1): Introduction"},{"content":"ACSM isn\u0026rsquo;t very common in Taiwan, but it\u0026rsquo;s an internationally important certification, so if you study in English, there are a lot of resources! However, because time was limited, around the time I registered for the ACSM, I also signed up for the neurorehabilitation annual meeting, lower limb orthotics, dysphagia, and pediatric muscle spasticity courses (everyone crams these into April and May!). So, I moved forward with the goal of learning as quickly as possible. Here are the resources I used during my prep:\nCourse: Dr. Chia-Chih Lin Dr. Lin is one of the few legends in Taiwan who holds every sports certification. He\u0026rsquo;s a professor at National Dong Hwa University and is incredibly knowledgeable. The course is three days long. It starts with an introduction to the five major certifications and goes all the way to explaining the entire CPT textbook. It covers most of the material and helps you quickly grasp the key points. He has recorded his own YouTube videos on topics like anaerobic threshold measurement and shared them on his website. You can take a listen to get a feel for his teaching speed and style, and also learn more about sports science. He creates a Facebook group where you can ask any questions you have during your prep. You can even discuss topics with him that go beyond the scope of the textbook. Books ACSM\u0026rsquo;s Resources for the Personal Trainer: This is where the exam questions come from. It\u0026rsquo;s the main textbook and the primary source for the course content. If you take the class, you can buy this book at a discounted price, which is cheaper than anywhere online. If you want to read it before class, you can borrow it from the library first. But I\u0026rsquo;d recommend just flipping through Dr. Lin\u0026rsquo;s handouts before class—that\u0026rsquo;s enough to quickly grasp the material. ACSM\u0026rsquo;s GETP: This one is like a reference book. It covers content beyond the scope of the CPT exam. It\u0026rsquo;s currently on its 11th edition, while the Chinese version was translated by Dr. Lin up to the 10th edition. The content is very solid and evidence-based; it\u0026rsquo;s a quite practical book. In the later stages of my prep, I actually spent most of my time reading this one, though it might be a bit beyond the exam scope. If you sign up for Dr. Lin\u0026rsquo;s course, the Chinese version is included for a price similar to retail. If you want to read it beforehand, you can buy it online. If you want the latest version, I recommend buying the English 11th edition on Amazon. Get some friends together to hit the $60 mark for free shipping—it\u0026rsquo;s much cheaper than buying it in Taiwan! Dr. Lin\u0026rsquo;s course handouts: They extract the key points from the original textbook. Before class, I flipped through the whole thing and picked out the parts I had questions about, which made learning in class much smoother. Also, from what previous test-takers have shared, flipping through this three or four times before the exam is very helpful. I organized everything into my own notes, so I didn\u0026rsquo;t end up doing that. Practice Questions ACSM\u0026rsquo;s Certification Review: The official exam review book. It includes several case studies and 100 practice questions. Dr. Lin\u0026rsquo;s course actually includes the practice questions from the back, so its main use is for those case studies. The flexibility of the case studies is very close to the actual exam questions. I highly recommend finishing them all, and then going back to review the relevant chapters for each case. If possible, just borrow it from the library; you don\u0026rsquo;t need to buy it. Just keep in mind that older editions have discrepancies with current knowledge. Since I used the fifth edition, I had to pick out the errors myself. Pocket Prep (I didn\u0026rsquo;t buy this): Third-party review questions. There are 800 questions, all excerpted directly from sentences in the textbook. Based on online feedback and my own experience trying 30 questions, the content is very detailed and less flexible, which is a bit removed from the actual exam questions. The way to use it should be working backward from the questions to review the original material. I didn\u0026rsquo;t end up buying or using it; I chose to just get more familiar with my own notes and the GETP.\nPractice Exams (I didn\u0026rsquo;t buy these): If you search for ACSM-CPT practice exams online, you can buy questions that are very close to the exam content. Finishing them should be helpful, so everyone can consider it. I also saw this website selling five sets of similar questions, claiming a 99% pass rate for those who take it. I was stubborn and didn\u0026rsquo;t buy it XD\nOther Resources Facebook Strength Training Clinic: An impressive orthopedic surgeon. The first time I saw the content on this fan page, I was amazed; I learned a lot from every single post. Dr. Wu attaches related articles at the bottom of each post, so when you\u0026rsquo;re bored and scrolling on your phone, you can read them one by one and learn a ton. During the time I was prepping for the exam, I also found that articles I previously couldn\u0026rsquo;t understand slowly started making sense as I studied the ACSM material. It was a nice way to witness my own progress.\nFacebook Dr. M Be Superior: A physiatrist focusing on sports medicine. My senior colleague is amazing—he served as a team physician for Taiwan\u0026rsquo;s international representative teams and also holds a master\u0026rsquo;s degree in sports medicine from the UK. Dr. Lin\u0026rsquo;s fan page and blog share a lot of sports medicine knowledge. You can learn a lot by following him.\nPubMed: When I had doubts during my studies, I would take the keywords and do a good search on PubMed. It adds a lot of knowledge, though it probably won\u0026rsquo;t be on the test XD\nIn the next post, I\u0026rsquo;ll talk about the direction of the exam questions, and then circle back to the preparation process—meaning, the order in which to use these resources.\nACSM-CPT Prep ACSM-CPT Prep (1): Introduction ACSM-CPT Prep (2): Resources ACSM-CPT Prep (3): Exam Scope ACSM-CPT Prep (4): Preparation Process and Exam Day ","permalink":"https://drpwchen.com/en/posts/acsm-cpt-prep-2-resources/","summary":"\u003cp\u003eACSM isn\u0026rsquo;t very common in Taiwan, but it\u0026rsquo;s an internationally important certification, so if you study in English, there are a lot of resources! However, because time was limited, around the time I registered for the ACSM, I also signed up for the neurorehabilitation annual meeting, lower limb orthotics, dysphagia, and pediatric muscle spasticity courses (everyone crams these into April and May!). So, I moved forward with the goal of learning as quickly as possible. Here are the resources I used during my prep:\u003c/p\u003e","title":"ACSM-CPT Prep (2): Resources"},{"content":"\nThe ACSM exam is 135 multiple-choice questions. Overall, the questions are very flexible. There are very few rote memorization questions. Many questions don\u0026rsquo;t have a single correct answer, only a best answer. You have to rely on a thorough understanding of each topic to judge which is the best option. This post is mainly to let you understand the direction of the questions, and I\u0026rsquo;ll also provide a few questions I remember so you can see how flexible they are.\nThe exam is divided into four major categories, each with a different proportion of questions. I\u0026rsquo;ve listed the questions I encountered according to these four categories:\nDomain I: Initial Client Consultation and Assessment (25%) Medical clearance: Judging which clients need to be evaluated by a doctor before starting. This is pretty important content. It\u0026rsquo;s mainly decided by assessing the client\u0026rsquo;s symptoms, diseases, and whether they exercise regularly. You need to pay attention to the definitions for each of these. For example, hypertension and chronic obstructive pulmonary disease don\u0026rsquo;t count as diseases you need to factor in; also, the definition of regular exercise here is different from how you evaluate cardiovascular risk and the usual exercise recommendations you give. Cardiovascular risk calculation: You need to memorize the definitions for each item, including age, blood sugar levels, family history, etc. They did test on \u0026ldquo;negative\u0026rdquo; risk factors, which means things that can actually \u0026ldquo;reduce\u0026rdquo; risk! Client forms: There are quite a few kinds. You need to be clear on what forms exist and what each one is for, like informed consent, waiver, client intake form, scope of practice, etc. Assessing client risk: Divided into forms filled out by the client themselves and those filled out by the physician. Know which forms belong to which. Other assessments: There are four types of gait in the book, and the exam tested arthrogenic gait. Also methods for assessing physical fitness, etc. Domain II: Exercise Programming and Implementation (45%) Exercise programming: The questions are very flexible. Some give a long narrative and ask us to recommend an exercise prescription. The key is to look at the population (older adults, pregnant women, children, general adults), diseases (heart disease, hypertension, diabetes, etc.), exercise habits (sedentary / active lifestyle), and goals (weight loss, physique, endurance, etc.). Before the exam, you can review the fine details of exercise prescriptions again. They test on this very closely and flexibly, and you have to find the best answer from the options. Like testing whether you need 60-80% 1-RM or 70-85% 1-RM, 60-69% HRR or 70-79% HRR, 1 set or ≥1 set, 5 days/week or daily, and 6-8 muscle groups or 8-10 muscle groups. If you only memorize the gist, there\u0026rsquo;s no way you\u0026rsquo;ll get it. Older adults: Know the content of neuromuscular training, the starting prescription for training, and the difference in training outcomes compared to adults. Pregnant women: Know the conditions for stopping exercise, contraindicated exercises, and the allowed exercise intensity. Nutrition: The ratios of each macronutrient. For example, I got a question this time about \u0026ldquo;minimum 20% fat.\u0026rdquo; For detailed nutrition, you have to consult a dietitian; you can\u0026rsquo;t plan meals yourself. Weightlifting movements: I encountered two video questions catching movement errors. One tested the knees caving in too much during a squat; the other tested the lumbar spine not being stabilized during a triceps pull. They also tested what the Olympic lifts include (clean, jerk, snatch). Additionally, a question from the practice book appeared where they gave four long strings of movement names and you had to decide the appropriate weightlifting routine for the client. If you\u0026rsquo;re not familiar, you can look up the English names of various exercises online before the test. On the spot, you can try to figure it out by thinking about the body parts being trained. Training discomfort and complications: You need to know DOMS, overtraining syndrome, rhabdomyolysis, etc. I got tested on all three. Follow-up timing: I got one question asking about someone who comes to a trainer because they want to run a 10km in three months. How often should you reassess their fitness? The options were daily, weekly, bi-weekly, and monthly. I didn\u0026rsquo;t read this part while studying, so I picked bi-weekly. If anyone knows the answer, please let me know! Domain III: Exercise Leadership and Client Education (20%) Methods to increase motivation: A few questions were simple definitions, like which stage of the TTM wanting to start exercising belongs to. Most were very flexible questions, like giving a scenario along with a trainer\u0026rsquo;s sentence and asking which model this is using; or a scenario where a certain model should be used, and asking which sentence fits. You have to be very clear on the various theories and models and know their similarities and differences to be able to answer. It felt a lot like taking a high school civics exam. TTM is tested very often. I was also asked about motivational interviewing and social cognitive theory. The test bank also includes the health belief model, socioeconomic model, change talk, the 5 A\u0026rsquo;s, SMART goals, and even SMARTS goals. Domain IV: Legal and Professional Responsibilities (10%) This \u0026ldquo;legal\u0026rdquo; part is obviously \u0026ldquo;US law,\u0026rdquo; and since the exam is in English, you need to know their terminology before the test to have a chance. Negligence is the favorite legal topic to test. It covers the following: The four conditions needed for a lawsuit (duty of care, breach of duty, causation, remoteness of damage) Omission (failure to act, like failing to notice what should be noticed), commission (acting) Nonfeasance (failure to act, regardless of intent/no intent), misfeasance (acting, with intent) Malpractice (failing to execute according to professional methods) Informed consent does not waive negligence liability, but a release / waiver does. Which insurance can cover negligence, besides professional liability insurance. There were a lot of insurance types in the options that I couldn\u0026rsquo;t read\u0026hellip; I searched online later and it should be general liability insurance. ACSM sells professional and general liability insurance themselves, so maybe they tested this just to sell insurance? XD HIPPA (Health insurance portability and accountability act) is the second favorite. Translated into Chinese, it\u0026rsquo;s the \u0026ldquo;Health Insurance Portability and Accountability Act,\u0026rdquo; which regulates the flow of patient data in the US—basically, a law protecting client privacy. I picked this for anything about personal data. There was one question asking whether the format for informed consent should reference HIPPA or an IRB (Institutional review board). I picked IRB myself, because I\u0026rsquo;m sure submitting to an IRB before required subjects to write this, but I\u0026rsquo;m not sure of the answer either. Also, the exam system on the day allows you to pull up a calculator. The numbers given will include metric units in addition to imperial ones. I did memorize unit conversions before the test. It looks like maybe I didn\u0026rsquo;t need to?\nThe exam questions and direction are roughly like this. Now that everyone has an idea, we\u0026rsquo;ll talk about how to prepare in the next post. You can also come back and read this over before the exam to make sure you know everything. If I wrote anything wrong, you\u0026rsquo;re welcome to let me know!\nACSM-CPT Prep ACSM-CPT Prep (Part 1): Introduction ACSM-CPT Prep (Part 2): Resources ACSM-CPT Prep (Part 3): Question Trends ACSM-CPT Prep (Part 4): The Prep Process and Test Day ","permalink":"https://drpwchen.com/en/posts/acsm-cpt-prep-3-exam-topics/","summary":"\u003cp\u003e\u003ca href=\"/images/70b444f41202-54ccaf_7e886bde345641d5b0f74639a17d8278_mv2_E6_8B_B7_E8_B2_9D.jpg\"\u003e\u003cimg alt=\"Logo of ACSM\" loading=\"lazy\" src=\"/images/10ea253936e5-54ccaf_7e886bde345641d5b0f74639a17d8278_mv2_E6_8B_B7_E8_B2_9D.jpg\" title=\"Logo of ACSM\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe ACSM exam is 135 multiple-choice questions. Overall, the questions are very flexible. There are very few rote memorization questions. Many questions don\u0026rsquo;t have a single correct answer, only a best answer. You have to rely on a thorough understanding of each topic to judge which is the best option. This post is mainly to let you understand the direction of the questions, and I\u0026rsquo;ll also provide a few questions I remember so you can see how flexible they are.\u003c/p\u003e","title":"ACSM-CPT Prep (Part 3): Question Trends"},{"content":"It took me 25 days from taking the course to taking the exam. I was taking other classes in between, so my actual time spent studying for the ACSM was about 10 days. Because I\u0026rsquo;d previously interned in physical medicine and rehabilitation (PM\u0026amp;R), I\u0026rsquo;d already picked up a lot of related knowledge, and I was very familiar with the anatomy and physiology. My prep time was probably on the shorter side, so you can adjust the time you need accordingly.\nThe Prep Process Looking back at my process, here is the order I recommend for your prep:\nGet the books: Ordering GETP 11th from Amazon takes up to two weeks, so do this first. In the meantime, you can look for copies in the library. Pre-course reading: Because the pandemic shifted the course online, Instructor Chia-Chih\u0026rsquo;s handouts were mailed over in advance. Skimming the handouts before class is a huge help for understanding the lectures. You can check with the assistant to see if you can get the book early. Also, if you aren\u0026rsquo;t familiar with the English names for various weightlifting postures, you can search and learn them beforehand. Take the course: Over the three days, the lecture pace isn\u0026rsquo;t too fast—there\u0026rsquo;s plenty of time to take notes while listening. By the end, you should have a better structural grasp of the overall content. For any parts you aren\u0026rsquo;t clear on, there are replays you can listen to again. Organize your notes: I rewrote the lecture content into my own notes. This part depends on your personal study habits. Do practice questions: Once you feel confident about the lecture content, you can do the questions at the back of the handout (which are the Certification Review questions) to see how you score. This also shows you what material you\u0026rsquo;re unfamiliar with so you can strengthen those areas. I organized the questions I got wrong into a separate set of notes—especially those related to law and motivational theory. You can Google these or check the textbook, but remember to compile them separately so you can review them quickly. Register for the exam: After doing the questions, you\u0026rsquo;ll have a better sense of the exam\u0026rsquo;s difficulty and your own level, and you can decide on a test date. I just went ahead and registered to lock in a date and give myself some pressure to study. Read the textbook and GETP: I read through the GETP chapters on aerobics, weightlifting, pregnancy, the elderly, and children, which was quite helpful. Looking back after the exam, the GETP content for sedentary lifestyles is scattered across different chapters, and you really should organize it yourself. Do more questions: I read through the Certification Review case studies one more time to figure out my weak spots, and then stubbornly went back to reading GETP and organizing my notes. If you don\u0026rsquo;t want to keep looking at the same things, or if you\u0026rsquo;re worried you haven\u0026rsquo;t studied thoroughly enough, you can also buy practice questions online to get a feel for the exam. You can refer to the previous post to see what resources are available. The two-hour final sprint: Focus on reviewing the details of exercise prescriptions for different populations, law, and motivational theory. You can also look over the questions you previously got wrong. Test Day You\u0026rsquo;re required to arrive 15 minutes early. My check-in took exactly 15 minutes, so I started right on time. During check-in, you sign in and lock all your belongings in a personal locker. Then you go into a room to take a headshot—remember to smile, because that will be the photo on your certificate! After coming out, they checked that I didn\u0026rsquo;t have any personal items on me, handed me a whiteboard marker and an A4 whiteboard, and then I could enter my individual computer booth to start getting familiar with the testing system.\nAt first, there are practice questions to introduce the testing system. This doesn\u0026rsquo;t count towards your time, so you can take it slow. The system has a calculator, and you can flag questions. But keep in mind that you can only go back to look at flagged questions after you\u0026rsquo;ve gone through all the questions.\nI used the whiteboard to write down terms I was unsure about. If they happened to pop up in later questions, I could go back and check my answers. Also, because time is limited, if you aren\u0026rsquo;t sure of an answer, you can flag it and leave it blank, or pick an answer first and come back to check it at the end. The total exam time is 150 minutes. It took me 100 minutes to finish the questions and 20 minutes to check them before submitting my test.\nAfter submitting, you\u0026rsquo;ll instantly see your score on the screen—this is the most thrilling part! Then the staff led me out of the computer booth. After signing out, picking up my score report, and grabbing my personal items, I was good to go.\nI hope everyone reading this prep guide passes on their first try and celebrates big time. You\u0026rsquo;ve just passed what even Americans consider the hardest personal trainer certification to get!\nACSM-CPT Prep ACSM-CPT Prep (Part 1): Introduction ACSM-CPT Prep (Part 2): Resources ACSM-CPT Prep (Part 3): Exam Scope ACSM-CPT Prep (Part 4): The Prep Process and Test Day ","permalink":"https://drpwchen.com/en/posts/acsm-cpt-prep-4-exam-day/","summary":"\u003cp\u003eIt took me 25 days from taking the course to taking the exam. I was taking other classes in between, so my actual time spent studying for the ACSM was about 10 days. Because I\u0026rsquo;d previously interned in physical medicine and rehabilitation (PM\u0026amp;R), I\u0026rsquo;d already picked up a lot of related knowledge, and I was very familiar with the anatomy and physiology. My prep time was probably on the shorter side, so you can adjust the time you need accordingly.\u003c/p\u003e","title":"ACSM-CPT Prep (Part 4): The Prep Process and Test Day"},{"content":"If an accident happened one day and we could only stay in bed, unable to go anywhere, how would our lives go on?\nLife Bedridden with Disability I saw a patient with a high-level spinal cord injury on a home visit this month. Since an accident at 27, he can only move above the shoulders. Turning over, eating, bathing, and going to the toilet all require help from others. His life has become permanently tethered to his bed.\nI expected to meet someone depressed and unhappy, but to my surprise, he was funny, interesting, and always smiling.\nThe Secret Weapon for Connecting with the World Then I learned he had an amazing secret weapon, an \u0026ldquo;infrared mouse\u0026rdquo;—what we usually call an eye-tracking computer. It lets him play games, video chat, make friends, and figure out what resources he can apply for. The internet is like a new world that has completely opened things up for him.\nNow, the home care nurses all get \u0026ldquo;Good morning\u0026rdquo; messages from him. Behind every greeting is a warm joy.\nThe Wonderful Help of Assistive Tech in Taiwan I\u0026rsquo;m lucky I got to see a case like this. We\u0026rsquo;re very fortunate in Taiwan. There\u0026rsquo;s the Icebreaker Association helping them connect with society through technology, as well as comprehensive government subsidies for disability assistive devices.\nListening to the assistive technology center share later, I also learned about MUVE, a non-profit association teaching children with disabilities how to use technology to communicate, letting them say \u0026ldquo;I love you\u0026rdquo; to their parents for the very first time. MUVE is raising funds to provide classes for these kids. You can set up a recurring monthly donation. Why not contribute what you can to make these children\u0026rsquo;s futures a little different!\n","permalink":"https://drpwchen.com/en/posts/assistive-technology-disability/","summary":"\u003cp\u003eIf an accident happened one day and we could only stay in bed, unable to go anywhere, how would our lives go on?\u003c/p\u003e\n\u003ch3 id=\"life-bedridden-with-disability\"\u003eLife Bedridden with Disability\u003c/h3\u003e\n\u003cp\u003eI saw a patient with a high-level spinal cord injury on a home visit this month. Since an accident at 27, he can only move above the shoulders. Turning over, eating, bathing, and going to the toilet all require help from others. His life has become permanently tethered to his bed.\u003c/p\u003e","title":"Technology Helping People with Disabilities Bridge the Gap to the World"},{"content":"Prof. Edwin Chan is the Director of Cochrane Singapore. He\u0026rsquo;s considered a master of EBM and systematic reviews in Asia, with extensive academic experience. We were honored and lucky to have Hualien Tzu Chi Hospital invite him to hold a one-day workshop for us on December 5, 2018. To see a master like him, I rushed back to Hualien from Dalin, Chiayi, even if it meant taking the night train (it\u0026rsquo;s a long journey!). Over the next few posts, I\u0026rsquo;ll share a few key takeaways that left a deep impression on me.\nIs PICO omnipotent? Whenever EBM is mentioned, the first reflex is \u0026ldquo;PICO\u0026rdquo;. It\u0026rsquo;s a great tool we often use for literature searching, but is PICO really omnipotent?\nWhen facing different types of studies, we actually need to use different search strategies:\nTherapeutic: PICO Diagnostic: PIGO Harmfulness: PEO Prognostic: PO Therapeutic studies use PICO The PICO we often hear about was actually designed for therapeutic studies, including a specific population (P), intervention (I), comparison (C), and the outcome we want to observe (O).\nLet\u0026rsquo;s take a closer look at the components of PICO, using this question as an example: Can caffeine increase the reaction time of people who are sleepy in the morning?\nPopulation: Which study population are we targeting? Here, it\u0026rsquo;s Adults with daytime drowsiness Intervention: What intervention is given? Here, it\u0026rsquo;s Caffeine Comparison: What are we comparing it against? We use Placebo / Decaffeinate Note that no matter the topic, we shouldn\u0026rsquo;t just put \u0026ldquo;no intervention\u0026rdquo;, but should use a placebo or another therapy. So we shouldn\u0026rsquo;t use \u0026ldquo;didn\u0026rsquo;t drink coffee\u0026rdquo;, but should compare it with \u0026ldquo;drinking a placebo\u0026rdquo;, which means a decaffeinated drink. Otherwise, it might be the act of drinking, or the expected effect of coffee, that wakes us up. Outcome: What result do we want to compare? Here, it\u0026rsquo;s Reaction time This kind of search will yield highly precise results.\n(For search methods like MeSH, Title search, Filter, etc., please see the next post: Takeaway 2: Does a small number of search results mean the search method is good?)\nDiagnostic studies use PIGO For diagnostic questions, our ultimate goal is to know: what is the sensitivity and specificity of this new tool? Therefore, it\u0026rsquo;s crucial to know the true positive and true negative rates, which means we need a Gold standard for diagnosis — that\u0026rsquo;s the G in our PIGO!\nLet\u0026rsquo;s take another example: Is using ultrasound to diagnose pneumothorax in children accurate?\nPopulation: Children (age under 18) Intervention: Sonography Gold standard: Chest X ray Outcome: Pneumothorax, Sensitivity, Specificity Harmfulness studies use PEO Ethics, ethics, ethics.\nWe can\u0026rsquo;t do a randomized study where if you draw A you\u0026rsquo;re told to smoke, and if you draw B you\u0026rsquo;re told not to smoke, right? This kind of study can mostly only be an observational study, looking at the incidence of various events among people who already smoke (unless Hitler comes back and locks people in gas chambers).\nFor example, if we want to know: Does drug abuse affect the marriage rate of Taiwanese men?\nPopulation: Taiwanese male, age 18~30 Exposure: Drug abuse Outcome: Marriage rate Prognostic studies use PO Prognostic studies include: the natural progression of a disease with \u0026ldquo;no treatment\u0026rdquo; (if there\u0026rsquo;s treatment, it becomes a Therapeutic study, right?), the impact of prognostic factors (like age, weight, etc.), and clinical prediction rules (like calculating 10-year cardiovascular risk). When we search for these studies, we don\u0026rsquo;t focus on what treatments they underwent, but rather on describing this group of patients, so there\u0026rsquo;s no Intervention and Comparison. Additionally, we can include prognostic factors we are curious about (like wearing a mask after getting COVID-19) to see if they affect the prognosis.\nSo for example: After graduating from medical school, can you successfully get your medical license? (Just kidding xD)\nPopulation: Graduated medical student Outcome: Rate of getting medical license in the first year To sum up Therapeutic: PICO. Note that C isn\u0026rsquo;t just \u0026ldquo;not giving\u0026rdquo;, it should be giving a placebo or another treatment. Diagnostic: PICO → PIGO. Set C to gold standard, so we can find the people who are truly diseased, and calculate sensitivity and specificity. Harmfulness: PICO → PEO. Remove I/C, replace with Exposure. After all, you can\u0026rsquo;t randomly assign people into exposure / placebo groups, right? Prognostic: PICO → PO. Remove I/C, look at the natural progression of the disease and the impact of prognostic factors. We can also add prognostic factors we are curious about into the search bar. You actually don\u0026rsquo;t need to memorize that much. The most important point is: remember the four components of PICO, and for I and C, ask \u0026ldquo;Is this needed?\u0026rdquo;, \u0026ldquo;Should C be Placebo, Gold standard, or left out?\u0026rdquo; Then you\u0026rsquo;ll be able to set up a good question for searching~~\nIn this series Takeaway 1: Do we use PICO for diagnostic, prognostic, and harmfulness studies? Takeaway 2: Does a small number of search results mean the search method is good? ","permalink":"https://drpwchen.com/en/posts/systematic-review-workshop-1-pico/","summary":"\u003cp\u003e\u003ca href=\"https://www.scri.edu.sg/about-us/biostatisticians-and-epidemiologists-2/aprofessor-edwin-chan-shih-yen/\"\u003eProf. Edwin Chan\u003c/a\u003e is the Director of Cochrane Singapore. He\u0026rsquo;s considered a master of EBM and systematic reviews in Asia, with extensive academic experience. We were honored and lucky to have Hualien Tzu Chi Hospital invite him to hold a one-day workshop for us on December 5, 2018. To see a master like him, I rushed back to Hualien from Dalin, Chiayi, even if it meant taking the night train (it\u0026rsquo;s a long journey!). Over the next few posts, I\u0026rsquo;ll share a few key takeaways that left a deep impression on me.\u003c/p\u003e","title":"\u003cSystematic Review Workshop\u003e Takeaway 1: Do we use PICO for diagnostic, prognostic, and harmfulness studies?"},{"content":"After talking about setting a precise question (PICO), let\u0026rsquo;s look at the search results!\nWe know that sometimes we see a situation where the results give us two thousand papers. That\u0026rsquo;s definitely overwhelming, making you doubt whether your keywords weren\u0026rsquo;t good enough, and so on. But, did you think you could just clap your hands in satisfaction when there are only 5 results!? (Well, obviously yes when you\u0026rsquo;re rushing to finish a report xD)\nLet\u0026rsquo;s look at what to do when there are too many or too few results!\nSearch methods overview Let\u0026rsquo;s first understand what search methods are out there, before we talk about how to handle too many or too few results.\nFree text: Typing in search terms at will. You have to rely on background knowledge to type out all the synonyms. MeSH term: You should use this when there are many synonyms. These are tags the database assigns to each article (there\u0026rsquo;s a group of people working hard behind the scenes to categorize them!). They cover almost all synonyms and save you a massive amount of time. Title search: Restricts the search to only titles containing the term. Used when there are only one or two clear names; it can increase specificity. Boolean logic: Strings multiple terms together flexibly. It includes AND, OR, and NOT, creating endless possibilities xD Filter: Almost all mainstream databases have this, located in the sidebar on the left. It lets you set the study type, publication date, study population, etc. Too many results, what should you do? Seeing a thousand or two articles pop up in front of you, you immediately throw your hands up in surrender. How can you finish reading them all, and how can you find the most suitable one?\nAt this point, we need to narrow down the search scope. The methods we can use are:\nUse Title search instead of MeSH: For example, when searching for painkillers, don\u0026rsquo;t use the broad MeSH category of NSAIDs. Instead, use Title search to look for the specific drug you\u0026rsquo;re interested in, like indomethacin. Add Filter restrictions: You can restrict it to only look at Guidelines and Systematic reviews with the highest level of evidence, or only look at articles published in the last five years, etc. Leverage NOT logic: Sometimes a lot of off-target articles of the same type show up. You can use NOT to remove unwanted results, and you can pair it with MeSH to broadly exclude specific results. Echoing the \u0026ldquo;prognostic studies\u0026rdquo; from the previous post, since we don\u0026rsquo;t want any treatments, we can use NOT to exclude those treatments. Too few results, is that okay? If all the articles perfectly match our clinical question, we actually can\u0026rsquo;t get too happy about it\u0026hellip;\nA search result that\u0026rsquo;s too accurate means we might not have found some articles (it\u0026rsquo;s the concept of the trade-off between sensitivity and specificity). At this point, we should actually think hard about how to loosen the criteria.\nUse MeSH term: Click into one of the articles, see what keywords it was tagged with, and use them directly for your search. Use Similar article: Find the one that matches best, and let the database itself suggest articles it thinks are similar. Switch to Free text: MeSH updates actually take 3 months, so studies that are too new won\u0026rsquo;t be included in it. You can try using free text to find them. Loosen all other criteria: don\u0026rsquo;t be too strict on the study type, doesn\u0026rsquo;t have to be the newest, any drug in the same class is fine, etc. To sum it up We have a lot of search methods, and combining them is all about distinguishing what increases sensitivity and what increases specificity. Hope this helps everyone find the articles they want!\nFind more articles (increase sensitivity): MeSH term, similar article, OR Find fewer articles (increase specificity): Title search, filter, NOT In this series Systematic Review Workshop Takeaway 1: Do We Use PICO to Search for Diagnostic, Prognostic, and Harm Studies? Systematic Review Workshop Takeaway 2: Are Few Search Results a Sign of a Good Search Strategy? ","permalink":"https://drpwchen.com/en/posts/systematic-review-workshop-2-search/","summary":"\u003cp\u003eAfter talking about \u003ca href=\"https://paul-tw.blogspot.com/2018/12/1-pico.html\"\u003esetting a precise question (PICO)\u003c/a\u003e, let\u0026rsquo;s look at the search results!\u003c/p\u003e\n\u003cp\u003eWe know that sometimes we see a situation where the results give us two thousand papers. That\u0026rsquo;s definitely overwhelming, making you doubt whether your keywords weren\u0026rsquo;t good enough, and so on. But, did you think you could just clap your hands in satisfaction when there are only 5 results!? (Well, obviously yes when you\u0026rsquo;re rushing to finish a report xD)\u003c/p\u003e","title":"Systematic Review Workshop Takeaway 2: Are Few Search Results a Sign of a Good Search Strategy?"},{"content":"\nPo-Wei Chen, MD Physiatrist / Indie Developer / Productivity Engineer\nI\u0026rsquo;m Po-Wei Chen. Clinically, I focus on manual therapy, sports medicine, and ultrasound-guided interventions.\nOutside the white coat, I\u0026rsquo;m a tech geek passionate about self-hosted servers and coding. My biggest interest lies at the intersection of medicine, AI, and the science of learning — I\u0026rsquo;m trying to use engineering thinking and AI workflows to fundamentally rebuild the nature of knowledge management and learning. Welcome to my crossover lab.\nEducation \u0026amp; Experience Current Physiatrist, Hualien Tzu Chi Hospital Training Department of Rehabilitation Medicine, Hualien Tzu Chi Hospital; Short-term training at NTUH, Taipei VGH, and Linkou Chang Gung Education School of Medicine, Tzu Chi University Memberships Taiwan Academy of Physical Medicine and Rehabilitation, Taiwan Association of Dysphagia, Taiwan Association of Pediatric Rehabilitation Medicine, Taiwan Association of Prolotherapy, Taiwan Pain Society Expertise Manual therapy: D\u0026rsquo;Ambrogio (DAI) lymphatic/orthopedic manual series, neurodynamics (Neurodynamic Solution) Sports medicine: Exercise prescription, ACSM-CPT Interventions: Musculoskeletal ultrasound-guided injections, prolotherapy Rehabilitation medicine: Neurorehabilitation, musculoskeletal rehabilitation, dysphagia Publications Book Chapters *Live Well, Age Slowly: The Six Paramitas of Health—How to Create a Joyful, Elegant Senior Life* Ching-Hui Loh, Sheng-Lun Kao, Po-Wei Chen, Shih-Yu Liu, Chin-I Hsu, Yu-Chou Hung\nSeptember 2022\nView on Google Books →\nTalks \u0026amp; Media Preventing Muscle Loss (2024/11/26 Tzu Chi Volunteer Morning Assembly) Lie Less, Sit Less, Get Up and Move (2024/05/07 Tzu Chi Volunteer Morning Assembly) Journal Papers Chen PW, Su HY, Tu YK, Wu CH, Yeh JI, Chen LY, Peng CC, Loh CH, Huang HK, Lin SM. Association of bisphosphonates with diabetes risk and glycemic control: a meta-analysis. Osteoporosis International. 2023;34(2):387-397. (First author) Chen PW, Chen LK, Huang HK, Loh CH. Productive Aging by Environmental Volunteerism: A Systematic Review. Archives of Gerontology and Geriatrics. 2021;98:104563. (First author) Chen PW, Liu PP, Lin SM, Wang JH, Huang HK, Loh CH. Cataract and the increased risk of depression in general population: a 16-year nationwide population-based longitudinal study. Scientific Reports. 2020;10:13421. (First author) Chen PW, Lin CK, Liu WM, Chen YC, Tsai ST, Liu AB. A Novel Assessment of Baroreflex Activity Through the Similarity of Ternary Codes of Oscillations Between Arterial Blood Pressure and R–R Intervals. Journal of Medical and Biological Engineering. 2020;40(3 Pt 2). (First author) For a complete list of publications, please see ResearchGate.\nConference Presentations Year Conference Location Format 2018 APMEC (Asia Pacific Medical Education Conference) Singapore Oral presentation (Merit Award) 2019 Taiwan International Neurological Society Annual Meeting Taiwan Poster 2023 Association of Academic Physiatrists (AAP) Los Angeles, USA Poster 2023 Taiwan Academy of Physical Medicine and Rehabilitation Taiwan Oral presentation (Awarded) 2024 ISPRM (International Society of Physical and Rehabilitation Medicine) Sydney, Australia Oral presentation Continuing Education \u0026amp; Courses Accumulated over 150 sessions of seminars and workshops during my resident training. Below are highlighted courses in each area.\nUltrasound and interventions 2023/12/17 NMUSIT ultrasound course Simulation lab: ultrasound-guided injections (Sep 2023, Sep 2024, Mar 2025, Sep 2025, Dec 2025, Mar 2026; 6 sessions in total) Prolotherapy medical missions: 2023 Hualien Tzu Chi · 2024 Mennonite · 2025 Taitung St. Mary\u0026rsquo;s Manual therapy 2024/04/04 DAI STLB Systemic Total Lymphatic Balancing 2024/04/07 DAI STOB Systemic Total Osteoarticular Balancing 2025/04/03 DAI SPLB Local Lymphatic Balancing 2024/10/18 DAI Energy Balancing 2024–2026 TAMM Precision Musculoskeletal Rehabilitation Medicine series 2025/12/05 NDS neurodynamics Level 1 2025/12/11 NDS neurodynamics Level 2 Sports medicine and cardiopulmonary rehabilitation 2022/05 ACSM-CPT personal trainer certification 2022–2024 Cardiopulmonary rehabilitation / CPET full course series (30 classes) Neurorehabilitation: rTMS seminar, rehabilitation robotics seminar Pediatric rehabilitation: Taiwan Association of Pediatric Rehabilitation Medicine course series (30+ sessions) International conferences 2023/02 AAP Annual Meeting (Los Angeles) 2024/06 ISPRM (Sydney) Honors \u0026amp; Awards 2024 Best Teaching Resident, Hualien Tzu Chi Hospital 2023 Best Teaching Resident, Hualien Tzu Chi Hospital 2023 Oral Presentation Award, Taiwan Academy of Physical Medicine and Rehabilitation 2019 Valedictorian and Service Dedication Award, Tzu Chi University 2019 Best Clerk, Hualien Tzu Chi Hospital 2018 Oral Presentation Merit Award, APMEC 2018 1st Place in EBM Literature Search Competition, Hualien Tzu Chi Hospital 2017 National Outstanding College Youth Contact Facebook GitHub Email: contact@drpwchen.com Support Me 🧋 The tools and services I build (open-source projects, PM\u0026amp;R continuing education radar, and this blog) are all freely available. If they\u0026rsquo;ve ever saved you some time, consider buying me a boba tea to keep the servers running 🧡\nBuy me a boba! ","permalink":"https://drpwchen.com/en/about/","summary":"Po-Wei Chen, MD — A physiatrist who loves manual therapy, sports medicine, self-hosted services, coding, and AI workflows. Education, publications, and course records.","title":"About Me"},{"content":"As a physiatrist, I\u0026rsquo;m also someone who likes self-hosting servers and writing code. For those recurring little annoyances in clinical practice and studying, rather than enduring them manually every time, I\u0026rsquo;d rather spend the time to write a tool and let the machine run it for me.\nThis page collects my self-built, publicly sharable projects. Most are things I only built because I\u0026rsquo;d use them every day. I try to open-source the code on GitHub—feel free to reference them, use them, or collaborate.\n🗺️ AI Content MapDon't know which post to start with? See how the AI workflow posts connect into a single path 🧰 AI Toolbox RoundupLooking for a tool for your needs? A complete list of what I actually use, categorized by what you want to do ⛽ claude-pacer Claude Code 的油表＋自動煞車。狀態列給人看（對話主題、用量長條疊時間記號、context 滿度、目前模型）；額度 85%/93% 警戒給 AI 看，撞上限前先收尾存檔、排程額度重置後自動續跑；GO/PACE/STOP 一行判定給 agent 跑。三層可拆開用，零依賴。\nClaude CodeNode.jsPython開源 MIT GitHub 原始碼 → 🩺 復健課程雷達 把 17 個復健相關學會與機構的課程、活動、公告，自動彙整成一個站，附 RSS 與即時推播訂閱。不必再一個一個學會官網手動巡。\nPython爬蟲Cloudflare PagesRSSntfy 前往課程雷達 → 📡 論文學習雷達 每天早上自動抓幾十個期刊與 PubMed，依個人興趣評分，把「最該讀的」挑到最上面，還會隨著你按讚或略過越來越懂你的口味。看到喜歡的勾一勾，就自動幫你抓全文、整理、評讀。不限醫學，任何 RSS 來源都能 fork 成自己的雷達。\nPython爬蟲Cloudflare PagesD1RSS GitHub 原始碼 → 🔬 論文評讀 × 內容整理 把 journal club 評讀一篇論文的整套功夫，寫成兩個 Claude Code skill：一個評「這篇可不可信」（依研究設計自動選 RoB 工具、拿 CrossRef 查證每篇引用是否存在、確定性計算 GRADE 證據等級），一個做「快速吸收」（三層漸進整理＋逼你主動回憶的複習卡）。特地寫了兩支確定性小程式，把證據等級與邏輯漏洞交給程式算，不讓 AI 靠整體印象唬爛。就是上面論文學習雷達的評讀／整理下游。\nClaude CodePython實證醫學GRADECrossRef 介紹文章 · GitHub 原始碼 → 📝 題庫領航 以 FSRS 間隔重複為核心的專科考試練習平台。PDF 考古題自動匯入題庫、依失敗型態分類的個人與大家的錯題本、預測考試當天落點分數。原本是為自己與院內夥伴準備復健科專科考試而做，現已開源，換掉題庫就能改成任何專科的版本。\nFastAPIVue 3FSRSSQLitePWA 介紹文章 · 線上 Demo · GitHub 原始碼 → 🔎 Vault Search 給 Obsidian 的本地端語意搜尋、相關筆記與 RAG 問答。一份 LanceDB \u0026#43; Ollama 索引，同時提供 Obsidian 外掛與 MCP server，並用 Personalized PageRank 做圖譜檢索。完全在本機跑，筆記不外流。\nObsidian PluginMCPLanceDBOllamaPython GitHub 原始碼 → 📚 Textbook to Note 專科指定參考書四十多本，同個概念散在好幾本書的不同章節，根本讀不完。這套把教科書 PDF 轉成 AI 讀得動的格式（含掃描頁 OCR 階梯、亂碼偵測、雙欄閱讀順序）、切成有脈絡的搜尋單位、在幾十本書裡加權找到你最信任的來源，再依模板產出每條主張都標了書名＋章節的筆記，連書裡的圖都會抓進來。repo 附上我每天在用的五套筆記模板（中英雙語），還有一份直接寫給 AI 看的 AGENTS.md，把 repo 丟給 Claude Code 說「幫我裝起來」就好。重活全在本機跑，幾乎不花 token。\nPythonPyMuPDFSurya OCRClaude CodeObsidian 介紹文章 · GitHub 原始碼 → 🧪 OpenEvidence Tools 把 OpenEvidence 接進 AI 工作流的 MCP server，加上一支專門查核它的 skill。重點在後者：OpenEvidence 是 RAG，論述常常是對的、出處卻標錯，最典型的是綜述引用了別人的試驗數字、它卻把功勞算在綜述頭上。這支 skill 會逐條把每個引用查回原始文獻、先用 CrossRef 擋掉根本不存在的 DOI，還會反過來問「它漏講了什麼」。核心概念大量來自 htlin222 的 audit-oe-skill，repo 裡有完整致謝與授權聲明。\nMCPClaude CodePython實證醫學CrossRef GitHub 原始碼 → 🎧 ASR Benchmark 要把演講錄影變成筆記，最底層的語音辨識聽錯多少，後面每一層筆記就錯多少。這是一把測那顆引擎的尺：不需要人工精修的黃金標準逐字稿，用你自己領域的文獻建一本字典，就能量出模型「抓到多少真實詞彙」與「發明了多少不存在的字」。附我自己那份從上百本復健科教科書抽出的 18.7 萬字字典當範例，也附上我試過沒用的設定，讓你自己重現負結果。\nPythonfaster-whisperBreeze-ASR-25評測方法 介紹文章 · GitHub 原始碼 → More on GitHub I\u0026rsquo;m gradually organizing my public tools onto GitHub, so this page will grow over time. If you want to see the source code, open an issue, or collaborate, come on over:\ngithub.com/drpwchen These tools are completely free and open. If they\u0026rsquo;ve saved you some time, feel free to buy me a boba tea to keep the servers spinning 🧡\nBuy me a boba! ","permalink":"https://drpwchen.com/en/tools/","summary":"Po-Wei Chen, MD\u0026rsquo;s self-built open-source tools and projects: PM\u0026amp;R course radar, paper learning radar, critical appraisal skill, question bank navigator, Obsidian semantic search plugin and MCP, textbook-to-note pipeline, and clinical evidence checker. Using an engineering mindset to code away the annoyances of clinical work, learning, and life.","title":"Tools I Built"}]