> ## Documentation Index
> Fetch the complete documentation index at: https://atcyrus.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Procedure Reference

> Internal workflows Cyrus uses to complete work. Reference-only.

<Note>
  Procedures are kept here for historical context. In **v0.2.41** the rigid procedure workflow was replaced by [Skills](/skills) — flexible, scoped capabilities you can author yourself. If you want to customize how Cyrus approaches work, start with the Skills page.
</Note>

Most users will never need this page.

Use it when:

* You want to understand Cyrus’s internal workflow
* You are debugging unexpected behavior
* You are contributing to or extending Cyrus

Procedures are not configuration knobs. They are deterministic workflows selected automatically based on issue intent.

***

## What is a procedure?

A procedure is a structured sequence of steps Cyrus follows to complete a task.

Each procedure is optimized for a specific type of work to ensure:

* Predictable behavior
* Consistent quality
* Safe execution

Procedures are selected automatically based on labels and issue content.

***

## Procedure structure

Most procedures follow the same high-level structure:

1. **Primary Phase**\
   Core work such as investigation, implementation, or planning
2. **Verification Phase** (when applicable)\
   Testing, validation, or checks
3. **Git Phase** (when applicable)\
   Committing changes and creating pull requests
4. **Summary Phase**\
   Posting results back to Linear

Not all procedures include every phase.

***

## Available procedures

### simple-question

**Purpose:**\
Answer questions without modifying code

**Typical Use Cases:**

* Codebase questions
* Clarification requests
* Information lookup

**Behavior:**

* Reads relevant files
* Gathers context
* Posts an answer in Linear

**Output:**\
Linear comment only (no PR)

***

### documentation-edit

**Purpose:**\
Update documentation or markdown files

**Typical Use Cases:**

* README updates
* Documentation fixes
* Markdown changes

**Behavior:**

* Applies documentation edits
* Commits changes
* Opens a pull request

**Output:**\
Pull request with documentation changes

***

### full-development

**Purpose:**\
Implement code changes with full verification

**Typical Use Cases:**

* New features
* Enhancements
* Refactoring

**Behavior:**

* Implements changes following existing patterns
* Runs tests and checks
* Opens a pull request

**Output:**\
Pull request with verified code changes

***

### debugger-full

**Purpose:**\
Systematic bug investigation and fixing

**Typical Use Cases:**

* Bug reports
* Production issues
* Test failures

**Behavior:**

* Reproduces the issue
* Identifies root cause
* Applies minimal fix
* Adds test coverage
* Verifies behavior

**Output:**\
Pull request with fix and tests

***

### orchestrator-full

**Purpose:**\
Coordinate large or multi-part work

**Typical Use Cases:**

* Large features
* Complex refactors
* Multi-component changes

**Behavior:**

* Breaks work into sub-issues
* Coordinates execution
* Verifies completion

**Output:**\
Multiple related issues and pull requests

***

### plan-mode

**Purpose:**\
Clarify requirements or produce an implementation plan

**Typical Use Cases:**

* Vague requests
* Ambiguous scope
* Multiple possible approaches

**Behavior:**

* Analyzes the request
* Produces clarifying questions or a plan

**Output:**\
Linear comment with questions or plan (no PR)

***

## How procedures are selected

Procedure selection follows this priority:

1. **Explicit intent labels** (e.g., Bug, Feature, Orchestrator)
2. **Issue content classification**
3. **Safe defaults**

Users cannot manually select procedures.

***

## Important notes

* Procedures may evolve over time
* Names and steps are internal implementation details
* Rely on labels and intent, not procedure names

If behavior feels incorrect, review:

* Issue labels
* Issue clarity
* Routing configuration

***

## Related pages

* [Labels & Routing](labels-and-routing.md)
* [Troubleshooting](troubleshooting.md)
