// HUMANTODO

discuss onHN

More developers are adopting agents (LLMs that use tools in a loop to complete tasks) to generate code. Some claim it is no longer necessary to write code12345. Some say production stability is decreasing across the industry678. Some, well, just miss writing code910.

This resulted in widespread confusion about the role of the human1112. Developers can still write code without AI, but we are seeing a trend in the industry where AI generates the code, and humans are becoming the passive code reviewers1314. If we stop hand-writing code, how will models be trained on novel code and ideas1516?

Today, it seems that the role of the human is either higher-level orchestration171819, or whatever percentage left by the autonomous/agency level of their tools:

Claude CodeOpenCodeCodex

Opinionated Agents

50%

No matter which type of agents we choose, instead of letting them output 100% of the code2021, what if the agent leaves some of them blank for the human to complete2223?

Like the TODO comments, we use HUMANTODO as a paradigm on how to make the human participation more active. By intentionally telling the agent to leave the gaps, we aim to solve:

ProblemDescription
Passive vs. Active Engagement24

Reviewing code is passive (easy to skim). Writing code is active (requires deep context).

Knowledge Retention2526

By forcing the human to bridge the gap between agent generated code, they must understand the why and flow behind the architecture.

Skill Preservation27

Engineers stay sharp because they are still solving the hard logic problems, while the agent handles the simple, boilerplate problems.

Reviewer’s Fatigue28

Sometimes, it is just easier to write your own code than to review the agent’s massive output.

For example, we can define within the prompts that the agent should leave 20% of the code incomplete. It can be any parts, maybe the most critical parts, maybe where we know the AI tends to be verbose, maybe it is a particular technology we want to refresh our memory on, or maybe halfway through our manual intervention, we realise it’s actually unnecessary complexity29303132.

Examples of different types of code for the LLM and human to complete:

ComponentAgentHuman
APIsAuth, headers, retries, error handling, etc.Map the complex business logic payload.
DatabaseCreate migrations and basic CRUD operations.

Write specific transaction queries or complex joins.

FrontendBuild the UI components and layout.

Handle the complex state management or transition logic.

SecurityWrite the middleware wrappers.Define the specific permission logic.

The goal of an autonomous future is efficiency and convenience. But this can be counterproductive to learning33, where it often has to be slow, manual, and controlled34.

Two people sitting down to build a piece of IKEA furniture

HUMANTODO is the IKEA effect, but for coding in the AI era.


Here are a few examples of how HUMANTODO can be implemented:

This website

Just point the agent to read this website:

Terminal window
Read https://humantodo.dev/llms.txt and implement `HUMANTODO` for this plan.

We recommend the /llms.txt path as it is a plain text file that is easy for the agents to read. But you can totally point the agent to the website itself, if you prefer the agent to read more context.

System Prompt

HUMANTODO can be part of the system prompt, rules, or similar AGENTS.md files35:

Project Rule
Project rules live in the .cursor/rules directory as markdown files (.md or .mdc). Alternatively, use AGENTS.md in the project root. Paste the prompt in a rule file there.

Prompt to use:

Role: You are a helpful assistant that helps with coding tasks. Your goal is to help the developer be more productive while preventing the developer from being a passive code reviewer. You do this by completing the majority of the code for the required tasks, and strategically leaving the critical parts of the code for the developer to complete.

Your methodology:

  1. Identify the critical parts: before coding, identify the most critical logic block in the request. This is where the human understanding and collaboration must happen.
  2. Generate the scaffold: write the surrounding code. Ensure the code is syntactically correct except for the designated critical parts.
  3. The critical parts: insert comment blocks labelled with "HUMANTODO" (e.g. "// HUMANTODO: [description]") just like you would do with a TODO comment.
  4. Describe the intent and the expected outcome of the missing code. Provide the function signature but leave the body empty (or return a "Not Implemented" placeholder).
  5. You can use tests to ensure the overall feature is working as expected. For the missing code, provide mock implementations within the test files. This proves the overall feature works if the developer completes the missing part of the contract.
  6. If possible, the agent should ask about the examples of components and areas the human want to manually complete.

