Merge pull request #3498 from Disaster-Terminator/fix/task-id-prompt-surface

fix(prompts): prefer task_id in continuation guidance
This commit is contained in:
YeonGyu-Kim
2026-05-21 00:54:47 +09:00
committed by GitHub
6 changed files with 12 additions and 11 deletions
+2 -2
View File
@@ -133,7 +133,7 @@ Count remaining **top-level task** checkboxes. Ignore nested verification/eviden
[ ] Plan: Read plan file, confirmed current progress
\`\`\`
**If verification fails**: Resume the SAME session with the ACTUAL error output:
**If verification fails**: Resume the SAME task with the ACTUAL error output:
\`\`\`typescript
task(
task_id="ses_xyz789",
@@ -150,7 +150,7 @@ Every \`task()\` output includes a task_id. STORE IT.
When a task fails:
1. Diagnose what actually broke. Read the error, read the file, do not guess.
2. **Resume the SAME session** so the subagent keeps its full context:
2. **Resume the SAME task via \`task_id\`** so the subagent keeps its full context:
\`\`\`typescript
task(
task_id="ses_xyz789",
+1 -1
View File
@@ -408,7 +408,7 @@ After delegation, ALWAYS verify: works as expected? follows codebase pattern? MU
### Session Continuity
Every \`task()\` output includes a continuation ID (\`ses_...\`). **USE IT for follow-ups.**
Every \`task()\` output includes a task_id. **USE IT for follow-ups.**
- **Task failed/incomplete** - \`task(task_id="ses_...", prompt="Fix: {error}")\`
- **Follow-up on result** - \`task(task_id="ses_...", prompt="Also: {question}")\`
+5 -4
View File
@@ -507,7 +507,7 @@ session_id: ses_standalone_def
cleanupMessageStorage(sessionID)
})
test("should include session_id and checkbox instructions in reminder", async () => {
test("should include task_id and checkbox instructions in reminder", async () => {
// given - boulder state, Atlas caller
const sessionID = "session-resume-test"
setupMessageStorage(sessionID, "atlas")
@@ -536,10 +536,11 @@ session_id: ses_standalone_def
output
)
// then - should include verification instructions
// then - should include verification instructions and task_id guidance
expect(output.output).toContain("LYING")
expect(output.output).toContain("PHASE 1")
expect(output.output).toContain("PHASE 2")
expect(output.output).toContain("PHASE 1")
expect(output.output).toContain("PHASE 2")
expect(output.output).toContain("task_id")
cleanupMessageStorage(sessionID)
})
+1 -1
View File
@@ -104,7 +104,7 @@ Answer honestly:
ALL three must be YES. "Probably" = NO. "I think so" = NO. Investigate until CERTAIN.
- **All 3 YES** - Proceed: mark task complete, move to next.
- **Any NO** - Reject: resume session with \`session_id\`, fix the specific issue.
- **Any NO** - Reject: resume with \`task_id\`, fix the specific issue.
- **Unsure** - Reject: "unsure" = "no". Investigate until you have a definitive answer.
**DO NOT proceed to the next task until all 4 phases are complete and the gate passes.**`
@@ -49,8 +49,8 @@ This section is CRITICAL for reviewer agents (momus, oracle) to maintain continu
## 8. Delegated Agent Sessions
- List ALL background agent tasks spawned during this session
- For each: agent name, category, status, description, and **session_id**
- **RESUME, DON'T RESTART.** Each listed session retains full context. After compaction, use \`session_id\` to continue existing agent sessions instead of spawning new ones. This saves tokens, preserves learned context, and prevents duplicate work.
- For each: agent name, category, status, description, and **task_id**
- **RESUME, DON'T RESTART.** Each listed delegated task retains full context. After compaction, use \`task_id\` to continue existing delegated work instead of spawning new tasks. This saves tokens, preserves learned context, and prevents duplicate work.
This context is critical for maintaining continuity after compaction.
`
@@ -130,7 +130,7 @@ describe("createCompactionContextInjector", () => {
//#then
expect(prompt).toContain("Delegated Agent Sessions")
expect(prompt).toContain("RESUME, DON'T RESTART")
expect(prompt).toContain("session_id")
expect(prompt).toContain("task_id")
})
it("injects actual task history when backgroundManager and sessionID provided", async () => {