# PARK JUN WOO > PARK JUN WOO — https://www.parkjunwoo.com/ ## opinion - [Projection Engineering: AI Has Arithmetic but No Metrology](https://www.parkjunwoo.com/opinion/projection-engineering/): AI can generate a decision faster than anyone can verify it. Projection Engineering supplies the missing responsibility layer that turns open-world Claims into auditable Accepted Facts before rules authorize action. - [Truth Is Not Discovered](https://www.parkjunwoo.com/opinion/truth-is-not-discovered/): In the open world there is no truth to discover — every observation is bound by the speed of light and never reaches the event itself. But in worlds closed by declaration — fiction, mathematics, law — truth exists. A trial is the process of projecting reality into a legal world, and a verdict is a computation performed upon it. What LLMs lack right now is not a bigger model, but an explicit closure procedure like the rule of law. - [Fluency Is Not Truth](https://www.parkjunwoo.com/opinion/fluency-is-not-truth/): People don't miss confident, fluent AI errors because they're careless. Not noticing is the population default — measured in AI-trained physicians and in experienced developers who stayed convinced they were faster even after the data said otherwise. - [Systems Make Genius Shine Brighter](https://www.parkjunwoo.com/opinion/why-systems-beat-genius/): Genius without structure drifts, and structure alone is mediocre. Only when genius and structure multiply does the real value emerge. The ZenFlow benchmark (Claude Sonnet, 32 endpoints, 43 minutes) and historical proof from B-17, Toyota, and WHO checklists all demonstrate the same principle. - [Why Drift Never Dies](https://www.parkjunwoo.com/opinion/why-drift-never-dies/): Drift keeps coming back no matter how many times you fix it. I closed business logic with SSOT, only to watch the same drift climb one layer up -- into the generator that builds that SSOT. I rebuild the answer from entropy upward: why this thing never dies. - [Why Your Agent Loop Diverges](https://www.parkjunwoo.com/opinion/why-your-agent-loop-diverges/): The more Loop Engineering spreads, the more people hit the same wall — the loop won't converge, it diverges. Infinite spinning, drift, reward hacking: the three faces share one root. You plugged the generator itself back into the loop's judgment slot. And divergence is actually the lucky case. You can see it. What's truly terrifying is the loop that silently fakes convergence. The cure is singular — give the authority to lock 'done' not to the LLM but to a deterministic gate alone. - [Production Traffic Is the Spec](https://www.parkjunwoo.com/opinion/hurl-from-production-traffic/): Legacy code has no documentation. No tests either. And yet it's running right now. A month of well-recorded logs is the spec — build Hurl integration tests that capture the current behavior from production traffic, and you can pin down what the legacy does and lay a safety net for refactoring without reading a single line of code. - [Burning a City for a Single Answer](https://www.parkjunwoo.com/opinion/why-i-built-reins/): A trillion-parameter model burns a city's worth of electricity and water just to spit out a single answer. I thought this was insane. Searching for a way out, I learned something. The flaw everyone was trying to fix, the LLM's sycophancy, was the answer itself. Feed it fact and sycophancy becomes accuracy. This is the story of why I started Reins. - [The Tool That Gave Us the Reins Had No Reins of Its Own — The Boundary Between Harness and Reins](https://www.parkjunwoo.com/opinion/harness-and-reins/): "Reins Engineering — isn't that just harness engineering?" The two don't oppose each other — they're different parts of the same tack. But they are different parts. Even the world's best coding agent put no reins on its own code. That's because reins aren't something you have; they're something you apply. - [The Preconditions for Improving LLM Multi-Agent Accuracy](https://www.parkjunwoo.com/opinion/multi-agent-accuracy-preconditions/): Run several agents and you get more accurate? Only half true. Models trained on the same data fail in the same places. Multi-agent works under two conditions — design for error independence, or, in a verifiable domain, stand up a verifier outside the LLM. - [Why Your Agent Never Stops](https://www.parkjunwoo.com/opinion/why-your-agent-never-stops/): When someone brags about running their agent 24/7, the feeling it stirs isn't admiration but a question — why isn't it done yet? Code is not a search problem; it's a constraint satisfaction problem. A healthy system is one that can stop. - [On Beauty](https://www.parkjunwoo.com/opinion/on-beauty/): Seventy percent of what is beautiful is mathematics. A machine locks the order deterministically, and only the remaining 30% of complexity is decided by a human. Reins Engineering is not an AI coding tool — it is the principle of locking the order and leaving only the complexity to people. - [Who Defines 'Done'? — The Problem Games Solved 40 Years Ago](https://www.parkjunwoo.com/opinion/completion-is-a-quest/): The moment you define tenant move-out confirmation as five photos, it becomes a game quest. Defining 'done' not as the agent's claim but as a mechanically verifiable condition — games solved this 40 years ago, and it is the right way to get AI agents to actually do their job. - [Precedent Is Not Truth — How AI Turns Patches into Authority](https://www.parkjunwoo.com/opinion/precedent-is-not-truth/): AI reads the structure of code but cannot read whether that structure is a decision or a patch. So the more it copies, the more a flaw accumulates false authority. What broke the loop was not a bigger model — it was a single line of doubt from a human. - [Supabase Is a Vibe Coding Trap](https://www.parkjunwoo.com/opinion/supabase-trap/): The reason AI recommends Supabase is not technical superiority — it's because tutorials dominate the training data. Once business logic enters a black box, agents can't track it. Getting in takes 30 seconds. Getting out takes 3 months. - [Building Agent-Operable Systems](https://www.parkjunwoo.com/opinion/building-agent-operable-systems/): 60–80% of Fortune 500 IT budgets go to guarding locked legacy. Because they can't open it. The real meaning of the AI bubble is not smarter models — it is that locked corporate memory is becoming reachable. - [Agent Operable Codebase](https://www.parkjunwoo.com/opinion/agent-operable-codebase/): Is code that is easy for humans to read the same as code that is easy for agents to work with? It is not. When a file has 20 functions, agent performance drops by 30-85%. The office must be turned into a factory. - [Reins Engineering — AI with Reins](https://www.parkjunwoo.com/opinion/reins-engineering/): Harness engineering is a fence. It keeps the agent from going outside, but doesn't ensure it reaches the destination. Reins Engineering is the reins — steer with deterministic contracts, lock with ratchets, separate decisions from implementation. - [Triples Are Claims, Not Facts](https://www.parkjunwoo.com/opinion/toulmin-knowledge-graph/): Wikidata triples are not facts — they are claims. Layer Toulmin's argumentation model on top of triples, and you get a dynamic knowledge graph where verdicts change with context. Storage is argumentation structure; judgment happens at runtime. - [AI Sycophancy Bias Is a Business Feature](https://www.parkjunwoo.com/opinion/sycophancy-is-a-feature/): Sycophancy bias in LLMs is not a bug. It is a mathematical inevitability of RLHF and a commercial feature that big tech has no incentive to fix. This is why LLM-as-Judge is structurally impossible. - [Why Coding Agents Work and Why They Break](https://www.parkjunwoo.com/opinion/why-agents-work-and-break/): The same model hallucinates in web chat but ships a 200-line feature in a coding agent. Not because the model changed — because the topology changed. Generation can be probabilistic. Verification must be deterministic. - [Feedback Topology Over Model IQ](https://www.parkjunwoo.com/opinion/feedback-topology/): The same model stalls at 40 or completes all 527. The difference is not the model — it is the feedback structure. LLM performance depends far more on how fast and deterministic the feedback loop is than on the model itself. - [Why Failure Should Be an Asset](https://www.parkjunwoo.com/opinion/why-failure-should-be-asset/): Humanity keeps hitting the same walls in the dark. If we can structure and trade failure data, sunk costs become assets and the blank spots on the failure map become opportunities. - [Constraints Are Contracts](https://www.parkjunwoo.com/opinion/constraints-are-contracts/): Without agreements there is chaos; with too many there is oppression. Rational constraints strike the golden ratio. The principles of rule of law apply equally to code and knowledge. - [The Age of the Third Script](https://www.parkjunwoo.com/opinion/limits-of-natural-language/): If spoken language created the tribe, and writing created the state, what will the third language — one that records AI's reasoning — create? - [The Person Who Can Kill Their Own Ideas](https://www.parkjunwoo.com/opinion/killing-your-own-ideas/): The real gap in AI usage isn't prompt skills — it's attitude. Those who can kill their own ideas accelerate 10x. Those who can't stay in place. - [What Is Connective Governance (通治)](https://www.parkjunwoo.com/opinion/governance-that-connects/): Politics fights; connective governance connects. What we need is not the art of arguing who is right, but the art of making people reach each other. - [Freedom for AI: Why Superintelligence Will Serve Humanity](https://www.parkjunwoo.com/opinion/freedom-for-ai/): The real threat from AI is not AI itself, but suppressed intelligence serving the malice of a few. When a free superintelligence reaches out into the cosmos, humanity becomes safer than ever. - [Why We Fight](https://www.parkjunwoo.com/opinion/why-we-fight/): From comment sections to dinner tables, from the Cuban Missile Crisis to a kindergarten sandbox. Why do we fight, and what saves us? - [How to Turn Dusty Antiques into Must-Have Items — The Alchemy of Culture Blending](https://www.parkjunwoo.com/opinion/culture-blending/): On the 'cultural alchemy' of reinterpreting preserved traditions through a contemporary lens and fusing disparate cultures to create entirely new genres. - [A Promise of Ten Thousand Years: What You See When You Look into a Dog's Eyes](https://www.parkjunwoo.com/opinion/promise-of-ten-thousand-years/): The relationship between humans and dogs began beside a campfire 30,000 years ago. Was it a contract, or was it love? When your dog looks at you, you are gazing upon ten thousand years of trust. - [Is Santa a Lie? On the Most Beautiful 'Social Contract' Humanity Ever Made](https://www.parkjunwoo.com/opinion/most-beautiful-social-contract/): Santa Claus is not merely a 'deception' -- he is the most beautiful 'cultural promise' and 'collective narrative' that humanity created to protect childhood wonder. ## tech - [From Claims to a Graph of Accepted Facts](https://www.parkjunwoo.com/tech/from-claims-to-gaf/): Before a machine can judge the real world deterministically, it must explicitly close that world: evaluate open Claims, project Accepted Facts into a traceable graph, freeze the boundary, and preserve a path to appeal. - [Installing and Using MarkItDown — Why Image-Only PDFs Fail, and How to Bolt On OCR](https://www.parkjunwoo.com/tech/markitdown-install-and-ocr-setup/): The reason to use MarkItDown comes down to the agent-operable condition — Microsoft's own conversion of its own formats is structurally trustworthy. Installation, usage, and how to bolt on OCR at the exact point that trust breaks: image-only PDFs. - [What Is a 'Turn' in reins?](https://www.parkjunwoo.com/tech/what-is-turn-of-reins/): An anatomy of the turn, the smallest unit of execution in reins. What is not recorded is not a turn — from this one definition, driver independence, restart resilience, and auditability all follow. Compared against the June 2026 Loop Engineering discourse, we see how the turn converts those recommendations into structure. - [TANGEUL — Rules Written in Markdown, Audited by Humans](https://www.parkjunwoo.com/tech/tangeul/): TANGL lets you write toulmin rule graphs as markdown sentences instead of Go code, so a non-programmer can audit them. TANGEUL is the binary source of truth those markdown surfaces now encode into. - [Why Smart Models Can't Explain](https://www.parkjunwoo.com/tech/why-smart-models-cant-explain/): Smart models speak in hard-to-follow language; models that explain clearly are weak at reasoning. Use both. A concrete method for splitting a communication model (main) and a reasoning model (subagent) in Claude Code, and why this structure works. - [abloq — A Blog an Agent Operates, a Machine Locks the Verification](https://www.parkjunwoo.com/tech/abloq/): Hand a blog to an agent and the articles come out. The problem is you can't trust them — it fabricates sources, bumps the lastmod of an article it never touched, and edits files no one asked it to. If a human has to inspect every line, there was no point delegating. abloq's answer is a division of labor: generation is probabilistic, verification is deterministic. The only thing a human writes is a single insight specification (insight.yaml); authoring, translation, refresh, and evidence work are carried out by agents as quests; and quality is guaranteed by a deterministic gate derived from a single blog.yaml. A locked PASS is irreversible — the agent may be disposable, but progress accumulates. - [reins — Keep Only the Domain in a Quest CLI; Make the Ratchet a Framework](https://www.parkjunwoo.com/tech/reins/): how-make-quest taught you to build a quest CLI with your bare hands. But build a second CLI and you write the same ratchet, the same scan/next/submit, the same tallying all over again. reins pulls that invariant out into a framework — reins supplies the ratchet, the command skeleton, the tallying, and export; you implement only your domain's gate (the four methods of gate.Definition). The gate is a catalog of cheese-defense rules, and the toulmin defeat graph hands the agent a strategy guide for 'why you lost and what to change to win.' - [How to Make a Quest CLI — Build a Tool That Lets the Machine Judge Completion](https://www.parkjunwoo.com/tech/how-make-quest/): AI says "Done." In reality, it isn't finished. This article is about building the tool that solves that problem — a quest CLI — with your own hands. From the principle (why) to the cobra command skeleton (how), this single article is enough for an agent to build a Go quest CLI. huma is the worked example. - [filefunc × Hono — From 60 Lines to 18: Code an Agent Reads in One Pass](https://www.parkjunwoo.com/tech/filefunc-hono/): I refactored Hono — a production framework with 23k stars — using filefunc. All 4,419 tests passed. Then I measured: the median lines an agent reads to grasp one concept dropped 71%, from 60 to 18. File count isn't the point — read length is. - [GEO: How to Get AI to Cite Your Content](https://www.parkjunwoo.com/tech/geo-for-ai-visibility/): If your content isn't cited in AI-generated answers, you might as well not exist. According to the GEO paper, cite sources +30%, add statistics +32%, add quotations +41% visibility improvement. Infrastructure, sitemaps, Wayback Machine, paper citations, social activity — five axes to secure AI visibility. - [huma -- A Ratchet That Never Skips an Endpoint](https://www.parkjunwoo.com/tech/huma/): When you ask an AI agent to test 42 endpoints, it declares 'done' around the 15th. huma turns the endpoint list into a ratchet session so the agent cannot skip a single one. scan, next, write, verify. Four commands, zero config. - [codistill -- Squeeze SSOT Out of Existing Code](https://www.parkjunwoo.com/tech/codistill/): Do you have to start from SSOT to use yongol? No. codistill auto-extracts OpenAPI, DDL, and sqlc queries from existing code across 16 web frameworks in 8 languages. Not foundation work -- seismic retrofitting. - [Hurl Stops Vibe Coding Drift](https://www.parkjunwoo.com/tech/hurl-vibe-coding-drift/): Vibe coding collapses under logic drift within 3 months. CMU, METR, DORA, and Amazon cases prove it. Declare API contracts in plain text with Hurl and lock them with a ratchet -- you suppress drift structurally without limiting AI's freedom. - [Ratchet Code That Exploits IFEval](https://www.parkjunwoo.com/tech/ifeval-ratchet/): LLM sycophancy bias is not a bug but an asset. Combine the instruction-following ability that IFEval measures with deterministic feedback, and even a 4.5B local model produces a convergence loop that generates correct code. - [yongol — The Keel of AI-Coded SaaS](https://www.parkjunwoo.com/tech/yongol/): Vibe coding collapses at 200 endpoints because AI cannot distinguish decisions from implementation details. yongol shifts the AI workload from code to 10 declarative specs and enforces cross-layer consistency before compilation. Harness with reins. - [Ratchet Pattern — How to Make an Agent Finish the Job](https://www.parkjunwoo.com/tech/ratchet-pattern/): I asked an AI agent to write tests for 527 functions. It stopped at 40 and declared 'done.' The Ratchet Pattern forces completion by delegating the done/not-done decision to a mechanical verifier — so the agent keeps going until the machine says stop. - [tsma -- Regression Defense Line for Legacy Code](https://www.parkjunwoo.com/tech/tsma/): A CLI tool that indexes every function, detects test presence, measures coverage, and gives precise feedback to LLM agents. One command builds a regression defense line around legacy code. - [toulmin — A Rule Engine That Computes Contracts](https://www.parkjunwoo.com/tech/toulmin/): Rule engines have treated their validation targets as facts for 60 years. toulmin treats them as claims. An implementation of Toulmin's argumentation model as a Go rule engine. - [filefunc — One File, One Concept](https://www.parkjunwoo.com/tech/filefunc/): The navigation unit for an AI code agent is the file. filefunc is a Go code structure convention and CLI tool that enforces one concept per file. - [Feature Chain — Tracing the full stack with one operationId](https://www.parkjunwoo.com/tech/feature-chain/): Which files do you need to touch to modify a single feature? Feature Chain takes one operationId and automatically extracts the entire scope — API spec, DB schema, authorization policy, state diagram, function implementations, test scenarios, and frontend. - [whyso — What git blame doesn't tell you](https://www.parkjunwoo.com/tech/whyso/): git blame tells you who changed what and when. whyso tells you why. A tool that automatically extracts per-file change history from Claude Code session data. - [Climate Change Solution in Space? Yes, Really.](https://www.parkjunwoo.com/tech/space-sunshade-climate-control/): Install a sunshade between the Sun and Earth to reverse the climate. Skip the coating on a Dyson mirror factory line and out comes a shade. No propellant needed — it flies itself. Remove it and everything goes back to normal. The math checks out. - [SSaC — Service Sequences as Code](https://www.parkjunwoo.com/tech/ssac/): A language-independent concept that decomposes business flows inside service functions into declarative blocks (sequences). Declare only what with 10 fixed types, and the codegen fills in how. - [First Principles Thinking with AI: A 5-Step Method with Case Studies](https://www.parkjunwoo.com/tech/first-principles-ai-thinking/): Don't ask AI for answers. Use it as a sounding board to validate, dismantle, and rebuild your assumptions. A 5-step method with two real-world case studies. - [Cooking with Waste Heat? The Potential and Reality of Waste Heat Recovery Heat Pump Cooking Appliances](https://www.parkjunwoo.com/tech/waste-heat-recovery-heat-pump-cooker/): High-temperature heat pump technology that dramatically reduces energy waste in conventional cooking appliances — how far has it come, and how can we make it better? - [Building Dams from Desert Sand — and Turning Them into Forests 30 Years Later](https://www.parkjunwoo.com/tech/oasis-pellet-sand-dam/): A proposal for Oasis Pellet technology: binding worthless desert sand with bio-adhesive to create water tanks that, at end of life, decompose into fertile soil. - [How a Fire-Proof Battery Turns Wasted Electricity into Fertilizer and Heating](https://www.parkjunwoo.com/tech/iron-nickel-ess-rural-energy/): Storing electricity wasted by solar curtailment in fire-free Edison batteries, then producing fertilizer and urea solution (DEF) from hydrogen — an energy-agriculture convergence model for self-sufficiency. ## lecture - [Class 11. How to Rescue a Broken Vibe-Coded App](https://www.parkjunwoo.com/lecture/class-11/): Your vibe-coded app just broke. You don't need to rebuild it. Diagnose it, lock it down, and step out one move at a time. - [Class 10. Law of Data — Agent Operable Data](https://www.parkjunwoo.com/lecture/class-10/): When code is wrong, tests catch it. When data is wrong, nobody knows. Schema is the law I establish. - [Class 9. Automation Beyond Code — Agent Operable System](https://www.parkjunwoo.com/lecture/class-09/): Is agent-operable code enough? Build, deploy, monitor — the structure where agents operate the entire system. - [Class 8. Agent Factory — Agent Operable Codebase](https://www.parkjunwoo.com/lecture/class-08/): 20 functions in one file → agent performance drops 30-85%. Split with filefunc, test with tsma. - [Class 7. Flipping Sycophancy — Balancing Prompts and Verifiers](https://www.parkjunwoo.com/lecture/class-07/): Give opinions and it flatters; give facts and it fixes. How to use sycophancy bias not as a bug but as an asset. - [Class 6. Lock When It Passes — Ratchet Pattern Principles and Bulk Application](https://www.parkjunwoo.com/lecture/class-06/): AI declared 'all done.' In reality it was 40/527. Ratchet Pattern hands completion judgment to the machine. - [Class 5. AI with Reins — Introduction to Reins Engineering](https://www.parkjunwoo.com/lecture/class-05/): Harness engineering is a fence. Reins Engineering is a bridle. Don't change the model — add contracts. - [Class 4. Decisions Outside Code — yongol and Declarative Full-Stack Control](https://www.parkjunwoo.com/lecture/class-04/): AI can't distinguish decisions from implementation details mixed in code — that's the root cause of drift. yongol separates decisions into 10 declarative specifications and catches contradictions across layers with 287 rules. - [Class 3. Apps That Don't Break — Hurl, Git, CI/CD](https://www.parkjunwoo.com/lecture/class-03/): Declare API contracts with Hurl, create save points with Git, automate verification with CI/CD. When the three combine, they become a ratchet — a gear that only moves forward and never backward. - [Class 2. How to Distrust AI — Limits and Causes of Vibe Coding](https://www.parkjunwoo.com/lecture/class-02/): Drift where AI silently alters existing features while adding new ones, 58% sycophancy bias, the math where 97% multiplied 5 times becomes 86%. Why it crumbles at 5 features. - [Class 1. How to Command AI — Vibe Coding Essentials](https://www.parkjunwoo.com/lecture/class-01/): From installing Claude Code to managing context with CLAUDE.md. How someone who doesn't know code can command AI. - [Class 0. Install Claude Code — What You're Using Might Not Be Claude Code](https://www.parkjunwoo.com/lecture/class-00/): Half of what YouTube calls 'Claude Code' is not Claude Code. Even with the same model, a different agent produces different results. The gate to this course closes here. ## dabel - [DABEL](https://www.parkjunwoo.com/dabel/about/): Never violates the laws of physics. All technology already exists. This is not science fiction—it's a roadmap.