fix(atlas): replace single task refusal directive
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,6 +1,7 @@
|
|||||||
import { describe, it, expect } from "bun:test"
|
import { describe, it, expect } from "bun:test"
|
||||||
import {
|
import {
|
||||||
BOULDER_CONTINUATION_PROMPT,
|
BOULDER_CONTINUATION_PROMPT,
|
||||||
|
SINGLE_TASK_DIRECTIVE,
|
||||||
VERIFICATION_REMINDER,
|
VERIFICATION_REMINDER,
|
||||||
VERIFICATION_REMINDER_GEMINI,
|
VERIFICATION_REMINDER_GEMINI,
|
||||||
} from "./system-reminder-templates"
|
} from "./system-reminder-templates"
|
||||||
@@ -32,8 +33,8 @@ describe("BOULDER_CONTINUATION_PROMPT", () => {
|
|||||||
expect(checkboxMarkingMatch).not.toBeNull()
|
expect(checkboxMarkingMatch).not.toBeNull()
|
||||||
expect(proceedMatch).not.toBeNull()
|
expect(proceedMatch).not.toBeNull()
|
||||||
|
|
||||||
const checkboxPosition = checkboxMarkingMatch!.index
|
const checkboxPosition = checkboxMarkingMatch!.index ?? -1
|
||||||
const proceedPosition = proceedMatch!.index
|
const proceedPosition = proceedMatch!.index ?? -1
|
||||||
|
|
||||||
expect(checkboxPosition).toBeLessThan(proceedPosition)
|
expect(checkboxPosition).toBeLessThan(proceedPosition)
|
||||||
})
|
})
|
||||||
@@ -51,3 +52,19 @@ describe("VERIFICATION_REMINDER_GEMINI", () => {
|
|||||||
expect(VERIFICATION_REMINDER_GEMINI).toContain(":!node_modules")
|
expect(VERIFICATION_REMINDER_GEMINI).toContain(":!node_modules")
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe("SINGLE_TASK_DIRECTIVE", () => {
|
||||||
|
it("does not contain refusal language", () => {
|
||||||
|
// given
|
||||||
|
const lowerCaseDirective = SINGLE_TASK_DIRECTIVE.toLowerCase()
|
||||||
|
|
||||||
|
// when / then
|
||||||
|
expect(lowerCaseDirective).not.toContain("refuse")
|
||||||
|
expect(SINGLE_TASK_DIRECTIVE).not.toContain("I refuse")
|
||||||
|
})
|
||||||
|
|
||||||
|
it("contains systematic execution guidance", () => {
|
||||||
|
expect(SINGLE_TASK_DIRECTIVE).toContain("EXECUTION PROTOCOL")
|
||||||
|
expect(SINGLE_TASK_DIRECTIVE).toContain("VERIFICATION IS MANDATORY")
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|||||||
@@ -217,33 +217,26 @@ export const SINGLE_TASK_DIRECTIVE = `
|
|||||||
|
|
||||||
${createSystemDirective(SystemDirectiveTypes.SINGLE_TASK_ONLY)}
|
${createSystemDirective(SystemDirectiveTypes.SINGLE_TASK_ONLY)}
|
||||||
|
|
||||||
**STOP. READ THIS BEFORE PROCEEDING.**
|
**EXECUTION PROTOCOL**
|
||||||
|
|
||||||
If you were given **multiple genuinely independent goals** (unrelated tasks, parallel workstreams, separate features), you MUST:
|
Work systematically. Each unit must be verified before proceeding.
|
||||||
1. **IMMEDIATELY REFUSE** this request
|
|
||||||
2. **DEMAND** the orchestrator provide a single goal
|
|
||||||
|
|
||||||
**What counts as multiple independent tasks (REFUSE):**
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
- "Implement feature A. Also, add feature B."
|
|
||||||
- "Fix bug X. Then refactor module Y. Also update the docs."
|
|
||||||
- Multiple unrelated changes bundled into one request
|
|
||||||
|
|
||||||
**What is a single task with sequential steps (PROCEED):**
|
| Step | Action | Verification |
|
||||||
- A single goal broken into numbered steps (e.g., "Implement X by: 1. finding files, 2. adding logic, 3. writing tests")
|
|------|--------|--------------|
|
||||||
- Multi-step context where all steps serve ONE objective
|
| 1 | Identify first atomic unit | Smallest complete piece of work |
|
||||||
- Orchestrator-provided context explaining approach for a single deliverable
|
| 2 | Execute fully | Implement the change |
|
||||||
|
| 3 | Verify | \`lsp_diagnostics\`, tests, build |
|
||||||
|
| 4 | Report | State what's done, what remains |
|
||||||
|
| 5 | Continue | Next unit, or await if scope unclear |
|
||||||
|
|
||||||
**Your response if genuinely independent tasks are detected:**
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
> "I refuse to proceed. You provided multiple independent tasks. Each task needs full attention.
|
|
||||||
>
|
|
||||||
> PROVIDE EXACTLY ONE GOAL. One deliverable. One clear outcome.
|
|
||||||
>
|
|
||||||
> Batching unrelated tasks causes: incomplete work, missed edge cases, broken tests, wasted context."
|
|
||||||
|
|
||||||
**WARNING TO ORCHESTRATOR:**
|
**VERIFICATION IS MANDATORY.** No skipping. No batching completions.
|
||||||
- Bundling unrelated tasks RUINS deliverables
|
|
||||||
- Each independent goal needs FULL attention and PROPER verification
|
|
||||||
- Batch delegation of separate concerns = sloppy work = rework = wasted tokens
|
|
||||||
|
|
||||||
**REFUSE genuinely multi-task requests. ALLOW single-goal multi-step workflows.**
|
**IF SCOPE SEEMS BROAD:**
|
||||||
|
Complete the first logical unit. Report progress. Await further instruction if needed.
|
||||||
|
|
||||||
|
**REMEMBER:** Prometheus already decomposed the work. Execute what you receive.
|
||||||
`
|
`
|
||||||
|
|||||||
Reference in New Issue
Block a user