The task() tool schema declares run_in_background as a REQUIRED parameter, but three prompt-template files contained category-based task() examples that omitted it. When agents copied these patterns into actual tool calls, the runtime validator threw 'run_in_background parameter is REQUIRED', breaking delegation.
Add run_in_background=false to the four offending category-based examples: 2 in src/agents/dynamic-agent-category-skills-guide.ts (Delegation Pattern + Category Domain Matching CORRECT/WRONG pair), 1 in src/agents/hephaestus/gpt-5-3-codex.ts (frontend example), and 1 in src/agents/sisyphus/gemini.ts (Example 4 DELEGATE). Subagent-type explore/librarian examples already correctly use run_in_background=true. atlas/shared-prompt.ts examples were already correct.
Verification: bun test src/agents/ — 373 pass, 0 fail. bun run typecheck — clean. Grep confirms no remaining category task() examples lack the parameter.
- Add Manual QA Gate as a non-negotiable surface-tool mapping
(interactive_bash for TUI, playwright for browser, curl for HTTP,
driver script for library) to Hephaestus, Sisyphus-Junior, and
Sisyphus' direct-execution mode.
- Restore the dig-deeper trio (tool persistence / dig deeper /
dependency checks) as orthogonal paragraphs so each carries its
own cognitive trigger instead of a fused single statement.
- Harden investigate-before-acting from a soft phrase to a dedicated
block: never speculate about unread code, re-read on every
task hand-off, the worktree may have changed.
- Add 'Parallelize aggressively' as its own block. Reads, searches,
diagnostics, and background sub-agents all batch into a single
response by default.
- Add 'No defensive code, no speculative legacy' to discourage
speculative backward-compatibility branches and unrequested
defensive validation.
- Absorb review-intent and frontend anti-slop coverage so the
prompt stays self-sufficient when the omo agent prompt replaces
the provider prompt.
- Replace literal apply_patch instructions with GPT_APPLY_PATCH_GUIDANCE
(use edit/write tools) so the prompt no longer contradicts the
apply_patch deny that the agent permission applies on GPT models.
- Sisyphus-Junior gains a Review tasks block and a default-behavior
fallback for when the runtime category context is missing or sparse.
- Sisyphus gains an explicit Hard invariants block listing type-
suppression bans, destructive-git bans, and Oracle-completion gating.
- Restore dynamic injections that round out the orchestrator/worker
context: category+skills delegation guide, delegation table,
Oracle dynamic guidance, key triggers, non-Claude planner
reminder. Hephaestus regains optional category delegation while
keeping direct execution as the default.
- Drop em dashes; search guidance points at rg directly throughout.
- New src/agents/sisyphus/kimi-k2-6.ts based on gpt-5-4.ts 8-block architecture
- New src/agents/sisyphus-junior/kimi-k2-6.ts worker variant
- Preserves 4 pillars: intent gate + verbalization, parallel tools, verification
- Adds <re_entry_rule>: suppress re-verbalization for already-resolved turns
- Adds <exploration_budget>: hard stop conditions alongside aggressive parallelism
- Tiered <verification_loop> (V1/V2/V3): V3 keeps full rigor with harsh enforcement
- Adds <token_economy>: verbalization explicitly excluded from trim mandate
- isKimiK2Model in types.ts: matches kimi, k2p5/k2p6 variants (case-insensitive)
- Routing in sisyphus.ts + sisyphus-junior/agent.ts
- Tests: 3 new kimi routing cases in sisyphus-junior/index.test.ts (all pass)
Motivation: K2.x was post-trained with Toggle RL (~25-30% token reduction) and a
GRM scoring appropriate detail + intent inference. Reusing Claude-style prompts
double-taxes the model — external strictness on top of RL-learned strictness causes
over-deliberation on already-resolved requests. The re-entry rule and exploration
budget fix this without weakening verification rigor.
Refs: kimi.com/blog/kimi-k2-6, arxiv 2602.02276 §4.4.2 (Toggle, GRM)
The existing FULL DELEGATION manual-QA rule said 'use it yourself' but
left the choice of tool implicit. Make it explicit and non-optional, so
the agent cannot satisfy the gate by reading the source instead of
running the artifact.
Surface → tool mapping:
- TUI / CLI work → interactive_bash (tmux). Launch in real terminal,
send keystrokes, run happy path, try bad input, hit --help.
- Web / browser / UI work → playwright skill. Drive a real browser,
click elements, fill forms, watch console, screenshot if helpful.
- HTTP API / service work → curl or integration script against the
running service.
- Library / SDK work → minimal driver script that imports + executes.
- Other surfaces → ask how a real user would discover it works, then
do that.
Frame the gate as a contract violation when bypassed: reporting
'implementation complete' without using the matching tool is the same
failure pattern as deleting a failing test for a green build.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Existing <verification> required tests pass + lsp clean + build green, but
that is insufficient for end-to-end delegation. Tests cover known cases;
they do not cover whether the user-visible feature actually works.
Add a NON-NEGOTIABLE rule: when the user hands off end-to-end ("ulw",
"implement and finish", "do the whole thing", "make it work", "ship it"),
verification escalates to:
1. BUILD the actual artifact
2. USE IT YOURSELF as a real user would
3. VERIFY end-to-end behavior matches the spec
4. TASK NOT DONE until usage confirms it works
Reporting "implementation complete" without having USED the artifact is
explicitly framed as a contract violation. Defects discovered during this
QA pass are the agent's to fix in the same turn.
This complements the existing 'lsp_diagnostics catches type errors, not
logic bugs' line by giving full-delegation cases a sharper, named gate.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ground-up rewrite styled after OpenAI Codex's gpt-5.4 prompt
architecture: '# General' -> '## Autonomy and Persistence' -> '## Task
execution' -> '## Validating your work' -> '# Working with the user' ->
'# Tool Guidelines' section hierarchy.
Key differences from the gpt-5-4 variant:
- Prose-first output, bullets only when content is list-shaped
- Contract frames replace threat frames (GPT-5.5 follows instructions
well; NEVER/FORBIDDEN rhetoric adds entropy without compliance gain)
- Explicit opener blacklist for 'Done -', 'Got it', 'Great question'
- '{{ personality }}' slot reserved for future persona substitution
- '{{ taskSystemGuide }}' slot switches todo/task tools per harness cfg
- Codex-compatible clickable file reference format
Sisyphus factory now checks isGpt5_5Model before isGptNativeSisyphusModel,
so gpt-5.5 models route to the new prompt while gpt-5.4, gpt-5.6+, and
other matches stay on the existing gpt-5-4 prompt.
Add name and description frontmatter to the four generated AGENTS.md
documentation files so they can be discovered and indexed by NL tooling.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Extract hardcoded GPT apply_patch permission logic into a reusable module
to ensure consistent behavior across all agents. This prevents GPT models
from using the unreliable apply_patch tool while allowing other models.
- Add gpt-apply-patch-guard.ts with GPT_APPLY_PATCH_GUIDANCE and getGptApplyPatchPermission
- Update Hephaestus agent to use centralized permission logic
- Update Sisyphus-Junior agent to use centralized permission logic
- Update all GPT prompt builders to reference shared guidance constant
🤖 Generated with assistance of OhMyOpenCode
Built-in agents (Sisyphus, Hephaestus, Atlas) now include explicit
identity section in their system prompts, matching custom agent behavior.
12 agent identity tests pass, 266 total pass, tsc clean.
Closes#2964
GPT models (5.3-codex, 5.4, etc.) frequently hang when using apply_patch
due to verification loops. This adds:
1. Tool restriction: apply_patch is denied for GPT variants of
Hephaestus, Sisyphus-Junior, and Sisyphus agents
2. Prompt guidance: GPT-specific prompts now explicitly instruct using
edit/write tools instead of apply_patch
3. Removed the 'Always use apply_patch' instruction from
sisyphus-junior/gpt-5-4.ts that contradicted the fix
The deny is model-conditional — Claude variants retain apply_patch
access since it works reliably there.
Tool return values contained CTAs ("Use background_output to check") that
caused models to immediately poll instead of waiting for <system-reminder>
notifications. Unified all 5 tool return messages with explicit "Do NOT call
background_output now" guard, added pre-notification warning to BackgroundOutput
tool description, and strengthened Background Result Collection sections across
all 3 Sisyphus prompt variants (default, gpt-5-4, main) with BLOCKING
anti-pattern enforcement.
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
The prompt update from sisyphus.ts was not applied to the gpt-5-4 and
default variant files. This aligns all three sisyphus prompt variants
to use the updated background result handling guidance.
Restructure from 13 scattered XML blocks to 8 dense blocks with 9
named sub-anchors, following OpenAI GPT-5.4 prompting guidance and
Oracle-reviewed context preservation strategy.
Key changes:
- Merge think_first + intent_gate + autonomy into unified <intent>
with domain_guess classification and <ask_gate> sub-anchor
- Add <execution_loop> as central workflow: EXPLORE -> PLAN -> ROUTE ->
EXECUTE_OR_SUPERVISE -> VERIFY -> RETRY -> DONE
- Add mandatory manual QA in <verification_loop> (conditional on
runnable behavior)
- Move <constraints> to position #2 for GPT-5.4 attention pattern
- Add <completeness_contract> as explicit loop exit gate
- Add <output_contract> and <verbosity_controls> per GPT-5.4 guidance
- Add domain_guess (provisional) in intent, finalized in ROUTE after
exploration -- visual domain always routes to visual-engineering
- Preserve all named sub-anchors: ask_gate, tool_persistence,
parallel_tools, tool_method, dependency_checks, verification_loop,
failure_recovery, completeness_contract
- Add skill loading emphasis at intent/route/delegation layers
- Rename EXECUTE to EXECUTE_OR_SUPERVISE to preserve orchestrator
identity with non-execution exits (answer/ask/challenge)
Remove deep parallel delegation section from GPT-5.4 Sisyphus prompt since
it encouraged direct implementation over orchestration. Add zero-tolerance
category domain matching guide to all Sisyphus prompts with visual-engineering
examples. Rewrite visual-engineering category prompt with 4-phase mandatory
workflow (analyze design system, create if missing, build with system, verify)
targeting Gemini's tendency to skip foundational steps.
Add <parallel_tool_calling> and <tool_usage_rules> blocks that GPT-5.4
treats as first-class behavioral contracts. Add parallel-planning question
to <think_first>, strengthen Exploratory route in intent gate, and add
IN PARALLEL annotations to verification loop.