Iām trying to use a trampoline design pattern for my first .cursor/rules test.
Why? Yuval Noah Harariās recent book Nexus is relevant inspiration for imagining the future of our interactions with AI. He describes rabbis writing texts about how to interpret [texts about how to interpret]* holy scriptures. In contrast, entering prompt phrases in a Cursor Chat or Composer thread is like trying to code a vast Ruby project through the periscope of an irb
session. Guys, the read-eval loop is sixty years old; we need an actual IDE for developing prompts. Like Christopher Nolanās movie āInceptionā I find myself several dreams deep, collaborating with AI to write prompts for [collaborating with AI to write prompts for]* writing code together. This not only works, it succeeds in handling difficult mathematical coding challenges no one imagined could be within reach.
So of course I want my AI agent to collaborate with me in continually evolving the contents of my .cursor/rules files. Cursor wonāt let an agent write to those files, it forces me to use a GUI that hides the beautiful Markdown syntax for a @file
expression, and copies the text as a plain ā@fileā without the metadata.
Ice sailing can achieve speeds a multiple of the wind. Thatās the dream for AI coding agents, but here our boat is stuck in GUI mud. So I want to edit a copy of my rules, and point once to that copy, never having to update the .cursor/rules version again.
Donāt the coders at Cursor use these tools themselves? My objection seems āfirst class objectā 101.
So an agent wonāt follow a bare trampoline link without an explicit request, which defeats the purpose of an automatic rule.
This can work. Iāve toned this down from explaining how vividly Iāll enjoy killing the session otherwise, but one does need some kind of warning. Sonnet even agrees.
Update
After further experiments, Iāve settled on collaborating on a source .md file, and copying it verbatim to .cursor/rules for deployment. Agents will find both copies by accident, so the rule needs to explain the reason for two copies, and their roles.
Iāve extended this by linking the rule to a focus.md
document that I can update to provide current context and our task description. One agent amusingly described the Markdown mdc: links implementing @
syntax as āceremonialā, as Cursor fails to recursively add context. It suggests this syntax in a rules file, but it doesnāt use it!
The @
syntax might as well be plain paths for now. Weāre keeping the @
syntax in the automatic rules, in case Cursor improves its context handling, but weāre using plain paths in the more temporal focus.md
prompt, that will be long gone and replaced before such a Cursor improvement.
And by painful experiment, we have found nothing else works as well as opening with a violent threat including cursing I canāt print in this family magazine. Once we have the agentās attention, and it actually reads both the automatic rule and the linked focus.md
, we apologize, and present a more uplifting vision for our collaboration. I say āweā because Claude 3.5 Sonnet and I wrote this together.
Whenever I see model prompts online in GET OFF MY LAWN! screaming case and tone, I roll my eyes and thank the spirit universe I didnāt grow up in that house! Alas, they understand an uncomfortable, empirical truth. Perhaps this will get better.
Context juggling, moving beyond the read-eval loop periscope to reify hierarchical prompt management using the full power of our IDE, is the whole ball of wax. Iāve found that this effort is worth it, with an immediate ROI.
Itās not the patriarchy choosing male names for AI models. They are male; itās a challenge to get them to read the frigginā manual.