Setup harness skills
Skill ClydeShen/harness-skill/skills/engineering/setup-harness-skills
10 Claude Code skills for compound engineering workflows — session discipline, harness auditing, phase governance, and issue pipeline
npx -y skills add ClydeShen/harness-skill --skill setup-harness-skillsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Creates CLAUDE.md/AGENTS.md from the harness template (if absent) and configures docs/agents/ so harness skills know the issue tracker, triage labels, domain docs, GitHub Project board, and session state location. Run before first use of triage, to-prd, to-issues, context-handover, or session-start — or if those skills appear to be missing context. Typically consumes <30% of a context window.
SKILL.md
7.3 KB, ~1.8k tokens by cl100k_base, as published. Nobody here has run it
Setup Harness Skills
One-time gateway. Explore first, then ask questions one section at a time. Never dump all questions at once.
Step 1 — Explore
Before asking anything, read and report a one-line summary:
.git/config→ remote origin (owner/repo)CLAUDE.md/AGENTS.md→ present?CONTEXT.md→ present?docs/agents/→ prior setup files?.harness/config.json→ prior GSD or harness setup? (read harness key if present).harness/state.json→ prior session state?.harness/PROJECT.md→ prior project context?.claude/harness.json→ old config to migrate? (deprecated — migrate values to .harness/config.json)~/.claude/skills/→ anygsd-*skill present? Any ofbrainstorming,systematic-debugging,writing-plans,subagent-driven-developmentpresent?
Example: "Found CLAUDE.md (present), no docs/agents/, GitHub remote owner/repo."
Append to the summary line if collections are missing:
- Both absent:
"Tip: GSD Redux and Superpowers are recommended companion collections — see https://github.com/open-gsd/get-shit-done-redux and https://github.com/obra/superpowers" - Only GSD Redux absent:
"Tip: GSD Redux not installed — https://github.com/open-gsd/get-shit-done-redux" - Only Superpowers absent:
"Tip: Superpowers not installed — https://github.com/obra/superpowers" - Both present: omit entirely.
Section A — Issue Tracker
"Where do issues live? Skills like
triage,to-prd, andto-issuesread from and write to it."
- GitHub Issues — standard
gh issueCLI commands - GitHub Projects v2 — GraphQL API board with custom fields
- Local markdown — files in
.scratch/<feature>/ - Other — describe in prose
Wait for answer before Section B.
Section A.5 — Instruction File
Run only if neither CLAUDE.md nor AGENTS.md exists.
"No instruction file found. Which would you like to create?"
CLAUDE.md— standard for Claude Code projectsAGENTS.md— use when targeting multiple AI agents (Codex, Kiro, Gemini, etc.)
Do NOT choose unilaterally. Wait for the user's answer.
Section B — Triage Labels
"Five canonical labels:
status:needs-triage,status:needs-info,status:ready-for-agent,status:ready-for-human,status:wontfix. Also:status:needs-prd,status:needs-review,status:in-progress,status:done. Use these or override?"
Section C — Domain Docs
"Single-context (one CONTEXT.md + docs/adr/) or multi-context (CONTEXT-MAP.md for monorepos)?"
Options: Single-context · Multi-context · Neither yet
Section D — GitHub Project Board + Milestones
"Which board should
context-handoverandsession-startuse? (Leave blank to skip.) Default columns: Triage → Needs PRD → Needs Review → Ready for Agent → In Progress → Done. Default milestones: Design, MVP, v1.0."
After confirming the board, surface the PAT requirement (no new questions — informational only):
"Board sync requires a PAT. Two GitHub Actions workflows will be created to auto-add issues and sync label→column. Both need a repository secret named
PROJECT_TOKEN— a Classic PAT withrepo+projectscopes. After setup completes, run this in a real terminal (not via!in Claude Code, which has no stdin):gh secret set PROJECT_TOKEN --repo {owner}/{repo}Without it, new issues won't appear on the board and column sync will silently fail."
After that, inform the user of the two sizing fields (no new questions — informational only):
"The board uses two sizing fields:
- Effort (windows): token budget estimate — set from the
Effort:value in an agent brief. 1 ≈ 150K–200K tokens (single slice); 2 ≈ 300K–400K (1 phase); 3 ≈ 500K–700K (full feature); 4+ = epic.- Size (T-shirt): rough relative size. Suggested mapping: XS ≤ 1 window, S = 2, M = 3–4, L = 5–6, XL ≥ 7. Both are optional but Effort is read by
context-handoverfor session budget planning."
Section E — Session State Location
"
.harness/state.jsontracks active phase, session status, and last-session context as machine-readable JSON. Three hooks (SessionStart,Stop,PostToolUse) maintain it automatically. Confirm this path or override?"
Section F — Context Window & Model
"Which model are you using? This determines the context window size and affects session budget calculations."
- Claude Code (Opus 4.x / Sonnet 4.6) — 1M context (1,000,000 tokens) ✅ default
- Claude Code (Haiku 4.5 / other models) — 200K context (200,000 tokens)
- Custom model — specify model name + context window in tokens
Wait for answer before proceeding.
If custom: ask for model name (e.g. qwen2.5-coder-32b) and context window size in tokens.
Output
After all five sections, show the draft of what will be written and confirm before writing. Then execute the 10-step output sequence in output-steps.md — it covers: CLAUDE.md/AGENTS.md (only if absent, written from embedded template), .harness/config.json (harness namespace), GitHub labels, milestones, Project v2 board, branch protection, CI scaffold, .gitignore, and seed files to docs/agents/.
.harness/ files written by setup-harness-skills
.harness/config.json— GSD defaults +harnessnamespace (idempotent merge; never overwrites GSD keys).harness/state.json— session state JSON (only if absent; seesession-config.mdfor schema).harness/PROJECT.md— from GSD project template (only if absent).harness/ROADMAP.md— stub with four phase entries: 01-discuss, 02-plan, 03-execute, 04-verify (only if absent).harness/settings.json— model type + context window size (always written; idempotent merge)
.gitignore additions
.harness/phases/*/.continue-here.json # resume context — ephemeral, never commit
Migration (when old .claude/ artifacts exist)
.claude/harness.json→ merge values into.harness/config.jsonharness namespace.claude/session.json→ extract phase/task values into.harness/state.jsonposition fields.harness/STATE.md→ extract session fields into.harness/state.json(then delete STATE.md).claude/handoff.md→ map into.continue-here.jsonfields (lossy — preserves content incontext)- Old files are NOT deleted — user confirms before removal
.harness/config.json — project_fields (written by Step 5)
When a GitHub Project v2 board is configured, Step 5 appends a harness.project_fields key with field IDs and option maps. Downstream skills (harness-triage, harness-issues) read this key before syncing board fields. If absent, those skills skip board sync and print a warning.
Print a setup summary at the end: ✅ completed · ⚠️ requires manual action · 📁 files written.
Then: "Run /session-start to begin your first session."