I haven’t explicitly recreated a template for an academic venue, but I have recreated a custom template to match and existing PDF. It was pretty straightforward to recreate it as the language and “standard library” (if you could call it that?) is well designed and has excellent documentation.
95% of the layout? Trivial. The last 5%? Much harder. They’ve invested in their very specific latex template.
We probably could have done it but my coauthor is great with latex and figured converting the whole thing was probably easier than dealing with the political headache of making the organisers deal with a different format.
Do you maintain these projects or is this for greenfield development?
- Both, I have my own projects and client projects
Could you fix any bugs without Claude?
- Yes, I have decades of software development experience
Are these projects tested, who writes the tests. If it's Claude how do you know these tests actually test something sensible?
- For serious projects yes, I will define the test cases and have Claude build them out along with any additional cases it identifies. I use planning mode heavily before any code gets written.
Is anybody using these projects and what do users think of using these projects?
- Yes, these are real projects in production with real users :) They love them
Fair enough, also thinking about it some more. If you use that option the old 90% will usually be normalized to 100% so this might not even be helpful.
it's funny because you can buy old flagships on ebay and the battery craps out
but the replacement battery you buy is counterfeit like Lenovo Carbon for example
Fun fact: That long s accidentally lead to a new character being created.
In German, we've got words like "dass". Back in the day, every s that wasn't at the end of a word was written as long s, so "dass" would've been written like "daſs", which got turned into ß.
That's why until the recent orthographic reforms of 1996 and 2006 "dass" was written as "daß".
Aside: in some regions, "dass" would've been written like "dasz" / "daſz". That's why the letter is called Eszett (S-Z) even though it's capitalised as two consecutive "s".
To make the language easier to learn. Lots of languages go through orthographic reforms from time to time, English being one of the notable exceptions because there is no central authority that could impose rule changes in a way that would ensure that most language users eventually fall in line.
I entered school in Germany the very same year that the orthographic reform came into force, so I never learned the legacy spelling, but I certainly found it weird how much adult people at the time detested the rules that six-year-old me considered to be very reasonable (esp. the ss/ß reordering and the ban on fusing tripled consonants in compound words).
I know some conservative newspapers (Frankfurter Allgemeine Zeitung) kept using the old orthography for a while, but even they started using the new one in 2007, ten years after the reforms.
Honestly, it's mostly just some random LSP adapter I forked and fixed a few bugs on, and it's not even that comprehensive but it goes a long way and seems most essential. Then I have some notes in the long term context about how to use a combination of gh CLI and cargo docs to read documentation and dependency source code/examples.
A few things beyond your question, for anyone curious:
I've also poked around with a custom MCP server that attempts to teach the LLM how to use ast-grep, but that didn't really work as hoped. It helps sometimes but my next shot on that project will be to rely on GritQL. Smaller LLMs stumble over the YAML indentation. GritQL is more like a template language for AST aware code transformations.
Lastly, there are probably a lot of little things in my long term context that help get into a successful flow. I wouldn't be surprised if a key difference between getting good results and getting bad results with these agentic LLM tools is how people are reacting to failures. If a failure makes you immediately throw up your hands and give up, you're not doing it right. If instead you press the little '#' (in claude code) and enter some instructions to the long term context memory, you'll get results. It's about persistence and really learning to understand these things as tools.
Also interesting note on the docs, though, Claude does try to use cargo doc by itself sometimes.
I was actually wondering why GritQL did not have an MCP, this seems like a natural fit. Would be interested to know if this works for you.
I'm always a bit hesitant to add things to the long term context as it feels very finicky to not have it be ignored and having more seems to make it more likely to be ignored. Instead I usually just repeat myself.
Thank you for the answer, seems there is still lots of things to try.