Earlier quoted context omitted.
Exactly. The spec should go in a git comment, NOT vcs. Or, you keep the document in history for the duration of the PR and remove it post review or pre merge
Disagree completely. The spec is vital so that future changes continue to conform to it. Specs absolutely need to live in the VCS, because they continue to be needed to keep the code conformant. They essentially are a form of code now. And code goes in the VCS.
How version control will evolve for the agent boom
51–60 of 72 posts
Re: How version control will evolve for the agent boom
#52Earlier quoted context omitted.
Disagree completely. The spec is vital so that future changes continue to conform to it. Specs absolutely need to live in the VCS, because they continue to be needed to keep the code conformant. They essentially are a form of code now. And code goes in the VCS.
At scale, specs can only be vital to the degree to which their conformance testing is automated. Good specs should use a formal, runnable verification language. Otherwise you'll accumulate specs that are right when they ship, wrong in subtle ways 3 months in, and wrong in glaring ways 6 months in. AI doesn't change this dynamic, it amplifies it.
* Black-box testing: the agent writing the tests cannot see implementation and the agent writing implementation cannot see tests, they only agree on a spec and an interface (the minimum needed to write tests).
* Evaluate test coverage using code coverage, but when gaps are found communicate those gaps in terms of the specification.
Good specs should be grounded (complete and not ambiguous), they don't need to be formal. You should be able to re-run your agents when the spec changes on diffs to the spec, and if a change happens out of bad, you should have agents that go in and propose fixes to the spec. Since agents are doing deterministic codegen like a compiler would, this is all pretty straightforward.
You also need to consider public and internal specifications (the public specification being for reuse of the component), and you might test your integrating component with a test-double (built from the public specification alone) rather than the real component itself.
Re: How version control will evolve for the agent boom
#53> Our hypothesis is simple: session logs are now the most important artifact in software development, and should be stored alongside the code itself in the repository. I don’t think this scales. We recently have been doing “spec driven development” and we are committing the specs and prompts to our repo, alongside the generated code. At the beginning it seems fine: you wanna change something, you update the spec and…
https://github.com/williamcotton/algraf/tree/main/docs
There’s also some tests in place to make sure some things from the master spec are up to date, eg, error codes.
Re: How version control will evolve for the agent boom
#54Has anyone tried teaching the agents to use jj or gitbutler-cli to do their ideas of lightweight branches? I keep feeling like that would be a huge win for the multi-branch development I'm doing much more of with agents, but I haven't yet run that experiment.
I was interested in answering this question so I built a benchmark comparing git, jj and gitbutler in agentic context https://vcbench.dev/ Disclaimer - I am a co-founder of GitButler
Re: How version control will evolve for the agent boom
#55Re: How version control will evolve for the agent boom
#56Earlier quoted context omitted.
> Anyone else finds the LLMs version control discipline lacking? No? How do you define discipline? Claude code knows how to read and write commits. My team just granted it limited force push access a week ago. We’ve taught it to make more human-friendly commit messages. What’s missing?
I think a useful question here is “what is a good commit?”, specifically at the MR stage. I don’t care what commits look like on your local machine. I tend to like to treat commits at that stage as complete, atomic thoughts. “This commit is a refactor of this function name” “This commit defines all the data classes we’ll use” “This commit writes the new function and all its tests” “This commit injects the new code in…
Re: How version control will evolve for the agent boom
#57Earlier quoted context omitted.
At scale, specs can only be vital to the degree to which their conformance testing is automated. Good specs should use a formal, runnable verification language. Otherwise you'll accumulate specs that are right when they ship, wrong in subtle ways 3 months in, and wrong in glaring ways 6 months in. AI doesn't change this dynamic, it amplifies it.
But conformance testing is where agents really excel at if you set things up right: * Black-box testing: the agent writing the tests cannot see implementation and the agent writing implementation cannot see tests, they only agree on a spec and an interface (the minimum needed to write tests). * Evaluate test coverage using code coverage, but when gaps are found communicate those gaps in terms of the specification. Go…
IMHO, this is a mistake. I guess we play with it because there’s isn’t anything better nowadays. Writing and maintaining “specs” in plain english is painful.
Re: How version control will evolve for the agent boom
#58Earlier quoted context omitted.
I think a useful question here is “what is a good commit?”, specifically at the MR stage. I don’t care what commits look like on your local machine. I tend to like to treat commits at that stage as complete, atomic thoughts. “This commit is a refactor of this function name” “This commit defines all the data classes we’ll use” “This commit writes the new function and all its tests” “This commit injects the new code in…
I primarily care about the pull request title and description since we squash-merge and those values end up populating the squashed commit.
Re: How version control will evolve for the agent boom
#59Earlier quoted context omitted.
But conformance testing is where agents really excel at if you set things up right: * Black-box testing: the agent writing the tests cannot see implementation and the agent writing implementation cannot see tests, they only agree on a spec and an interface (the minimum needed to write tests). * Evaluate test coverage using code coverage, but when gaps are found communicate those gaps in terms of the specification. Go…
> Good specs should be grounded (complete and not ambiguous), they don't need to be formal IMHO, this is a mistake. I guess we play with it because there’s isn’t anything better nowadays. Writing and maintaining “specs” in plain english is painful.
Re: How version control will evolve for the agent boom
#60Earlier quoted context omitted.
> I think it will be second nature to ask "how did you arrive at the code". What about “Do you understand the code well enough to argue about it, its past, and possible evolution paths”?
I think that would be implied by "how did you arrive at the code". I think the conversation will revove around how did you "guide" things.
The workflow is mostly worthless, unless it can generalize and evolve into a process. And that is more worthy of a blog post or a presentation.