[back to writing]

agents are all we need

AI • agents

Agents are the hottest programming language but you need to write your build your own. Sure you get the harnesses, the tools and mcps and prompts you can copy but given context rot and variations on abstractions you provide it, the output varies greatly.

Here is a list of agentic engineering practices I’m currently using, on trial that are lukewarm and links to professional developers who have interesting workflows to learn from. I’ll summarize some key take aways from their posts but its not necessarily compreshenvie but what I’ve yet to explore or find really useful I want to recall when I come back to read these posts. (yes I read my own posts, they’re mostly meant for recall)

~Note: This space is evolving so fast, its likely this stuff will be out of date in few weeks but I’ll keep revising it and adding the latest workflows. You can view the last updated as an indicator to evaluate recency.~

how I currently work with agents

  1. Using codex desktop app for most of my projects paired with the latest gpt 5.3-codex as its slightly more economical to gpt 5.4 (but given gpt 5.4 might be more token efficient this might be worth testing).
  2. Several users prefer using claude code for UI work but I’m leaning on doing things by personal taste and relying on interface design tools listed below.

AGENTS.md system prompt used across all projects

Idea is to continue to add more custom configuration code standards on top of the default code standards for generated by Ultracite for typescript projects.

Always use Context7 MCP when I need library/API documentation, code generation, setup or configuration steps without me having to explicitly ask.
After completing a task that involves tool use, provide a quick summary of the work you've done.
Prior to every commit, review the sub repository AGENTS.md file and update all instructions based on configuration and architecture changes as required.
Strive to document the code as much as possible, especially the “hard-to-read” code, or for special logic that requires explanation.

For every proposed plan, do you feel 100% confident and 0% ambiguous?

# Custom Code Standards
- Make all aria-labels start lowercase
- Use JSDoc-style (`/** */`) for all comments, all lowercase. For todos: `// TODO: description`

daily practices

  1. Changelog agent is invoked in a post hook. On every commit, use CHANGELOG.md using commitzen format to specify what changes were made and why where they made. Ask the user for why these changes were made if its not clear and add that to the changelog summary.

  2. In claude.md See @README for project overview and @package.json for available npm commands for this project.

  3. Have the agent generate my initial set of agents.md instructions per app or package in my monorepo. Using bun workspaces and justfile in place of pacakge scripts to manage the configurations. I’ve found them much simpler than using turborepo which seems rather popular. Essentially each repository that has its own testing, linting, formatting, migration and run commands has its own project plan.

  4. Create symlink for claude.md from agents.md so it can work with multiple agent harnesses. See Zed for how they share project settings for many rules files.

  5. Using plan mode. You need less of this in codex but claude is rather trigger happy. Discussing plans upfront in plan essentially stops it from jumping ahead without asking.

  6. Claude commands are meant to be triggered manually; if you want to call them on every run, say to check rules against your performance or styling rules engine you can say run tailwind-rules.md prior to each commit.

on feature development

  1. New thread per new context; each new feature, isolated bug, migration or deployment or even research task should be in isolated threads so call /clear as often as you can. If you feel there are some useful learnings you can compact or drop a summary in an md file you can always provide to the new thread.
  2. Instead of trying to iterate on when things to awry, try re-prompting from scratch for the complete feature again. In the event it took some uncertain path the first time around, tell it what you don’t want it to do explicitely if you aren’t clear on the solution but are clear on this current implementation isn’t it.
  3. Ask it to provide few options if you don’t know how to go about tackling a problem or if you want to learn other ways it can solve the same problem. It’s also a great way to learn which paths you could have taken.
  4. If you’re building a complex feature, post planning pre prompting, ask the llm what assumptions have been made and correct them prior to letting it rip.
  5. If the complexity is the reason it can’t sovle the problem, then ask it to ultrathink. Some interfaces provide a button to toggle this on/off but in chat you gotta do it manually or can add it to the claude.md file.
  6. Use multiple agents. Conductor lets you use Codex for code reviews and you can also utilize ampcode with built in GPT-5 as an oracle. Enough agentic fanatics

on interface design

  1. use React Plugin. It’s a slightly lazy way of copying the filepath and the component (and its associated parents) so the agent knows exactly which element you’re asking it to make a change. I’d love if we can right-click and autocomplete tailwind classes in addition to prompts. They’re succiet and less work but you still get the benefit of running the agent from within the interface. Fewer clicks do matter.
  2. playing with paper.design on refinding sketches to products to code and back
  3. playing with variant.ai on design explorations

what others are saying

  1. Armin Ronacher’s on What Actually Is Claude Code’s Plan Mode? Exploring doing planning without plan mode allows you to go YOLO mode which can definitely be liberating.

  2. Spiess’s How I Use Claude Code covers really nice patterns. “use Claude Code’s tools as an MCP” is very handy so you can effectively call sub-tasks (a built in claude code tool) in your own prompts that returns the results to the main thread.

  3. Addy talks on having your explain their reasoning briefly in comments when fixing a bug. ” This way, when the AI generates a fix, it will also leave a comment like “// Fixed: Changed X to Y to prevent Z (as per spec).” That’s super useful for later review.

  4. Pit one agent against the other.

  5. Self improving CLAUDE.md and AGENTS.md files by having the agents self analyze points of frustraction between your sessions. Prompt “Please search through my claude jsonl history files for this project, and analyse improvements to the current claude.md file. Note any times I get frustrated or any patterns of me asking the same thing between sessions”. Pull the screnshot and create your own

  6. Really like this breakdown from several workflows picked up by Solberg. Greptile keeps coming up and at this point adopting a pr-reviewer skill is a must. https://www.solberg.is/how-i-use-claude-code

how to learn new codebases quickly

I found these questions from Claude Code common workflows that I’ve written down here so I can copy pasta when exploring new repositories.

  1. Write up a list of questions to help create the cloudmd file.
  2. At a high level, what does this application do? Describe the list out the file directories and a high-level architecture the application is set up with.
  3. What are the main architectural patterns used? What are the code conventions used?
  4. What database are we using? How is it structured? Are there associated schema files? What are the commands for running tests, migrations, and seeding the data?
  5. How is authentication set up? What is the end-to-end flow, and how do we add the following environment to bypass the authentication when testing for changes.
  6. Insert sub-agent prompts TODO
  7. Help create a testing strategy. Break down the different submodules for tests. We need to run integration tests for both critical workflows using different services, sure any fixtures and mock services we need to stub for our tests. Write out the testing strategy for this change, what was tested, any edge cases covered, and what might still be pending.

mcp tools I frequenlty use

  1. context7 mcp when referencing a library or plugin it automaticaly fetches the latest docs.
  2. paper mcp as part of the desktop application to work wtih agents, the canvas and our code.

agent skillls

Since this is constantly evolving I have many custom skills I’ve vetted from https://skills.sh being stored in artivilal/agents-config diretory.

Noteworthy are git commit message to provide me with a commit message following the commitzen format with bullet point list of changes I can paste in my commit message.