* feat: add npm package support for @openagents/control
- Convert package to publishable npm package with scoped name @openagents/control
- Add CLI entry point bin/oac.js for global installation
- Create .npmignore to exclude dev files and node_modules
- Configure package.json with proper files, bin, and metadata
- Add comprehensive NPM_PUBLISHING_GUIDE.md with publishing instructions
- Package size: 610KB (2.4MB unpacked) with 353 files
- Includes .opencode/tool/ directory without node_modules
- CLI command: oac (e.g., 'oac developer' or 'oac --help')
Users can install with: npm install -g @openagents/control
* chore: remove telegram bot files from package
- Delete .opencode/_lib/telegram-bot.ts (unused)
- Delete .opencode/plugin/telegram-notify.ts (depends on deleted file)
- Remove _lib directory reference from package.json files field
- Reduces package size from 610KB to 607KB
- Total files: 351 (down from 353)
* chore: remove all telegram references from registry and docs
- Remove telegram-bot and telegram-notify plugin entries from registry.json
- Remove telegram plugin references from all profiles (developer, business, full, advanced)
- Update profile-validation.md to remove telegram from business profile documentation
- Clean package with no telegram dependencies
* docs: enhance README clarity and add configuration examples
- Add Core Philosophy section with 4 key principles
- Add Quick Concepts for First-Time Users (scannable format)
- Add prominent Oh My OpenCode comparison link
- Add comprehensive Model Configuration section
- Add Customizing Agents section with practical examples
- Streamline model selection recommendations
- Add emoji headers for visual consistency
- Remove redundant FAQ entry
Addresses user feedback about documentation clarity and first-time user experience.
* refactor: remove OpenImplementer agent
- Delete OpenImplementer agent file (redundant with OpenAgent)
- Remove from registry.json and all profiles
- Update OpenCoder delegation rules (now handles 1-4 files directly)
- Clean up all context file references
- Remove from commands and documentation
Rationale: OpenImplementer only added 1 file to OpenAgent's capability (3→4 files), creating unnecessary complexity. OpenAgent and OpenCoder provide clearer separation: OpenAgent for general + focused tasks (1-4 files), OpenCoder for complex architecture (4+ files).
* fix: remove stale OpenImplementer reference from OpenCoder
- Remove OpenImplementer from Available Subagents list
- Clarify CoderAgent is used via TaskManager for complex tasks
- Keep delegation rules as-is (execute 1-4 files directly, delegate complex to CoderAgent)
* docs: remove remaining OpenImplementer references
- Update developer profile description (OpenAgent vs OpenCoder)
- Update registry.json profile description
- Update docs/README.md to remove OpenImplementer
- Update CHANGELOG.md to reflect simplified architecture
All OpenImplementer references now removed. Registry validation passes.
* docs: enhance README with first-time user improvements
- Add 'your secret weapon!' to Context System in Quick Concepts
- Add First-Time User Checklist after Get Started section
- Add visual comparison table for AOC vs Oh My OpenCode in FAQ
- Improve scannability and clarity for new users
Based on DocWriter review recommendations.
* docs: clarify project-context.md is created during installation
Minor enhancement to First-Time User Checklist step 2 for extra clarity.
* docs: change 'I' to 'we' for collaborative tone
- Update 'Why I Built This' to 'Why We Built This'
- Change 'I've spent' to 'We've spent'
- Change 'I use this' to 'We use this'
- Makes the project feel more collaborative and team-oriented
* docs: make intro more neutral and objective
- Change 'Why We Built This' to 'Why This Exists'
- Remove personal perspective ('We've spent 14+ years')
- Change 'We use this' to 'It's built for shipping'
- More professional and objective tone
* docs: major README rewrite based on user feedback
Key improvements based on real user confusion:
1. **Clear 'What Is AOC?' section** - Explains scaffold vs plugin approach upfront
2. **Model configuration prominently featured** - Addresses #1 user question
3. **Hook with quantified paradox** - Grabs attention in 15 seconds
4. **Context System promoted** - Moved to top, explains the differentiator
5. **Comparison table** - AOC vs Oh My OpenCode side-by-side
6. **Eliminated 60% redundancy** - Merged overlapping sections
7. **Simplified deep dives** - Model config and customization tightened
Based on user feedback: 'I just expected that behaviour because it was not
documented properly... the only thing really lacking was a clear explanation
of its purpose and how to configure models and adjust agents.'
Addresses: Confusion about scaffold vs plugin, model configuration, and
first-time user expectations.
* chore: publish package as @nextsystems/oac v0.7.0
- Changed package name from @openagents/control to @nextsystems/oac
- Successfully published to npm registry
- Users can install with: npm install -g @nextsystems/oac
- CLI command: oac
* feat: add context path configuration and reorganize documentation
- Add configurable context root via paths.json (@reference support)
- Add /add-context command for interactive context setup
- Move NPM_PUBLISHING_GUIDE.md to context system (guides/npm-publishing.md)
- Add GitHub issues workflow guide
- Update agents to support custom context directories
- Update navigation with new guides and file counts
This enables projects to use custom context directories (e.g., .context, .ai/context)
while maintaining backward compatibility with default .opencode/context/ structure.
8.5 KiB
Core Concept: Agents
Purpose: Understanding how agents work in OpenAgents Control
Priority: CRITICAL - Load this before working with agents
What Are Agents?
Agents are AI prompt files that define specialized behaviors for different tasks. They are:
- Markdown files with frontmatter metadata
- Category-organized by domain (core, development, content, etc.)
- Context-aware - load relevant context files
- Testable - validated through eval framework
Agent Structure
File Format
---
description: "Brief description of what this agent does"
category: "category-name"
type: "agent"
tags: ["tag1", "tag2"]
dependencies: ["subagent:tester"]
---
# Agent Name
[Agent prompt content - instructions, workflows, constraints]
Key Components
-
Frontmatter (YAML metadata)
description: Brief descriptioncategory: Category name (core, development, content, etc.)type: Always "agent"tags: Optional tags for discoverydependencies: Optional dependencies (e.g., subagents)
-
Prompt Content
- Instructions and workflows
- Constraints and rules
- Context loading requirements
- Tool usage patterns
Category System
Agents are organized by domain expertise:
Core Category (core/)
Purpose: Essential system agents (always available)
Agents:
openagent.md- General-purpose orchestratoropencoder.md- Development specialistsystem-builder.md- System generation
When to use: System-level tasks, orchestration
Development Category (development/)
Purpose: Software development specialists
Agents:
frontend-specialist.md- React, Vue, modern CSSdevops-specialist.md- CI/CD, deployment, infrastructure
When to use: Building applications, dev tasks
Content Category (content/)
Purpose: Content creation specialists
Agents:
copywriter.md- Marketing copy, persuasive writingtechnical-writer.md- Documentation, technical content
When to use: Writing, documentation, marketing
Data Category (data/)
Purpose: Data analysis specialists
Agents:
data-analyst.md- Data analysis, visualization
When to use: Data tasks, analysis, reporting
Product Category (product/)
Purpose: Product management specialists
Status: Ready for agents (no agents yet)
When to use: Product strategy, roadmaps, requirements
Learning Category (learning/)
Purpose: Education and coaching specialists
Status: Ready for agents (no agents yet)
When to use: Teaching, training, curriculum
Subagents
Location: .opencode/agent/subagents/
Purpose: Delegated specialists for specific subtasks
Subagent Categories
-
code/ - Code-related specialists
tester.md- Test authoring and TDDreviewer.md- Code review and securitycoder-agent.md- Focused implementationsbuild-agent.md- Type checking and builds
-
core/ - Core workflow specialists
task-manager.md- Task breakdown and managementdocumentation.md- Documentation generation
-
system-builder/ - System generation specialists
agent-generator.md- Generate agent filescommand-creator.md- Create slash commandsdomain-analyzer.md- Analyze domainscontext-organizer.md- Organize contextworkflow-designer.md- Design workflows
-
utils/ - Utility specialists
image-specialist.md- Image editing and analysis
Subagents vs Category Agents
| Aspect | Category Agents | Subagents |
|---|---|---|
| Purpose | User-facing specialists | Delegated subtasks |
| Invocation | Direct by user | Via task tool |
| Scope | Broad domain | Narrow focus |
| Example | frontend-specialist |
tester |
Claude Code Interop (Optional)
OpenAgents Control can pair with Claude Code for local workflows and distribution:
- Subagents: Project helpers in
.claude/agents/ - Skills: Auto-invoked guidance in
.claude/skills/ - Hooks: Shell commands on lifecycle events (use sparingly)
- Plugins: Share agents/skills/hooks across projects
Use this when you want Claude Code to follow OpenAgents Control standards or to ship reusable helpers.
Path Resolution
The system supports multiple path formats for backward compatibility:
Supported Formats
# Short ID (backward compatible)
"openagent" → resolves to → ".opencode/agent/core/openagent.md"
# Category path
"core/openagent" → resolves to → ".opencode/agent/core/openagent.md"
# Full category path
"development/frontend-specialist" → resolves to → ".opencode/agent/development/frontend-specialist.md"
# Subagent path
"TestEngineer" → resolves to → ".opencode/agent/TestEngineer.md"
Resolution Rules
- Check if path includes
/→ use as category path - If no
/→ check core/ first (backward compat) - If not in core/ → search all categories
- If not found → error
Prompt Variants
Location: .opencode/prompts/{category}/{agent}/
Purpose: Model-specific prompt optimizations
Supported Models
gemini.md- Google Gemini optimizationsgrok.md- xAI Grok optimizationsllama.md- Meta Llama optimizationsopenrouter.md- OpenRouter optimizations
When to Create Variants
- Model has specific formatting requirements
- Model performs better with different structure
- Model has unique capabilities to leverage
Fallback Behavior
If no variant exists for a model, the base agent file is used.
Context Loading
Agents should load relevant context files based on task type:
Core Context (Always Consider)
<!-- Context: standards/code | Priority: critical -->
Loads: .opencode/context/core/standards/code-quality.md
Category Context
<!-- Context: development/react-patterns | Priority: high -->
Loads: .opencode/context/development/react-patterns.md
Multiple Contexts
<!-- Context: standards/code, standards/tests | Priority: critical -->
Agent Lifecycle
1. Creation
# Create agent file
touch .opencode/agent/{category}/{agent-name}.md
# Add frontmatter and content
# (See guides/adding-agent.md for details)
2. Testing
# Create test structure
mkdir -p evals/agents/{category}/{agent-name}/{config,tests}
# Run tests
cd evals/framework && npm run eval:sdk -- --agent={category}/{agent-name}
3. Registration
# Auto-detect and add to registry
./scripts/registry/auto-detect-components.sh --auto-add
# Validate
./scripts/registry/validate-registry.sh
4. Distribution
# Users install via install.sh
./install.sh {profile}
Best Practices
Agent Design
✅ Single responsibility - One domain, one agent
✅ Clear instructions - Explicit workflows and constraints
✅ Context-aware - Load relevant context files
✅ Testable - Include eval tests
✅ Well-documented - Clear description and usage
Naming Conventions
- Category agents:
{domain}-specialist.md(e.g.,frontend-specialist.md) - Core agents:
{name}.md(e.g.,openagent.md) - Subagents:
{purpose}.md(e.g.,tester.md)
Frontmatter Requirements
---
description: "Required - brief description"
category: "Required - category name"
type: "Required - always 'agent'"
tags: ["Optional - for discovery"]
dependencies: ["Optional - e.g., 'subagent:tester'"]
---
Common Patterns
Delegation to Subagents
When task requires testing:
1. Implement feature
2. Delegate to TestEngineer for test creation
Context Loading
Before implementing:
1. Load core/standards/code-quality.md
2. Load category-specific context if available
3. Apply standards to implementation
Approval Gates
Before execution:
1. Present plan to user
2. Request approval
3. Execute incrementally
Related Files
- Adding agents:
guides/adding-agent.md - Testing agents:
guides/testing-agent.md - Category system:
core-concepts/categories.md - File locations:
lookup/file-locations.md - Claude Code subagents:
../to-be-consumed/claude-code-docs/create-subagents.md - Claude Code skills:
../to-be-consumed/claude-code-docs/agent-skills.md - Claude Code hooks:
../to-be-consumed/claude-code-docs/hooks.md - Claude Code plugins:
../to-be-consumed/claude-code-docs/plugins.md
Last Updated: 2026-01-13
Version: 0.5.1