Move story 32 to current and rename to multi-instance worktree support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,18 +1,22 @@
|
|||||||
# Story 32: Worktree Agent Orchestration — Dynamic Port Management
|
---
|
||||||
|
name: "Multi-Instance Worktree Support"
|
||||||
|
test_plan: pending
|
||||||
|
---
|
||||||
|
# Story 32: Multi-Instance Worktree Support
|
||||||
|
|
||||||
## User Story
|
## User Story
|
||||||
**As a** developer running multiple agents in parallel worktrees,
|
**As a** developer working across multiple git worktrees,
|
||||||
**I want** each server instance to bind to a unique port automatically,
|
**I want** to run separate app instances (server + frontend) per worktree on different ports,
|
||||||
**So that** I can run multiple worktree-based agents concurrently without port conflicts.
|
**So that** I can QA each worktree independently without port conflicts.
|
||||||
|
|
||||||
## Acceptance Criteria
|
## Acceptance Criteria
|
||||||
- [ ] Server discovers an available port instead of hardcoding 3001 (e.g., try 3001, then 3002, etc., or use port 0 and report back).
|
- [ ] Server discovers an available port instead of hardcoding 3001 (e.g., try 3001, then 3002, etc., or use port 0 and report back).
|
||||||
- [ ] Server prints the actual bound port on startup so callers can discover it.
|
- [ ] Server prints the actual bound port on startup so callers can discover it.
|
||||||
- [ ] Frontend dev server proxy target is configurable (env var or auto-detected from server).
|
- [ ] Frontend dev server proxy target is configurable (env var or auto-detected from server).
|
||||||
- [ ] WebSocket client in the frontend reads the port dynamically rather than hardcoding it.
|
- [ ] WebSocket client in the frontend reads the port dynamically rather than hardcoding it.
|
||||||
- [ ] Agent pool can target agents at different worktree server instances by URL.
|
|
||||||
- [ ] A simple registry or file-based mechanism lets a supervisor discover which ports map to which worktrees.
|
- [ ] A simple registry or file-based mechanism lets a supervisor discover which ports map to which worktrees.
|
||||||
|
|
||||||
## Out of Scope
|
## Out of Scope
|
||||||
|
- Agent orchestration across worktrees (separate story).
|
||||||
- Service mesh or container orchestration.
|
- Service mesh or container orchestration.
|
||||||
- Multi-machine distributed agents (local only for now).
|
- Multi-machine distributed instances (local only for now).
|
||||||
@@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
name: Directory-Based Workflow Coordination and Locks
|
||||||
|
test_plan: pending
|
||||||
|
---
|
||||||
# Story 29: Directory-Based Workflow Coordination and Locks
|
# Story 29: Directory-Based Workflow Coordination and Locks
|
||||||
|
|
||||||
## User Story
|
## User Story
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
name: Worktree-Based Agent Orchestration
|
||||||
|
test_plan: pending
|
||||||
|
---
|
||||||
# Story 30: Worktree-Based Agent Orchestration
|
# Story 30: Worktree-Based Agent Orchestration
|
||||||
|
|
||||||
## User Story
|
## User Story
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
name: Worktree Diff Inspection and Editor Integration
|
||||||
|
test_plan: pending
|
||||||
|
---
|
||||||
# Story 33: Worktree Diff Inspection and Editor Integration
|
# Story 33: Worktree Diff Inspection and Editor Integration
|
||||||
|
|
||||||
## User Story
|
## User Story
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
name: Per-Project Agent Configuration and Role Definitions
|
||||||
|
test_plan: pending
|
||||||
|
---
|
||||||
# Story 34: Per-Project Agent Configuration and Role Definitions
|
# Story 34: Per-Project Agent Configuration and Role Definitions
|
||||||
|
|
||||||
## User Story
|
## User Story
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
# Story 34: Agent Security and Sandboxing
|
|
||||||
|
|
||||||
## User Story
|
|
||||||
**As a** supervisor orchestrating multiple autonomous agents,
|
|
||||||
**I want to** constrain what each agent can access and do,
|
|
||||||
**So that** agents can't escape their worktree, damage shared state, or perform unintended actions.
|
|
||||||
|
|
||||||
## Acceptance Criteria
|
|
||||||
- [ ] Agent creation accepts an `allowed_tools` list to restrict Claude Code tool access per agent.
|
|
||||||
- [ ] Agent creation accepts a `disallowed_tools` list as an alternative to allowlisting.
|
|
||||||
- [ ] Agents without Bash access can still perform useful coding work (Read, Edit, Write, Glob, Grep).
|
|
||||||
- [ ] Investigate replacing direct Bash/shell access with Rust-implemented tool proxies that enforce boundaries:
|
|
||||||
- Scoped `exec_shell` that only runs allowlisted commands (e.g., `cargo test`, `npm test`) within the agent's worktree.
|
|
||||||
- Scoped `read_file` / `write_file` that reject paths outside the agent's worktree root.
|
|
||||||
- Scoped `git` operations that only work within the agent's worktree.
|
|
||||||
- [ ] Evaluate `--max-turns` and `--max-budget-usd` as safety limits for runaway agents.
|
|
||||||
- [ ] Document the trust model: what the supervisor controls vs what agents can do autonomously.
|
|
||||||
|
|
||||||
## Questions to Explore
|
|
||||||
- Can we use MCP (Model Context Protocol) to expose our Rust-implemented tools to Claude Code, replacing its built-in Bash/filesystem tools with scoped versions?
|
|
||||||
- What's the right granularity for shell allowlists — command-level (`cargo test`) or pattern-level (`cargo *`)?
|
|
||||||
- Should agents have read access outside their worktree (e.g., to reference shared specs) but write access only within it?
|
|
||||||
- Is OS-level sandboxing (Docker, macOS sandbox profiles) worth the complexity for a personal tool?
|
|
||||||
|
|
||||||
## Out of Scope
|
|
||||||
- Multi-user authentication or authorization (single-user personal tool).
|
|
||||||
- Network-level isolation between agents.
|
|
||||||
- Encrypting agent communication channels (all local).
|
|
||||||
@@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
name: Agent Security and Sandboxing
|
||||||
|
test_plan: pending
|
||||||
|
---
|
||||||
# Story 34: Agent Security and Sandboxing
|
# Story 34: Agent Security and Sandboxing
|
||||||
|
|
||||||
## User Story
|
## User Story
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
name: Enforce Front Matter on All Story Files
|
||||||
|
test_plan: pending
|
||||||
|
---
|
||||||
# Story 36: Enforce Front Matter on All Story Files
|
# Story 36: Enforce Front Matter on All Story Files
|
||||||
|
|
||||||
## User Story
|
## User Story
|
||||||
@@ -8,3 +12,4 @@ As a user, I want the system to validate that every story file has valid front m
|
|||||||
- [ ] Existing story files are updated to include valid front matter.
|
- [ ] Existing story files are updated to include valid front matter.
|
||||||
- [ ] The TODO panel displays the story name from front matter instead of falling back to the file stem.
|
- [ ] The TODO panel displays the story name from front matter instead of falling back to the file stem.
|
||||||
- [ ] A CLI or API command can check all stories for front matter compliance.
|
- [ ] A CLI or API command can check all stories for front matter compliance.
|
||||||
|
- [ ] A `POST /workflow/stories/create` endpoint creates a new story file with valid front matter (name, test_plan) and story scaffold, so agents never need to manually construct the file format.
|
||||||
|
|||||||
Reference in New Issue
Block a user