I have scripts running on a server that triage my email, draft content, scan for grants, and organize my files. Each one uses AI to make decisions.

I don't touch the code to change how they work. I edit a markdown file.

The Setup

Every script that uses AI reads a prompt file at runtime. The file is plain markdown — headers, bullet points, notes. It lives in a single folder on my machine that syncs to my server. I edit it in Obsidian like any other note.

When the script runs, it reads the file and injects it into the AI's instructions. The AI behaves differently because the prompt changed. No deploy. No restart. No code review.

What a Prompt File Looks Like

Here's a simplified version of the one that controls my email triage:

## Key People (always elevate)

### Board Members — P1 if asking, P2 if informational
- Jane Smith — board chair
- Tom Williams — treasurer

### Major Donors — P1
- Black Hills Community Foundation

## Active Priorities
- Festival permits due by April 15
- Artist contracts for summer season in progress

## Auto-Cleanup Senders
- LinkedIn notifications
- Basecamp digests
- Square receipts

That's it. The script reads this, hands it to the AI along with the email, and the AI knows that Jane Smith is a board member who gets priority and that LinkedIn notifications are trash.

When a new board member joins, I add a line. When festival season ends, I remove those priorities. When a vendor becomes important, I add them. The system adapts because the prompt adapts.

Why Markdown

Three reasons.

First, it's readable. Anyone can open the file and understand what the system is doing. No Python. No JSON. No config syntax. Just plain English with some structure.

Second, it's editable anywhere. I use Obsidian on my laptop. The file syncs to my server. I could edit it from my phone if I needed to. The format doesn't care about the tool.

Third, it separates concerns cleanly. The code handles the mechanics — connecting to Gmail, calling the AI, applying labels. The markdown handles the judgment — who matters, what's urgent, what's noise. The person who understands the judgment (me) doesn't need to understand the mechanics.

The Folder

All my prompt files live in one directory:

prompts/
├── email-triage.md
├── (content-engine.md)
├── (grant-search.md)
└── README.md

One file per system. Named after what it controls. A README that maps each file to its script.

When I build a new automation, it gets a prompt file. When I want to change how any system behaves, I know exactly where to go.

The Principle

Most people think about AI automation as: write a script, deploy it, done. But the decisions the AI makes aren't static. Your priorities shift. Your team changes. Your thresholds move.

If those decisions are buried in code, they're frozen. You need a developer to change them. Or you need to remember which file on which line has the thing you want to adjust.

If those decisions live in a markdown file you can open in any text editor, they're alive. You update them the same way you'd update a to-do list.

Code is for mechanics. Markdown is for judgment. Keep them separate and your automations stay useful long after you build them.

Build It Yourself

Next time you build something with AI, ask: what parts of this prompt will I want to change later?

Pull those parts into a file. Have the script read the file at runtime. Put the file somewhere you'll actually go.

That's the whole pattern. A folder of plain text files that control how your AI systems think.

You change the words. The behavior follows.