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.
How do I install this agent skill?
npx skills add https://github.com/tikalk/adlc-team-skills --skill factory-setupIs this agent skill safe to install?
- Gen Agent Trust Hubpass
No malicious patterns detected. The skill provides automated repository configuration for issue trackers by writing local YAML files and managing labels via official provider CLIs. It incorporates security best practices including input validation, secret detection, and mandatory user confirmation for write operations.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
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, liketeam-setup). - Headless via
adlc-cli factory setup— scripted runs;--providerpre-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-bootsuggested 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 —
--provideris 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
- Check: read
.adlc/issues-provider.ymlin the repo root (CWD; do not walk up). Validprovider:present → Mode 3. - Ask: present the choice — detect from remote (show the remote URL) or
pick from the four providers. In headless runs (
--providersupplied), skip asking and use Mode 2 with the given literal. - Confirm: show the exact file content to be written and get explicit
confirmation before writing (interactive runs). Headless runs write
directly — the
--providerflag IS the confirmation. - Commit step: copy the release template
(
skills/factory/factory-mission/references/issues-provider.yml) to.adlc/issues-provider.yml, set theprovider:line, report the path, and remind the user to commit it. Never write credentials, never overwrite.
Commit Step (shared by Modes 1–2)
- Refuse if the target exists (route to Mode 3 instead) — unless the user explicitly confirmed a switch in Mode 2.
- Copy the template; uncomment and set
provider: <literal>. - Show the final content; write only on confirmation (interactive) or
--provider(headless). - Report: path written, provider selected, reminder to commit, and that tracker runs will now resolve without halting.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/tikalk/adlc-team-skills/factory-setup">View factory-setup on skillZs</a>