githubnext/chopinPublic

Let's compose rich plans together

Limit the atomic Planner's own turns to read-only tools #270

Mergedlavaman131merged 1 commit intoatomic-planner-intercom-handofffromrefs/pull/270/head
  1. LA

    Stacked on #267.

    ## What changes

    The atomic Planner could edit files, run commands, and start subagents in its working directory, so nothing kept it from implementing the plan itself. Its own turns now offer only these tools, beside Chopin's document and repository tools:

    | Kind | Tools | | --- | --- | | Read the working directory | `read`, `find`, `search`, `ast_grep` | | Research | `web_search`, `code_search`, `fetch_content`, `get_search_content` | | Decisions | `ask_user_question` | | Delegate | `workflow`, `intercom` |

    `bash`, `edit`, `write`, `todo`, and `subagent` are withheld. Subagents stay out because Chopin has no UI to show them. With #267, a request to implement the plan always goes to another session over Intercom.

    - **Workflows keep their tools.** The limit is the Planner session's active tools for each turn (`FULL_PLANNER_TOOLS` in `adapter.ts`), not the `createAgentSession` `tools` option. Atomic uses that option as a ceiling for every child session (`core/child-session-options.js`), so setting it would also strip `write` and `bash` from workflow stages. - **Packages still load.** Operator and project packages still load their skills and workflows. Tools their extensions register aren't offered to the Planner's own turns unless they're on the list. - **Instructions and docs match.** The Planner's instructions now say its own tools only read, and `docs/hosted-agent.md` describes the limit under Full Atomic Planner.

    ## Verification

    - `bun test apps/server/src/harness apps/server/src/agent`: 310 pass, 0 fail. - `full.test.ts` (16 pass): - every tool offered to a Planner turn is on the list or a host tool; - `bash`, `edit`, `write`, `todo`, `subagent`, and operator tools are withheld; - the cwd check now reads a file by relative path instead of running `pwd`; - a workflow stage the Planner starts still offers `bash` and `write`, and its `ask_user_question` still reaches Decisions. - `bun run types`: all workspaces exit 0. `bun run ci`: passes.

    Assistant-model: Claude Opus 5.5 Assistant-workflow: inline Assistant-verification: bun test passed: apps/server/src/harness and apps/server/src/agent (310 pass), including full.test.ts (16 pass) Assistant-verification: bun run types passed: all workspaces Assistant-verification: bun run ci passed: dprint, oxlint, tokens, design contract, Impeccable User-preference: Limit the Chopin Planner to read-only tools plus intercom, workflows, and Chopin's tools, so implementation always goes through intercom User-preference: Keep the subagent tool out of the Chopin Planner; Chopin has no UI to represent subagents Co-authored-by: Alex Lavaee <lavaman131@github.com>

  2. lavaman131added-to-stacklast month on GitHub

  3. lavaman131referenced f5d6164c9bcalast month on GitHub

  4. lavaman131referenced dc226131a4ddlast month on GitHub

  5. lavaman131referenced 594ec938da80last month on GitHub

  6. lavaman131base-ref-force-pushedlast month on GitHub

  7. lavaman131head-ref-force-pushed 6531bf6e128elast month on GitHub

  8. lavaman131merged 8197bc981555last month on GitHub

  9. lavaman131closedlast month on GitHub

  10. lavaman131head-ref-deletedlast month on GitHub

  11. lavaman131referenced 17d4f44314balast month on GitHub

  12. lavaman131referenced 2cfc207f9ad1last month on GitHub

  13. lavaman131referenced b312afd5890blast month on GitHub

  14. lavaman131referenced cbc71f22f08alast month on GitHub

  15. lavaman131referenced a46b07252e62last month on GitHub