Skip to content
Skill Authoring
Skill

/factory-setup

Use when configuring the factory tracker provider for a repo (first factory run, missing .adlc/issues-provider.yml), verifying provider wiring, or switching trackers.

BOOST
From plugin
adlc-team-skills
14345 skills
Install
$ npx -y skills add tikalk/adlc-team-skills --skill factory-setup --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/factory-setup

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when configuring the factory tracker provider for a repo (first factory run, missing .adlc/issues-provider.yml), verifying provider wiring, or switching trackers.

SKILL.md

factory-setup.SKILL.md
name: factory-setup
description: Use when configuring the factory tracker provider for a repo (first factory run, missing .adlc/issues-provider.yml), verifying provider wiring, or switching trackers.

factory-setup

Overview

`factory-setup` is an interactive skill that wires a repo to its issue tracker for the factory (`factory-mission`, `factory-queue`, `factory-review`). It asks which tracker the repo uses, then writes `.adlc/issues-provider.yml` from the release template — provider and field mappings only, never credentials. It is invoked three ways:

  • **User-invoked** (`/factory-setup`) — anytime, to configure or check a project.
  • **Model-invoked by `team-boot`** — suggested when factory skills are

installed but no provider config resolves (self-install hint, like `team-setup`).

  • **Headless via `adlc-cli factory setup`** — scripted runs; `--provider`

pre-answers the pick so no question is asked.

The skill is non-destructive: it never overwrites an existing `.adlc/issues-provider.yml`. If one exists, it verifies the wiring instead (Mode 3).

When to Use

  • A tracker run halted with "no provider resolves" and named this skill.
  • Setting up a new repo for factory runs (GitHub, GitLab, Linear, or Jira).
  • You're unsure which tracker a repo is wired to and want a quick check.
  • Switching a repo from one tracker to another (re-pick, file rewritten only

on explicit confirmation).

  • `team-boot` suggested it because factory skills are installed but no

provider config resolves.

Decline Handling (when model-invoked by team-boot)

The user may choose not to configure the tracker right now. Handle decline explicitly to avoid a re-prompt loop:

  • If the user declines, do **not** write anything. Exit cleanly; the decline

is session-scoped only.

  • There is deliberately **no persistent opt-out marker**: the marker would

live in `.adlc/init-options.json`, whose schema is shared with adlc-cli — a tracker-specific key there is schema churn for a session preference. team-boot simply asks again next session.

  • Never force a mode; setup is user-consented at every step. In headless

runs there is no one to ask — `--provider` is required, else halt.

Core Process

Goal

Leave the repo with a committed-ready `.adlc/issues-provider.yml` carrying the correct `provider:`, or verify the existing wiring.

Security: Input Validation

The only free-form value this skill writes is the provider literal, which must be exactly one of `github`, `gitlab`, `linear`, `jira` — anything else is rejected before any write. Field-mapping values (project IDs, keys) are written verbatim into YAML comments or values only after the user confirms the rendered file content; never interpolate user values into shell — the write path is file-only (`cp` template, edit the `provider:` line). If the user pastes anything token-like (`glpat-`, `ghp_`, `xoxb-`, `sk-`), refuse to write it and remind them credentials arrive via environment only.

**Fast path:** if `.adlc/issues-provider.yml` already exists with a valid `provider:`, skip to Mode 3 (Already Configured) — do not re-detect, re-pick, or rewrite.

Modes at a Glance

| # | Mode | When | Details in | |---|------|------|-----------| | 1 | Detect from git remote | quick heuristic wanted (always confirmed) | `references/mode-detect.md` | | 2 | Pick explicitly | heuristic wrong, non-git remote, or `--provider` given | `references/mode-pick.md` | | 3 | Already configured | file exists — verify wiring | `references/mode-configured.md` |

Mode Selection Flow

1. **Check**: read `.adlc/issues-provider.yml` in the repo root (CWD; do not walk up). Valid `provider:` present → Mode 3. 2. **Ask**: present the choice — detect from remote (show the remote URL) or pick from the four providers. In headless runs (`--provider` supplied), skip asking and use Mode 2 with the given literal. 3. **Confirm**: show the exact file content to be written and get explicit confirmation before writing (interactive runs). Headless runs write directly — the `--provider` flag IS the confirmation. 4. **Commit step**: copy the release template (`skills/factory/factory-mission/references/issues-provider.yml`) to `.adlc/issues-provider.yml`, set the `provider:` line, report the path, and remind the user to commit it. Never write credentials, never overwrite.

Commit Step (shared by Modes 1–2)

1. Refuse if the target exists (route to Mode 3 instead) — unless the user explicitly confirmed a switch in Mode 2. 2. Copy the template; uncomment and set `provider: <literal>`. 3. Show the final content; write only on confirmation (interactive) or `--provider` (headless). 4. Report: path written, provider selected, reminder to commit, and that tracker runs will now resolve without halting.

Read more
Ships withadlc-team-skills

Agent skills that give coding agents your team's context at session start, so they stop working like strangers.

Get the whole plugin

Other skills on adlc-team-skills.