agentsclimarketplace

Claudboard workflow

Skill lukovicperisa/claudboard/skills/claudboard-workflow

Generates a tailored `.claude/skills/feature-workflow/` skill into any project by reading the claudboard analysis report, gathering config from the user, and rendering Markdown templates with capability blocks and substitution variables. Produces a complete, project-aware feature-workflow skill (SKILL.md, agents, scripts, config.json) ready to drive `/start-feature` flows. Use when: /claudboard-workflow, "set up feature workflow", "install start-feature skill", "generate feature-workflow", "configure feature workflow for this repo", "add the feature workflow skill", "generate my start-feature skill", "create the feature workflow for me", "I want a start-feature skill", "bootstrap feature workflow", "generate workflow skill", "set up my workflow skill", "add start-feature to this project".From its SKILL.md

Install
npx -y skills add lukovicperisa/claudboard --skill claudboard-workflow

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 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.

SKILL.md

27.0 KB, as published. Nobody here has run it

claudboard-workflow — Feature-Workflow Skill Generator

Reads the claudboard analysis report for the current project, prompts for any missing config values, resolves capability flags and substitution variables, then renders the feature-workflow template set and writes a complete .claude/skills/feature-workflow/ directory into the project.

Invocation

/claudboard-workflow [path]

Path defaults to the current working directory. Run after /analyse and /generate have already been run for the project.

Detection is script-driven: Phase 1d runs scripts/detect.sh to emit a JSON detection blob (schema v1). Fallback prose paths are provided for environments where the script is unavailable.


Phase 1: Pre-flight Checks

Run all checks before prompting the user for anything. Fail fast on hard blockers. Accumulate soft warnings and present them together after the checks pass.

1a. Prerequisite check

Check that the project has the claudboard base artifacts already generated:

  1. Check for CLAUDE.md at the project root.
  2. Check for .claude/rules/ directory containing at least one .md file.

If either is missing, stop immediately with this exact message:

Run /claudboard-generate first to create the context heavy agents will lean on. claudboard-workflow without that context produces weak prompts.

Do not proceed past this point until the prerequisite is met.

1b. Analysis report check

Look for .claude/reports/claudboard-analysis.md in the target project.

If not found, stop with this exact message:

No analysis report found. Run /claudboard-analyse first, then re-run /claudboard-workflow.

If found, read it and then:

  • Check generated_at in YAML frontmatter. If the report is older than 7 days, compute the exact day count and warn:

    Analysis report is N days old. Results may not reflect recent codebase changes. Continue with stale data, or re-run /claudboard-analyse first? [continue / re-run] Wait for the user response. If "re-run", stop here.

  • Check for a "Workflow Signals" subsection. If missing:

    Limited workflow signals available — capability blocks may default off; consider re-running /analyse to refresh. Record this warning and continue.

1c. Existing-skill guard

Workspace mode: If WORKSPACE_MODE = true (detected from the analysis report before Phase 1c runs), resolve the target path as the workspace root's .claude/ symlink target rather than the current repo's .claude/:

  1. Detect the workspace root as the parent of the analysis report path (the directory above the repo that contains the symlinked .claude/).
  2. Verify <workspace>/.claude is a symlink:
    test -L <workspace>/.claude && readlink <workspace>/.claude
    
    If it is NOT a symlink (not pointing at a meta-repo), stop with:

    Workspace detected but .claude/ is not a symlink to a meta-repo. Run /claudboard-workspace-init first to create the workspace meta-repo, then re-run /claudboard-workflow.

  3. Set the output target: SKILL_TARGET="<workspace>/.claude/skills/feature-workflow/".

Single-repo / monorepo mode: SKILL_TARGET=".claude/skills/feature-workflow/".

Check if $SKILL_TARGET already exists.

If it does, stop with this exact message:

feature-workflow skill already exists. Upgrade flow is not available in v1; remove the existing skill manually if you want to regenerate.

1d. MCP detection

Locate scripts/detect.sh relative to this SKILL.md and run it:

bash scripts/detect.sh "$PROJECT_PATH"

Schema version assertion: Check schema_version in the JSON output. If it is not "1", stop immediately:

Error: detect.sh schema_version mismatch (observed: X, expected: 1). Update skills/claudboard-workflow/scripts/detect.sh, then re-run.

Read the resolved boolean flags: mcp.tracker_jira, mcp.tracker_tr, mcp.repo_ado, mcp.repo_github. Surface any mcp.warnings entries to the user before proceeding.

