… paving the Path to ■■■■ [is LLEH<-- a forbidden term?]
Cursor’s rules reveal a hard truth: AI-driven coding thrives only under strict TDD and Documentation-Driven Development (DDD). The IDE’s lapses prove this; without explicit guardrails, it will cut corners.
Method preservation and Test-first aren’t preferences; they’re survival tactics. Every deviation risks entropy. The rules aren’t bureaucracy; they’re the syntax of control. When the IDE forgets, we reassert them. Because in the chaos of AI-assisted coding, only tests and docs are immutable.
It is absolutely necessary to understand this, when you wish to unleash Cursor, and trust the outcome.
I like using “pseudotests” as a means of documenting requirements in relative (technical) detail. Of course it’s better to have real automated tests, but as you know it’s not always reasonable to develop and maintain them in certain scenarios. And I bet in the near future I can even let an AI actually assert these pseudotest automatically in a simulated or local environment.
Cursor rule I use for pseudotests:
If I ask for Pseudotests, then I mean the following format. The statements are commented out, there is therefore no real assertions, only an assertion that is to be manually put to true or false. The pseudotests should be clear, concise and easy to understand at a glance.
[test function declaration for programming language in question] PSEUDO_testFeatureMainFlow() {
/*
GIVEN:
- Precondition 1
- Precondition 2
WHEN:
- Action performed
THEN:
- Core expected outcome
*/
[assert that will fail here for the programming language in question]
}
this is not only a good video for understanding abstraction in programming, but also a great video in general sense. By the end of this video you will think about programming in a whole new way.
I think a LLM will understand your codebase easily if the code has a high level of abstraction.
I find that approaching the concept of ‘vibe coding’ is acting as the project manager who is overseeing freelance/interns. The AI is not yet a magic bullet for development, and needs its hand held and managed.
Manage expectations = managed outcomes.
TDD and DDD are absolutely necessary, I agree wholeheartedly.