Add README and transcript resources for AI architecture prompts
This commit is contained in:
141
README.md
Normal file
141
README.md
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
# AI Architecture Prompts - From Eskil Steenberg's "Architecting LARGE Software Projects"
|
||||||
|
|
||||||
|
Transform any codebase into modular, replaceable "black boxes" using AI-powered architecture principles derived from Eskil Steenberg's legendary systems programming lecture.
|
||||||
|
|
||||||
|
## 🎯 What This Is
|
||||||
|
|
||||||
|
Three specialized AI prompts that teach Claude, ChatGPT, and Cursor to think in terms of:
|
||||||
|
|
||||||
|
- **Black box interfaces** - Clean APIs between modules
|
||||||
|
- **Replaceable components** - If you can't understand it, rewrite it
|
||||||
|
- **Constant velocity** - Write 5 lines today vs. edit 1 line later
|
||||||
|
- **Single responsibility** - One module, one person
|
||||||
|
|
||||||
|
## 🔥 Real Results
|
||||||
|
|
||||||
|
Used these prompts to completely refactor [Mentis](https://github.com/Alexanderdunlop/mentis) - my React mention component that was plagued with DOM manipulation bugs. The AI suggested a black box DOM interface that now supports multiple frameworks with zero overhead.
|
||||||
|
|
||||||
|
**Before**: Tangled DOM manipulation breaking on every React update
|
||||||
|
**After**: Clean interface supporting React, Vue, Svelte, vanilla JS
|
||||||
|
|
||||||
|
## 📁 What's Included
|
||||||
|
|
||||||
|
- **`claude-code-prompt.md`** - For hands-on development and refactoring
|
||||||
|
- **`claude-prompt.md`** - For architectural planning and system design
|
||||||
|
- **`cursor-prompt.md`** - For debugging and testing strategies
|
||||||
|
- **`eskil-transcript.txt`** - Complete lecture transcript (1 hour of pure gold)
|
||||||
|
- **`examples/`** - Real refactoring examples from Mentis
|
||||||
|
- **`usage-guide.md`** - How to combine with AI context tools
|
||||||
|
|
||||||
|
## 🚀 Quick Start
|
||||||
|
|
||||||
|
1. **Clone this repo**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone git@github.com:Alexanderdunlop/ai-architecture-prompts.git
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Choose your AI tool and prompt**
|
||||||
|
|
||||||
|
- Claude Code → Use `claude-code-prompt.md`
|
||||||
|
- Claude → Use `claude-prompt.md`
|
||||||
|
- Cursor → Use `cursor-prompt.md`
|
||||||
|
|
||||||
|
3. **Extract your code context** (recommended)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# For JavaScript/TypeScript
|
||||||
|
npx repomix --include "src/**" --output context.xml
|
||||||
|
|
||||||
|
# For Python
|
||||||
|
python onefilellm.py ./src/ --output context.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
4. **Apply the prompt**
|
||||||
|
|
||||||
|
- Paste the prompt into your AI tool
|
||||||
|
- Include your code context
|
||||||
|
- Ask for architectural analysis
|
||||||
|
|
||||||
|
## 💡 Best Practices
|
||||||
|
|
||||||
|
### For New Projects
|
||||||
|
|
||||||
|
Use the planning prompt first to establish your black box architecture, then implement with the development prompts.
|
||||||
|
|
||||||
|
### For Refactoring Existing Code
|
||||||
|
|
||||||
|
1. Focus on single folders/modules at a time
|
||||||
|
2. Use context extraction tools for precise control
|
||||||
|
3. Let AI identify black box opportunities
|
||||||
|
4. Implement incrementally
|
||||||
|
|
||||||
|
### The Magic Combination
|
||||||
|
|
||||||
|
These prompts work best with AI context tools:
|
||||||
|
|
||||||
|
- [repomix](https://github.com/yamadashy/repomix) (JS/TS)
|
||||||
|
- [onefilellm](https://github.com/jimmc414/onefilellm) (Python)
|
||||||
|
|
||||||
|
## 📖 Core Principles (From Eskil)
|
||||||
|
|
||||||
|
> "It's faster to write five lines of code today than to write one line today and then have to edit it in the future."
|
||||||
|
|
||||||
|
- **Constant developer velocity** regardless of project size
|
||||||
|
- **One module, one person** - complete ownership and understanding
|
||||||
|
- **Everything replaceable** - modular components you can rewrite
|
||||||
|
- **Black box interfaces** - clean APIs hide implementation details
|
||||||
|
- **Reusable modules** - components that work across projects
|
||||||
|
|
||||||
|
## 🎬 Original Source
|
||||||
|
|
||||||
|
Watch Eskil Steenberg's complete lecture: [Architecting LARGE Software Projects](https://www.youtube.com/watch?v=sSpULGNHyoI)
|
||||||
|
|
||||||
|
This legend has built 3D engines, networked games, and complex systems all in C using these exact principles.
|
||||||
|
|
||||||
|
## 🛠️ Examples
|
||||||
|
|
||||||
|
### Before (Tangled)
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// DOM manipulation scattered throughout React components
|
||||||
|
const MentionInput = () => {
|
||||||
|
const handleClick = (e) => {
|
||||||
|
// Direct DOM manipulation
|
||||||
|
const selection = window.getSelection();
|
||||||
|
const range = selection.getRangeAt(0);
|
||||||
|
// 50+ lines of cursor positioning logic...
|
||||||
|
};
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
### After (Black Box Interface)
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// Clean interface - implementation details hidden
|
||||||
|
interface DOMAdapter {
|
||||||
|
insertMention(mention: Mention, position: number): void;
|
||||||
|
getCursorPosition(): number;
|
||||||
|
updateContent(content: string): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now supports React, Vue, Svelte, vanilla JS
|
||||||
|
const MentionInput = ({ adapter }: { adapter: DOMAdapter }) => {
|
||||||
|
const handleClick = () => adapter.insertMention(mention, position);
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔗 Related Resources
|
||||||
|
|
||||||
|
- [Eskil's Video Architecting LARGE Software Projects](https://www.youtube.com/watch?v=sSpULGNHyoI)
|
||||||
|
- [Original Blog Post](medium-link)
|
||||||
|
- [Mentis](https://github.com/Alexanderdunlop/mentis)
|
||||||
|
- [How I Turn Any GitHub Repo Into Perfect AI Context](https://medium.com/vibe-coding/how-i-turn-any-github-repo-into-perfect-ai-context-game-changer-71919d497531)
|
||||||
|
|
||||||
|
## 🤝 Contributing
|
||||||
|
|
||||||
|
Found improvements to the prompts? Tried them on interesting projects? PRs welcome!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_Not affiliated with Anthropic, Eskil Steenberg, or any tools mentioned. These are battle-tested prompts from real development work._
|
||||||
1410
resources/eskil-transcript.txt
Normal file
1410
resources/eskil-transcript.txt
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user