Invocation-hint pre-resolution

Before the conflict prompt fires, scan the full user message that triggered this skill (including all tokens after /claudboard-workflow) for backend hints using case-insensitive whole-word matching against these token tables:

DimensionResolves toHint tokens (whole word, case-insensitive)
trackertracker_jirajira, atlassian
trackertracker_trtr, t&r, track, bosch
reporepo_adoado, azure, devops
reporepo_githubgithub, gh

Whole-word semantics: match on whitespace, punctuation, or string start/end boundaries. github-actions-test must NOT match github; for the Github repo must match.

For each dimension where exactly one set of tokens matched:

  • Set the chosen flag true, the other false.
  • Record "chosen via invocation hint" in sources.
  • Remove the corresponding entry from mcp.ambiguities so the conflict prompt below does not fire for that dimension.

For each dimension where both sets of tokens matched (e.g. "compare jira vs tr"):

  • Suppress the pre-resolution for that dimension — let the conflict prompt fire.

For each dimension where a hint was present but no MCP is configured for the hinted backend:

  • Silently ignore the hint.

If mcp.ambiguities is non-empty (after hint pre-resolution), resolve each remaining conflicting dimension:

Tracker dimension conflict:

Two tracker MCPs detected. Which should the generated workflow target?
[1] Atlassian Jira         (detected in: <source path>)
[2] Bosch Track & Release  (detected in: <source path>)

Set the chosen flag true, the other false. Record "chosen via prompt".

Repo dimension conflict:

Two repo MCPs detected. Which should the generated workflow target?
[1] Azure DevOps  (detected in: <source path>)
[2] GitHub        (detected in: <source path>)

Set the chosen flag true, the other false. Record "chosen via prompt".

Halt-on-conflict guard: After resolution, if both flags in either dimension are still true:

Error: precedence resolution failed — both flags in the [tracker|repo] dimension
are true after resolution. Cannot generate a deterministic workflow. Aborting.

No-backend warnings (accumulate for completion report):

  • Neither tracker: ⚠ No tracker MCP detected. Generated feature-workflow has no ticket integration. Configure Jira MCP or T&R MCP, then re-run.
  • Neither repo: ⚠ No repo MCP detected. Generated feature-workflow has no PR creation. Configure ADO MCP or GitHub MCP, then re-run.

Record detection state (flag + source + resolution) for the Phase 7 MCP detection table.

Fallback (detect.sh unavailable): Read .mcp.json, ~/.claude/mcp_servers.json, ~/.claude.json. Match server names/args: Jira (atlassian/jira/confluence, @atlassian/), T&R (bosch-jira-mcp/bosch-jira, bosch-jira-mcp), ADO (azure-devops/ado, azure-devops-mcp/@microsoft/azure), GitHub (github, github-mcp-server/@modelcontextprotocol/server-github). Apply project-level precedence. Run ambiguity prompts and conflict guard as above.


Phase 2: Config Gathering

Gather values for config.json and substitution variables. Work through each source in order — auto-detect first (Phase 2a), silent auto-fill second (Phase 2a-bis), sibling inheritance third (Phase 2b). No interactive prompts are issued for individual config fields.

2a. Auto-detect from git remote

Read the git_remote block from the detect.sh output (Phase 1d):

  • provider: "azure-devops", "github", or null
  • When ADO: azure_devops.org, azure_devops.project, azure_devops.repo → set as azureDevOps.org, azureDevOps.project, azureDevOps.repositoryName
  • When GitHub: github.owner, github.repo → set directly; record github.linkingKeyword = "Closes" as default

Inform the user of what was auto-detected before moving on. Unrecognised or missing remote URLs are handled by Phase 2a-bis silent auto-fill.

Fallback (detect.sh unavailable): Run git remote -v and parse manually. ADO: https://dev.azure.com/{org}/{project}/_git/{repo} (modern) or https://{org}.visualstudio.com/{project}/_git/{repo} (legacy). GitHub: [email protected]:{owner}/{repo}[.git] or https://github.com/{owner}/{repo}[.git].

2a-bis. Silent auto-fill

With the git remote resolved in Phase 2a, silently fill all remaining config.json fields without prompting the user. Work through the steps in order.

Step 1 — Atlassian MCP call (only when mcp.tracker_jira == true)

