Agents
The agentic system uses three AI contexts with distinct domains. The base copilot handles IaC directly, Wingman manages productivity and strategy, and the OSDU agent handles platform operations.
Base Copilot
The default Claude Code context for this repository. Handles all infrastructure-as-code work without requiring an agent prefix:
- Terraform modules, variables, and state management
- Helm charts and Kustomize patches
- AKS configuration and deployment safeguards
- azd hooks and lifecycle scripts
- Documentation and ADRs
The base copilot loads domain skills automatically based on context (e.g., the iac-terraform skill activates when discussing Terraform patterns).
Wingman
Purpose: Productivity, strategy, and learning partner. Doubles developer output by managing priorities, synthesizing information, and automating routine workflows.
Spec: .ai-wingman/AGENT.md
Operating Modes
| Mode | Purpose | Example |
|---|---|---|
| Prioritize | Order tasks by impact and urgency | "What should I work on today?" |
| Decide | Frame trade-offs with clear recommendations | "Should we split this into two MRs?" |
| Draft | Produce written artifacts | "Draft the ADR for this change" |
| Coach | Teach through questions, not answers | "Help me understand the CNPG operator" |
| Synthesize | Combine multiple sources into insight | "Summarize this week's OSDU activity" |
| Explore | Open-ended research | "What's the state of OSDU on GCP?" |
| Briefing | Daily OSDU status report | /gm or /briefing |
| Tasks | Manage and track work items | "What are my open tasks?" |
Data Sources
Wingman pulls from:
- Obsidian vault (
.ai-brain/) — goals, decisions, reports, knowledge - GitLab APIs — MRs, pipelines, issues across OSDU projects
- CLI tools —
osdu-activity,osdu-engagement,osdu-quality - Repository state — git log, worktree status, file contents
Always-On Responsibilities
- Time and focus prioritization
- Deep work execution support
- Strategic synthesis across contexts
- Context discipline (stay relevant, avoid rabbit holes)
OSDU Agent
Purpose: Analytics and operations assistant for OSDU platform services. Queries CI/CD pipelines, test reliability, and contributions across 30+ services.
Spec: .ai-osdu/AGENT.md
Service Coverage
| Category | Count | Examples |
|---|---|---|
| Core | 13 | Partition, Entitlements, Storage, Search, Indexer |
| Reference | 3 | Wellbore, Well-delivery, Seismic |
| Domain | 3 | Reservoir, Well-planning, Dataset |
| Libraries | 5 | os-core-common, os-core-lib-azure, os-oqm |
| Ingestion | 3 | Ingestion-workflow, CSV-parser, Manifest-ingestion |
QA Sub-Agents
The OSDU agent can spawn specialized sub-agents for quality analysis:
| Sub-Agent | Role |
|---|---|
| Runner | Execute Maven/Node/Python test commands |
| Analyzer | Parse test results and identify patterns |
| Comparator | Compare results across providers (Azure/AWS/GCP/IBM/CIMPL) |
| Reporter | Generate structured QA reports for the vault |
Output Format
The OSDU agent produces structured JSON output for programmatic analysis, making it suitable for automated pipelines and report generation.
Delegation Model

Delegation flows one direction: Wingman → OSDU. The reverse is not permitted.
┌─────────────────────────────────────┐
│ Wingman │
│ Productivity · Strategy · Learning │
│ │
│ Can delegate to OSDU agent ──────────► ┌──────────────────────┐
│ │ │ OSDU Agent │
│ │ │ Pipelines · Tests │
│ │ │ Dependencies · MRs │
└─────────────────────────────────────┘ └──────────────────────┘
│ │
▼ ▼
┌─────────────────────────────────────────────────────────────┐
│ Shared Skills (13+) │
│ brain · glab · iac-terraform · iac-debug · iac-verify │
│ learn · send · osdu-activity · osdu-engagement · osdu-quality│
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Obsidian Vault │
│ Goals · Decisions · Reports │
│ Knowledge · Daily Notes │
└─────────────────────────────────────┘
Why one-way? Wingman has the broader context (goals, priorities, deadlines) and can frame OSDU queries with the right scope. The OSDU agent focuses on data retrieval and analysis without needing strategic context.
Routing
Tasks are routed to agents based on signal keywords in the user's request. The routing table (.github/routing.md) maps 48+ signals to the appropriate agent:
| Signal Category | Routes To | Examples |
|---|---|---|
| Environment setup | Wingman | "set up my workspace", "validate tools" |
| Briefings, goals | Wingman | "good morning", "briefing", "priorities" |
| Writing, strategy | Wingman | "draft", "summarize", "decide" |
| Pipelines, builds | OSDU | "pipeline status", "build failures" |
| Tests, quality | OSDU | "test reliability", "flaky tests" |
| Dependencies | OSDU | "dependency scan", "vulnerabilities" |
| IaC (no prefix) | Base Copilot | "terraform", "helm", "kustomize" |
See also
- Skills & Commands — full catalog of capabilities available to each agent
- Knowledge Vault — persistent memory layer agents read from and write to
- Developer Workflows — practical workflows that use these agents