backnotprop / backnotprop/plannotator

Oh My Pi planning mode blocks xd://plannotator_submit_plan

Open
#1,466 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.