{"id":11787,"date":"2025-09-11T11:05:53","date_gmt":"2025-09-11T02:05:53","guid":{"rendered":"https:\/\/stg.sreake.com\/?p=11787"},"modified":"2026-02-10T16:15:29","modified_gmt":"2026-02-10T07:15:29","slug":"stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise","status":"publish","type":"post","link":"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/","title":{"rendered":"Stop Worrying About AI Wrecking Your Code: A Template for Unified Development Environments Using Dev Containers and mise"},"content":{"rendered":"\n<p><em>This blog post is a translation of <a href=\"https:\/\/stg.sreake.com\/blog\/safe-universal-dev-env-with-devcontainer-mise\/\" title=\"\">a Japanese article<\/a> posted on July 26th, 2025.<\/em><\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_75 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#The_Challenge_Generative_AIs_destruction_potential\" >The Challenge: Generative AI\u2019s destruction potential<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#%EF%B8%8F_How_This_Template_Protects_You_From_AI_Shenanigans\" >?\ufe0f&nbsp;How This Template Protects You From AI Shenanigans<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#1_Complete_Environment_Isolation\" >1. Complete Environment Isolation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#2_Freedom_of_Development\" >2. Freedom of Development<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#3_Designed_for_Instant_Recovery\" >3. Designed for Instant Recovery<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#_How_the_Template_Works\" >? How the Template Works<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#The_Core_Pieces_Dev_Containers_and_mise\" >The Core Pieces: Dev Containers and mise<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#The_configuration_files\" >The configuration files<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#_Managing_Tasks_with_Task_optional\" >? Managing Tasks with Task (optional)<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#Whats_Good_About_Task\" >What\u2019s Good About Task?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#Use_Task_or_Dont\" >Use Task, or Don\u2019t<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#_How_to_Use_the_Template\" >? How to Use the Template<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#Step_1_Prepare_Your_Project\" >Step 1: Prepare Your Project<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#Step_2_Create_the_Configuration_Files\" >Step 2: Create the Configuration Files<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#Step_3_Get_Started_Developing\" >Step 3: Get Started Developing<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#_Using_the_Template_in_Practice\" >? Using the Template in Practice<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#Preventing_AI_shenanigans\" >Preventing AI shenanigans<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#Onboarding_New_Members\" >Onboarding New Members<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#Solving_Environment_Differences\" >Solving Environment Differences<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#_Summary_Generative_AI_and_Safety\" >? Summary: Generative AI and Safety<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#_Reference_Links\" >? Reference Links<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#_Try_the_Template\" >? Try the Template!<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/stg.sreake.com\/en\/blog\/stop-worrying-about-ai-wrecking-your-code-a-template-for-unified-development-environments-using-dev-containers-and-mise\/#_Bonus_Taskfile_Example\" >? Bonus: Taskfile Example<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_Challenge_Generative_AIs_destruction_potential\"><\/span>The Challenge: Generative AI\u2019s destruction potential<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u201cChatGPT, fix this bug!\u201d<\/p>\n\n\n\n<p>\u201cGithub Copilot, implement this feature!\u201d<\/p>\n\n\n\n<p>If you\u2019ve been experimenting with the latest AI developments tools, you have probably written prompts similar to the above. But is it always safe?<\/p>\n\n\n\n<p>If you blindly trust AI to do its job, you might suddenly find your Node.js version has changed, or unfamiliar tools have been globally installed, or something that worked yesterday stopped working today\u2026 You get the idea: AI, left unchecked, can destroy your development environment (or even worse!).<\/p>\n\n\n\n<p>In this article, we provide a development environment template that solves one of the modern developer&#8217;s biggest problems: <strong>&#8220;How can I keep my setup safe, no matter what an AI does?\u201d<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EF%B8%8F_How_This_Template_Protects_You_From_AI_Shenanigans\"><\/span>?\ufe0f&nbsp;How This Template Protects You From AI Shenanigans<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Complete_Environment_Isolation\"><\/span>1. <strong>Complete Environment Isolation<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>This template uses Dev Containers, so your local environment stays intact. Even if AI runs destructive commands, your host OS remains unaffected. And worst case? You can just delete and recreate the container to get back to where you were.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_Freedom_of_Development\"><\/span>2. <strong>Freedom of Development<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Need an isolated, safe development environment? Use Dev Containers!<\/p>\n\n\n\n<p>Prefer using your local development tools! That works too!<\/p>\n\n\n\n<p><code>mise<\/code> unifies tool management, allowing you to collaborate with everyone in your team, even if your development styles differ.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_Designed_for_Instant_Recovery\"><\/span>3. <strong>Designed for Instant Recovery<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Broke your environment? Just run the <code>Reopen in Container<\/code> command and you\u2019re back in action!<\/p>\n\n\n\n<p>You can also find all environment settings in <code>.devcontainer\/<\/code> and <code>.mise.toml<\/code>, making it easy for new team members to get up and running with an identical setup in minutes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_How_the_Template_Works\"><\/span>? How the Template Works<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_Core_Pieces_Dev_Containers_and_mise\"><\/span>The Core Pieces: Dev Containers and mise<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Dev Containers<\/strong><\/p>\n\n\n\n<p>For people who want to work inside containers!<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Configured with Docker Compose and a Dockerfile<\/li><li>VSCode extensions are automatically installed<\/li><li>Works out-of-the-box with GitHub Codespaces.<\/li><\/ul>\n\n\n\n<p><strong>mise<\/strong><\/p>\n\n\n\n<p>For people who prefer working locally!<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>All tool versions are managed in <code>.mise.toml<\/code><\/li><li>Provides the same experience as using a Dev Container would<\/li><li>Simplifies per-project tool management.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"the-configuration-files\"><span class=\"ez-toc-section\" id=\"The_configuration_files\"><\/span>The configuration files<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Here are some configuration files to set up Dev Containers and mise. Feel free to use them in your own project!<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code># .mise.toml\n&#91;tools]\ntask = \"3.41.0\"\n# node = \"20.10.0\"  # Add as needed\n# python = \"3.11.0\" # Add as needed <\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>\/\/ .devcontainer\/devcontainer.json\n{\n  \"name\": \"Sample Dev Container with mise\",\n  \"dockerComposeFile\": &#91;\".\/compose.yml\"],\n  \"service\": \"app\",\n  \"workspaceFolder\": \"\/workspaces\/${localWorkspaceFolderBasename}\",\n  \"customizations\": {\n    \"vscode\": {\n      \"extensions\": &#91;] \/\/ Add necessary extensions here\n    }\n  },\n  \"postCreateCommand\": \"mise trust -- --non-interactive &amp;&amp; mise install --yes\",\n  \"postAttachCommand\": \"\",\n  \"forwardPorts\": &#91;3000, 8000, 5173],\n  \"remoteUser\": \"root\"\n} \n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code code-block\"><code># .devcontainer\/compose.yml\nservices:\n  app:\n    build:\n      context: ..\n      dockerfile: .devcontainer\/Dockerfile\n\n    volumes:\n      - ..\/..:\/workspaces:cached\n      - mise:\/mise\n\n    command: sleep infinity\n\n# Persist mise cache\nvolumes:\n  mise:\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code code-block\"><code># .devcontainer\/Dockerfile\nFROM mcr.microsoft.com\/devcontainers\/base:bullseye\n\n# See the Mise + Docker Cookbook\n# &lt;https:\/\/mise.jdx.dev\/mise-cookbook\/docker.html&gt;\n\nRUN apt-get update \\\\\n    &amp;&amp; apt-get -y --no-install-recommends install \\\\\n    # install any other dependencies you might need\n    sudo \\\\\n    curl \\\\\n    git \\\\\n    ca-certificates \\\\\n    build-essential \\\\\n    &amp;&amp; rm -rf \/var\/lib\/apt\/lists\/*\n\nSHELL &#91;\"\/bin\/bash\", \"-o\", \"pipefail\", \"-c\"]\nENV MISE_DATA_DIR=\"\/mise\"\nENV MISE_CONFIG_DIR=\"\/mise\"\nENV MISE_CACHE_DIR=\"\/mise\/cache\"\nENV MISE_INSTALL_PATH=\"\/usr\/local\/bin\/mise\"\nENV PATH=\"\/mise\/shims:$PATH\"\n# ENV MISE_VERSION=\"...\"\n\n# Verify the install script hasn't been tampered with\n# &lt;https:\/\/mise.jdx.dev\/installing-mise.html&gt;\nRUN gpg --keyserver hkps:\/\/keyserver.ubuntu.com --recv-keys 0x7413A06D \\\\\n    &amp;&amp; curl &lt;https:\/\/mise.jdx.dev\/install.sh.sig&gt; | gpg --decrypt &gt; install.sh \\\\\n    &amp;&amp; sh .\/install.sh\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_Managing_Tasks_with_Task_optional\"><\/span>? Managing Tasks with Task (optional)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>As a nice bonus, this template also includes support for managing tasks (e.g. running a development server) using <a href=\"https:\/\/taskfile.dev\/\">Task<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Whats_Good_About_Task\"><\/span>What\u2019s Good About Task?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Task can be used as a simple, powerful alternative to npm scripts and Makefiles<\/li><li>Task eliminates the need to remember complex commands<\/li><li>Task simplifies environment variables management<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Use_Task_or_Dont\"><\/span>Use Task, or Don\u2019t<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Using Task is a matter of preference!<\/strong> What&#8217;s important is environment consistency, which we\u2019ve already achieved with Dev Containers and mise.<\/p>\n\n\n\n<p><strong>When using Task:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>task setup\ntask dev\n<\/code><\/pre>\n\n\n\n<p><strong>If you prefer direct commands:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>mise install\n# Other development commands...\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_How_to_Use_the_Template\"><\/span>? How to Use the Template<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_1_Prepare_Your_Project\"><\/span>Step 1: Prepare Your Project<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>First, create the following directory structure:<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code>your-project\/\n\u251c\u2500\u2500 .devcontainer\/\n\u2502   \u251c\u2500\u2500 devcontainer.json\n\u2502   \u251c\u2500\u2500 compose.yml\n\u2502   \u2514\u2500\u2500 Dockerfile\n\u251c\u2500\u2500 .mise.toml\n\u2514\u2500\u2500 .gitignore\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_2_Create_the_Configuration_Files\"><\/span>Step 2: Create the Configuration Files<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Copy the configuration files <a href=\"#the-configuration-files\" title=\"\">we shared earlier<\/a> into your project. Also, add the following to your <code>.gitignore<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code># Your personal Taskfile, if any\nTaskfile.yml\n\n# mise related\n.mise\/\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_3_Get_Started_Developing\"><\/span>Step 3: Get Started Developing<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>When using Dev Containers:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Open the project folder in VS Code, or any Dev Container-compatible editor<\/li><li>Select \u201c<strong>Reopen in Container\u201d<\/strong> from the command palette<\/li><li>Grab a coffee while your environment sets up<\/li><li><strong>That&#8217;s it!<\/strong><\/li><\/ol>\n\n\n\n<p><strong>For local development:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Install <a href=\"https:\/\/mise.jdx.dev\/\">mise<\/a> on your local machine<\/li><li>Run <code>mise install<\/code> in the project root<\/li><li>Grab a coffee while mise installs all the project tools<\/li><li><strong>That&#8217;s it!<\/strong><\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_Using_the_Template_in_Practice\"><\/span>? Using the Template in Practice<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>This template can solve various common development problems. Here are a few scenarios you might find it useful:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Preventing_AI_shenanigans\"><\/span>Preventing AI shenanigans<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>You:<\/strong> &#8220;ChatGPT, implement this feature.&#8221;<br><strong>ChatGPT:<\/strong> &#8220;Gladly. Please execute the following commands&#8230;&#8221;<br><strong>You:<\/strong> &#8220;No problem! I can run this without worry since it&#8217;s all inside a container!&#8221;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Onboarding_New_Members\"><\/span>Onboarding New Members<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>New Member:<\/strong> &#8220;Where are the environment setup instructions?&#8221;<br><strong>You:<\/strong> &#8220;Just open the project with Dev Containers.&#8221;<br><strong>New Member:<\/strong> &#8220;Wait, that&#8217;s it?&#8221;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Solving_Environment_Differences\"><\/span>Solving Environment Differences<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><strong>Person A:<\/strong> &#8220;It works on my machine!&#8221;<br><strong>Person B:<\/strong> &#8220;Not on mine ?&#8221;<br><strong>You:<\/strong> &#8220;Let&#8217;s all just use containers!&#8221;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_Summary_Generative_AI_and_Safety\"><\/span>? Summary: Generative AI and Safety<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In the age of generative AI, it is now more important than ever to <strong>protect your development environment<\/strong>. In this article, we provided a template that does just that, with highlights including:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u2705 <strong>Safety<\/strong>: Completely isolate your environment with containers<\/li><li>\u2705 <strong>Flexibility<\/strong>: Support both Dev Containers and local development<\/li><li>\u2705 <strong>Efficiency<\/strong>: Automate complex environment setup<\/li><li>\u2705 <strong>Reproducibility<\/strong>: Share the same environment across your entire team<\/li><li>\u2705 <strong>Recoverability<\/strong>: Instantly recover from any issues<\/li><\/ul>\n\n\n\n<p>Now, delegating tasks to AI doesn\u2019t have to be scary!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_Reference_Links\"><\/span>? Reference Links<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/mise.jdx.dev\/\">mise<\/a><\/li><li><a href=\"https:\/\/taskfile.dev\/\">Task<\/a><\/li><li><a href=\"https:\/\/code.visualstudio.com\/docs\/devcontainers\/containers\">VS Code Dev Containers<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_Try_the_Template\"><\/span>? Try the Template!<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Copy and paste the configuration files from this article into your own project and give it a try!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_Bonus_Taskfile_Example\"><\/span>? Bonus: Taskfile Example<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>If you&#8217;d also like to try using Task, put the following file in the project root:<\/p>\n\n\n\n<pre class=\"wp-block-code code-block\"><code># Taskfile.dist.yml\n\nversion: \"3\"\n\nvars:\n  APP_ENV: development\n\ntasks:\n  default:\n    desc: Display a list of tasks\n    cmds:\n      - task -l\n\n  setup:\n    desc: Set up mise and install necessary tools\n    cmds:\n      - mise install\n\n  check:\n    desc: Check the mise configuration\n    cmds:\n      - mise list\n      - mise doctor\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>This blog post is a translation of a Japanese article posted on July 26th, 2025. The Challenge: Generative AI\u2019s destruction potential \u201cChatGPT, fix this bug!\u201d \u201cGithub Copilot, implement this feature!\u201d If you\u2019ve been experimenting with the latest AI developments tools, you have probably written prompts similar to the above. But is it always safe? If [&hellip;]<\/p>\n","protected":false},"author":45,"featured_media":11789,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_locale":"en_US","_original_post":"https:\/\/stg.sreake.com\/?p=11787","footnotes":""},"categories":[17],"tags":[74,23],"class_list":["post-11787","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-genai","tag-enginner-blog","en-US"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/stg.sreake.com\/wp-json\/wp\/v2\/posts\/11787","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stg.sreake.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stg.sreake.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stg.sreake.com\/wp-json\/wp\/v2\/users\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/stg.sreake.com\/wp-json\/wp\/v2\/comments?post=11787"}],"version-history":[{"count":1,"href":"https:\/\/stg.sreake.com\/wp-json\/wp\/v2\/posts\/11787\/revisions"}],"predecessor-version":[{"id":13484,"href":"https:\/\/stg.sreake.com\/wp-json\/wp\/v2\/posts\/11787\/revisions\/13484"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stg.sreake.com\/wp-json\/wp\/v2\/media\/11789"}],"wp:attachment":[{"href":"https:\/\/stg.sreake.com\/wp-json\/wp\/v2\/media?parent=11787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stg.sreake.com\/wp-json\/wp\/v2\/categories?post=11787"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stg.sreake.com\/wp-json\/wp\/v2\/tags?post=11787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}