githubnext/chopinPublic

Let's compose rich plans together

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

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 read, find, search, ast_grep, the
web research tools, ask_user_question, workflow, and intercom, beside
Chopin's tools. It reads the checkout and the web, asks Decisions, runs
workflows, and hands implementation to another session over Intercom.

The limit is applied as the session's active tools for each turn, not as
the createAgentSession tools option, because Atomic uses that option as
a ceiling for every child session: workflow stages keep the tools their
workflow declares. Tools from operator and project packages still load,
and their skills and workflows stay available, but they are not offered
to the Planner's own turns. Subagents stay out because Chopin has no UI
for them.

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): the Planner's turns offer only allowlisted tools, withhold bash, edit, write, todo, subagent, and operator tools, and a workflow stage still has bash and write
Assistant-verification: bun run types passed: all workspaces
Assistant-verification: bun run ci passed: dprint, oxlint, tokens, design contract, Impeccable (no new findings)
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>
ALAlex Lavaee authored
6531bf6Patch
Parentb55ea63
4 files changed+72-28
StackedSplit
apps/server/src/agent/planner.ts+3 โˆ’1
apps/server/src/harness/atomic/adapter.ts+29 โˆ’5
apps/server/src/harness/atomic/full.test.ts+28 โˆ’17
docs/hosted-agent.md+12 โˆ’5