| name | conductor |
| description | Context-Driven Development framework — specify, plan, and implement software features with a strict lifecycle: Context → Spec & Plan → Implement. Provides 6 commands: setup (project initialization), newTrack (create feature/bug track with spec + plan), implement (execute plan tasks with TDD), status (progress overview), revert (git-aware rollback), review (code review against guidelines). Trigger this skill when the user mentions: "conductor", "conductor setup", "conductor new track", "conductor implement", "conductor status", "conductor revert", "conductor review", "initialize project context", "create a spec and plan", "context-driven development", "set up product definition", "plan before coding", or any reference to conductor's artifacts like "tracks.md", "plan.md", "spec.md", "product.md", "tech-stack.md". Also trigger when the user says things like "help me plan this feature before coding", "I want to define product context first", "let's create a development plan", or "measure twice code once". Even casual mentions like "set up conductor" or "use the conductor workflow" should trigger this skill.
|
Conductor — Context-Driven Development for OpenCode
Measure twice, code once.
Conductor turns your AI coding assistant into a proactive project manager that follows a strict protocol to specify, plan, and implement software features and bug fixes.
Core Philosophy
Control your code. By treating context as a managed artifact alongside your code, you transform your repository into a single source of truth that drives every agent interaction with deep, persistent project awareness.
Lifecycle: Context → Spec & Plan → Implement
Command Router
When the user invokes a conductor command, read the corresponding reference file for the full protocol:
| User Says | Reference File | Purpose |
|---|
| "conductor setup" or "initialize project" | references/setup.md | One-time project scaffolding |
| "conductor new track" or "create a track" or "new feature/bug" | references/newTrack.md | Create spec + plan for a feature/bug |
| "conductor implement" or "implement the plan" | references/implement.md | Execute tasks from the plan |
| "conductor status" or "show progress" | references/status.md | Display progress overview |
| "conductor revert" or "undo/rollback" | references/revert.md | Git-aware smart revert |
| "conductor review" or "review the code" | references/review.md | Code review against guidelines |
CRITICAL: When the user triggers any of the above commands, you MUST read the corresponding reference file from {SKILL_DIR}/references/ and follow its protocol precisely. The reference files contain the complete, detailed instructions — do not attempt to execute the commands from memory or from this overview alone.
Universal File Resolution Protocol
This is the standard method for locating conductor artifacts. All command reference files depend on this protocol.
To find a file (e.g., "Product Definition") within a specific context (Project Root or a specific Track):
-
Identify Index: Determine the relevant index file:
- Project Context:
conductor/index.md
- Track Context:
a. Resolve and read the Tracks Registry (via Project Context).
b. Find the entry for the specific
<track_id>.
c. Follow the link provided in the registry to locate the track's folder. The index file is <track_folder>/index.md.
d. Fallback: If the track is not yet registered, resolve the Tracks Directory (via Project Context). The index file is <Tracks Directory>/<track_id>/index.md.
-
Check Index: Read the index file and look for a link with a matching or semantically similar label.
-
Resolve Path: If a link is found, resolve its path relative to the directory containing the index.md file.
-
Fallback: If the index file is missing or the link is absent, use the Default Paths below.
-
Verify: You MUST verify the resolved file actually exists on disk.
Standard Default Paths (Project)
- Product Definition:
conductor/product.md
- Tech Stack:
conductor/tech-stack.md
- Workflow:
conductor/workflow.md
- Product Guidelines:
conductor/product-guidelines.md
- Tracks Registry:
conductor/tracks.md
- Tracks Directory:
conductor/tracks/
Standard Default Paths (Track)
- Specification:
conductor/tracks/<track_id>/spec.md
- Implementation Plan:
conductor/tracks/<track_id>/plan.md
- Metadata:
conductor/tracks/<track_id>/metadata.json
Setup Check (Used by all commands except setup)
Before executing any command (except setup), verify:
-
Using the Universal File Resolution Protocol, resolve and verify existence of:
- Product Definition
- Tech Stack
- Workflow
-
If ANY are missing, announce: "Conductor is not set up. Please run conductor setup first." and HALT.
Artifact Overview
When Conductor is fully set up, your project will contain:
your-project/
├── conductor/
│ ├── index.md # Project context index
│ ├── product.md # Product definition (vision, users, goals)
│ ├── product-guidelines.md # Prose style, branding, UX principles
│ ├── tech-stack.md # Languages, frameworks, database
│ ├── workflow.md # TDD workflow (from template)
│ ├── code_styleguides/ # Language-specific style guides
│ ├── tracks.md # Tracks registry (all features/bugs)
│ └── tracks/
│ └── <track_id>/
│ ├── index.md # Track context index
│ ├── spec.md # Requirements specification
│ ├── plan.md # Phased implementation plan
│ └── metadata.json # Track metadata
Tool Usage
When following the reference file protocols, use these OpenCode tools:
| Action | Tool | Notes |
|---|
| Ask user yes/no | question tool with 2 options: "Yes" / "No" | |
| Ask user for text input | question tool with custom enabled (default) | Use a single descriptive option or just ask directly |
| Ask user to choose | question tool with options array | custom adds "Type your own" automatically |
| Ask user multi-select | question tool with multiple: true | |
| Write a file | write tool | |
| Edit part of a file | edit tool | |
| Read a file | read tool | |
| List files/directories | glob tool or bash ls | |
| Run shell commands | bash tool | |
| Search file content | grep tool | |
question Tool Format
When the protocol says to ask the user something, use this pattern:
Use the `question` tool:
- **header**: "Short Label" (max 30 chars)
- **question**: "The full question text here"
- **options**: [
{"label": "Option A", "description": "What this option means"},
{"label": "Option B", "description": "What this option means"}
]
For multi-select, add multiple: true. The custom option ("Type your own answer") is added automatically by default.
Quick Start
If the user is new to Conductor, suggest this sequence:
conductor setup — Initialize the project (run once)
conductor new track — Define a feature or bug fix
conductor implement — Execute the plan
conductor status — Check progress anytime
conductor review — Review completed work
conductor revert — Undo if needed