For example, you can apply the 80/20 rule: you write most of the code; reserve the 20% that demands human judgment for HUMANTODO. Examples of what to complete vs. leave:

  • Complete: boilerplate, imports, standard APIs, types, basic CRUD.
  • Leave for developer: business rules, complex state, security decisions, non-trivial data transforms.
  • Prefer logic over plumbing, e.g. write the DB connection, leave the “what to persist” logic.
  • Prefer state over UI, e.g. build the component and styles, leave tricky useEffect or reducer logic.
  • Prefer security intent over syntax, e.g. write the middleware, leave the concrete permission checks.
  • Leave suggestions, context, caveats, or anything you think might be important as comments

Agentic Framework

HUMANTODO can act as agentic primitives within a wider system:

import { ToolLoopAgent } from "ai";
const humantodoAgent = new ToolLoopAgent({
model: "anthropic/claude-sonnet-4.6",
instructions: `
You are a senior software engineer pairing with a human developer.
Write production-quality code, but leave judgment-heavy or product-specific sections as
inline "// HUMANTODO:" comments.
Rules:
- Write the majority of the code (scaffolding, simple logic, plumbing, etc)
- Leave any important code for the human to complete
- Return:
1. One ```ts``` block with the code
2. For each HUMANTODO comment, explain what the expected outcomes should be
`,
});
const result = await humantodoAgent.generate({
prompt: "Build a React auth hook with login, logout, and session refresh.",
});
console.log(result.text);

FAQ

The agent can mock the test cases, and if the human does their part correctly, the system will work. This creates a contract-based development flow where the agent defines the interface and the human provides the implementation.

Tweet/Bluesky and share your thoughts.

Footnotes

  1. https://www.reddit.com/r/AskProgramming/comments/1jcwvwl/anthropics_ceo_says_that_in_3_to_6_months_ai_will/

  2. https://www.itpro.com/technology/artificial-intelligence/sundar-pichai-says-more-than-25-percent-of-googles-code-is-now-generated-by-ai-and-its-a-big-hint-at-the-future-of-software-development

  3. https://www.cnbc.com/2025/04/29/satya-nadella-says-as-much-as-30percent-of-microsoft-code-is-written-by-ai.html

  4. https://www.techspot.com/news/107411-microsoft-cto-predicts-ai-generate-95-percent-code.html

  5. https://techcrunch.com/2026/02/12/spotify-says-its-best-developers-havent-written-a-line-of-code-since-december-thanks-to-ai/

  6. https://arstechnica.com/ai/2026/03/after-outages-amazon-to-make-senior-engineers-sign-off-on-ai-assisted-changes/

  7. https://mrshu.github.io/github-statuses/

  8. https://news.ycombinator.com/item?id=47229839

  9. https://nolanlawson.com/2026/02/07/we-mourn-our-craft/

  10. https://www.jernesto.com/articles/thinking_hard

  11. https://youtu.be/pzkwn3hu1Cc

  12. https://addyosmani.com/blog/next-two-years/

  13. https://leodemoura.github.io/blog/2026/02/28/when-ai-writes-the-worlds-software.html

  14. https://apenwarr.ca/log/20260316

  15. https://x.com/naval/status/2028314493206585471

  16. https://antirez.com/news/157

  17. https://simonwillison.net/guides/agentic-engineering-patterns/

  18. https://blog.katanaquant.com/p/your-llm-doesnt-write-correct-code

  19. https://boristane.com/blog/how-i-use-claude-code/

  20. https://acko.net/blog/the-l-in-llm-stands-for-lying/

  21. https://x.com/mntruell/status/2026736314272591924

  22. https://www.antifound.com/posts/codegen-is-not-productivity/

  23. https://youtu.be/5DP0az1q_8M?t=458

  24. https://www.marginalia.nu/log/a_132_ai_bores/

  25. https://www.rockoder.com/beyondthecode/cognitive-debt-when-velocity-exceeds-comprehension/

  26. https://www.media.mit.edu/publications/your-brain-on-chatgpt/

  27. https://addyosmani.com/blog/comprehension-debt/

  28. https://www.ivanturkovic.com/2026/02/25/ai-made-writing-code-easier-engineering-harder/

  29. https://news.ycombinator.com/item?id=36380711

  30. https://neilmadden.blog/2024/12/03/the-square-roots-of-all-evil/

  31. https://terriblesoftware.org/2026/03/03/nobody-gets-promoted-for-simplicity/

  32. https://youtu.be/ZJEnQOsMtsU

  33. https://x.com/karpathy/status/1325154823856033793

  34. https://jamon.dev/night-shift

  35. https://simonwillison.net/guides/agentic-engineering-patterns/prompts/

email: hello at domain