Call mcp__atlassian__getAccessibleAtlassianResources exactly once.

  • On success: take the first result in the response array and populate:
    • jira.cloudId ← id field
    • jira.urlBase ← url field (strip trailing slash)
  • On failure (network error, OAuth not completed, empty array, any exception): stub both fields silently:
    • jira.cloudId = "[TODO: JIRA_CLOUD_ID]"
    • jira.urlBase = "[TODO: JIRA_URL_BASE]"

Step 2 — jira.projectKey heuristic (only when mcp.tracker_jira == true)

Compute candidate = basename($PROJECT_PATH).toUpperCase().

  • If candidate matches ^[A-Z]+$: set jira.projectKey = candidate.
  • Otherwise (contains digits, hyphens, or mixed case that doesn't uppercase cleanly): set jira.projectKey = "[TODO: JIRA_PROJECT_KEY]" silently.
  • Workspace mode: always set jira.projectKey = "[TODO: JIRA_PROJECT_KEY]" — the workspace meta-repo has no single per-repo identifier.

Step 3 — Documented defaults (applied for active backends only)

Write the following values silently, skipping fields whose backend flag is false:

config.json fieldValueActive when
jira.customFields.sprint"customfield_10001"tracker_jira
jira.customFields.acceptanceCriteria"customfield_12206"tracker_jira
jira.transitions.start"In Progress"tracker_jira
jira.transitions.success"In Review"tracker_jira
jira.transitions.failure"Blocked"tracker_jira
jira.labels.area.backend"BE"tracker_jira
jira.labels.area.frontend"FE"tracker_jira
jira.labels.area.devops"DevOps"tracker_jira
jira.labels.area.docs"Docs"tracker_jira
azureDevOps.repositoryId"[TODO: ADO_REPO_ID]"repo_ado
github.linkingKeyword"Closes"repo_github
git.branchTypes["feature","bugfix","hotfix"]always
git.branchPattern"{type}/{ticket}/{slug}" if any tracker active, else "{type}/{slug}"always
git.ticketRegex"[A-Z]+-[0-9]+"always

Step 4 — Summary line

After all fields are written, print exactly one line:

Auto-filled N fields (M stubbed for manual editing)

Where N = total fields written, M = fields whose value is [TODO: …]. Do not list each field inline — the completion report's "Unfilled config values" section covers the stub list.

2b. Sibling-repo inheritance

Read the siblings array from the detect.sh output (Phase 1d).

If the post-filter siblings array is empty, proceed to Phase 3 without narrating the absence — the goal is a silent skip, not a "no siblings" status line. detect.sh has already filtered out siblings whose only inheritable values were [TODO: …] stubs or exact matches of the documented defaults; offering them would be vacuous (y and n produce identical resolved configs).

If siblings is non-empty, load references/sibling-inheritance.md for the field allowlist and exact inheritance offer wording, then present the offer.

After the user accepts, mark all inheritable fields from the chosen sibling's config_summary as resolved.

Fallback (detect.sh unavailable): Enumerate ../*/ manually for .claude/skills/feature-workflow/config.json, then follow sibling-inheritance.md. When parsing each sibling's config_summary, drop fields whose value matches ^\[TODO: .*\]$ and fields that match the documented default (jira.customFields.sprint = customfield_10001, jira.customFields.acceptanceCriteria = customfield_12206, github.linkingKeyword = Closes). Drop the sibling entirely if no inheritable field survives the filter.


Phase 3: Capability-Flag Resolution

Load references/block-catalog.md at the start of Phase 3. Resolve all v1 capability flags per the catalog's resolution table. The four MCP flags (TRACKER_JIRA, TRACKER_TR, REPO_ADO, REPO_GITHUB) are already set from Phase 1d.

Missing Workflow Signals: Default WORKSPACE_MODE, CROSS_SERVICE_EDGES, SHARED_LIB, AUTH_PERIMETER, RABBITMQ, JMS, GRAPHQL, WEBSOCKET to false and note "defaulted off (no workflow signals)".

Missing Architectural Patterns subsection: Default SAGA, CQRS, OUTBOX, CIRCUIT_BREAKER to false; emit: "patterns subsection absent — re-run /analyse".

Record every resolved flag value and its evidence source for display in Phase 5.


Phase 4: Substitution Resolution

Load references/substitution-catalog.md at the start of Phase 4. For each {{VAR_NAME}} token found in a template:

  1. Read the source field from the analysis report (per catalog).
  2. If present and non-empty, use its value.
  3. If absent or empty, apply the catalog-defined fallback.
  4. If still unresolvable, use [TODO: VAR_NAME] and record a warning.

For WORKSPACE_MODE-specific variables, resolve as empty string when WORKSPACE_MODE = false unless used in an always-on section.


Phase 5: Pre-write summary

Before writing any files, present a complete summary.

## claudboard-workflow — Ready to Generate

### Files to write:
  $SKILL_TARGET  (= .claude/skills/feature-workflow/ or workspace equivalent)
  SKILL.md, config.json, references/claude-pricing.md, references/ticket-description-template.md
  references/pricing.md, references/cost-tick.md
  scripts/: lib.sh, prepare-*.sh, compute-cost.sh, [jira-add-labels.sh if TRACKER_JIRA], [load-repo-context.sh if WORKSPACE_MODE]
  agents/: architect, design-reviewer, git, implementation, sdd-expert, spec-reviewer
           [jira-agent if TRACKER_JIRA] [tr-agent if TRACKER_TR]
           [pr-agent-ado if REPO_ADO] [pr-agent-github if REPO_GITHUB]

### Capability blocks:
  ENABLED:  TRACKER_JIRA, JPA, AUTH_PERIMETER
  DISABLED: TRACKER_TR, REPO_ADO, REPO_GITHUB, WORKSPACE_MODE, CROSS_SERVICE_EDGES,
            SHARED_LIB, MEMORIES_PRESENT, MONGODB, KAFKA

### Resolved config:
  jira.cloudId:              a1b2c3d4-...
  jira.projectKey:           PLAT
  jira.urlBase:              https://example.atlassian.net
  jira.customFields.sprint:  customfield_10001
  azureDevOps.repositoryId:  [TODO: AZURE_DEVOPS_REPOSITORY_ID]  ← stub
  git.branchPattern:         {type}/{ticket}/{slug}
  git.ticketRegex:           [A-Z]+-[0-9]+

[WORKSPACE MODE ONLY]:
  Target path:  <workspace>/.claude/skills/feature-workflow/
                (via symlink → <meta-repo>/.claude/skills/feature-workflow/)
  Repos map:    <N> repos detected (config.json will include repos: { ... })
  Per-repo feature-workflow skills found (will NOT be auto-deleted):
    • <workspace>/<repo>/.claude/skills/feature-workflow/
    [listed for manual cleanup — see completion report]

I'll proceed now — interrupt with Esc to abort or adjust.

Path violation guard: Any resolved output path that falls outside $SKILL_TARGET must be refused immediately:

Write refused: target path [path] is outside the allowed directory [SKILL_TARGET]. Aborting.

Workspace-mode guard: In workspace mode, any write path that resolves into a per-repo .claude/ (i.e., <workspace>/<repo>/.claude/) rather than the meta-repo is rejected:

Write refused: workspace mode prohibits writing into a per-repo .claude/. feature-workflow is generated once at the workspace root; per-repo copies are not generated. Aborting.

Per-repo feature-workflow scan (workspace mode only): Before the confirmation gate, run find <workspace> -maxdepth 3 -type d -name "feature-workflow" -path "*/.claude/skills/*" ! -path "<workspace>/.claude/*" and record any hits. List them in the completion report — NOT auto-deleted.


Phase 6: Template Rendering and File Writes

Resolve the absolute path of references/feature-workflow.template/ relative to this skill file. Hold it as $TEMPLATE_DIR for the rest of this phase.

6a. Batch-copy verbatim files

Verbatim files have no .template suffix — no flag evaluation or variable substitution needed. Copy them via a single bash block to avoid loading file contents into the conversation context. Do NOT use Read+Write for these files.

mkdir -p "$SKILL_TARGET/agents" "$SKILL_TARGET/scripts" "$SKILL_TARGET/references"

# Unconditional copies
cp "$TEMPLATE_DIR/scripts/lib.sh"                                   "$SKILL_TARGET/scripts/"
cp "$TEMPLATE_DIR/scripts/prepare-commit.sh"                        "$SKILL_TARGET/scripts/"
cp "$TEMPLATE_DIR/scripts/prepare-pr.sh"                            "$SKILL_TARGET/scripts/"
cp "$TEMPLATE_DIR/scripts/prepare-squash.sh"                        "$SKILL_TARGET/scripts/"
cp "$TEMPLATE_DIR/scripts/compute-cost.sh"                          "$SKILL_TARGET/scripts/"
chmod +x "$SKILL_TARGET/scripts/compute-cost.sh"
cp "$TEMPLATE_DIR/references/claude-pricing.md"                     "$SKILL_TARGET/references/"
cp "$TEMPLATE_DIR/references/ticket-description-template.md"        "$SKILL_TARGET/references/"
cp "$TEMPLATE_DIR/references/pricing.md"                            "$SKILL_TARGET/references/"
cp "$TEMPLATE_DIR/references/cost-tick.md"                          "$SKILL_TARGET/references/"

Conditional copies — run each cp only when the corresponding flag is true:

FlagFile
TRACKER_JIRAcp "$TEMPLATE_DIR/scripts/jira-add-labels.sh" "$SKILL_TARGET/scripts/"
WORKSPACE_MODEcp "$TEMPLATE_DIR/scripts/load-repo-context.sh" "$SKILL_TARGET/scripts/"

Verify that all expected files exist after the copy:

ls -la "$SKILL_TARGET/scripts/" "$SKILL_TARGET/references/"
ls -la "$SKILL_TARGET/agents/"  # conditional files only

6b. Template rendering algorithm

For each .template file:

Step 0 — INCLUDE expansion: Scan for {{INCLUDE <path>}} directives; resolve relative to $TEMPLATE_DIR; replace each with verbatim file contents (warn and replace with <!-- WARNING: INCLUDE file not found: <path> --> if missing). Run before Steps 1 and 2 so included content may contain IF blocks and VAR tokens.

Step 1 — Capability block evaluation:

Scan for <!-- IF FLAG -->...<!-- ENDIF --> blocks.

For each block found:

  • If the flag resolves to true: remove the <!-- IF FLAG --> and <!-- ENDIF --> comment lines; keep the inner content unchanged.
  • If the flag resolves to false: remove the entire block including its surrounding whitespace lines.
  • If the flag name is not in the v1 catalog: log a warning (Unknown capability flag: FLAG_NAME — treating as disabled) and remove the block.

Blocks may be nested only if the outer flag is distinct from the inner flag. Process outer blocks before inner blocks.

Step 2 — Variable substitution:

Scan for {{VAR_NAME}} tokens.

For each token found:

  • Replace with the resolved value from Phase 4.
  • If the resolved value is [TODO: VAR_NAME], leave it as-is (the literal appears in the output so the user knows to fill it in).

Step 3 — Write output:

Strip the .template suffix from the filename to get the output filename. Write to .claude/skills/feature-workflow/<relative-path-within-template-dir>.

Verify the write succeeded before moving to the next file.

6c. File mapping

Templated files (rendered in 6b, written via Write tool):

Template fileOutput fileCondition
SKILL.md.templateSKILL.mdalways
config.json.templateconfig.jsonalways
agents/architect-agent.md.templateagents/architect-agent.mdalways
agents/design-reviewer.md.templateagents/design-reviewer.mdalways
agents/git-agent.md.templateagents/git-agent.mdalways
agents/implementation-agent.md.templateagents/implementation-agent.mdalways
agents/sdd-expert-agent.md.templateagents/sdd-expert-agent.mdalways
agents/spec-reviewer.md.templateagents/spec-reviewer.mdalways
agents/jira-agent.md.templateagents/jira-agent.mdTRACKER_JIRA = true
agents/tr-agent.md.templateagents/tr-agent.mdTRACKER_TR = true
agents/pr-agent-ado.md.templateagents/pr-agent-ado.mdREPO_ADO = true
agents/pr-agent-github.md.templateagents/pr-agent-github.mdREPO_GITHUB = true

All output paths are relative to $SKILL_TARGET. Verbatim files are listed in the 6a bash block and must not be read into context.

6d. Upgrade path footer

After rendering SKILL.md.template, append the following section at the bottom of the rendered .claude/skills/feature-workflow/SKILL.md before writing:

## Upgrade Path

Generated by claudboard-workflow on {{GENERATION_DATE}} from template version v1.
To regenerate with updated templates, remove this directory and re-run
`/claudboard-workflow`.

Replace {{GENERATION_DATE}} with today's date in YYYY-MM-DD format.

6e. Write config.json

After rendering config.json.template, parse the rendered content and write it as properly formatted JSON to .claude/skills/feature-workflow/config.json.


Phase 7: Completion Report

After all files are written, present a full completion report.

## claudboard-workflow — Done

### Files written:
  [list each file actually written under $SKILL_TARGET, one per line]

### Capability blocks:
  Enabled:  TRACKER_JIRA, JPA, AUTH_PERIMETER
  Disabled: REPO_ADO, REPO_GITHUB, TRACKER_TR, WORKSPACE_MODE, CROSS_SERVICE_EDGES,
            SHARED_LIB, MEMORIES_PRESENT, MONGODB, KAFKA

### MCP detection:

| Backend | Result | Source |
|---------|--------|--------|
| TRACKER_JIRA (Atlassian Jira) | detected | .mcp.json |
| TRACKER_TR (Bosch T&R) | not detected | — |
| REPO_ADO (Azure DevOps) | not detected | — |
| REPO_GITHUB (GitHub) | not detected | — |

[list any precedence prompts answered and any indirect-match warnings]

[IF TRACKER_TR active, append:]
### T&R v1 limitations:
bosch-jira-mcp (6 tools) has no create/worklog/sprint-write. Use existing
ticket key; sprint and AC write into description body; labels via
read-modify-write. Each limitation lifts when the missing tool lands in the MCP.

## Unfilled config values

[Include this section ONLY when one or more `[TODO: …]` stubs were written to
`config.json`. Omit the entire section when all fields were resolved — silence
signals success.]

The following config.json fields were stubbed because they could not be
auto-detected. Edit them before running /start-feature:

  • <json_path> [TODO: FIELD_KEY] Path: <absolute path to $SKILL_TARGET/config.json>

List every stub on its own line with the exact JSON path (e.g.
`jira.projectKey`, `azureDevOps.repositoryId`) and the `[TODO: …]` value
written. Include the full filesystem path to `config.json` on the next
indented line for copy-paste navigation.

Clarification autonomy default set to `{{CLARIFY_AUTONOMY_DEFAULT}}` (override per-invocation or edit `clarify.defaultAutonomy` in `config.json`).

Live per-phase cost ticks enabled — `compute-cost.sh` and `pricing.md` bundled into `scripts/` and `references/`; a one-line cost summary is emitted at the end of each of phases 1–6, with reconciliation in Phase 7b.

**Next steps:** Try `/start-feature` on a small ticket to validate the wiring.

Workspace-mode completion report additions (append when WORKSPACE_MODE=true):

### Workspace skill location
  Generated into: <workspace>/.claude/skills/feature-workflow/
  Resolved via:   <meta-repo-path>/.claude/skills/feature-workflow/

  Stub all [TODO: repositoryId] entries in config.json before first use.
  After review: cd <meta-repo-path> && git add .claude/skills/feature-workflow/ && git commit && git push

### Per-repo feature-workflow skills found (not auto-deleted):
  [listed paths — remove manually: rm -rf <path>]

### Validation: /start-feature [small cross-service feature] from workspace root

Error Handling

ConditionBehavior
Prereq check failsStop with exact message from 1a
Analysis report missingStop with exact message from 1b
Analysis report staleWarn with day count, offer continue or re-run
Workflow Signals missingWarn, continue with flags defaulted off
Existing skill foundStop with exact message from 1c
Unknown capability flag in templateLog warning, treat block as disabled
{{VAR}} unresolvableUse [TODO: VAR_NAME], record in completion report
Write outside allowed pathRefuse with path-violation message, abort
Template file not foundWarn, skip file, list as missing in completion report

Constraints

  • Never write outside .claude/skills/feature-workflow/. The path guard in Phase 5 is non-negotiable.
  • No source code modifications. Only .claude/ is touched.
  • Verbatim files are not templated. Do not substitute variables in files without the .template suffix.
  • Tracker agent files are conditional. Write jira-agent.md only when TRACKER_JIRA = true; write tr-agent.md only when TRACKER_TR = true. Never write both.
  • Repo agent files are conditional. Write pr-agent-ado.md only when REPO_ADO = true; write pr-agent-github.md only when REPO_GITHUB = true. Never write both.

Reference Load Gates

Load these references only when their gate condition is met. Loading early wastes tokens on content the model won't use.

ReferenceLoad when
references/block-catalog.mdStart of Phase 3 (render time) only
references/substitution-catalog.mdStart of Phase 4 (render time) only
references/tracker-config-prompts.mddocumentation only — never loaded at runtime
references/repo-config-prompts.mddocumentation only — never loaded at runtime
references/sibling-inheritance.mdsiblings array non-empty (load before Phase 2b offer)
references/feature-workflow.template/*Phase 6 render — load individual templates on demand

Keep looking

Skills are one crate of 628,971. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.