Tlon workflow doctor

SkillAI & models

Use when setting up a machine for mobile agent work on this repository, when the tlon-workflow skill's prerequisite check fails, or when stim, agent-device, gh, or their skills are missing, outdated, or installed under an old name.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Tlon workflow doctor skill

What this skill tells your AI

The instructions your AI receives, as published by tloncorp/tlon-apps in .agents/skills/tlon-workflow-doctor/SKILL.md and read by ahel’s review.

One script checks everything the mobile agent loop depends on, and installs what it can.

node .agents/skills/tlon-workflow-doctor/check.mjs          # report
node .agents/skills/tlon-workflow-doctor/check.mjs --fix    # install and re-check

Run it unsandboxed, from the repository root (the path above is relative to it). It exits 0 when every line is ok or note, and 1 while any line says fix.

Unsandboxed because gh auth status cannot reach the keyring inside a shell sandbox and reports a false not authenticated. It always inspects the source checkout, even when run from a worktree's copy: that is where apps/tlon-mobile/.env.local lives, and stim worktree warm copies it from there.

What it checks

LineRequirement--fix does
gh2.99.0 or newer (the --attach upload flag), authenticatednothing; prints the install or gh auth login line
stimthe stim package, 1.1.0 or newer, resolved first on PATH; a note when npm has a newer oneinstalls or upgrades stim; uninstalls stim-cli when that is what resolves
stim portsthe ports command, which the loop's web and Cosmos steps take their ports fromupgrades stim
stim skillstim skill in ~/.agents/skills or this reponpx skills add appandflow/stim -g -y
agent-deviceinstalled; a note when npm has a newer onenpm install -g agent-device
agent-device skillagent-device skill in ~/.agents/skills or this reponpx skills add callstack/agent-device -g -y
ship loginDEFAULT_SHIP_LOGIN_URL + DEFAULT_SHIP_LOGIN_ACCESS_CODE, or DEFAULT_TLON_LOGIN_EMAIL + DEFAULT_TLON_LOGIN_PASSWORD, in the source checkout's apps/tlon-mobile/.env.localnothing; they are credentials (see the tlon-workflow skill, Sign in)
stim doctorno cost finding in apps/tlon-mobile; one is a note with its fix, since it slows builds without blocking themnothing; prints each finding and its fix

--fix only installs global npm and Homebrew packages and adds skills under ~/.agents/skills. It touches nothing in this repository.

It deliberately does not run stim doctor --fix, which writes .claude/settings.local.json -- your own agent permission configuration -- and can delete generated Android .cxx directories. Both are decisions for the person running this, not repairs to apply on a tool's say-so. The stim doctor line prints what it found and the fix each finding names, as a note: a slow cache costs minutes, not the task.

When a line stays fix

The line carries the exact command. Two that need a person: gh auth login opens a browser, and the ship login values are credentials nobody but the user should type.

The ship login note is worth clearing even though it is only a note. Without those two variables every reproduction that needs a signed-in app stalls on a 2FA code an unattended run cannot read. With them, sign-in is four taps and no typing.

Signals

GitHub stars
108
Forks
49
Last commit
Sep 2026

ahel review

  • K1binfo
    installs-packages
  • K1binfo
    installs-packages (in check.mjs)

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Gateway key
tlon-workflow-doctor
Source
github.com/tloncorp/tlon-apps