backnotprop / backnotprop/plannotator
Oh My Pi planning mode blocks xd://plannotator_submit_plan
- Dominant language
- TypeScript
- Stars
- 8.7k
- Forks
- 649
- Avg merge
- 11h 12m
- Merged PRs (30d)
- 109
Description
## Summary
In the Oh My Pi integration, Plannotator planning mode instructs the agent to submit a completed plan by writing JSON to `xd://plannotator_submit_plan`. The active planning-mode write guard rejects that device URI as if it were a filesystem path, so the plan cannot be submitted.
The OMP-side report is https://github.com/can1357/oh-my-pi/issues/10699. I am cross-reporting here because this breaks the Plannotator completion contract and may require coordination between the planning prompt/hook and OMP's device routing.
## Reproduction
1. Start a Plannotator planning session in Oh My Pi.
2. Create a valid Markdown plan inside the repository, such as `plans/vas-module-and-partner-portal.md`.
3. Invoke the documented submission device:
```json
{
"path": "xd://plannotator_submit_plan",
"content": "{\"filePath\":\"plans/vas-module-and-partner-portal.md\"}"
}
```
## Actual result
```text
Plannotator: during planning, writes are limited to markdown files (.md, .mdx) inside the working directory. Blocked: xd://plannotator_submit_plan
```
`xd://report_issue` is rejected by the same guard, indicating that internal device writes are being validated as ordinary filesystem writes before URI dispatch.
## Expected result
The submission reaches the Plannotator device and opens the plan review UI. Planning mode should continue restricting real filesystem writes to in-worktree Markdown while permitting its required submission device.
## Impact
The injected planning contract says a completed planning turn may end only by calling `plannotator_submit_plan`, but that operation is impossible. The agent is forced into repeated questions or must exit plan mode without review.
## Environment
- Oh My Pi installed executable: `omp/18.1.6`
- Plannotator: `0.27.11`
- Arch Linux x64
- Plan path was a valid `.md` file inside the working directory
- The active conversation/tool host may have originated before the OMP executable was replaced; its runtime version is not exposed to the agent
## Suggested integration checks
- Confirm whether Plannotator's OMP planning hook expects `xd://plannotator_submit_plan` to bypass the Markdown filesystem guard.
- Add an end-to-end OMP integration test that enters plan mode, writes an allowed Markdown plan, and successfully submits it.
- Ensure the plan-mode restriction distinguishes internal device URIs from filesystem destinations.
- Keep arbitrary filesystem writes and unapproved device operations blocked.
If this is wholly OMP-owned, the linked OMP issue can remain canonical and this issue can track the Plannotator-side integration expectation/documentation.
Contributor guide
Research direction
Start by tracing the active planning-mode write guard and the OMP planning hook for xd://plannotator_submit_plan; compare URI validation with internal-device dispatch. Reproduce with the documented JSON and an in-worktree Markdown plan, then add or run the proposed end-to-end integration test. Done means submission opens review while arbitrary filesystem writes and unapproved devices remain blocked.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- developer-experience, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100