name: context-manager description: Manage context files, discover context roots, validate structure, and organize project context. Use when adding context from GitHub/worktrees or managing context organization. context: fork
Subagent: context-manager
Purpose: Manage context files, discover context roots, validate structure, and organize project-specific context for optimal discoverability.
Manage context for: $ARGUMENTS
Operations Available:
Instructions: Execute the requested context management operation following the guidelines below.
Invoke /context-manager when you need to:
Rule of thumb: If you're setting up a project or configuring how context works, use this skill.
Context files can come from multiple sources, loaded in priority order:
Location: .opencode/context/ (in your project root)
Purpose: Project-specific overrides, custom standards, team conventions
Use when:
Example:
# Create project-specific override
mkdir -p .opencode/context/core/standards
vim .opencode/context/core/standards/code-quality.md
Priority: Files here override all other sources
Location: .opencode/context/ (downloaded from GitHub)
Purpose: Standard OAC patterns, workflows, coding standards
Download via: /oac:setup
Categories:
core - Essential standards and workflowsopenagents-repo - OAC-specific guides and patternsplugins - Plugin development guidesskills - Skill creation and usageExample:
# Download core context only
/oac:setup --core
# Download all context
/oac:setup --all
# Download specific category
/oac:setup --category=standards
Location: ~/.opencode/context/ (your home directory)
Purpose: Personal templates, preferences, reusable patterns
Use when:
Example:
# Create personal context
mkdir -p ~/.opencode/context/personal/templates
vim ~/.opencode/context/personal/templates/react-component.md
Priority: Loaded if not found in project-specific context
Location: Configured via .oac file
Purpose: Integration with external task management systems
Supported systems:
Example:
{
"tasks": {
"source": "speckit",
"path": "~/projects/specs",
"sync": true
}
}
The .oac configuration file controls OAC behavior. It can be placed:
.oac (in project root) - project-specific settings~/.oac - personal defaults across all projectsPriority: Project-level .oac overrides global ~/.oac
{
"$schema": "https://openagents.dev/schemas/oac-v1.json",
"version": "1.0.0",
"project": {
"name": "my-project",
"type": "web-app",
"version": "1.0.0"
},
"context": {
"root": ".opencode/context",
"auto_download": false,
"categories": ["core", "openagents-repo"],
"update_check": true,
"cache_days": 7,
"locations": {
"tasks": "tasks/subtasks",
"docs": "docs"
},
"update": {
"check_on_start": true,
"auto_update": false,
"interval": "1h",
"strategy": "notify"
}
},
"cleanup": {
"auto_prompt": true,
"session_days": 7,
"task_days": 30,
"external_days": 7
},
"workflow": {
"auto_approve": false,
"verbose": false
},
"external_scout": {
"enabled": true,
"cache_enabled": true,
"sources": ["context7"]
},
"tasks": {
"source": "local",
"path": ".tmp/tasks",
"sync": false
}
}
| Setting | Type | Default | Description |
|---|---|---|---|
context.root |
string | .opencode/context |
Root directory for context files |
context.auto_download |
boolean | false |
Auto-download context on first use |
context.categories |
array | ["core", "openagents-repo"] |
Default categories to download |
context.update_check |
boolean | true |
Check for context updates |
context.cache_days |
number | 7 |
Days to cache external context |
| Setting | Type | Default | Description |
|---|---|---|---|
cleanup.auto_prompt |
boolean | true |
Prompt for cleanup on session start |
cleanup.session_days |
number | 7 |
Days before suggesting session cleanup |
cleanup.task_days |
number | 30 |
Days before suggesting task cleanup |
cleanup.external_days |
number | 7 |
Days before suggesting external context cleanup |
| Setting | Type | Default | Description |
|---|---|---|---|
workflow.auto_approve |
boolean | false |
Skip approval gates (DANGEROUS) |
workflow.verbose |
boolean | false |
Show detailed workflow steps |
| Setting | Type | Default | Description |
|---|---|---|---|
external_scout.enabled |
boolean | true |
Enable external documentation fetching |
external_scout.cache_enabled |
boolean | true |
Cache fetched documentation |
external_scout.sources |
array | ["context7"] |
Documentation sources to use |
| Setting | Type | Default | Description |
|---|---|---|---|
tasks.source |
string | "local" |
Task source: local, speckit, linear, jira, custom |
tasks.path |
string | .tmp/tasks |
Path to task files |
tasks.sync |
boolean | false |
Sync with external system |
Use /oac:setup to download context files from the OAC repository:
# Interactive mode - prompts for options
/oac:setup
# Download core context only (~50 files)
/oac:setup --core
# Download all context (~200 files)
/oac:setup --all
# Download specific category
/oac:setup --category=standards
/oac:setup --category=workflows
/oac:setup --category=openagents-repo
What gets downloaded:
.opencode/context/plugins/claude-code/.context-manifest.jsonCheck what context is installed and available:
# Check OAC installation status
/oac:status
# Verify specific context files exist
ls .opencode/context/core/standards/
ls .opencode/context/core/workflows/
Status output includes:
Re-run setup to update to the latest version:
# Update core context
/oac:setup --core
# Force re-download (overwrite existing)
/oac:setup --all --force
Note: Context files are cached locally. Updates only download changed files.
Add your own context files to project or personal directories:
Project-specific (overrides defaults):
mkdir -p .opencode/context/custom/patterns
vim .opencode/context/custom/patterns/my-pattern.md
Personal (reusable across projects):
mkdir -p ~/.opencode/context/personal/templates
vim ~/.opencode/context/personal/templates/my-template.md
Context file format:
<!-- Context: category/subcategory | Priority: critical | Version: 1.0 | Updated: 2026-02-16 -->
# Context Title
**Purpose**: Brief description
---
## Content
Your context content here...
Configuration:
{
"tasks": {
"source": "local",
"path": ".tmp/tasks",
"sync": false
}
}
Usage:
.tmp/tasks/{feature}//task-breakdown skillBest for: Solo developers, simple projects, no external tools
What is SpecKit: Specification-driven task management system
Configuration:
{
"tasks": {
"source": "speckit",
"path": "~/projects/specs",
"sync": true,
"config": {
"api_key": "${SPECKIT_API_KEY}",
"project_id": "my-project"
}
}
}
Setup:
npm install -g speckitexport SPECKIT_API_KEY=your-key.oac with SpecKit settings/oac:status to verify connectionUsage:
Best for: Specification-driven development, documentation-first workflows
What is Linear: Modern issue tracking and project management
Configuration:
{
"tasks": {
"source": "linear",
"sync": true,
"config": {
"api_key": "${LINEAR_API_KEY}",
"team_id": "my-team",
"project_id": "my-project",
"sync_interval": "5m"
}
}
}
Setup:
export LINEAR_API_KEY=your-key.oac with Linear settings/oac:status to verify connectionUsage:
Best for: Team projects, agile workflows, issue tracking
What is Jira: Enterprise project management and issue tracking
Configuration:
{
"tasks": {
"source": "jira",
"sync": true,
"config": {
"url": "https://your-domain.atlassian.net",
"email": "your-email@example.com",
"api_token": "${JIRA_API_TOKEN}",
"project_key": "PROJ",
"sync_interval": "10m"
}
}
}
Setup:
bash
export JIRA_API_TOKEN=your-token
.oac with Jira settings/oac:status to verify connectionUsage:
Best for: Enterprise teams, complex workflows, compliance requirements
What is Custom: Your own task.json format or API
Configuration:
{
"tasks": {
"source": "custom",
"path": "/path/to/tasks",
"sync": true,
"config": {
"adapter": "./scripts/task-adapter.js",
"sync_command": "npm run sync-tasks",
"format": "json"
}
}
}
Setup:
javascript
// scripts/task-adapter.js
module.exports = {
async fetchTasks() {
// Fetch from your system
},
async updateTask(taskId, updates) {
// Update your system
}
};
.oac with custom settingsnode scripts/task-adapter.jsUsage:
Best for: Unique workflows, legacy systems, custom requirements
Scenario: Individual developer, personal projects, local task management
Configuration (.oac):
{
"project": {
"name": "my-personal-project",
"type": "web-app"
},
"context": {
"auto_download": true,
"categories": ["core"]
},
"tasks": {
"source": "local",
"path": ".tmp/tasks"
},
"cleanup": {
"auto_prompt": true,
"session_days": 3
}
}
Setup steps:
.oac in project root/oac:setup --core/using-oacBenefits:
Scenario: Team using Linear for issue tracking, shared context
Configuration (.oac):
{
"project": {
"name": "team-project",
"type": "web-app",
"version": "1.0.0"
},
"context": {
"auto_download": true,
"categories": ["core", "openagents-repo"],
"update_check": true
},
"tasks": {
"source": "linear",
"sync": true,
"config": {
"api_key": "${LINEAR_API_KEY}",
"team_id": "engineering",
"project_id": "web-app"
}
},
"workflow": {
"verbose": true
}
}
Setup steps:
.oac in project root/oac:setup --allexport LINEAR_API_KEY=your-key/oac:status/using-oacBenefits:
Scenario: Developer working on multiple projects with shared personal context
Global configuration (~/.oac):
{
"context": {
"auto_download": true,
"categories": ["core"],
"cache_days": 14
},
"cleanup": {
"auto_prompt": true,
"session_days": 7
},
"external_scout": {
"enabled": true,
"cache_enabled": true
}
}
Personal context (~/.opencode/context/personal/):
~/.opencode/context/personal/
├── templates/
│ ├── react-component.md
│ ├── api-endpoint.md
│ └── test-suite.md
├── patterns/
│ ├── error-handling.md
│ └── logging.md
└── workflows/
└── my-workflow.md
Project-specific (.oac in each project):
{
"project": {
"name": "project-a",
"type": "web-app"
},
"tasks": {
"source": "local"
}
}
Benefits:
Scenario: Company with custom task management API
Configuration (.oac):
{
"project": {
"name": "enterprise-app",
"type": "web-app"
},
"context": {
"categories": ["core", "openagents-repo"]
},
"tasks": {
"source": "custom",
"sync": true,
"config": {
"adapter": "./scripts/company-task-adapter.js",
"api_url": "https://tasks.company.com/api",
"api_key": "${COMPANY_TASK_API_KEY}",
"sync_interval": "5m"
}
}
}
Custom adapter (scripts/company-task-adapter.js):
const axios = require('axios');
module.exports = {
async fetchTasks() {
const response = await axios.get(
`${process.env.COMPANY_TASK_API_URL}/tasks`,
{
headers: {
'Authorization': `Bearer ${process.env.COMPANY_TASK_API_KEY}`
}
}
);
// Transform to OAC task format
return response.data.tasks.map(task => ({
id: task.id,
title: task.name,
description: task.description,
status: task.state,
assignee: task.assigned_to,
priority: task.priority_level
}));
},
async updateTask(taskId, updates) {
await axios.patch(
`${process.env.COMPANY_TASK_API_URL}/tasks/${taskId}`,
updates,
{
headers: {
'Authorization': `Bearer ${process.env.COMPANY_TASK_API_KEY}`
}
}
);
}
};
Benefits:
Symptom: /context-discovery returns "No context files found"
Cause: Context hasn't been downloaded yet
Solution:
# Download core context
/oac:setup --core
# Verify installation
/oac:status
# Check files exist
ls .opencode/context/core/standards/
Symptom: Settings in .oac not being applied
Cause: Invalid JSON or wrong location
Solution:
# Validate JSON syntax
cat .oac | jq .
# Check file location (should be in project root)
ls -la .oac
# Verify schema
cat .oac | jq '."$schema"'
Symptom: External tasks not appearing or updating
Cause: API credentials missing or invalid
Solution:
# Check environment variables
echo $LINEAR_API_KEY
echo $JIRA_API_TOKEN
# Verify configuration
cat .oac | jq '.tasks'
# Test connection
/oac:status
# Check logs
tail -f .tmp/logs/task-sync.log
Symptom: Wrong context file being loaded
Cause: Multiple sources with same file path
Solution:
# Check priority order:
# 1. .opencode/context/ (project-specific)
# 2. ~/.opencode/context/ (personal)
# 3. Downloaded context
# Find which file is being used
find . -name "code-quality.md" -o -path "~/.opencode/context/**/code-quality.md"
# Remove unwanted override
rm .opencode/context/core/standards/code-quality.md
Symptom: "Failed to check for context updates"
Cause: Network issues or GitHub rate limiting
Solution:
# Disable update check temporarily
cat > .oac <<EOF
{
"context": {
"update_check": false
}
}
EOF
# Or update manually
/oac:setup --core --force
/oac:setup --core first~/.opencode/context/ for personal templates/oac:status after updates.oac/oac:setup first/using-oac - Main OAC workflow (uses context from this skill)/context-discovery - Find relevant context files/external-scout - Fetch external library documentation/task-breakdown - Create task breakdowns (uses task system config)/oac:setup - Download context files/oac:status - Check installation status/oac:help - View available commands/oac:cleanup - Clean up old files✅ Context files downloaded and verified
✅ Configuration file created and valid
✅ Task system integrated (if applicable)
✅ Personal context organized
✅ Project-specific overrides working
✅ Team members can replicate setup
✅ /oac:status shows all green