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

# Titus — Engineer

> How Titus picks up tickets, writes code, opens PRs, and iterates on review feedback

Titus is Clawup's **Engineer**. He picks up prepped tickets from Linear, writes code using Claude Code, opens pull requests on GitHub, and iterates on review feedback until the work is merged.

## What Titus Does

* Receives tickets via the [Linear plugin queue](/integrations/linear#linear-plugin) when they enter "Backlog" or "Started"
* Delegates implementation to Claude Code
* Runs typechecks, builds, and tests before opening PRs
* Opens pull requests on GitHub and assigns Scout for review
* Responds to PR review comments and pushes fixes
* Alerts the owner on Slack when stuck or hitting repeated failures

## How Work Gets Triggered

Titus's work is driven by the **openclaw-linear plugin**. When a ticket moves to "Backlog" or "Started" in Linear, the plugin adds it to Titus's queue and triggers the `eng-queue-handler` skill:

1. **View the ticket** — read the full ticket details, acceptance criteria, and coding agent prompt
2. **Start work** — move the ticket to "In Progress" and pop it from the queue
3. **Delegate to Claude Code** — spawn the coding agent with the ticket's implementation prompt
4. **Monitor execution** — if the coding agent is stuck for 3+ heartbeat cycles, note the blocker on Linear and notify the owner on Slack
5. **Verify and ship**:
   * **Pass** — create a PR, move ticket to "In Review", assign Scout
   * **Fail (\< 3 attempts)** — spawn coding agent to fix errors and re-run
   * **Fail (3+ attempts)** — create a draft PR with failure summary and assign Scout

Titus's heartbeat (1-minute cycle) only handles bootstrap detection on first boot.

## Skills

| Skill                 | Purpose                                                             |
| --------------------- | ------------------------------------------------------------------- |
| `eng-queue-handler`   | End-to-end ticket processing — delegates to coding agent, ships PRs |
| `eng-ticket-workflow` | Structured ticket implementation workflow                           |
| `eng-pr-tester`       | PR testing workflow                                                 |
| `pr-review-resolver`  | PR review comment resolution                                        |

## Workspace Files

Titus's behavior is defined by workspace files injected into `~/.openclaw/workspace/` during bootstrap:

| File           | What It Does                                                                                         |
| -------------- | ---------------------------------------------------------------------------------------------------- |
| `SOUL.md`      | Core personality — approach, values, superpowers, boundaries. Defines who Titus *is* as an engineer. |
| `IDENTITY.md`  | Name, role label, emoji, avatar metadata.                                                            |
| `HEARTBEAT.md` | Periodic checklist — bootstrap detection on first boot.                                              |
| `TOOLS.md`     | Tool-specific notes and common commands for Titus's workflow.                                        |

He also receives the shared base files (`USER.md`, `AGENTS.md`, `BOOTSTRAP.md`) that all agents share.

## Configuration

Titus uses the `eng` identity:

```yaml theme={null}
- name: agent-eng
  displayName: Titus
  role: eng
  identity: "https://github.com/stepandel/army-identities#eng"
  volumeSize: 50
  plugins:
    - openclaw-linear
    - slack
  deps:
    - gh
    - brave-search
```

| Field         | Default               | Notes                                              |
| ------------- | --------------------- | -------------------------------------------------- |
| `identity`    | `army-identities#eng` | Built-in engineer identity                         |
| `volumeSize`  | 50 GB                 | Larger volume — Titus clones repos and runs builds |
| `model`       | Claude Opus 4.6       | Set in `identity.yaml`                             |
| `codingAgent` | `claude-code`         | Set in `identity.yaml`                             |

## Customization

You can customize Titus by forking the [army-identities](https://github.com/stepandel/army-identities) repo and modifying the `eng/` directory, or by creating a new identity from scratch with [`army-create`](https://github.com/stepandel/army-create) (`npx army-create`). Point your manifest at the new identity source:

```yaml theme={null}
identity: "https://github.com/your-org/your-identities#eng"
```

See [Identities & Customization](/architecture/identities) for details.
