Connect a repo to Allwright

Label a Jira ticket → a runner on your machine runs Claude Code read-only over your repo → the implementation plan lands as a Jira comment. Your Jira token, your repo and your Claude Code auth never reach our servers.

Let Claude Code do the setup

Open a Claude Code session inside the repo you want to connect and paste this. It reads the playbook, audits what already exists on that machine, and fixes the gaps.

Read https://ticketpilot.sublimitysoft.com/ticketpilot-setup.md and follow it to connect this repository to Allwright. Audit what is already set up on this machine, tell me exactly what is missing, then fix what you can. Anything that needs a secret, print the command and I will run it myself.

Secrets stay out of the chat by design: the playbook tells the agent to hand you the exact command and wait, so Jira and enrolment tokens are only ever typed into your own terminal.

Read the raw playbook →

Or do it by hand

  1. 1. Prereqs on the machine with your repo. Node 20+, a git checkout, Claude Code installed and logged in (a subscription is enough — there is no API key to configure), and a Jira API token for an account that can browse issues, comment, and edit labels.
  2. 2. Add a runner. Dashboard Add runner → copy the enrolment token (single use, 24h). Then, in your own terminal:
    allwright init --cp-url https://ticketpilot.sublimitysoft.com
    The wizard asks for the token and your Jira credentials, validates them against Jira, and saves them to ~/.config/ticketpilot/runner.json (mode 600) on that machine only.
  3. 3. Map the repo.
    allwright repo add "acme/backend" /path/to/checkout
  4. 4. Create a Project — Jira project key (e.g. ENG) plus that same repo name, character for character. A mismatch here is the most common reason a runner connects but never polls.
  5. 5. Create a Rule — trigger label agent-dev, plan-only action. Edit the prompt template to describe your stack; it is the highest-leverage setting here.
  6. 6. Start and verify.
    allwright test
    allwright start
    Then hit Test connection on the project, label a ticket, and watch it under Runs.

Connected, but nothing polls?

  • · The runner is enrolled against a different control plane — check controlPlaneUrl in runner.json.
  • · No project or rule exists yet, so the runner syncs an empty config and stays quiet.
  • · Repo name in the UI does not match the name used in repo add.
  • · The ticket already carries agent-planned or agent-failed — remove the label to retry.
  • · The rule is disabled, or the Jira project key is wrong for that ticket.

Full diagnosis order is in the playbook.

Every run is plan-only: Claude Code is pinned to Read, Glob and Grep, so no code is written. Jira Cloud only.