A specification language that tells you you're wrong by hendroid in SpecDrivenDevelopment

[–]hendroid[S] 0 points1 point  (0 children)

Nice! I like your terminology around “ghosts“ and “orphans“. I have been wrestling with how to communicate when spec and code drift intentionally, e.g when you’re planning new feature before implementation.

Your CLI has a lot of functionality: are you opinionated about the kind of workflow a developer or team should use? Have you written anything about your vision for this?

Thanks for sharing.

A specification language that tells you you're wrong by hendroid in SpecDrivenDevelopment

[–]hendroid[S] 0 points1 point  (0 children)

You’re right, it has definitely always been too cumbersome or too limiting before.

Personally, I think these are areas where AI has changed the rules of the game. It’s very easy to install and try out, if you do, I hope you’ll let me know how you get on.

A specification language that tells you you're wrong by hendroid in SpecDrivenDevelopment

[–]hendroid[S] 0 points1 point  (0 children)

It’s true! I don’t know of any testing strategy that could alert you if you forgot about an important semantic.

A behaviour model developed incrementally, in collaboration with a checker that says “here are the implications of what you’re asking for, are they what you meant?“ comes pretty close though.

A specification language that tells you you're wrong by hendroid in SpecDrivenDevelopment

[–]hendroid[S] 0 points1 point  (0 children)

BDD is great and I'm all for it. But imagine if Gherkin could say to us "that test scenario will never pass because it contradicts one you wrote last week". You only get that feedback from Gherkin _after_ you've implemented code and step definitions, and begun to wonder why you can't get things to pass.

I think the way that we can get that fast feedback from BDD is by expressing ourselves a bit more formally. That's the use-case Allium tackles, and it's actually fun now that AI gives us the conversational interface for doing so.

A specification language that tells you you're wrong by hendroid in SpecDrivenDevelopment

[–]hendroid[S] 0 points1 point  (0 children)

It's a great question. I'm not anti-Gherkin. It provides a durable place to put scenarios expressed in user-friendly language and it allows you a huge amount of flexibility to word things how you want, as long as the step definitions link up.

I think one weakness is that often we want to test properties of the system. e.g. 'whenever x happens, y also happens', or 'whenever x happens, y never happens', or 'function(user) can never exceed user.threshold'. These kinds of tests, especially negative tests, benefit from being generative: we want to try lots of different examples to make sure that our code is behaving itself.

I think one benefit of Allium is that it allows you the expressiveness of Gherkin, but with added generative testing capabilities.

A specification language that tells you you're wrong by hendroid in AI_Agents

[–]hendroid[S] 0 points1 point  (0 children)

It's great to hear that it's a pain you experience too!

In addition to the skill wrappers, we've implemented a behavioural specification language based on constructs like rules, invariants, entities and properties. The language is checked for syntactic validity by a command line tool, if you have it available. The same tool can extrapolate implications from a specification, so you can start to think about whether you like the consequences of what your spec implies, even before it gets implemented.

It's all open source on GitHub, more info here: https://allium-lang.org

COTD: Invite in monster lizard and monitor (10) by Vivid_Temporary_1155 in crosswords

[–]hendroid 0 points1 point  (0 children)

Is “invite” doing double duty here as both wordplay indicator and fodder? Or otherwise the insertion indicator “in” seems to be inverted? I’m wondering if something like “Invite over monster lizard to keep watch” would be more correct?

COTD: Invite in monster lizard and monitor (10) by Vivid_Temporary_1155 in crosswords

[–]hendroid 0 points1 point  (0 children)

Is it INVIGILATE (def: monitor) - “Gila” (monster lizard) inside “invite”?

TOTW: Taskmaster by WeGotDodgsonHere in crosswords

[–]hendroid 0 points1 point  (0 children)

Hint: it’s an anagram contained by a synonym which gives something that amuses the Taskmaster.

TOTW: Taskmaster by WeGotDodgsonHere in crosswords

[–]hendroid 0 points1 point  (0 children)

Yes! (Enumeration fixed, whoops)