I’m trying to set up a cloud agent workflow using linear and graphite (which can also be shared with desktop). The results so far are frustrating. I’m wondering if there are any resources available with tricks for doing this effectively.
Let me describe my early attempt. I have 4 or 5 repositories that are all related to each other, so to start working with cloud agents I wanted to create a monorepo (or maybe poly repo is the right term since it’s a mostly empty repository with git submodules). I figured the first task I’d tackle with linear would be getting the poly repo set up. This is probably a half day task if I did it by hand, but has already exceeded that (which is fine because I’m also figuring out this integration of linear, cursor, and graphite).
I started by asking desktop cursor to create a plan. This is a bit complicated because of nested Rust workspaces. I then asked cursor to create a linear project and push all the steps into issues and create dependencies between the issues. That worked well, although I’m not sure it’s the best way to do this since it ended up with 19 issues which are all very detail oriented. But ok, this is an experiment.
I also had cursor update the agent.md file to be aware of the git submodules and various other things.
I went to linear and bulk started them. Good idea? Apparently not. It did actually do a lot of work but the result was a bunch of github PRs. No graphite to be found anywhere. Note that I do have the ‘use graphite’ selection for reviews so I expected graphite to get used. After some failed attempts to have cursor rebase them and move them to graphite I deleted all the PRs and asked cursor to reset all the issues (it adds a comment saying to ignore stuff above this comment and resets some data on the issues).
I updated the agents.md file to be more explicit about using graphite and tried a single issue. It didn’t use graphite once again. Turns out graphite cli is not installed on the cloud agent (and maybe not even my graphite token, although graphite had a record of a token generated by cursor for the onboarding vm). I’m frustrated that this isn’t better explained somewhere (or if it is that I can’t find it) and that the agents don’t mention the issue and just happily go on using gh.
Another problem is that I want dependent issues to be based on the graphite PR of the issue that they depend on unless that PR has already been merged (otherwise what’s the point of using graphite). I have instructions in the agents.md file for this but so far that has been ignored.
So at this point I’m confused about how graphite is even integrated with cursor. I’m seeing no evidence of it being anything but a cli that’s available if you install it.
But I’m not done with figuring this out so we’ll see.
Anyway, I’d be curious if there are any resources on how to set up an effective work flow between linear, cursor, and graphite. What’s the secret sauce.
My first attempt was to use cursor plan mode on the desktop and then have it convert that to a linear project with issues. I like this approach in theory but not sure it works in practice. Maybe some day cursor plan mode will have a linear option where it’s plans are tailored for linear issues.
Other questions I have: where do work artifacts go? In my case some of the issues were to simply classify different dependencies in the project. In one case I instructed the agent to store the result as a comment, but that forced all the other issues to be informed about where that comment was. Other issues ended up storing the artifacts in the repository. That’s fine but will need a cleanup step and probably also needs to be communicated to downstream issues. This is the type of thing I don’t want to worry about. I anticipate I need to create an artifacts section in the agents.md, but I’m wondering if this is something that is standardized already.
What are the strategies about using linear as a memory? I could have created just a single issue for the refactor and started out by at cursor to come up with a plan and create issues for the next steps. Does this sort of iteration inside linear work (and work well)? Are there any write ups about how others have done this and how well it works?
Sorry about the long post (is it too late to add tldr?). Any thoughts are welcome, including (and especially) those telling me I’m doing it wrong.