feature_list.json for AI Agents: WIP=1, Feature Status and verify.sh Verification
How to limit an AI coding agent to one task at a time (WIP=1): feature_list.json with feature states, task granularity, scripts/verify.sh as the only gate for passing status, strict vs weak verification.
- Implement WIP=1 and watch the number of unfinished parallel changes fall.
- Set up feature_list. with an honest finite state machine, instead of the agent marking its own homework.
- Write verify.sh as the sole authority permitted to set a status to passing.
Phần đầu bài giảng
Twelve files, eight hundred lines, zero finished features
- There was just one request: 'add sign-up'
- Along the way, the agent 'helpfully' wired in email verification, bcrypt and a middleware refactor
- The resulting code is tightly coupled, yet no scenario passes end-to-end
- The next session opens this tangle from scratch
The request was exactly one thing — build sign-up. Here's how, in practice, it sprawled into six directions: the agent models the user, then decides email verification is needed, wires up a mail service, remembers password hashing still needs doing, pulls in a separate library, spots inconsistent error handling and refactors the middleware, and tidies up the test structure along the way. Six directions, each half-done, all tightly coupled together — and not a single end-to-end run. The next session opens this code with no idea where to begin.
Arithmetic, not metaphor
- C — the agent's usable context capacity
- k — the number of simultaneously active tasks
- Each task gets roughly C/k of the reasoning resource
- As soon as C/k drops below the minimum, no task gets seen through to completion
This isn't a metaphor, it's arithmetic. Call the agent's usable context capacity C, and the number of simultaneously active tasks k. Each task gets roughly C divided by k of the reasoning resource. As soon as that value falls below the minimum needed to carry a single task through to completion, nothing gets completed. The more tasks the agent juggles at once, the lower the chance that any one of them genuinely gets finished.
The trap: one request turns into six projects
- ❌ The agent treats 'fixing things while we're at it' as a free action, and often does exactly that: pulling in an email service, bcrypt, a middleware refactor, test reorganisation — all within a single task
- ✅ One request = one branch of work; anything noticed along the way goes into BACKLOG.md, not into the current scope
'I'll fix that while I'm at it' is the most expensive phrase in an agent's vocabulary. You ask for sign-up, and the agent — since it's already deep in the code anyway — fixes error handling while it's at it, adds email verification while it's at it, tidies up the tests while it's at it. Each of these 'while I'm at it' moves seems almost free to the agent. This is a trap people fall into constantly: scope creep costs the agent almost zero tokens, but the cost to the project is real. The right move is different: one request, one branch of work, and everything else noticed along the way gets recorded separately and left well alone.
Bài giảng đầy đủ dành cho thuê bao
Còn 23 slide nữa trong phiên bản đầy đủ.
Video, toàn bộ slide, ghi chú, bài kiểm tra, gia sư AI và phỏng vấn sẽ mở sau khi đăng nhập và đăng ký thuê bao.
Đăng nhập hoặc đăng ký Đăng ký thuê baoNội dung bài giảng
- Twelve files, eight hundred lines, zero finished features
- Arithmetic, not metaphor
- The trap: one request turns into six projects
- Myth: more code means more progress
- An agent has no brakes
- BACKLOG.md — a release valve for the 'while we're at it' impulse
- BACKLOG.md — a release valve for the 'while we're at it' impulse
- Scope lives outside — in a file
- Scope lives outside — in a file
- VCR: the metric that keeps the agent on a short leash
- WIP=1 is set. But who remembers what's already done?
- 💡 Not too wide, not too narrow: the right size for a feature
- Feature = session = commit = scenario: the size check
- WIP=1 is set. But who remembers what's already done?
- 📖 'The basket's nearly done, but there are bugs' — nearly done for whom?
- The feature list is the harness’s spine, not a memo
- Three fields without which a feature entry is just words
- A feature has exactly four states — and not one extra transition
- The passing gate: the agent can request it, but not declare it
- The feature list rules live in AGENTS.md too
- Two levels of checking: first the whole, then the part
- Two levels of checking: first the whole, then the part
- “The function exists” doesn’t mean it works
- A feature's journey from queue to passing: three places it can get stuck
- Step 4 of the end-to-end project: feature_list. for the payment backend
- The harness applies the brakes, not the agent
Bài viết liên quan đến bài học này
- Harness engineering là gì: biến AI agent thành công cụ làm việc thực sự
- Làm sao để AI agent đáng tin cậy: lộ trình từng bước từ đo lường đến làm việc tự động
- CLAUDE.md và AGENTS.md: là gì, nên viết gì và vì sao agent bỏ qua quy tắc
- Agent báo «xong», nhưng tính năng không chạy: vì sao xảy ra và cách kiểm chứng công việc của AI agent
- Harness vs context engineering: harness engineering khác prompt và context engineering thế nào
Tất cả bài giảng của khóa học
- What Is Harness Engineering? Why AI Coding Agents Fail Because of the Environment
- Error Accumulation in AI Agents: Why 95% Per-Step Accuracy Fails by Step 10
- AI Agent Reliability Metrics: MTBF, MTTR, Blast Radius and Little's Law
- Why AI Agents Fail in Production: Five Failure Layers and a Diagnostic Loop
- What an AI Agent Harness Is Made Of: Instructions, Tools, Environment, State, Feedback Loops
- Repository Map for AI Coding Agents: Project Structure and State Without Memory
- AGENTS.md Best Practices: Why a Giant Instructions File Fails and How to Build a Router
- AI Agent Memory Between Sessions: Session Handoff, PROGRESS.md and Bootstrap Contract
- feature_list.json for AI Agents: WIP=1, Feature Status and verify.sh Verification
- Agent Says 'Done' but the Feature Is Broken: Verification Gap and Definition of Done
- All Tests Pass, Feature Is Broken: E2E Tests and Architecture Rules for AI Agents
- AI Agent Observability: Sprint Contracts, Evaluator Rubrics and Clean Session Exit
- Autonomous AI Coding Agent for Hours: Loop Engineering and Stop Conditions
- Graph Engineering for AI Agents: When a Single Loop Is Not Enough and You Need a Task Graph
- Building an AI Agent Harness From Scratch: AGENTS.md, feature_list.json, verify.sh and an Autonomous Loop