[{"data":1,"prerenderedAt":492},["ShallowReactive",2],{"navigation":3,"\u002Fblog\u002F20250803-1.my-context-engineering-journey":204,"\u002Fblog\u002F20250803-1.my-context-engineering-journey-surround":487},[4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200],{"title":5,"path":6,"stem":7},"You do not have time to not have tests","\u002Fblog\u002Fyou-do-not-have-time-to-not-have-tests","2.blog\u002F20211217.you-do-not-have-time-to-not-have-tests",{"title":9,"path":10,"stem":11},"Migrate Vue 2 with Vuetify and Jest to Vite and Vitest","\u002Fblog\u002Fmigrate-vue-2-with-vuetify-and-jest-to-vite-and-vitest","2.blog\u002F20220109.migrate-vue-2-with-vuetify-and-jest-to-vite-and-vitest",{"title":13,"path":14,"stem":15},"I am a Dark Matter Developer","\u002Fblog\u002Fi-am-a-dark-matter-developer","2.blog\u002F20220626.i-am-a-dark-matter-developer",{"title":17,"path":18,"stem":19},"Why using Conventional commits is useful","\u002Fblog\u002Fusing-conventional-commits","2.blog\u002F20240623.using-conventional-commits",{"title":21,"path":22,"stem":23},"Why you should make a toolbox repository","\u002Fblog\u002Fwhy-you-should-make-a-toolbox-repository","2.blog\u002F20240630.Why-you-should-make-a-toolbox-repository",{"title":25,"path":26,"stem":27},"Apache Airflow Part 1 - Why and Goals for a near Serverless ELT","\u002Fblog\u002Fapache-airflow-part-1-why-and-goals","2.blog\u002F20240710.apache-airflow-part-1-why-and-goals",{"title":29,"path":30,"stem":31},"Oh My Zsh on your server","\u002Fblog\u002Foh-my-zsh-on-your-server","2.blog\u002F20240711.oh-my-zsh-on-your-server",{"title":33,"path":34,"stem":35},"Fire tablet and YouTube Kids","\u002Fblog\u002Ffire-tablet-and-youtube-kids","2.blog\u002F20240714.fire-tablet-and-youtube-kids",{"title":37,"path":38,"stem":39},"Using Ollama and Continue as a GitHub Copilot Alternative","\u002Fblog\u002Fusing-ollama-and-continue-as-github-copilot-alternative","2.blog\u002F20240723.using-ollama-and-continue-as-github-copilot-alternative",{"title":41,"path":42,"stem":43},"Debugging Local Packages Made Easy with pnpm","\u002Fblog\u002Fdebugging-local-packages-with-pnpm-link","2.blog\u002F20250422.debugging local-packages-with-pnpm-link",{"title":45,"path":46,"stem":47},"Two Weeks with Cloudflare AI and Tools","\u002Fblog\u002Ftwo-weeks-with-cloudflare-ai-and-tools","2.blog\u002F20250509.two-weeks-with-cloudflare-aI-and-tools",{"title":49,"path":50,"stem":51},"Adding Prompts to VS Code - How I Learned to Stop Worrying and Love AI Context","\u002Fblog\u002Fadding-prompts-to-vscode","2.blog\u002F20250528.adding-prompts-to-vscode",{"title":53,"path":54,"stem":55},"My Best Practices","\u002Fblog\u002Fmy-best-practicies","2.blog\u002F20250607.my-best-practicies",{"title":57,"path":58,"stem":59},"Creating my own CLI Tool - Towles Tool","\u002Fblog\u002Ftowles-tool","2.blog\u002F20250607.towles-tool",{"title":61,"path":62,"stem":63},"Software Development Best Practices & ITIL","\u002Fblog\u002Fsoftware-engineering-and-itil-best-practices","2.blog\u002F20250612.software-engineering-and-itil-best-practices",{"title":65,"path":66,"stem":67},"Voice to Text","\u002Fblog\u002Fvoice-to-text","2.blog\u002F20250622.voice-to-text",{"title":69,"path":70,"stem":71},"Setting Up ComfyUI - A Better Alternative to Fooocus","\u002Fblog\u002Fcomfy-ui-setup","2.blog\u002F20250628.comfy-ui-setup",{"title":73,"path":74,"stem":75},"Voice to System","\u002Fblog\u002Fvoice-to-system","2.blog\u002F20250705.voice-to-system",{"title":77,"path":78,"stem":79},"Tips for Claude Code","\u002Fblog\u002Ftips-for-claude-code","2.blog\u002F20250713.tips-for-claude-code",{"title":81,"path":82,"stem":83},"Review That AI Code: Why I Read Every Line Generated Code","\u002Fblog\u002Freview-that-ai-code","2.blog\u002F20250720.review-that-ai-code",{"title":85,"path":86,"stem":87},"My Context Engineering Journey: From Dev Scripts to AI Collaboration","\u002Fblog\u002F20250803-1.my-context-engineering-journey","2.blog\u002F20250803-1.my-context-engineering-journey",{"title":89,"path":90,"stem":91},"Context Engineering at Scale: Enterprise Lessons and the Future of Development","\u002Fblog\u002F20250803-2.context-engineering-at-scale","2.blog\u002F20250803-2.context-engineering-at-scale",{"title":93,"path":94,"stem":95},"Check That Your Tools and Linters Do Not Burn Tokens","\u002Fblog\u002Fcheck-that-your-tools-and-linters-do-not-burn-tokens","2.blog\u002F20250806.check-that-your-tools-and-linters-do-not-burn-tokens",{"title":97,"path":98,"stem":99},"Markdown + AI: The Communication Protocol That Changes Everything","\u002Fblog\u002Fmarkdown-plus-ai-the-communication-protocol-that-changes-everything","2.blog\u002F20250814.markdown-plus-ai-the-communication-protocol-that-changes-everything",{"title":101,"path":102,"stem":103},"Finally: Type-Safe AI in Production (And Why I'm Here For It)","\u002Fblog\u002Ffinally-type-safe-ai-in-production-and-why-im-here-for-it","2.blog\u002F20250819.finally-type-safe-ai-in-production-and-why-im-here-for-it",{"title":105,"path":106,"stem":107},"Dotfiles: Masterpiece or Late Stage Picasso?","\u002Fblog\u002Fdotfiles-masterpiece-or-late-stage-picasso","2.blog\u002F20250822.dotfiles-masterpiece-or-late-stage-picasso",{"title":109,"path":110,"stem":111},"Beyond API Wrappers: Building State-Driven MCP Servers for Long-Horizon Agent Orchestration","\u002Fblog\u002Fbeyond-api-wrappers-mcp-servers","2.blog\u002F20250907.beyond-api-wrappers-mcp-servers",{"title":113,"path":114,"stem":115},"Why Vertical Integration Wins: A Software Engineer's Case for Owning Your Stack","\u002Fblog\u002Fwhy-i-bought-tesla-model-3-vertical-integration","2.blog\u002F20250928.why-i-bought-tesla-model-3-vertical-integration",{"title":117,"path":118,"stem":119},"The Min-Maxer's Trifecta: Building Tools for the Game You Actually Play","\u002Fblog\u002Fmin-maxer-trifecta","2.blog\u002F20251004.min-maxer-trifecta",{"title":121,"path":122,"stem":123},"Read The Source: Learning by Cutting Out The Middleman and RTFM","\u002Fblog\u002Fread-the-source","2.blog\u002F20251010.read-the-source",{"title":125,"path":126,"stem":127},"The Exponential Shift: Why AI Progress Feels Different Now","\u002Fblog\u002Fthe-exponential-shift","2.blog\u002F20251015.the-exponential-shift",{"title":129,"path":130,"stem":131},"Plan Mode for Your Problems, Edit Mode for Claude's","\u002Fblog\u002Fplan-mode-problems-edit-mode-solutions","2.blog\u002F20251019.plan-mode-problems-edit-mode-solutions",{"title":133,"path":134,"stem":135},"AWS Aurora DSQL Looked Perfect Until I Needed the Connection String","\u002Fblog\u002Faws-aurora-dsql-postgres-serverless-authentication","2.blog\u002F20251028.aws-aurora-dsql-postgres-serverless-authentication",{"title":137,"path":138,"stem":139},"Switchback: Browser History for Your Thoughts","\u002Fblog\u002Fswitchback-second-order-reasoning","2.blog\u002F20251205.switchback-second-order-reasoning",{"title":141,"path":142,"stem":143},"AI Pairing: Notes to Self","\u002Fblog\u002Fai-pairing-notes-to-self","2.blog\u002F20251216.ai-pairing-notes-to-self",{"title":145,"path":146,"stem":147},"I've Been Sleeping on Zellij","\u002Fblog\u002Fsleeping-on-zellij","2.blog\u002F20251229.sleeping-on-zellij",{"title":149,"path":150,"stem":151},"Implementing a Ralph Wiggum Loop: The Secret is Session Markers","\u002Fblog\u002Fimplementing-ralph-wiggum-loop-for-autonomous-ai-coding","2.blog\u002F20260114.implementing-ralph-wiggum-loop-for-autonomous-ai-coding",{"title":153,"path":154,"stem":155},"Goodhart's Law Ate My Context Window","\u002Fblog\u002Fgoodharts-law-ate-my-context-window","2.blog\u002F20260119.goodharts-law-ate-my-context-window",{"title":157,"path":158,"stem":159},"Claude Code's Hidden Multi-Agent System Is Real","\u002Fblog\u002Fclaude-code-hidden-multi-agent-system","2.blog\u002F20260124.claude-code-hidden-multi-agent-system",{"title":161,"path":162,"stem":163},"Free Printable Math Sheets for Kids — Number Chart, Skip Counting, Multiplication, and More","\u002Fblog\u002Ffree-printable-number-chart-and-coin-sheets","2.blog\u002F20260214.free-printable-number-chart-and-coin-sheets",{"title":165,"path":166,"stem":167},"We Are Near the End of the Exponential","\u002Fblog\u002Fnear-the-end-of-the-exponential","2.blog\u002F20260214.near-the-end-of-the-exponential",{"title":169,"path":170,"stem":171},"Free Printable Language Arts Sheets for Kids — Sight Words, Parts of Speech, Homophones, and More","\u002Fblog\u002Ffree-printable-sight-words-and-grammar-sheets","2.blog\u002F20260215.free-printable-sight-words-and-grammar-sheets",{"title":173,"path":174,"stem":175},"Interactive Code Execution with Artifacts","\u002Fblog\u002Finteractive-code-execution-with-artifacts","2.blog\u002F20260215.interactive-code-execution-with-artifacts",{"title":177,"path":178,"stem":179},"Free Printable Telling Time Worksheet for Kids — Clock Reference & Practice Sheet","\u002Fblog\u002Ffree-printable-telling-time-worksheet","2.blog\u002F20260216.free-printable-telling-time-worksheet",{"title":181,"path":182,"stem":183},"Claude Code Skills: Teaching AI Your Playbook","\u002Fblog\u002Fclaude-code-skills-guide","2.blog\u002F20260221.claude-code-skills-guide",{"title":185,"path":186,"stem":187},"Building a Multi-Agent Loan Approval System with Human-in-the-Loop","\u002Fblog\u002Fmulti-agent-loan-approval-human-in-the-loop","2.blog\u002F20260225.multi-agent-loan-approval-human-in-the-loop",{"title":189,"path":190,"stem":191},"The Inception of AI Infrastructure: Bottlenecks All the Way Down","\u002Fblog\u002Fbiggest-bottleneck-scaling-ai-compute","2.blog\u002F20260313.biggest-bottleneck-scaling-ai-compute",{"title":193,"path":194,"stem":195},"What I Tell Teams About Claude Code","\u002Fblog\u002Fwhat-i-tell-teams-about-claude-code","2.blog\u002F20260314.what-i-tell-teams-about-claude-code",{"title":197,"path":198,"stem":199},"The Hardest Part of AI Isn't the AI","\u002Fblog\u002Fthe-hardest-part-of-ai-isnt-the-ai","2.blog\u002F20260327.the-hardest-part-of-ai-isnt-the-ai",{"title":201,"path":202,"stem":203},"Claude Code Hooks: The Capability I Left on the Table","\u002Fblog\u002Fclaude-code-hooks-capability-left-on-the-table","2.blog\u002F20260401.claude-code-hooks-capability-left-on-the-table",{"id":205,"title":85,"authors":206,"badge":212,"body":214,"date":476,"description":477,"extension":478,"image":479,"meta":482,"navigation":483,"path":86,"seo":484,"status":485,"stem":87,"__hash__":486},"posts\u002F2.blog\u002F20250803-1.my-context-engineering-journey.md",[207],{"name":208,"to":209,"avatar":210},"Chris Towles","https:\u002F\u002Ftwitter.com\u002FChris_Towles",{"src":211},"\u002Fimages\u002Fctowles-profile-512x512.png",{"label":213},"AI Tools",{"type":215,"value":216,"toc":464},"minimark",[217,222,226,233,236,240,243,249,255,261,277,283,286,290,293,296,300,303,308,322,327,349,355,358,362,365,376,379,393,396,400,403,406,410,413,419,422,426,429,432,459],[218,219,221],"h2",{"id":220},"the-moment-everything-changed","The Moment Everything Changed",[223,224,225],"p",{},"I was deep in a Claude Code session last week, working through a complex refactoring, when something clicked. I wasn't just telling the AI what to do—I was carefully curating what it knew. Every file I opened, every command I ran, every piece of context I provided was shaping not just the current response, but the entire flow of our collaboration.",[223,227,228,229],{},"I've been following the current trend of trying to educate people that ",[230,231,232],"strong",{},"prompt engineering is dead and context engineering is the future.",[223,234,235],{},"If context engineering is the future of AI-assisted work—and I don't mean just development, think much bigger—then traditional developer tools, including my own Towles Tools, need to evolve to help us do that better.",[218,237,239],{"id":238},"my-context-management-journey","My Context Management Journey",[223,241,242],{},"Over two decades, I've experimented with various tools for capturing and organizing work context:",[223,244,245,248],{},[230,246,247],{},"Early Days (2000s)",": Simple scripts and snippets in folders, backed up to personal drives",[223,250,251,254],{},[230,252,253],{},"Platform Experiments",": SharePoint, Blogger, WordPress, Wikis—I overbuilt the hell out of it several times",[223,256,257,260],{},[230,258,259],{},"The Google Era",":",[262,263,264,271],"ul",{},[265,266,267,270],"li",{},[230,268,269],{},"Google Wave"," - The best collaborative tool Google ever built, and predictably killed. I still have backups somewhere.",[265,272,273,276],{},[230,274,275],{},"Google Scribe"," - Amazing, very close to AI autocomplete 15 years before its time, and again, Google killed it",[223,278,279,282],{},[230,280,281],{},"Modern Attempts",": Medium, Notion, Foam, Obsidian, countless todo apps.",[223,284,285],{},"Each transition taught me something about the value of persistent, searchable context. When Google Wave died, everything got backed up to Dropbox, then migrated to Google Drive files. The pattern was always the same: find a tool, build a system, watch it become inadequate or disappear, then migrate.",[218,287,289],{"id":288},"what-was-the-purpose-of-those-tools","What Was the Purpose of Those Tools?",[223,291,292],{},"I created this repository to share the journal system I've developed over the years. For example, at GE I have my personal \"Toolbox\"—a personal repository I share with no one. Markdown file after markdown file. Why, you may ask? Because I found having the context of my work in a single place was incredibly valuable. I could look back at what I did, why I did it, and how it all fit together. I saw the value in having a centralized source of truth for my work—a second brain where I wrote down rough ideas, the decisions I made, and the lessons I learned.",[223,294,295],{},"These weren't pretty or well-formatted, but the content was raw and valuable. I realized I needed a better way to organize and access this information.",[218,297,299],{"id":298},"context-engineering-in-practice","Context Engineering in Practice",[223,301,302],{},"The breakthrough came when I realized that VS Code isn't just a code editor—it's the perfect context engineering interface:",[223,304,305,260],{},[230,306,307],{},"Integrated Context Creation",[262,309,310,313,316,319],{},[265,311,312],{},"Native dictation support for rapid input",[265,314,315],{},"Real-time spell checking and grammar correction",[265,317,318],{},"LLM autocompletion for enhanced writing",[265,320,321],{},"Markdown files as the communication medium with Claude instead of separate chat UIs",[223,323,324,260],{},[230,325,326],{},"Dynamic Context Flow",[262,328,329,337,340,343,346],{},[265,330,331,332,336],{},"Use slide separators (",[333,334,335],"code",{},"---",") to parse files and send contextual sections to AI instances",[265,338,339],{},"This closes the AI-human feedback loop: humans enter text, IDE tools apply autocomplete, linting, and grammar checking before AI processing",[265,341,342],{},"AI can access and update context in real-time",[265,344,345],{},"Conversation artifacts remain in files, acting as resumable plan documents",[265,347,348],{},"Enables real-time collaboration and context sharing between team members",[223,350,351,354],{},[230,352,353],{},"The Meta-Tool Strategy",": Build the tool that lets you build better tools. By creating superior context editing processes in VS Code, I can generate clearer context more quickly, making the entire development cycle more effective.",[223,356,357],{},"This isn't just about better prompts—it's a fundamental shift in how we think about AI interaction.",[218,359,361],{"id":360},"because-context-is-king","Because Context is King",[223,363,364],{},"Context engineering isn't just a fancy name for better prompts. As Andrej Karpathy puts it, it's \"the delicate art and science of filling the context window with just the right information for the next step.\"",[223,366,367,368,375],{},"Karpathy, former director of AI at Tesla and current OpenAI researcher, ",[369,370,374],"a",{"href":371,"rel":372},"https:\u002F\u002Fx.com\u002Fkarpathy\u002Fstatus\u002F1937902205765607626",[373],"nofollow","captured this insight perfectly"," in his reflection on the evolution from prompt engineering to context engineering.",[223,377,378],{},"Think about the difference:",[262,380,381,387],{},[265,382,383,386],{},[230,384,385],{},"Prompt engineering",": \"How do I ask the AI to write better code?\"",[265,388,389,392],{},[230,390,391],{},"Context engineering",": \"What does the AI need to know to understand my codebase, my goals, and my constraints?\"",[223,394,395],{},"It's the shift from crafting clever instructions to building intelligent information systems. Context engineering treats the AI's knowledge as a dynamic, manageable resource—something you architect, not just something you feed.",[218,397,399],{"id":398},"the-mcp-revolution","The MCP Revolution",[223,401,402],{},"In November 2024, Anthropic announced the Model Context Protocol (MCP), marking a pivotal moment for AI tooling. This provided a standardized way to connect AI models to external data sources and tools. The protocol gained rapid industry adoption, with major AI providers implementing support and a thriving ecosystem of community-built MCP servers emerging.",[223,404,405],{},"MCP isn't just another protocol—it's the infrastructure layer that makes context engineering practical at scale.",[218,407,409],{"id":408},"towles-tools-accidentally-perfect-for-context-engineering","Towles Tools: Accidentally Perfect for Context Engineering",[223,411,412],{},"Looking back at Towles Tools, I realize we've been building context engineering infrastructure without knowing it:",[223,414,415,418],{},[230,416,417],{},"Journal system",": Three types of structured documentation (daily notes, meetings, general notes) that capture work context over time",[223,420,421],{},"In fact, the journal system is already a context repository. It captures the essence of what context engineering is all about—storing and managing information that informs future decisions. For years, I've been searching my \"toolbox\" repo, which was just markdown files stored locally.",[218,423,425],{"id":424},"the-path-forward","The Path Forward",[223,427,428],{},"This evolution isn't about replacing existing workflows—it's about enhancing them with intelligent context management that makes AI collaboration genuinely productive.",[223,430,431],{},"For developers looking to embrace context engineering:",[433,434,435,441,447,453],"ol",{},[265,436,437,440],{},[230,438,439],{},"Start with documentation",": Treat your notes, decisions, and learnings as first-class context assets",[265,442,443,446],{},[230,444,445],{},"Experiment with MCP",": Explore how different tools can share context through standardized protocols",[265,448,449,452],{},[230,450,451],{},"Invest in context flow",": Identify where context breaks down in your current workflows",[265,454,455,458],{},[230,456,457],{},"Build context habits",": Make context capture as natural as version control",[223,460,461],{},[230,462,463],{},"Context is the new code. Engineer it accordingly.",{"title":465,"searchDepth":466,"depth":466,"links":467},"",2,[468,469,470,471,472,473,474,475],{"id":220,"depth":466,"text":221},{"id":238,"depth":466,"text":239},{"id":288,"depth":466,"text":289},{"id":298,"depth":466,"text":299},{"id":360,"depth":466,"text":361},{"id":398,"depth":466,"text":399},{"id":408,"depth":466,"text":409},{"id":424,"depth":466,"text":425},"2025-08-03","How I evolved from simple dev tools to understanding context as the foundation of AI-assisted development","md",{"src":480,"alt":481},"\u002Fimages\u002Fblog\u002Fcontext-engineering-with-workflows.png","Context engineering workflow showing seamless information flow between development tools",{},true,{"title":85,"description":477},"published","76ev_YKjWAm9rkp5rBo5KdEEYnh9In7T_NiCW-yukws",[488,490],{"title":81,"path":82,"stem":83,"description":489,"status":485,"children":-1},"After spending three days debugging a 'perfect' AI-generated function, I learned the hard way that AI tools are brilliant assistants, not replacements for understanding. Here's my battle-tested approach to working with Claude, Copilot, and other AI coding tools without losing your expertise—or your sanity.",{"title":89,"path":90,"stem":91,"description":491,"status":485,"children":-1},"How enterprise teams can overcome context switching disasters and build intelligent development workflows",1776221196452]