Convert createBuiltinAgents to async function that fetches available models at plugin init time. Add case-insensitive matching helpers and integrate discovered skills from both builtin and user sources.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
- Add 'CORRECT: Background Exploration' example with run_in_background=true
- Update PARALLEL_EXECUTION examples with correct params (subagent_type, run_in_background, skills)
- Ensures agents fire explore/librarian in parallel as background tasks
- Rename agent name from 'atlas' to 'Atlas' (PascalCase like Sisyphus, Metis, Momus)
- Add migration for lowercase 'atlas' -> 'Atlas' for backward compatibility
- Keep hook name as 'atlas' (lowercase) to match other hook naming conventions
- Update all references in types, schema, hooks, commands, and tests
Sisyphus and Atlas prompts were missing delegation guide because
availableCategories and availableSkills were not being passed to
createSisyphusAgent() and createAtlasAgent() in utils.ts.
This caused buildCategorySkillsDelegationGuide() to return empty string,
resulting in agents not knowing when/how to delegate to explore, librarian,
or use category+skills based delegation.
Previously, when using categories like 'quick', the parent session's model
(e.g., Opus 4.5) would override the category's built-in model (e.g., Haiku).
Fixed priority: userConfig.model → category built-in → systemDefault
The inherited model from parent session no longer affects category-based
delegation - categories have their own explicit models.
- Delete document-writer.ts agent file
- Remove from types, schema, utils, index exports
- Remove tool restrictions entry
- Remove migration mappings
- Update atlas.ts to use category="writing" instead of agent="document-writer"
- Update init-deep command template
- Update all documentation (AGENTS.md, README.*, docs/)
- Regenerate schema.json
document-writer functionality is now handled via delegate_task with
category="writing" which uses the writing category's model config.
- Remove temperature from all categories
- Consolidate CATEGORY_MODEL_CATALOG into DEFAULT_CATEGORIES
- Replace 'general' and 'most-capable' with 'unspecified-low' and 'unspecified-high'
- Add Selection_Gate to unspecified categories to force deliberate selection
- Update quick category to use claude-haiku-4-5
- Update all references and tests across codebase
Update all documentation files to use 'atlas' instead of 'orchestrator-sisyphus'. AGENTS.md, src/agents/AGENTS.md, docs/features.md, docs/guide/overview.md all updated.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Update schema definitions, types, and integrations to use 'atlas' instead of 'orchestrator-sisyphus'. Includes schema regeneration and test updates.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
BREAKING CHANGE: Model resolution overhauled
- Created centralized model-resolver.ts with priority chain:
userModel → inheritedModel → systemDefaultModel
- Removed model field from all 7 DEFAULT_CATEGORIES entries
- Removed DEFAULT_MODEL constants from 10 agents
- Removed singleton agent exports (use factories instead)
- Made CategoryConfigSchema.model optional
- CLI no longer generates model overrides
- Empty strings treated as unset (uses fallback)
Users must now:
1. Use factory functions (createOracleAgent, etc.) instead of singletons
2. Provide model explicitly or use systemDefaultModel
3. Configure category models explicitly if needed
Fixes model fallback bug where hardcoded defaults overrode
user's OpenCode configured model.
Remove overly restrictive parallel execution constraints that were
preventing orchestrator from using background agents effectively.
- Change from 'RARELY NEEDED' to 'DEFAULT behavior'
- Remove 5+ query requirement for background agents
- Remove anti-pattern warnings that discouraged delegation
- Align with sisyphus.ts parallel execution philosophy
- Root AGENTS.md: Updated timestamp, commit hash, line counts
- src/agents/AGENTS.md: Updated to 50 lines, current structure
- src/cli/AGENTS.md: Updated to 57 lines, current structure
- src/features/AGENTS.md: Updated to 65 lines, current structure
- src/hooks/AGENTS.md: Updated to 53 lines, current structure
- src/shared/AGENTS.md: Updated to 52 lines, core utilities
- src/tools/AGENTS.md: Updated to 50 lines, tool categories
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
- Remove intermediate questions before plan generation
- Auto-proceed with Metis consultation
- Generate plan immediately after Metis review
- Add Post-Plan Self-Review with gap classification:
- CRITICAL: requires user input
- MINOR: auto-resolve silently
- AMBIGUOUS: apply default and disclose
- Present summary with auto-resolved items and decisions needed
- Ask high accuracy question after summary
Use createAgentToolAllowlist to allow only 'read' tool for multimodal-looker agent.
Previously denied write/edit/bash but allowed other tools.
Now uses wildcard deny pattern (*: deny) with explicit read allow.
- Add createAgentToolAllowlist function for allowlist-based restrictions
- Support legacy fallback for older OpenCode versions
- Add 4 test cases covering both permission systems
- Add mandatory PROJECT-LEVEL code checks (lsp_diagnostics at src/ or . level)
- Strengthen verification duties with explicit QA checklist
- Add 'SUBAGENTS LIE - VERIFY EVERYTHING' reminders throughout
- Emphasize that only orchestrator sees full picture of cross-file impacts
- Move Turn Termination Rules inside <system-reminder> block (from line 488 to ~186)
- Add Final Constraint Reminder at end of prompt (constraint sandwich pattern)
- Preserve all existing interview mode detail and strategies
Applies OpenCode's effective constraint patterns to prevent plan-mode agents
from offering to implement work instead of staying in consultation mode.
The watermark (commit footer and co-author) was inconsistently applied because:
1. The skill tool didn't receive gitMasterConfig
2. The approach was 'default ON, inject DISABLED override' which LLMs sometimes ignored
This refactors to 'inject only when enabled' approach:
- Remove hardcoded watermark section from base templates
- Dynamically inject section 5.5 based on config values
- Default is still ON (both true when no config)
- When both disabled, no injection occurs (clean prompt)
Also fixes missing config propagation to skill tool and createBuiltinAgents.
Restore zero-tolerance policy for visual/styling changes in frontend files.
Visual keyword detection now triggers mandatory delegation to frontend-ui-ux-engineer.
- Update generated timestamp and commit hash metadata
- Normalize agent model names with provider prefixes (anthropic/, opencode/, google/)
- Remove deprecated Google OAuth/Antigravity references
- Update line counts and complexity hotspot entries
- Adjust test count from 82 to 80+ files and assertions from 2559+ to 2500+
🤖 Generated with assistance of oh-my-opencode
- Change model priority: user override > parent model > category default
- Add ModelFallbackInfo to track model resolution type
- Show warning toast when category uses inherited or default model
- Add tests for model fallback info in task toast
Allow Sisyphus-Junior (category-based tasks) to spawn explore/librarian
agents via call_omo_agent for research capabilities.
Changes:
- Remove call_omo_agent from BLOCKED_TOOLS in sisyphus-junior.ts
- Update prompt to show ALLOWED status for call_omo_agent
- Remove global call_omo_agent blocking in config-handler.ts
- Keep blocking for orchestrator-sisyphus (use sisyphus_task instead)
- Keep runtime recursion prevention in index.ts for explore/librarian
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Use version-aware permission system instead of hardcoded tools object.
This ensures call_omo_agent is properly denied on both old (tools) and
new (permission) OpenCode versions.
Allow Sisyphus and orchestrator-sisyphus agents to use OpenCode's
question tool for interactive user prompts. OpenCode defaults
question permission to "deny" for all agents except build/plan.
Allow optional model variant config for agents and categories.
Propagate category variants into task model payloads so
category-driven runs inherit provider-specific variants.
Closes: #647
* fix(config): allow Sisyphus-Junior agent customization via oh-my-opencode.json
Allow users to configure Sisyphus-Junior agent via agents["Sisyphus-Junior"]
in oh-my-opencode.json, removing hardcoded defaults while preserving safety
constraints.
Closes#623
Changes:
- Add "Sisyphus-Junior" to AgentOverridesSchema and OverridableAgentNameSchema
- Create createSisyphusJuniorAgentWithOverrides() helper with guardrails
- Update config-handler to use override helper instead of hardcoded values
- Fix README category wording (runtime presets, not separate agents)
Honored override fields:
- model, temperature, top_p, tools, permission, description, color, prompt_append
Safety guardrails enforced post-merge:
- mode forced to "subagent" (cannot change)
- prompt is append-only (base discipline text preserved)
- blocked tools (task, sisyphus_task, call_omo_agent) always denied
- disable: true ignores override block, uses defaults
Category interaction:
- sisyphus_task(category=...) runs use the base Sisyphus-Junior agent config
- Category model/temperature overrides take precedence at request time
- To change model for a category, set categories.<cat>.model (not agent override)
- Categories are runtime presets applied to Sisyphus-Junior, not separate agents
Tests: 15 new tests in sisyphus-junior.test.ts, 3 new schema tests
Co-Authored-By: Sisyphus <sisyphus@mengmota.com>
* test(sisyphus-junior): add guard assertion for prompt anchor text
Add validation that baseEndIndex is not -1 before using it for ordering
assertion. Previously, if "Dense > verbose." text changed in the base
prompt, indexOf would return -1 and any positive appendIndex would pass.
Co-Authored-By: Sisyphus <sisyphus@mengmota.com>
---------
Co-authored-by: Sisyphus <sisyphus@mengmota.com>