Given you want speed (single WIP, no worktree overhead) and grouped, owned, annotated review, Option 3 — manifest + scripted commit-splitter — is the sweet spot, with two rules enforced on the agents: each agent records its files in the manifest, and shared files get an explicit owner. You keep your current fast everyone-in-one-tree flow, and the end state is a clean stack of one-commit-per-agent with annotations, which is exactly "grouped in my staged/committed list per session." If you ever hit heavy file overlap between agents, graduate to Option 2 for true isolation.
Given you want speed (single WIP, no worktree overhead) and grouped, owned, annotated review, Option 3 — manifest + scripted commit-splitter — is the sweet spot, with two rules enforced on the agents: each agent records its files in the manifest, and shared files get an explicit owner. You keep your current fast everyone-in-one-tree flow, and the end state is a clean stack of one-commit-per-agent with annotations, which is exactly "grouped in my staged/committed list per session." If you ever hit heavy file overlap between agents, graduate to Option 2 for true isolation.