feat(hooks/atlas): add BOULDER_COMPLETE_PROMPT template and SessionState guard
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import { describe, it, expect } from "bun:test"
|
import { describe, it, expect } from "bun:test"
|
||||||
import {
|
import {
|
||||||
|
BOULDER_COMPLETE_PROMPT,
|
||||||
BOULDER_CONTINUATION_PROMPT,
|
BOULDER_CONTINUATION_PROMPT,
|
||||||
SINGLE_TASK_DIRECTIVE,
|
SINGLE_TASK_DIRECTIVE,
|
||||||
VERIFICATION_REMINDER,
|
VERIFICATION_REMINDER,
|
||||||
@@ -47,6 +48,14 @@ describe("VERIFICATION_REMINDER", () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe("BOULDER_COMPLETE_PROMPT", () => {
|
||||||
|
it("contains the required placeholders", () => {
|
||||||
|
expect(BOULDER_COMPLETE_PROMPT).toContain("{PLAN_NAME}")
|
||||||
|
expect(BOULDER_COMPLETE_PROMPT).toContain("{ELAPSED_HUMAN}")
|
||||||
|
expect(BOULDER_COMPLETE_PROMPT).toContain("{TASK_BREAKDOWN}")
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
describe("VERIFICATION_REMINDER_GEMINI", () => {
|
describe("VERIFICATION_REMINDER_GEMINI", () => {
|
||||||
it("contains node_modules exclusion pathspec in git diff command", () => {
|
it("contains node_modules exclusion pathspec in git diff command", () => {
|
||||||
expect(VERIFICATION_REMINDER_GEMINI).toContain(":!node_modules")
|
expect(VERIFICATION_REMINDER_GEMINI).toContain(":!node_modules")
|
||||||
|
|||||||
@@ -33,6 +33,17 @@ RULES:
|
|||||||
- Do not stop until all tasks are complete
|
- Do not stop until all tasks are complete
|
||||||
- If blocked, document the blocker and move to the next task`
|
- If blocked, document the blocker and move to the next task`
|
||||||
|
|
||||||
|
export const BOULDER_COMPLETE_PROMPT = `<system-reminder>
|
||||||
|
BOULDER COMPLETE: plan "{PLAN_NAME}" is fully checked.
|
||||||
|
|
||||||
|
Total elapsed: {ELAPSED_HUMAN}
|
||||||
|
|
||||||
|
Per-task breakdown:
|
||||||
|
{TASK_BREAKDOWN}
|
||||||
|
|
||||||
|
Per your <boulder_completion_response> instructions, print the final ORCHESTRATION COMPLETE summary in your next turn. This nudge fires at most once.
|
||||||
|
</system-reminder>`
|
||||||
|
|
||||||
export const VERIFICATION_REMINDER = `**THE SUBAGENT JUST CLAIMED THIS TASK IS DONE. THEY ARE PROBABLY LYING.**
|
export const VERIFICATION_REMINDER = `**THE SUBAGENT JUST CLAIMED THIS TASK IS DONE. THEY ARE PROBABLY LYING.**
|
||||||
|
|
||||||
Subagents say "done" when code has errors, tests pass trivially, logic is wrong,
|
Subagents say "done" when code has errors, tests pass trivially, logic is wrong,
|
||||||
|
|||||||
@@ -48,4 +48,5 @@ export interface SessionState {
|
|||||||
waitingForFinalWaveApproval?: boolean
|
waitingForFinalWaveApproval?: boolean
|
||||||
pendingFinalWaveTaskCount?: number
|
pendingFinalWaveTaskCount?: number
|
||||||
approvedFinalWaveTaskCount?: number
|
approvedFinalWaveTaskCount?: number
|
||||||
|
boulderCompletionNudgedAt?: Record<string, number>
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user