When the plan doesn't answer a product question, don't let your coding agent guess. A guess builds the wrong thing, and someone has to find it later. Raise a thread instead. Your product lead answers it in Grove, and your agent reads the answer.
Raise a thread for a product decision: what the product should do, or what the user should see. Decide technical questions yourself.
Raise a thread
grove thread raise P-003 --message "Can a customer move a visit to a different pro?"
Or ask your agent: "Ask the product lead in Grove whether a customer can move a visit to a different pro."
A thread can be about:
About | Add |
The whole project | Nothing more. |
One document |
|
One passage in a document |
|
For an initiative, use --initiative <slug> in place of the project ID.
The message can be any length, in Markdown. Grove keeps it exactly as written.
When it works, Grove prints Posted, the thread's ID, and a link.
Quote a passage
Quote the words as the document shows them, not the Markdown source. Write the scope is fixed, not the **scope** is fixed.
If the words appear exactly once, the thread is attached to that passage. Grove prints Anchored.
If the words aren't found, or appear more than once, the thread is still created, but not attached to the passage. Grove prints UNANCHORED and why. Don't raise it again.
If the words appear more than once, add --quote-before or --quote-after with the text just before or after them.
To test a raise without posting anything, add --dry-run.
Nobody is notified
Grove doesn't send a notification when you raise a thread. Your product lead sees it on their Queue and on the project's Threads page, as Unanswered. If it's urgent, send them the link Grove printed.
Who wrote it
When your coding agent writes the post, it adds --agent with its own name, such as --agent Claude. The post then shows as "Claude (on behalf of Sam)." Leave --agent off only when you typed the message yourself.
Read the answer
grove thread list P-003
grove thread show <thread ID>
grove thread listlists the project's threads: what each is about, whether it's open or settled, and how many posts it has.grove thread showprints one thread with every post.
The last post in a settled thread is the answer. If the answer changes the plan, your product lead updates the plan too. Run grove project sync P-003 to get it.
Reply or close
grove thread reply <thread ID> --message "Done: the move screen now shows only this pro's times."
grove thread settle <thread ID> --message "Decided: same pro only."
A reply reopens a closed thread.
Posts can't be edited or deleted. Don't reply just to say "thanks."
Close a thread only when the decision is made.
If something goes wrong
Rejected: the thread wasn't created. Running the same command again fails the same way. Fix it first.
UNKNOWN: Grove couldn't tell if the thread was created. Run
grove thread list P-003before you try again. Raising it twice creates two threads.
