Repository navigation
Replies: 2 comments
|
Thanks for the write up! It'll save me attempting to pulse the experience into my memory. I didn't know you spent time manually coding it so I was a little more pleased with the experiment initially.
Yep. My dep ecosystem conclusion: competition and quality of deps should increase at least, and frivolous deps can be vibe-vendored. Quality go up and trust go down, but there's no dep singularity just yet. |
Most importantly, the encoder/decoder baseline. Once that was in place, the rest was easier for the bots to do, except the special rules around op/attestation tags in timestamp serialization - I refused to code that manually and I paid for it in terms of time it took. For me the most (and ultimately most valuable) time went into manually deserializing a couple of ots binary files from hex to get a better mental map of what input/output looked like. It could be valuable to formalize this skill ("here's a hex string, here's code, make sense of it, improve docs") to a bot. But that feels like a precision job that will take a lot of time to get right; something to slowly build out perhaps. |
Uh oh!
There was an error while loading. Please reload this page.
Project goal
To test the concept of
vibe-vendoring, which roughly means replacing third-party module dependencies with bespoke, self-maintained source code produced by coding LLMs, I had taken theopentimestampsnpm package as a prime candidate. See #2854. The goal was to, within a reasonable timeframe (a few days), get to a point where the limited functional scope integrated with SN produces similar or better results with 100% bespoke code, zero new dependencies, and has full wire-compatibility with the protocol-side of the ots system.Rationale for picking
opentimestampsrequest) that has been discontinued for over 6 years.The setup
I've used an isolated, bespoke
forgejoenvironment where I've imported the following source repos:stackernews/stacker.news- the target integrationopentimestamps/javascript-opentimestamps- the npm package to replaceopentimestamps/python-opentimestamps- as the ultimate authoritative implementationThe environment is wired into Claude Code for
claude-4.6-opus, Codex forgpt-5.4-codexand during the project I added OpenCode forglm-5, to be able to get a "third opinion". Message dispatch goes through issues/PRs/comments and a Kanban for assignments and prioritizing.The plan
The plan was to execute the following steps:
What went well
cross-fetch) and that too was later abandoned for built-infetch, to get better test integration.What didn't go so well
Remedies applied during the process
Chicken & egg
The biggest problem observed was that it is hard to direct bots on building a codebase that you're not intricately familiar with, because it will be very hard to spot problems. The benefit of (pre-vibe) dependencies was that often someone went through the pain of understanding the domain and then coding the thing, before publishing. So there was domain knowledge that, although being external to the end user implementation, could make judgement and guide the quality of the implementation. LLMs do not get this domain knowledge unless you feed it to them. Patterns can of course be recognized and replicated, but unless the underlying domain knowledge was perfectly documented (rarely happens) the process is lossy when doing pure vibe-vendoring.
To remedy this, it seems important for the viber to gain some domain knowledge and understand many of the details, so that bots can be corrected when bad context gets filled in or assumed. This in turn implies that the process where most of the initial code was hand-written and then iterated over by bots is maybe not only the fastest in terms of lines per second, perhaps the fastest overall when taking into account knowledge debt. When combined with continuous documentation improvement and deep unit tests that spec behavior, it will be easier to vibe-maintain the resulting code, also because there is more knowledge.
TL;DR
There seems to be no magic bullet to go from zero-to-llm-hero in this for dependencies that need to be production quality, at least not without a steep learning curve for those that are accountable and want to review. Without human domain knowledge, the risk of bugs grows exponentially. Ultimately, this means that human time investment remains a real factor.
All reactions