<!-- markdownlint-disable MD013 -->
Setup Workflow
Run
once per repo, before the first use of any other workflow skill. It
teaches this repo where issues live, what the triage labels are called, and
where the domain docs sit — and records those answers as the
files the rest of the pipeline reads.
This is prompt-driven, not a deterministic script: explore, present what you
found, confirm with the user, then write. Never guess where guessing can be
replaced by looking.
Process
1. Explore
Read what already exists; don't assume:
- — is this a GitHub repo? Which owner/repo?
- / at root — does either exist? Is there already an
section?
- , at root.
- — did a prior run already write these?
- Existing issue labels (, or the GitHub MCP) — so triage maps
onto real labels instead of creating duplicates.
- Monorepo signals (, in ,
populated ) — decides single- vs multi-context docs.
2. Present findings and ask
Summarise what's present and missing. Take the three decisions in order, each
led by a recommended answer the user can accept in a word. Skip any the
exploration already settled.
A — Issue tracker. Where work is tracked. Default: GitHub Issues on
. Alternatives: GitLab, local markdown under
, or a workflow
the user describes. Propose the one matching the git remote.
B — Triage labels. Read the repo's real labels first (
or the
GitHub MCP). If the canonical set already exists (
,
,
,
,
,
,
),
keep them. If the repo already uses different strings for the same roles, map
onto those — never invent labels that already exist under another name. Record
the final mapping in
docs/agents/issue-tracker.md
.
C — Domain docs layout. Assume single-context (one
+ ADRs in
) unless monorepo signals appeared, in which
case propose a
.
3. Write
Write
docs/agents/issue-tracker.md
,
, and
from the confirmed answers, and add an
block pointing at them in whichever of
/
the repo already uses.
It's working if
docs/agents/issue-tracker.md
and
land (plus
), an
section appears in
or
, the proposed
tracker matches the real git remote, and the labels match strings that already
exist. Afterwards
,
, and
act on the right place
with the right labels instead of guessing.
Re-run only to switch trackers or start over — day-to-day tweaks are just edits
to
.