What Titus Does
- Receives tickets via the Linear plugin queue 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 theeng-queue-handler skill:
- View the ticket — read the full ticket details, acceptance criteria, and coding agent prompt
- Start work — move the ticket to “In Progress” and pop it from the queue
- Delegate to Claude Code — spawn the coding agent with the ticket’s implementation prompt
- Monitor execution — if the coding agent is stuck for 3+ heartbeat cycles, note the blocker on Linear and notify the owner on Slack
- 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
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. |
USER.md, AGENTS.md, BOOTSTRAP.md) that all agents share.
Configuration
Titus uses theeng identity:
| 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 repo and modifying theeng/ directory, or by creating a new identity from scratch. Point your manifest at the new identity source: