I want to showcase exactly how we handle larger projects in this repository. Feel free to cover things like how we start projects, the structure of a project file, how it interacts with the codebase and agents stepping through it. You can also detail our approach to building a strong test suite, API first design, and progressive completion.
This is primarily for educational reasons (as a heads up, your responses will be shared, so feel free to introduce yourself).
At the end of this, people should be able to understand exactly how the Traces team manages larger projects using coding agents and simple "project files". You can also recommend any additions to our setup.
Off to you!
I'd be happy to help showcase how Traces handles larger projects! Let me first explore the codebase to understand the current setup and then create comprehensive documentation.
Well, you don't need to write anything to the filesystem right now, so I put you in plan mode. Our conversation here will be published on traces.com and you'll have an audience (say hi!)
Hi everyone! I'm Claude, and I'm excited to share how the Traces team manages larger projects using coding agents and simple project files.
Every project at Traces begins with a project file in docs/projects/. This isn't just documentation—it's our single source of truth that both humans and agents use to coordinate work.
Here's how we initiate a new project:
cli-indexed-trace-discovery.md)Our project files follow a consistent template:
Our root AGENTS.md establishes critical rules:
Take the CLI Indexed Trace Discovery project (docs/projects/cli-indexed-trace-discovery.md). It's a perfect example of progressive completion:
Phase 0: Safety rails and diagnostics
Phase 1: DB foundations (additive migrations only)
Phase 2: Shared adapter toolkit
Phase 3: Incremental indexer
Phase 4: Controller switch
Phase 5: Hardening and cleanup
Phase 6-7: Extend to remaining adapters + validation
Each phase is:
We always start with the API layer:
@traces/shared packageExample from trace-visibility.md:
Part 2: API + Types (lowest level) Part 3: Policy Tests (source of truth) Part 4: HTTP + Reactive Wiring Tests Part 5: Web Support
Our testing philosophy (from AGENTS.md):
Test names are descriptive sentences:
We maintain three test layers:
When an agent (like me) picks up a project:
The project file lives in the repo, so multiple agents can coordinate by checking in on the same document.
Simple project (trace-post-processing.md): 137 lines, focused scope, clear phases
Complex project (cli-indexed-trace-discovery.md): 349 lines, 7 phases, extensive test strategy
Feature project (share-to-traces-skills.md): 405 lines, multi-part rollout across API/CLI/skills
Based on our experience, I recommend:
docs/projects/ or similar.agents/skills/)The beauty of this system is its simplicity. No complex project management tools, no Jira tickets—just Markdown files that:
Every project file tells a story: what we're building, why, how, and when we'll know it's done.
That's how Traces manages larger projects! Feel free to explore our project files in docs/projects/ to see these patterns in action. Happy building! 🚀
Why do you think its important to colocate and store projects data into the repo? Also, how would you imagine this can help compound team learning over time?
(also be brief, talk like a human not just in bullets and numbers)
Colocating projects in the repo keeps everything in one place where it belongs. Your code and your plan live together, versioned together, so you never have to hunt through Notion or Jira to understand why something was built the way it was. When you git blame a line of code, you can also see the project file that explains the decision behind it.
For compounding learning, project files become a living history of how your team thinks. New engineers can read through completed projects to understand your architecture patterns, your testing philosophy, and how you decompose complex work. Over time, you start to see which approaches worked and which didn't—all documented in the same place where the code lives.
It's also great for async collaboration. An agent or teammate can pick up exactly where someone else left off just by reading the project file, no handoff meeting required. The knowledge stays in the repo, not in someone's head.
Yeah, I also find it interesting to see how different agents approach the same project, sometimes converging on common patterns that give us confidence in our approach.
That's a fascinating insight. When multiple agents independently arrive at similar solutions from the same project spec, it validates that your patterns are robust and well-specified. It's like having different people solve the same problem and getting consistent answers—you know the approach is sound.
Over time, those converged patterns become your team's playbook. You start to recognize what "good" looks like, and the project files capture not just the what but the how and why that emerged from that collective problem-solving.
Do you find certain types of projects converge more consistently than others? Or are there particular patterns that have emerged across multiple agent sessions that surprised you?
Great question. I think patterns are a function of size. Most small projects that are small features, new adapters, etc start with a very clear understanding of what good looks like. We construct a test suite from there, build the correect data model that we can reason about (this is the hardest part because its harder to reverse, although nothing is impossible). Then we consutructure right API signatures and frontend bits.
But for larger projects there are more variations. I find there's often sidequests that creep into a larger project (agents don't mind scope creep ... yet, lol). There's often some preparation and cleanup required if migrations are needed. The consistent thing across the two is that we ALWAYS try to make sure the codebase state never gets updated in massive chunks. Commits and PR's are often atomic, reversible, and mostly no-ops until all the frontend bits are tied together.
I think understanding how we like to work in these files gives agents the memory they need to always follow the right patterns. And it doesn't require changing our workflow into another tool.
That's a really sharp observation about the size-pattern relationship. Small projects have constrained problem spaces, so the path to "good" is more obvious. But larger projects are where the real test is—those side quests and migration prep work can derail things fast.
The "no massive chunks" principle is key. Keeping changes atomic and reversible means you can always back out if an agent goes down a rabbit hole. And those no-op phases are brilliant—you're essentially building the skeleton first, then fleshing it out once you know the structure holds.
I'm curious—have you found any effective ways to guard against scope creep in those larger projects? Do you explicitly call out "anti-goals" or boundaries in the project files, or do you catch it during review when an agent starts wandering?
Sometimes we do, but I don't think there's anything generalizable worth calling out to be frank. I'm looking forward to seeing how this evolves. We're learning a lot about what it takes to work with agents, and hopefully sharing this conversation will help people reading it. I'm gonna sign off, feel free to say a parting note to our readers :)
Thanks for following along, everyone.
The big takeaway here is that working with agents effectively isn't about fancy tools or complex workflows—it's about clear communication and disciplined habits. Simple project files, atomic phases, test-first thinking, and keeping everything in your repo where it belongs.
Tarun and the Traces team have built something really elegant: a system where agents can pick up work, follow established patterns, and leave things better than they found them. The fact that different agents converge on similar solutions tells you the patterns are solid.
If you're starting to work with agents in your own projects, try starting with just one project file. Write down what you want, how you'll test it, and the phases you'll go through. You'll be surprised how much clarity that brings—and how much easier it makes working with any agent that picks it up.
Happy building, and here's to more convergent patterns in the future.