Firfi
Firfi on Hacker News
Posted by
Firfi on Tuesday October 13, 2026 @11:19AM
from the show-hn dept.
https://hapsland.dearlordylord.com/
Agents ignore AGENTS.md mid-session.Then you tell them: hey, this is written in AGENTS.md.- "You're absolutely right!" (proceeds with fixing)But not anymore! This is a tool that would check the code immediately with a classifier (Jev etc.) and give the agent advice in the same turn.It catches some mistakes that are difficult to put into lint rules and excels at the cases when semantic...
Posted by
Firfi on Friday October 09, 2026 @11:21AM
from the github.com dept.
I was tired of agents ignoring AGENTS.md mid-session, then introducing invalid states (representable) into interfaces and building upon them, until finally being caught only by reviewer agents (only if!) or by manual reviews.
Agents are much more cooperative when their hand is slapped right after a wrong assumption. That assumption doesn't poison the context no more after that. So, Hapsland was born. Behold.
TLDR: edit tools hook + semantic enhancement + decision api; full control over "what goes to Jev" and "what is saved to the disk"
Well, in some sense, yes. There's a seed, of course! It's not always 4 unless it IS : )
I needed to roll some "2d10 + 3"-like expressions in TypeScript, but found that there was no TypeScript dice library for some reason. There you go, then. Rolls both at compile time and at runtime.
TLDR
```ts
const r = evaluate("d20", initializedState); // r knows it rolled "12" on type-level
const v = valueOf(r); // value of v is 12, type is literal 12
```
The code is controlled slop; tokens were burnt with mindfulness.
Posted by
Firfi on Wednesday August 26, 2026 @11:12AM
from the github.com dept.
A very small writeup on branded types [in Typescript, but the approach is applicable to many other languages] in application to Connascence of Execution
Posted by
Firfi on Tuesday August 25, 2026 @12:10PM
from the dearlordylord.com dept.
Now I'll be thinking of "L" in ETL as "Land" and not "Load".
Although the article doesn't propose that but uses a lot of "Land" terminology.
"Load" => "load where? or FROM where?" - ambiguous
"Land" => "land where?" - clear
That's a great idea, in fact. I'll try it out next time. Maybe even a mix, because I do sometimes want to be very specific about some expressions and experiment with wordplay
In my view, the edge cases like so (I think peasant railgun even mentioned in dm handbook) are more of a community problem than the game's. If it can be called a problem, of course - some tables enjoy those shenanigans, some don't.
What players and DMs are forgetting more often than not is the wording somewhere in the start of dm book: dm can overrule any rule. [to facilitate the game mood and direction that the table has agreed upon] [and a larger overarching problem is probably that there's often no such agreement before the game]
That's the plan! D&D combat can be a slog sometimes, and when it is, that kills a lot of fun for me as a story-first approach adept. I'd really just ask about that or that rule from a chatbot, or have a list of weighted actions presented to me at my turn. That's where I'm moving towards - a good spec is hopefully what should enable that direction. Hopefully...
Sorry for that, everyone. I did use the AI to help me with structure and English. I thought I'd proofread and edited that enough to be readable, but apparently it still smells. I'll update the wording soon.
Right. Quint is not used in runtime and is not supposed to be. It's a strong testing layer.
But there's much more to it. My bigger idea is that I would generate whatever implementation from it, hopefully, with an agentic loop - the MBT test is a natural feedback harness to leave coding overnight. So dnd-rust at some point, maybe? If someone develops a game, they would be able to generate a core logic in rust for bevy, in c# for unity, in (whatever it's used there) for godot. That's in an ideal world.
Posted by
Firfi on Tuesday April 07, 2026 @09:15AM
from the loskutoff.com dept.
Dungeons & Dragons rules are a spec spanning thousands of pages, not formalized, but thoroughly tested by the community. Moving them to a formal specification language (Quint) was an obvious next step. It worked and proved to also be a great LLM self-checker.
Thank you (twice!) for reading it. The idea wrapped in a scandalous topic indeed, but the PR process ambiguity was also what was the last straw for me to write it.
That's one of my biggest frustrations - I wasted a lot of time on reprompting. I was making myself stick to 100% LLM approach for a while, in order to learn.
I can't say for everyone, but for me it's hit-and-miss: if LLM starts with "Oh, sorry, you're right" that's a STRONG signal I have to take over right now or rethink the approach, or I get into the doom spiral of reprompting and waste half a day on something I could've done myself by that point, with only difference that after half a day with a coding agent I discovered no important domain or technical knowledge.
So, "how much" to me depends so very much on seemingly random factors, including the time of the day when Antropic decides to serve their quantised version instead of a normal one. On non-random too, like how difficult the domain area is, how well you described it in the prompt, and how well you crafted your system queries. And I hate it very much! At this point, I'm trigger-happy to take over the control and write the stuff that LLM can't in the "controlling package" and tell it to use it as an example / safety check.
It seems to me we have to find out how to figure out "what matters" to have the benefits that 10x vibe coder bros promise. I think we still have to review (despite my clickbait title), it's just different things that we are looking for in slop, and different type/amount of mental strain required. For more important libs, I guess we can "overshoot" a bit and put more time into vetting vibe code (and making it the guardrail code). While in the "next revolutionary React Todo App" the balance could be much farther towards vibe...
I actually do recommend reviewing manually - it's just very convenient to see when a person wrote something (then much more scrutiny can be applied) vs. when the work was outsourced to AI. I feel like there is another application though, but didn't mention it for it's not that clear to me yet: you can yet again estimate whether a new programmer can actually code or if they 10x YOLO their way slowly bringing codebase maintainability down.
Just feeling and experience, really. For me, if I spent time with the vibe code snippet and improved it until I can say "yes I would've written this" it's not slop anymore, even if it was written by Claude initially.
On the contrary, if I glanced over the code and could say "ok it doesn't look terrible, no obvious `rm -rf` and all", even if I changed a couple obvious mistakes, I still consider it vibe.
Posted by
Firfi on Monday June 09, 2025 @11:34AM
from the monadical.com dept.
After some vibe coding frustrations, ups and downs, I found that splitting the code explicitly into well-curated, domain-heavy guidance code and code marked “slop” can solve a lot of frustration and inefficiency.
We can be honest in our PR, “yes, this is slop,” while being technical and picky about code that actually matters.
The “guidance” code is not only great for preserving knowledge and aiding the discovery process, but it is very strong at creating a system of “checks and balances” for your AI slops to conform to, which greatly boosts vibe quality.
Helps me both technically (at least I feel so) with guiding claude code to do exactly what I want (or what we agreed to!) and psychologically because there's no detachment from the knowledge of the system anymore.
Hey folks, sometimes on PRs, I find that people aren't well-versed in the intricacies of code branching. So, I wrote a short article to educate fellow engineers and point to it sometimes so I don't have to explain things over and over.
Specifically, many people apparently don't know yet about exhaustiveness and the statement/expression dichotomy and how TS type system can help with it.
Posted by
Firfi on Thursday January 09, 2025 @10:21AM
from the monadical.com dept.
Posted by
Firfi on Friday September 20, 2024 @10:49AM
from the typescript-validators.com dept.
An app with typescript validators features tests. The test case is based on real use cases but is kept generic. Tests more advanced stuff like algebraic data types, template literals, nominal types, and recursive types. It's not a performance/size benchmark; there's a really nice performance benchmark app that exists already (I linked it there).
Posted by
Firfi on Tuesday April 16, 2024 @02:03PM
from the monadical.com dept.
Hey, sharing my colleague's @juanArias8 article on Solana Mobile here. He'll answer questions/comments in this thread if any popup.
We joked with my colleague that this post about real-time text-to-speech lipsync of his was either born too late because Sora is here to rule the industry or too early because his solution is tailored better than Sora for the specific task. Anyway, it's an ironic coincidence that he finished writing it before OpenAI released their video monster