mirror of
https://github.com/Donchitos/Claude-Code-Game-Studios.git
synced 2026-10-16 01:37:05 +00:00
Release 1.1.1 — skills and agents work again outside auto mode (#129)
The skill config line is now one plain command, pre-approved in each skill's own allowed-tools. The 1.1.0 line failed Claude Code's injected-command permission check as "Contains expansion", so outside auto mode 66 skills aborted and game-designer / creative-director could not launch. Fixes #128 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
d05699707f
commit
7ed2c3e9c4
@@ -7,7 +7,14 @@ How a skill learns its effective settings. **One command, no prose chain.**
|
|||||||
A skill that needs config puts this near the top of its **body** (not frontmatter):
|
A skill that needs config puts this near the top of its **body** (not frontmatter):
|
||||||
|
|
||||||
````markdown
|
````markdown
|
||||||
!`source .claude/hooks/yaml-helper.sh 2>/dev/null && resolve_config`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys a,b`
|
||||||
|
````
|
||||||
|
|
||||||
|
**and** pre-approves exactly that command in its own frontmatter, with its own
|
||||||
|
directory name in the path:
|
||||||
|
|
||||||
|
````yaml
|
||||||
|
allowed-tools: Read, …, Bash(bash "*/.claude/skills/<skill-name>/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
````
|
````
|
||||||
|
|
||||||
The command runs as preprocessing *before the model sees the skill*, and its
|
The command runs as preprocessing *before the model sees the skill*, and its
|
||||||
@@ -23,13 +30,47 @@ Skills that resolve a per-system tier pass the system name: `resolve_config comb
|
|||||||
`context: |` block containing `!` commands **never executes**; put the command in
|
`context: |` block containing `!` commands **never executes**; put the command in
|
||||||
the skill body instead.
|
the skill body instead.
|
||||||
|
|
||||||
Two consequences:
|
## Why exactly this command — the permission check
|
||||||
|
|
||||||
- `allowed-tools` does **not** gate this. It governs tools the *model* calls
|
Claude Code permission-checks every injected command **before** the skill
|
||||||
during the turn; preprocessing happens before that. A skill needs no `Bash`
|
renders. Outside auto mode, anything that does not come back "allow" — including
|
||||||
grant to use `resolve_config`.
|
a command that would normally just prompt — **aborts the whole invocation**, and
|
||||||
- The repo-wide setting `disableSkillShellExecution: true` disables it. If a
|
the model never sees the skill. A preloaded skill (`skills:` on an agent) is
|
||||||
skill sees no config block, it falls back to the defaults below.
|
checked the same way at agent launch, so a failing bootstrap line stops the agent
|
||||||
|
from starting (GitHub issue #128). Measured on Claude Code 2.1.281 in default
|
||||||
|
mode:
|
||||||
|
|
||||||
|
| Bootstrap form | Repo root | Subdirectory | Bash-less agent preloading it |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `source "${CLAUDE_PROJECT_DIR:-.}/…" && resolve_config` (v1.1.0) | aborts | aborts | fails to launch |
|
||||||
|
| same, with a bare `Bash` grant | aborts | — | — |
|
||||||
|
| `bash "${CLAUDE_PROJECT_DIR}/…"` + grant | runs | aborts | — |
|
||||||
|
| **`bash "${CLAUDE_SKILL_DIR}/../../hooks/…"` + per-skill grant** | **runs** | **runs** | **launches** |
|
||||||
|
|
||||||
|
What that table rules out:
|
||||||
|
|
||||||
|
- **No `${VAR:-x}` expansion.** It fails as "Contains expansion", and no grant
|
||||||
|
can approve it. `${CLAUDE_SKILL_DIR}` and `${CLAUDE_PROJECT_DIR}` are fine: Claude
|
||||||
|
Code substitutes them as text before the check.
|
||||||
|
- **No `${CLAUDE_PROJECT_DIR}` for the path.** In a skill it is the directory
|
||||||
|
Claude Code was launched from, not the repo root, so it breaks from `src/`.
|
||||||
|
`${CLAUDE_SKILL_DIR}` always names the skill's own folder.
|
||||||
|
- **No `source … && …` compound.** Each part must be approved; `bash <file>
|
||||||
|
resolve_config` is one command. `yaml-helper.sh` dispatches only
|
||||||
|
`resolve_config` when executed, and finds the repo root from its own location.
|
||||||
|
- **The grant is required.** `allowed-tools` is what pre-approves an injected
|
||||||
|
command. The pattern must include the literal `"` after the path — a pattern
|
||||||
|
ending `…yaml-helper.sh *` does not match.
|
||||||
|
- **Any non-zero exit aborts too.** The entry point always exits 0; other
|
||||||
|
injected commands that can fail end in `|| true`.
|
||||||
|
|
||||||
|
Auto mode can approve the old form on its own, which is how v1.1.0 shipped with
|
||||||
|
it. Test bootstrap changes in default mode, in a project without a
|
||||||
|
`settings.local.json`.
|
||||||
|
|
||||||
|
`disableSkillShellExecution: true` replaces every injected command with a
|
||||||
|
placeholder message. If a skill sees no config block, it falls back to the
|
||||||
|
defaults below.
|
||||||
|
|
||||||
## The block
|
## The block
|
||||||
|
|
||||||
@@ -203,7 +244,8 @@ condition below degrades to defaults and is named on `notes:`:
|
|||||||
| `project.local.yaml` without a base | `validate_local_yaml_base` message on `notes:` |
|
| `project.local.yaml` without a base | `validate_local_yaml_base` message on `notes:` |
|
||||||
| Locked key in `project.local.yaml` | ignored as always, but now **named** on `notes:` — `local: not locally overridable, ignored — modes.rigor (move to project.yaml or delete)` |
|
| Locked key in `project.local.yaml` | ignored as always, but now **named** on `notes:` — `local: not locally overridable, ignored — modes.rigor (move to project.yaml or delete)` |
|
||||||
| No Python interpreter | legacy files and defaults only; **explicitly noted** on `notes:` |
|
| No Python interpreter | legacy files and defaults only; **explicitly noted** on `notes:` |
|
||||||
| No block at all | shell preprocessing disabled — use the defaults table above |
|
| No block at all | shell preprocessing disabled (`disableSkillShellExecution`) — use the defaults table above |
|
||||||
|
| Bootstrap line not approved, or exits non-zero | **not a degraded state — the skill never renders at all.** See "Why exactly this command" above |
|
||||||
|
|
||||||
A skill must never treat a missing block as "config is unset in an interesting
|
A skill must never treat a missing block as "config is unset in an interesting
|
||||||
way". It means the block did not render; the defaults apply.
|
way". It means the block did not render; the defaults apply.
|
||||||
|
|||||||
@@ -82,7 +82,8 @@ overriding the global config for that run only.
|
|||||||
**MANDATORY: apply the review mode before every gate spawn.**
|
**MANDATORY: apply the review mode before every gate spawn.**
|
||||||
|
|
||||||
The value is already resolved — skills call
|
The value is already resolved — skills call
|
||||||
`` !`source .claude/hooks/yaml-helper.sh && resolve_config --keys review_mode` ``
|
`` !`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode` ``
|
||||||
|
(with the matching `allowed-tools` grant — see `config-resolution.md`)
|
||||||
and read `review_mode` from the emitted block. Do **not** re-derive it here. The
|
and read `review_mode` from the emitted block. Do **not** re-derive it here. The
|
||||||
full chain (`project.local.yaml` → `project.yaml` → `production/review-mode.txt`
|
full chain (`project.local.yaml` → `project.yaml` → `production/review-mode.txt`
|
||||||
→ `modes.rigor` expansion, `standard`→`lean`), its defaults and its failure modes are specified in
|
→ `modes.rigor` expansion, `standard`→`lean`), its defaults and its failure modes are specified in
|
||||||
|
|||||||
@@ -1545,3 +1545,46 @@ EOF
|
|||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# --- Direct execution: the skill-bootstrap entry point -----------------------
|
||||||
|
#
|
||||||
|
# bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys a,b
|
||||||
|
#
|
||||||
|
# Skills cannot `source` this file in their `` !`cmd` `` bootstrap line. Claude
|
||||||
|
# Code permission-checks every injected command before the skill renders, and
|
||||||
|
# outside auto mode anything short of "allow" ABORTS the whole invocation --
|
||||||
|
# measured on 2.1.281, see .claude/docs/config-resolution.md. A `${VAR:-x}` or
|
||||||
|
# `$( )` in the command fails that check as "Contains expansion" and no grant can
|
||||||
|
# approve it; a `source … && resolve_config` compound needs every part approved.
|
||||||
|
# `${CLAUDE_SKILL_DIR}` is substituted as text before the check, so one plain
|
||||||
|
# `bash <path> resolve_config …` call is approvable by the matching grant in the
|
||||||
|
# skill's own `allowed-tools`. That is also what lets a Bash-less agent preload
|
||||||
|
# the skill (GitHub issue #128).
|
||||||
|
#
|
||||||
|
# Only resolve_config is dispatchable: the bootstrap is the one caller, and
|
||||||
|
# every name added here widens what a skill grant can reach.
|
||||||
|
#
|
||||||
|
# ROOT. Run from a subdirectory, the skill shell's cwd has no project.yaml and
|
||||||
|
# $CLAUDE_PROJECT_DIR is the launch directory, not the repo root (measured), so
|
||||||
|
# rules 1-3 of _yaml_helper_set_root all miss. This file's own location is the
|
||||||
|
# one anchor that cannot drift: hooks/ sits two levels below the root. It only
|
||||||
|
# fills CLAUDE_PROJECT_DIR when that has no project.yaml, so rules 1-2 (cwd
|
||||||
|
# first, for nested projects) keep their precedence.
|
||||||
|
#
|
||||||
|
# ALWAYS exits 0: a non-zero exit from an injected command aborts the skill.
|
||||||
|
if [ "${BASH_SOURCE[0]}" = "$0" ]; then
|
||||||
|
case "${1:-}" in
|
||||||
|
resolve_config)
|
||||||
|
shift
|
||||||
|
if [ -z "${CLAUDE_PROJECT_DIR:-}" ] || [ ! -f "$CLAUDE_PROJECT_DIR/project.yaml" ]; then
|
||||||
|
_yh_self_root=$(cd "$(dirname "$0")/../.." 2>/dev/null && pwd)
|
||||||
|
[ -n "$_yh_self_root" ] && CLAUDE_PROJECT_DIR="$_yh_self_root"
|
||||||
|
fi
|
||||||
|
resolve_config "$@"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "yaml-helper.sh: usage: bash yaml-helper.sh resolve_config [--keys k1,k2,...] [<system>]"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|||||||
@@ -569,7 +569,7 @@ fi
|
|||||||
echo "schema_version: 1"
|
echo "schema_version: 1"
|
||||||
echo ""
|
echo ""
|
||||||
echo "framework:"
|
echo "framework:"
|
||||||
echo " version: 1.1.0"
|
echo " version: 1.1.1"
|
||||||
echo ""
|
echo ""
|
||||||
# Emit `project:` only when there is a stage to put in it -- same rule as the
|
# Emit `project:` only when there is a stage to put in it -- same rule as the
|
||||||
# `modes:` block below. Writing `stage: null` produced a file that FAILED THIS
|
# `modes:` block below. Writing `stage: null` produced a file that FAILED THIS
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: adopt
|
|||||||
description: "Brownfield audit — do existing artifacts actually work? Numbered migration plan. Unlike /project-stage-detect, checks compliance not existence."
|
description: "Brownfield audit — do existing artifacts actually work? Numbered migration plan. Unlike /project-stage-detect, checks compliance not existence."
|
||||||
argument-hint: "[focus: full | gdds | adrs | stories | infra]"
|
argument-hint: "[focus: full | gdds | adrs | stories | infra]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Bash, Write, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Bash, Write, AskUserQuestion, Bash(bash "*/.claude/skills/adopt/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation,automation_always_ask,workflow`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation,automation_always_ask,workflow`
|
||||||
|
|
||||||
Resolved above — use as-is. `/adopt` also inspects `project.yaml` and the legacy
|
Resolved above — use as-is. `/adopt` also inspects `project.yaml` and the legacy
|
||||||
config files directly when reporting and writing migration state; that raw
|
config files directly when reporting and writing migration state; that raw
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: architecture-decision
|
|||||||
description: "Create an ADR documenting a technical decision: context, alternatives considered, consequences."
|
description: "Create an ADR documenting a technical decision: context, alternatives considered, consequences."
|
||||||
argument-hint: "[title | retrofit <path> | accept <ADR-id>] [--review full|lean|solo]"
|
argument-hint: "[title | retrofit <path> | accept <ADR-id>] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/architecture-decision/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,workflow,docs.density,team.size`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,workflow,docs.density,team.size`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: architecture-review
|
|||||||
description: "Traceability matrix mapping GDD requirements to ADRs. Finds gaps, cross-ADR conflicts, engine compatibility. PASS/CONCERNS/NOT ASSESSED/FAIL."
|
description: "Traceability matrix mapping GDD requirements to ADRs. Finds gaps, cross-ADR conflicts, engine compatibility. PASS/CONCERNS/NOT ASSESSED/FAIL."
|
||||||
argument-hint: "[focus: full | coverage | consistency | engine | single-gdd path/to/gdd.md]"
|
argument-hint: "[focus: full | coverage | consistency | engine | single-gdd path/to/gdd.md]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Bash, Write, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Bash, Write, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/architecture-review/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: opus
|
model: opus
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation,workflow`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation,workflow`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: art-bible
|
|||||||
description: "Author the Art Bible — visual identity gating asset production. Run before /map-systems."
|
description: "Author the Art Bible — visual identity gating asset production. Run before /map-systems."
|
||||||
argument-hint: "[--review full|lean|solo]"
|
argument-hint: "[--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/art-bible/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,workflow,docs.density`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,workflow,docs.density`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: asset-spec
|
|||||||
description: "Per-asset visual specs plus AI generation prompts from GDDs and character profiles. After the art bible."
|
description: "Per-asset visual specs plus AI generation prompts from GDDs and character profiles. After the art bible."
|
||||||
argument-hint: "[system:<name> | level:<name> | character:<name>] [--review full|lean|solo]"
|
argument-hint: "[system:<name> | level:<name> | character:<name>] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/asset-spec/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: balance-check
|
|||||||
description: "Find balance outliers, broken progressions, degenerate strategies, economy imbalances in formulas and data. 'Check game balance'."
|
description: "Find balance outliers, broken progressions, degenerate strategies, economy imbalances in formulas and data. 'Check game balance'."
|
||||||
argument-hint: "[system-name|path-to-data-file]"
|
argument-hint: "[system-name|path-to-data-file]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, AskUserQuestion, Bash(bash "*/.claude/skills/balance-check/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: brainstorm
|
|||||||
description: "Guided concept ideation using professional studio techniques, player psychology, creative exploration."
|
description: "Guided concept ideation using professional studio techniques, player psychology, creative exploration."
|
||||||
argument-hint: "[genre or theme hint, or 'open'] [--review full|lean|solo]"
|
argument-hint: "[genre or theme hint, or 'open'] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, WebSearch, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, WebSearch, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/brainstorm/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,docs.density,workflow`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,docs.density,workflow`
|
||||||
|
|
||||||
Resolved above — use as-is. No block → defaults in
|
Resolved above — use as-is. No block → defaults in
|
||||||
`.claude/docs/config-resolution.md`.
|
`.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: bug-report
|
|||||||
description: "Structured bug report from a description, or analyze code for potential bugs. Reproduction steps, severity."
|
description: "Structured bug report from a description, or analyze code for potential bugs. Reproduction steps, severity."
|
||||||
argument-hint: "[description] | analyze [path-to-file]"
|
argument-hint: "[description] | analyze [path-to-file]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Bash, Write, Edit
|
allowed-tools: Read, Glob, Grep, Bash, Write, Edit, Bash(bash "*/.claude/skills/bug-report/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: bug-triage
|
|||||||
description: "Re-evaluate open bugs — priority vs severity, assign to sprints, surface systemic trends. Run when the count grows."
|
description: "Re-evaluate open bugs — priority vs severity, assign to sprints, surface systemic trends. Run when the count grows."
|
||||||
argument-hint: "[sprint | full | trend]"
|
argument-hint: "[sprint | full | trend]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash(bash "*/.claude/skills/bug-triage/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: changelog
|
|||||||
description: "Auto-generate a changelog from git commits and sprint data. Internal and player-facing versions."
|
description: "Auto-generate a changelog from git commits and sprint data. Internal and player-facing versions."
|
||||||
argument-hint: "[version|sprint-number]"
|
argument-hint: "[version|sprint-number]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Bash, Write
|
allowed-tools: Read, Glob, Grep, Bash, Write, Bash(bash "*/.claude/skills/changelog/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
@@ -19,7 +19,7 @@ every file write follows `.claude/docs/automation-modes.md`
|
|||||||
|
|
||||||
Recent commits:
|
Recent commits:
|
||||||
|
|
||||||
!`git log --oneline -30 2>/dev/null`
|
!`git log --oneline -30 2>/dev/null || true`
|
||||||
|
|
||||||
Recent tags (newest first):
|
Recent tags (newest first):
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: code-review
|
|||||||
description: "Architectural code review — coding standards, SOLID, testability, performance concerns."
|
description: "Architectural code review — coding standards, SOLID, testability, performance concerns."
|
||||||
argument-hint: "[path-to-file-or-directory]"
|
argument-hint: "[path-to-file-or-directory]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Bash, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Bash, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/code-review/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: consistency-check
|
|||||||
description: "Scan GDDs against the entity registry for cross-document conflicts. Grep-first approach targets conflicting sections, different stats."
|
description: "Scan GDDs against the entity registry for cross-document conflicts. Grep-first approach targets conflicting sections, different stats."
|
||||||
argument-hint: "[full | since-last-review | entity:<name> | item:<name>]"
|
argument-hint: "[full | since-last-review | entity:<name> | item:<name>]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, AskUserQuestion, Bash(bash "*/.claude/skills/consistency-check/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation,workflow`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation,workflow`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: content-audit
|
|||||||
description: "Audit GDD content counts against what's implemented — planned vs built."
|
description: "Audit GDD content counts against what's implemented — planned vs built."
|
||||||
argument-hint: "[system-name | --summary | (no arg = full audit)]"
|
argument-hint: "[system-name | --summary | (no arg = full audit)]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write
|
allowed-tools: Read, Glob, Grep, Write, Bash(bash "*/.claude/skills/content-audit/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys workflow,automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys workflow,automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: create-architecture
|
|||||||
description: "Author the architecture blueprint before code is written. Validates decisions against the pinned engine, flags knowledge gaps."
|
description: "Author the architecture blueprint before code is written. Validates decisions against the pinned engine, flags knowledge gaps."
|
||||||
argument-hint: "[focus-area: full | layers | data-flow | api-boundaries | adr-audit] [--review full|lean|solo]"
|
argument-hint: "[focus-area: full | layers | data-flow | api-boundaries | adr-audit] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Bash, AskUserQuestion, Agent
|
allowed-tools: Read, Glob, Grep, Write, Bash, AskUserQuestion, Agent, Bash(bash "*/.claude/skills/create-architecture/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,workflow,docs.density`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,workflow,docs.density`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: create-control-manifest
|
|||||||
description: "Flat must-do/never-do rules sheet per system and layer, extracted from Accepted ADRs. ADRs explain why; this is actionable."
|
description: "Flat must-do/never-do rules sheet per system and layer, extracted from Accepted ADRs. ADRs explain why; this is actionable."
|
||||||
argument-hint: "[update — regenerate from current ADRs]"
|
argument-hint: "[update — regenerate from current ADRs]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/create-control-manifest/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: create-epics
|
|||||||
description: "Turn GDDs plus architecture into epics — one per architectural module, with untraced requirements. Then /create-stories [epic-slug]."
|
description: "Turn GDDs plus architecture into epics — one per architectural module, with untraced requirements. Then /create-stories [epic-slug]."
|
||||||
argument-hint: "[system-name | layer: foundation|core|feature|presentation | all] [--review full|lean|solo]"
|
argument-hint: "[system-name | layer: foundation|core|feature|presentation | all] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/create-epics/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,workflow,docs.density,story_granularity,system_overrides`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,workflow,docs.density,story_granularity,system_overrides`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: create-stories
|
|||||||
description: "Break one epic into implementable stories embedding TR-ID, ADR guidance, acceptance criteria. Reads the control manifest. After /create-epics."
|
description: "Break one epic into implementable stories embedding TR-ID, ADR guidance, acceptance criteria. Reads the control manifest. After /create-epics."
|
||||||
argument-hint: "[epic-slug | epic-path] [--review full|lean|solo]"
|
argument-hint: "[epic-slug | epic-path] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/create-stories/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,workflow,docs.density,story_granularity,system_overrides`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,workflow,docs.density,story_granularity,system_overrides`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: design-review
|
|||||||
description: "Reviews one design document for completeness, internal consistency, implementability, and design standards. Before handing to programmers."
|
description: "Reviews one design document for completeness, internal consistency, implementability, and design standards. Before handing to programmers."
|
||||||
argument-hint: "[path-to-design-doc] [--review full|lean|solo]"
|
argument-hint: "[path-to-design-doc] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/design-review/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,workflow,system_overrides`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,workflow,system_overrides`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: design-system
|
|||||||
description: "Section-by-section GDD authoring for one system — walks through each required section, cross-references dependencies."
|
description: "Section-by-section GDD authoring for one system — walks through each required section, cross-references dependencies."
|
||||||
argument-hint: "<system-name> [--review full|lean|solo]"
|
argument-hint: "<system-name> [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate
|
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate, Bash(bash "*/.claude/skills/design-system/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,workflow,docs.density,system_overrides`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,workflow,docs.density,system_overrides`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -4,11 +4,11 @@ description: "Implement a story: ADR guidelines, right programmer agent, code pl
|
|||||||
argument-hint: "[story-path]"
|
argument-hint: "[story-path]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
disable-model-invocation: true
|
disable-model-invocation: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/dev-story/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation,workflow,story_granularity,qa.level,testing.strict,system_overrides`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation,workflow,story_granularity,qa.level,testing.strict,system_overrides`
|
||||||
|
|
||||||
Resolved above — use as-is. No block → defaults in
|
Resolved above — use as-is. No block → defaults in
|
||||||
`.claude/docs/config-resolution.md`.
|
`.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: gate-check
|
|||||||
description: "Ready to advance between development phases? PASS/CONCERNS/NOT ASSESSED/FAIL with blockers and required artifacts. 'Can we move to production?'"
|
description: "Ready to advance between development phases? PASS/CONCERNS/NOT ASSESSED/FAIL with blockers and required artifacts. 'Can we move to production?'"
|
||||||
argument-hint: "[target-phase: systems-design | technical-setup | pre-production | production | polish | release] [--review full|lean|solo]"
|
argument-hint: "[target-phase: systems-design | technical-setup | pre-production | production | polish | release] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Bash, Write, Edit, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Bash, Write, Edit, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/gate-check/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: opus
|
model: opus
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,workflow,qa.level,testing.strict,performance.enforce,team.size,project.stage,system_overrides`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,workflow,qa.level,testing.strict,performance.enforce,team.size,project.stage,system_overrides`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
@@ -630,7 +630,7 @@ Set `project.stage` to the new stage name in `project.yaml` at the repo root.
|
|||||||
schema_version: 1
|
schema_version: 1
|
||||||
|
|
||||||
framework:
|
framework:
|
||||||
version: 1.1.0
|
version: 1.1.1
|
||||||
last_upgraded: <YYYY-MM-DD>
|
last_upgraded: <YYYY-MM-DD>
|
||||||
|
|
||||||
project:
|
project:
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name: help
|
|||||||
description: "What should I do next? Use when stuck or you don't know what to do."
|
description: "What should I do next? Use when stuck or you don't know what to do."
|
||||||
argument-hint: "[optional: what you just finished, e.g. 'finished design-review' or 'stuck on ADRs']"
|
argument-hint: "[optional: what you just finished, e.g. 'finished design-review' or 'stuck on ADRs']"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Bash
|
allowed-tools: Read, Glob, Grep, Bash, Bash(bash "*/.claude/skills/help/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: haiku
|
model: haiku
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ gap analysis, use `/project-stage-detect`.
|
|||||||
|
|
||||||
## Live Project State
|
## Live Project State
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys project.stage,workflow`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys project.stage,workflow`
|
||||||
|
|
||||||
!`echo "Latest sprint: $(ls -t production/sprints/*.md 2>/dev/null | head -1 || echo 'none')"; echo "Session state: $(head -5 production/session-state/active.md 2>/dev/null || echo 'none')"`
|
!`echo "Latest sprint: $(ls -t production/sprints/*.md 2>/dev/null | head -1 || echo 'none')"; echo "Session state: $(head -5 production/session-state/active.md 2>/dev/null || echo 'none')"`
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ name: launch-checklist
|
|||||||
description: "Launch readiness across every department: code, content, store, marketing, community, infrastructure, legal, go/no-go sign-offs."
|
description: "Launch readiness across every department: code, content, store, marketing, community, infrastructure, legal, go/no-go sign-offs."
|
||||||
argument-hint: "[launch-date or 'dry-run']"
|
argument-hint: "[launch-date or 'dry-run']"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write
|
allowed-tools: Read, Glob, Grep, Write, Bash(bash "*/.claude/skills/launch-checklist/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys rigor,project.stage,cert_tier,automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys rigor,project.stage,cert_tier,automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: localize
|
|||||||
description: "Localization pipeline — find hardcoded strings, extract string tables, cultural review, VO, RTL, enforce string freeze."
|
description: "Localization pipeline — find hardcoded strings, extract string tables, cultural review, VO, RTL, enforce string freeze."
|
||||||
argument-hint: "[scan|extract|validate|status|brief|cultural-review|vo-pipeline|rtl-check|freeze|qa]"
|
argument-hint: "[scan|extract|validate|status|brief|cultural-review|vo-pipeline|rtl-check|freeze|qa]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Bash, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Bash, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/localize/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: map-systems
|
|||||||
description: "Decompose a concept into individual systems, map dependencies, prioritize design order, create the systems index."
|
description: "Decompose a concept into individual systems, map dependencies, prioritize design order, create the systems index."
|
||||||
argument-hint: "[next | system-name] [--review full|lean|solo]"
|
argument-hint: "[next | system-name] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate, Agent
|
allowed-tools: Read, Glob, Grep, Write, Edit, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate, Agent, Bash(bash "*/.claude/skills/map-systems/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,workflow,docs.density`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,workflow,docs.density`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: milestone-review
|
|||||||
description: "Milestone progress review — completeness, quality metrics, risk, go/no-go recommendation. At checkpoints or before a deadline."
|
description: "Milestone progress review — completeness, quality metrics, risk, go/no-go recommendation. At checkpoints or before a deadline."
|
||||||
argument-hint: "[milestone-name|current] [--review full|lean|solo]"
|
argument-hint: "[milestone-name|current] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/milestone-review/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: onboard
|
|||||||
description: "Onboarding doc for a new contributor or agent — project state, conventions, priorities relevant to the specified role."
|
description: "Onboarding doc for a new contributor or agent — project state, conventions, priorities relevant to the specified role."
|
||||||
argument-hint: "[role|area]"
|
argument-hint: "[role|area]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write
|
allowed-tools: Read, Glob, Grep, Write, Bash(bash "*/.claude/skills/onboard/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: haiku
|
model: haiku
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: patch-notes
|
|||||||
description: "Player-facing patch notes from git history and changelogs. Translates developer language into player communication."
|
description: "Player-facing patch notes from git history and changelogs. Translates developer language into player communication."
|
||||||
argument-hint: "[version] [--style brief|detailed|full]"
|
argument-hint: "[version] [--style brief|detailed|full]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Bash
|
allowed-tools: Read, Glob, Grep, Write, Bash, Bash(bash "*/.claude/skills/patch-notes/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: perf-profile
|
|||||||
description: "Performance profiling — find bottlenecks, measure against budgets, produce ranked optimization recommendations."
|
description: "Performance profiling — find bottlenecks, measure against budgets, produce ranked optimization recommendations."
|
||||||
argument-hint: "[system-name or 'full']"
|
argument-hint: "[system-name or 'full']"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Bash
|
allowed-tools: Read, Glob, Grep, Bash, Bash(bash "*/.claude/skills/perf-profile/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys performance.enforce,automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys performance.enforce,automation`
|
||||||
|
|
||||||
Resolved above — use as-is. No block → defaults in
|
Resolved above — use as-is. No block → defaults in
|
||||||
`.claude/docs/config-resolution.md`.
|
`.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: playtest-report
|
|||||||
description: "Structured playtest report template, or turn existing playtest notes into structured feedback."
|
description: "Structured playtest report template, or turn existing playtest notes into structured feedback."
|
||||||
argument-hint: "[new|analyze path-to-notes] [--review full|lean|solo]"
|
argument-hint: "[new|analyze path-to-notes] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/playtest-report/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name: project-stage-detect
|
|||||||
description: "Analyze project state, detect stage, identify gaps, recommend next steps. 'Where are we in development?'"
|
description: "Analyze project state, detect stage, identify gaps, recommend next steps. 'Where are we in development?'"
|
||||||
argument-hint: "[optional: role filter like 'programmer' or 'designer']"
|
argument-hint: "[optional: role filter like 'programmer' or 'designer']"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Bash, Write
|
allowed-tools: Read, Glob, Grep, Bash, Write, Bash(bash "*/.claude/skills/project-stage-detect/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: haiku
|
model: haiku
|
||||||
# Read-only diagnostic skill — no specialist agent delegation needed
|
# Read-only diagnostic skill — no specialist agent delegation needed
|
||||||
---
|
---
|
||||||
@@ -21,7 +21,7 @@ of artifacts, and gaps that need attention. It's especially useful when:
|
|||||||
|
|
||||||
## Workflow
|
## Workflow
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys workflow,automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys workflow,automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: propagate-design-change
|
|||||||
description: "A GDD changed — scan ADRs and the traceability index for now-stale architectural decisions. Impact report, guides resolution."
|
description: "A GDD changed — scan ADRs and the traceability index for now-stale architectural decisions. Impact report, guides resolution."
|
||||||
argument-hint: "[path/to/changed-gdd.md]"
|
argument-hint: "[path/to/changed-gdd.md]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Bash, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Bash, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/propagate-design-change/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation,workflow,system_overrides`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation,workflow,system_overrides`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ name: prototype
|
|||||||
description: "Concept prototype before GDDs — throwaway HTML, Engine or Paper build, PROCEED/PIVOT/KILL. After /brainstorm and /setup-engine."
|
description: "Concept prototype before GDDs — throwaway HTML, Engine or Paper build, PROCEED/PIVOT/KILL. After /brainstorm and /setup-engine."
|
||||||
argument-hint: "[concept-description] [--path html|engine|paper] [--review full|lean|solo] [--spike]"
|
argument-hint: "[concept-description] [--path html|engine|paper] [--review full|lean|solo] [--spike]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/prototype/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
isolation: worktree
|
isolation: worktree
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: qa-plan
|
|||||||
description: "QA test plan for a sprint — classifies stories by Logic/Integration/Visual/UI, covers automated tests, manual cases, smoke scope."
|
description: "QA test plan for a sprint — classifies stories by Logic/Integration/Visual/UI, covers automated tests, manual cases, smoke scope."
|
||||||
argument-hint: "[sprint | feature: system-name | story: path]"
|
argument-hint: "[sprint | feature: system-name | story: path]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Edit, AskUserQuestion, Bash(bash "*/.claude/skills/qa-plan/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation,workflow,qa.level,system_overrides`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation,workflow,qa.level,system_overrides`
|
||||||
|
|
||||||
Resolved above — use as-is. No block → defaults in
|
Resolved above — use as-is. No block → defaults in
|
||||||
`.claude/docs/config-resolution.md`.
|
`.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: quick-design
|
|||||||
description: "Lightweight spec for small changes — tuning adjustments, minor mechanics. Embeds directly into stories; skips full GDD."
|
description: "Lightweight spec for small changes — tuning adjustments, minor mechanics. Embeds directly into stories; skips full GDD."
|
||||||
argument-hint: "[brief description of the change]"
|
argument-hint: "[brief description of the change]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Edit, AskUserQuestion, Bash(bash "*/.claude/skills/quick-design/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: regression-suite
|
|||||||
description: "Map test coverage to GDD critical paths, find fixed bugs lacking regression tests, flag drift from new features."
|
description: "Map test coverage to GDD critical paths, find fixed bugs lacking regression tests, flag drift from new features."
|
||||||
argument-hint: "[update | audit | report]"
|
argument-hint: "[update | audit | report]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Edit, AskUserQuestion, Bash(bash "*/.claude/skills/regression-suite/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation,workflow,qa.level,system_overrides`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation,workflow,qa.level,system_overrides`
|
||||||
|
|
||||||
Resolved above — use as-is. No block → defaults in
|
Resolved above — use as-is. No block → defaults in
|
||||||
`.claude/docs/config-resolution.md`.
|
`.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ name: release-checklist
|
|||||||
description: "Pre-release checklist — build verification, certification requirements, store metadata, launch readiness."
|
description: "Pre-release checklist — build verification, certification requirements, store metadata, launch readiness."
|
||||||
argument-hint: "[platform: pc|console|mobile|all]"
|
argument-hint: "[platform: pc|console|mobile|all]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write
|
allowed-tools: Read, Glob, Grep, Write, Bash(bash "*/.claude/skills/release-checklist/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys rigor,project.stage,cert_tier,automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys rigor,project.stage,cert_tier,automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: retrospective
|
|||||||
description: "Sprint or milestone retrospective from completed work, velocity, blockers. Actionable insights for the next iteration."
|
description: "Sprint or milestone retrospective from completed work, velocity, blockers. Actionable insights for the next iteration."
|
||||||
argument-hint: "[sprint-N|milestone-name]"
|
argument-hint: "[sprint-N|milestone-name]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Bash, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Bash, AskUserQuestion, Bash(bash "*/.claude/skills/retrospective/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name: reverse-document
|
|||||||
description: "Generate missing design or architecture docs from existing implementation — works backwards from code and prototypes."
|
description: "Generate missing design or architecture docs from existing implementation — works backwards from code and prototypes."
|
||||||
argument-hint: "<type> <path> (e.g., 'design src/gameplay/combat' or 'architecture src/core')"
|
argument-hint: "<type> <path> (e.g., 'design src/gameplay/combat' or 'architecture src/core')"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Bash(bash "*/.claude/skills/reverse-document/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
# Read-only diagnostic skill — no specialist agent delegation needed
|
# Read-only diagnostic skill — no specialist agent delegation needed
|
||||||
---
|
---
|
||||||
@@ -35,7 +35,7 @@ appropriate design or architecture documentation. Use this when:
|
|||||||
- `src/core/event-system.cpp` → Specific file
|
- `src/core/event-system.cpp` → Specific file
|
||||||
- `prototypes/stealth-mech/` → Prototype directory
|
- `prototypes/stealth-mech/` → Prototype directory
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys workflow,system_overrides,automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys workflow,system_overrides,automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: review-all-gdds
|
|||||||
description: "Holistic cross-GDD review — contradictions between systems, dominant strategies, economic imbalance, cognitive overload, pillar drift."
|
description: "Holistic cross-GDD review — contradictions between systems, dominant strategies, economic imbalance, cognitive overload, pillar drift."
|
||||||
argument-hint: "[focus: full | consistency | design-theory | since-last-review]"
|
argument-hint: "[focus: full | consistency | design-theory | since-last-review]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Bash, AskUserQuestion, Agent
|
allowed-tools: Read, Glob, Grep, Write, Bash, AskUserQuestion, Agent, Bash(bash "*/.claude/skills/review-all-gdds/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: opus
|
model: opus
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation,workflow,system_overrides`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation,workflow,system_overrides`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: security-audit
|
|||||||
description: "Security audit — save tampering, cheat vectors, network exploits, data exposure, input validation. Before public or multiplayer release."
|
description: "Security audit — save tampering, cheat vectors, network exploits, data exposure, input validation. Before public or multiplayer release."
|
||||||
argument-hint: "[full | network | save | input | quick]"
|
argument-hint: "[full | network | save | input | quick]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Bash, Write, Agent
|
allowed-tools: Read, Glob, Grep, Bash, Write, Agent, Bash(bash "*/.claude/skills/security-audit/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ Schema validation: ok
|
|||||||
Effective config:
|
Effective config:
|
||||||
|
|
||||||
framework:
|
framework:
|
||||||
version: 1.1.0 (project.yaml, locked)
|
version: 1.1.1 (project.yaml, locked)
|
||||||
|
|
||||||
modes:
|
modes:
|
||||||
review_mode: lean (project.yaml)
|
review_mode: lean (project.yaml)
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ name: setup-engine
|
|||||||
description: "Configure engine and version. Pins it in CLAUDE.md; WebSearch fills reference docs when the version is beyond LLM training data."
|
description: "Configure engine and version. Pins it in CLAUDE.md; WebSearch fills reference docs when the version is beyond LLM training data."
|
||||||
argument-hint: "[engine] | [engine version] | refresh | upgrade [old-version] [new-version] | no args for guided selection"
|
argument-hint: "[engine] | [engine version] | refresh | upgrade [old-version] [new-version] | no args for guided selection"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, WebSearch, WebFetch, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, WebSearch, WebFetch, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/setup-engine/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
When this skill is invoked:
|
When this skill is invoked:
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys workflow`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys workflow`
|
||||||
|
|
||||||
**Tier awareness.** The `workflow` tier resolved above governs which design
|
**Tier awareness.** The `workflow` tier resolved above governs which design
|
||||||
artifact this skill expects and the finish path it recommends in §12:
|
artifact this skill expects and the finish path it recommends in §12:
|
||||||
@@ -703,7 +703,7 @@ Wait for confirmation, then apply based on the file's current state:
|
|||||||
schema_version: 1
|
schema_version: 1
|
||||||
|
|
||||||
framework:
|
framework:
|
||||||
version: 1.1.0
|
version: 1.1.1
|
||||||
last_upgraded: <today's date>
|
last_upgraded: <today's date>
|
||||||
|
|
||||||
engine:
|
engine:
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: skill-improve
|
|||||||
description: "Improve a skill via a test-fix-retest loop — static checks, targeted fixes, keep or revert on score change."
|
description: "Improve a skill via a test-fix-retest loop — static checks, targeted fixes, keep or revert on score change."
|
||||||
argument-hint: "[skill-name]"
|
argument-hint: "[skill-name]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Bash
|
allowed-tools: Read, Glob, Grep, Write, Bash, Bash(bash "*/.claude/skills/skill-improve/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: skill-test
|
|||||||
description: "Validate skill files for structural compliance and behavioral correctness. Four modes: static linter, spec, category rubric, audit."
|
description: "Validate skill files for structural compliance and behavioral correctness. Four modes: static linter, spec, category rubric, audit."
|
||||||
argument-hint: "static [skill-name | all] | spec [skill-name] | category [skill-name | all] | audit"
|
argument-hint: "static [skill-name | all] | spec [skill-name] | category [skill-name | all] | audit"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write
|
allowed-tools: Read, Glob, Grep, Write, Bash(bash "*/.claude/skills/skill-test/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: smoke-check
|
|||||||
description: "Critical-path smoke gate before QA hand-off — runs the automated suite. A failed check means the build is not QA-ready."
|
description: "Critical-path smoke gate before QA hand-off — runs the automated suite. A failed check means the build is not QA-ready."
|
||||||
argument-hint: "[sprint | quick | --platform pc|console|mobile|all]"
|
argument-hint: "[sprint | quick | --platform pc|console|mobile|all]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Bash, Write, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Bash, Write, AskUserQuestion, Bash(bash "*/.claude/skills/smoke-check/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation,qa.level,testing.strict`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation,qa.level,testing.strict`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: soak-test
|
|||||||
description: "Soak test protocol for extended play — what to observe and log for slow leaks, fatigue, late-appearing edge cases."
|
description: "Soak test protocol for extended play — what to observe and log for slow leaks, fatigue, late-appearing edge cases."
|
||||||
argument-hint: "[duration: 30m | 1h | 2h | 4h] [focus: memory | stability | balance | all]"
|
argument-hint: "[duration: 30m | 1h | 2h | 4h] [focus: memory | stability | balance | all]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write
|
allowed-tools: Read, Glob, Grep, Write, Bash(bash "*/.claude/skills/soak-test/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: sprint-plan
|
|||||||
description: "New or updated sprint plan from the current milestone, completed work, and available capacity."
|
description: "New or updated sprint plan from the current milestone, completed work, and available capacity."
|
||||||
argument-hint: "[new|update|status] [--review full|lean|solo]"
|
argument-hint: "[new|update|status] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/sprint-plan/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,story_granularity,workflow`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,story_granularity,workflow`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: sprint-status
|
|||||||
description: "Fast, concise sprint snapshot — burndown and emerging risks for situational awareness. 'How is the sprint going?'"
|
description: "Fast, concise sprint snapshot — burndown and emerging risks for situational awareness. 'How is the sprint going?'"
|
||||||
argument-hint: "[sprint-number or blank for current]"
|
argument-hint: "[sprint-number or blank for current]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep
|
allowed-tools: Read, Glob, Grep, Bash(bash "*/.claude/skills/sprint-status/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: haiku
|
model: haiku
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys story_granularity`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys story_granularity`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ In `project.yaml`, ensure a `project:` block exists with `stage: [value]`.
|
|||||||
schema_version: 1
|
schema_version: 1
|
||||||
|
|
||||||
framework:
|
framework:
|
||||||
version: 1.1.0
|
version: 1.1.1
|
||||||
last_upgraded: <YYYY-MM-DD>
|
last_upgraded: <YYYY-MM-DD>
|
||||||
|
|
||||||
project:
|
project:
|
||||||
|
|||||||
@@ -4,11 +4,11 @@ description: "End-of-story completion review — verifies each acceptance criter
|
|||||||
argument-hint: "[story-file-path] [--review full|lean|solo]"
|
argument-hint: "[story-file-path] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
disable-model-invocation: true
|
disable-model-invocation: true
|
||||||
allowed-tools: Read, Glob, Grep, Bash, Write, Edit, AskUserQuestion, Agent
|
allowed-tools: Read, Glob, Grep, Bash, Write, Edit, AskUserQuestion, Agent, Bash(bash "*/.claude/skills/story-done/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,workflow,story_granularity,qa.level,testing.strict,system_overrides`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,workflow,story_granularity,qa.level,testing.strict,system_overrides`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: story-readiness
|
|||||||
description: "Is a story implementation-ready? Checks clear acceptance criteria, open questions, ADR refs. READY/NEEDS WORK/BLOCKED/NOT ASSESSED."
|
description: "Is a story implementation-ready? Checks clear acceptance criteria, open questions, ADR refs. READY/NEEDS WORK/BLOCKED/NOT ASSESSED."
|
||||||
argument-hint: "[story-file-path or 'all' or 'sprint']"
|
argument-hint: "[story-file-path or 'all' or 'sprint']"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, AskUserQuestion, Agent
|
allowed-tools: Read, Glob, Grep, AskUserQuestion, Agent, Bash(bash "*/.claude/skills/story-readiness/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,workflow,qa.level,testing.strict,system_overrides`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,workflow,qa.level,testing.strict,system_overrides`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name: team-audio
|
|||||||
description: "Orchestrate the audio team — audio-director, sound-designer, technical-artist, gameplay-programmer — direction through implementation."
|
description: "Orchestrate the audio team — audio-director, sound-designer, technical-artist, gameplay-programmer — direction through implementation."
|
||||||
argument-hint: "[feature or area to design audio for] [--review full|lean|solo]"
|
argument-hint: "[feature or area to design audio for] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate, Bash(bash "*/.claude/skills/team-audio/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ in `autonomous` mode it runs end to end, recording each step outcome via
|
|||||||
|
|
||||||
## Phase 0: Resolve Config
|
## Phase 0: Resolve Config
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,team.size`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,team.size`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name: team-combat
|
|||||||
description: "Orchestrate the combat team — game-designer, gameplay-programmer, ai-programmer, technical-artist, sound-designer, qa-tester — design through implement and validate."
|
description: "Orchestrate the combat team — game-designer, gameplay-programmer, ai-programmer, technical-artist, sound-designer, qa-tester — design through implement and validate."
|
||||||
argument-hint: "[combat feature description] [--review full|lean|solo]"
|
argument-hint: "[combat feature description] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate, Bash(bash "*/.claude/skills/team-combat/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
**Argument check:** If no combat feature description is provided, output:
|
**Argument check:** If no combat feature description is provided, output:
|
||||||
@@ -24,7 +24,7 @@ in `autonomous` mode it runs end to end, recording each phase outcome via
|
|||||||
|
|
||||||
## Phase 0: Resolve Config
|
## Phase 0: Resolve Config
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,team.size`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,team.size`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name: team-level
|
|||||||
description: "Orchestrate the level team — level-designer, narrative-director, world-builder, art-director, systems-designer, qa-tester — for complete area creation."
|
description: "Orchestrate the level team — level-designer, narrative-director, world-builder, art-director, systems-designer, qa-tester — for complete area creation."
|
||||||
argument-hint: "[level name or area to design] [--review full|lean|solo]"
|
argument-hint: "[level name or area to design] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate, Bash(bash "*/.claude/skills/team-level/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ in `autonomous` mode it runs end to end, recording each step outcome via
|
|||||||
|
|
||||||
## Phase 0: Resolve Config
|
## Phase 0: Resolve Config
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,team.size`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,team.size`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name: team-live-ops
|
|||||||
description: "Orchestrate the live-ops team — live-ops-designer, economy-designer, analytics-engineer, community-manager, writer — for a season or live event."
|
description: "Orchestrate the live-ops team — live-ops-designer, economy-designer, analytics-engineer, community-manager, writer — for a season or live event."
|
||||||
argument-hint: "[season name or event description] [--review full|lean|solo]"
|
argument-hint: "[season name or event description] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate, Bash(bash "*/.claude/skills/team-live-ops/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
**Argument check:** If no season name or event description is provided, output:
|
**Argument check:** If no season name or event description is provided, output:
|
||||||
@@ -24,7 +24,7 @@ in `autonomous` mode it runs end to end, recording each phase outcome via
|
|||||||
|
|
||||||
## Phase 0: Resolve Config
|
## Phase 0: Resolve Config
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,team.size`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,team.size`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name: team-narrative
|
|||||||
description: "Orchestrate the narrative team — narrative-director, writer, world-builder, level-designer — for story, world lore, narrative-driven levels."
|
description: "Orchestrate the narrative team — narrative-director, writer, world-builder, level-designer — for story, world lore, narrative-driven levels."
|
||||||
argument-hint: "[narrative content description] [--review full|lean|solo]"
|
argument-hint: "[narrative content description] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate
|
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate, Bash(bash "*/.claude/skills/team-narrative/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
If no argument is provided, output usage guidance and exit without spawning any agents:
|
If no argument is provided, output usage guidance and exit without spawning any agents:
|
||||||
@@ -23,7 +23,7 @@ in `autonomous` mode it runs end to end, recording each phase outcome via
|
|||||||
|
|
||||||
## Phase 0: Resolve Config
|
## Phase 0: Resolve Config
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,team.size`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,team.size`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name: team-polish
|
|||||||
description: "Orchestrate the polish team — performance-analyst, technical-artist, sound-designer, qa-tester — to optimize and harden a feature or area."
|
description: "Orchestrate the polish team — performance-analyst, technical-artist, sound-designer, qa-tester — to optimize and harden a feature or area."
|
||||||
argument-hint: "[feature or area to polish] [--review full|lean|solo]"
|
argument-hint: "[feature or area to polish] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate, Bash(bash "*/.claude/skills/team-polish/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
If no argument is provided, output usage guidance and exit without spawning any agents:
|
If no argument is provided, output usage guidance and exit without spawning any agents:
|
||||||
@@ -23,7 +23,7 @@ in `autonomous` mode it runs end to end, recording each phase outcome via
|
|||||||
|
|
||||||
## Phase 0: Resolve Config
|
## Phase 0: Resolve Config
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,team.size`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,team.size`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name: team-qa
|
|||||||
description: "Orchestrate the QA team through a full testing cycle — qa-lead strategy and test plan, qa-tester case writing, execution, sign-off."
|
description: "Orchestrate the QA team through a full testing cycle — qa-lead strategy and test plan, qa-tester case writing, execution, sign-off."
|
||||||
argument-hint: "[sprint | feature: system-name] [--review full|lean|solo]"
|
argument-hint: "[sprint | feature: system-name] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/team-qa/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ in `autonomous` mode it runs end to end, recording each phase outcome via
|
|||||||
|
|
||||||
## Phase 0: Resolve Config
|
## Phase 0: Resolve Config
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,team.size`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,team.size`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name: team-release
|
|||||||
description: "Orchestrate the release team — release-manager, qa-lead, devops-engineer, producer — to execute a release from candidate to deployment."
|
description: "Orchestrate the release team — release-manager, qa-lead, devops-engineer, producer — to execute a release from candidate to deployment."
|
||||||
argument-hint: "[version number or 'next'] [--review full|lean|solo]"
|
argument-hint: "[version number or 'next'] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate, Bash(bash "*/.claude/skills/team-release/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
**Argument check:** If no version number is provided:
|
**Argument check:** If no version number is provided:
|
||||||
@@ -25,7 +25,7 @@ in `autonomous` mode it runs end to end, recording each phase outcome via
|
|||||||
|
|
||||||
## Phase 0: Resolve Config
|
## Phase 0: Resolve Config
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,team.size`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,team.size`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ name: team-ui
|
|||||||
description: "Orchestrate the UI team through the UX pipeline — authoring, visual design, implementation, review, polish. Uses /ux-design, /ux-review, studio templates."
|
description: "Orchestrate the UI team through the UX pipeline — authoring, visual design, implementation, review, polish. Uses /ux-design, /ux-review, studio templates."
|
||||||
argument-hint: "[UI feature description] [--review full|lean|solo]"
|
argument-hint: "[UI feature description] [--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, TaskCreate, TaskGet, TaskList, TaskUpdate, Bash(bash "*/.claude/skills/team-ui/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
When this skill is invoked, orchestrate the UI team through a structured pipeline.
|
When this skill is invoked, orchestrate the UI team through a structured pipeline.
|
||||||
@@ -20,7 +20,7 @@ in `autonomous` mode it runs end to end, recording each phase outcome via
|
|||||||
|
|
||||||
## Phase 0: Resolve Config
|
## Phase 0: Resolve Config
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation,team.size`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,team.size`
|
||||||
|
|
||||||
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
Resolved above — use as-is; `--review` overrides `review_mode`. No block →
|
||||||
defaults in `.claude/docs/config-resolution.md`.
|
defaults in `.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: tech-debt
|
|||||||
description: "Track, categorize and prioritize technical debt across the codebase — scans for debt indicators, maintains a register."
|
description: "Track, categorize and prioritize technical debt across the codebase — scans for debt indicators, maintains a register."
|
||||||
argument-hint: "[scan|add|prioritize|report]"
|
argument-hint: "[scan|add|prioritize|report]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, AskUserQuestion, Bash(bash "*/.claude/skills/tech-debt/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: test-evidence-review
|
|||||||
description: "Quality review of test files and evidence — goes beyond existence, evaluates assertion coverage. ADEQUATE/INCOMPLETE/MISSING/NOT ASSESSED per story."
|
description: "Quality review of test files and evidence — goes beyond existence, evaluates assertion coverage. ADEQUATE/INCOMPLETE/MISSING/NOT ASSESSED per story."
|
||||||
argument-hint: "[story-path | sprint | system-name]"
|
argument-hint: "[story-path | sprint | system-name]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write
|
allowed-tools: Read, Glob, Grep, Write, Bash(bash "*/.claude/skills/test-evidence-review/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: test-flakiness
|
|||||||
description: "Find flaky tests from CI logs — aggregates pass rates, spots intermittent failures, recommends quarantine. After multiple runs."
|
description: "Find flaky tests from CI logs — aggregates pass rates, spots intermittent failures, recommends quarantine. After multiple runs."
|
||||||
argument-hint: "[ci-log-path | scan | registry]"
|
argument-hint: "[ci-log-path | scan | registry]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Bash(bash "*/.claude/skills/test-flakiness/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: test-helpers
|
|||||||
description: "Generate engine-specific test helper libraries — assertion utilities, factory functions, mocks in tests/helpers/. Reduces boilerplate."
|
description: "Generate engine-specific test helper libraries — assertion utilities, factory functions, mocks in tests/helpers/. Reduces boilerplate."
|
||||||
argument-hint: "[system-name | all | scaffold]"
|
argument-hint: "[system-name | all | scaffold]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write
|
allowed-tools: Read, Glob, Grep, Write, Bash(bash "*/.claude/skills/test-helpers/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: test-setup
|
|||||||
description: "Scaffold the test framework and CI — tests/ directory, engine test runner, GitHub Actions workflow. Once, before the first sprint."
|
description: "Scaffold the test framework and CI — tests/ directory, engine test runner, GitHub Actions workflow. Once, before the first sprint."
|
||||||
argument-hint: "[force]"
|
argument-hint: "[force]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Bash, Write
|
allowed-tools: Read, Glob, Grep, Bash, Write, Bash(bash "*/.claude/skills/test-setup/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation`
|
||||||
|
|
||||||
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
|
||||||
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ name: ux-design
|
|||||||
description: "Section-by-section UX spec authoring for a screen, flow or HUD. Reads the player journey to provide context; also project-wide accessibility."
|
description: "Section-by-section UX spec authoring for a screen, flow or HUD. Reads the player journey to provide context; also project-wide accessibility."
|
||||||
argument-hint: "[screen/flow name] or 'hud' or 'patterns' or 'accessibility'"
|
argument-hint: "[screen/flow name] or 'hud' or 'patterns' or 'accessibility'"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, AskUserQuestion, Agent
|
allowed-tools: Read, Glob, Grep, Write, Edit, AskUserQuestion, Agent, Bash(bash "*/.claude/skills/ux-design/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys automation,workflow,docs.density`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation,workflow,docs.density`
|
||||||
|
|
||||||
Resolved above — use as-is. No block → defaults in
|
Resolved above — use as-is. No block → defaults in
|
||||||
`.claude/docs/config-resolution.md`.
|
`.claude/docs/config-resolution.md`.
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ name: vertical-slice
|
|||||||
description: "Pre-production validation — end-to-end build to confirm the full loop is achievable before committing to Production. After GDDs, architecture, UX specs."
|
description: "Pre-production validation — end-to-end build to confirm the full loop is achievable before committing to Production. After GDDs, architecture, UX specs."
|
||||||
argument-hint: "[--review full|lean|solo]"
|
argument-hint: "[--review full|lean|solo]"
|
||||||
user-invocable: true
|
user-invocable: true
|
||||||
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion
|
allowed-tools: Read, Glob, Grep, Write, Edit, Bash, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/vertical-slice/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
model: sonnet
|
model: sonnet
|
||||||
isolation: worktree
|
isolation: worktree
|
||||||
---
|
---
|
||||||
|
|
||||||
!`source "${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/yaml-helper.sh" 2>/dev/null && resolve_config --keys review_mode,automation`
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,34 @@ existing project on the older config files.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## [1.1.1] — 2026-09-24
|
||||||
|
|
||||||
|
**Skills and agents work again outside auto mode.** A fix release for
|
||||||
|
[#128](https://github.com/Donchitos/Claude-Code-Game-Studios/issues/128).
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- **Skills no longer abort before they start.** In 1.1.0, every skill that reads
|
||||||
|
your config began with a shell command Claude Code refuses to run unless it is
|
||||||
|
explicitly approved. In the permission mode CCGS ships with (`default`), 66 of
|
||||||
|
the 74 skills stopped before doing anything, from any subdirectory of your
|
||||||
|
project, and whenever Claude invoked a skill on its own — in auto mode too.
|
||||||
|
Each skill now runs the config lookup as one plain command and pre-approves
|
||||||
|
exactly that command in its own frontmatter. Nothing else is approved.
|
||||||
|
- **`game-designer` and `creative-director` launch again.** Both preload skills,
|
||||||
|
so the aborting command stopped them at startup with `Shell command permission
|
||||||
|
check failed … Contains expansion`. They keep their preloaded skills and still
|
||||||
|
have no shell access.
|
||||||
|
- **Config is found from any folder.** Starting Claude Code inside `src/` or
|
||||||
|
`design/` now reads the project's `project.yaml`, not nothing.
|
||||||
|
- **`/changelog` works in a repository with no commits yet.**
|
||||||
|
|
||||||
|
Checked on Claude Code 2.1.277 and 2.1.281, in every permission mode, from the
|
||||||
|
project root and from subdirectories. See `.claude/docs/config-resolution.md`
|
||||||
|
for the form every skill's config line must take, if you write your own.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## [1.1.0] — 2026-09-23
|
## [1.1.0] — 2026-09-23
|
||||||
|
|
||||||
**One config file, and a process weight you choose — one you can see and adjust,
|
**One config file, and a process weight you choose — one you can see and adjust,
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ Or check `README.md` for the version badge.
|
|||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
- [Upgrade Strategies](#upgrade-strategies)
|
- [Upgrade Strategies](#upgrade-strategies)
|
||||||
|
- [v1.1.0 → v1.1.1](#v110--v111)
|
||||||
- [v1.0 → v1.1](#v10--v11)
|
- [v1.0 → v1.1](#v10--v11)
|
||||||
- [v1.0.0-beta → v1.0](#v100-beta--v10)
|
- [v1.0.0-beta → v1.0](#v100-beta--v10)
|
||||||
- [v0.4.x → v1.0](#v04x--v10)
|
- [v0.4.x → v1.0](#v04x--v10)
|
||||||
@@ -162,6 +163,58 @@ Best when: you didn't use git to set up the template (just downloaded a zip).
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## v1.1.0 → v1.1.1
|
||||||
|
|
||||||
|
**Released:** 2026-09-24
|
||||||
|
**Commit range:** `d056997..v1.1.1`
|
||||||
|
**Key themes:** Fix for skills and agents failing to start outside auto mode ([#128](https://github.com/Donchitos/Claude-Code-Game-Studios/issues/128))
|
||||||
|
|
||||||
|
### What Changed
|
||||||
|
|
||||||
|
| Category | Changes |
|
||||||
|
|----------|---------|
|
||||||
|
| **Skill fix (66 skills)** | The config line at the top of each skill is now one plain `bash` command, pre-approved in that skill's own `allowed-tools`. The 1.1.0 line aborted the skill outside auto mode |
|
||||||
|
| **Helper** | `.claude/hooks/yaml-helper.sh` can be run directly as `bash yaml-helper.sh resolve_config …`, and finds the project root from its own location |
|
||||||
|
| **Docs** | `.claude/docs/config-resolution.md` documents the required form and why |
|
||||||
|
|
||||||
|
No settings, config files or agents change. Your `project.yaml` and
|
||||||
|
`project.local.yaml` are untouched apart from the version stamp.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Files: Safe to Overwrite
|
||||||
|
|
||||||
|
**Existing files to overwrite (no user content):**
|
||||||
|
```
|
||||||
|
.claude/skills/*/SKILL.md ← all skills with a config line (66)
|
||||||
|
.claude/hooks/yaml-helper.sh ← direct-execution entry point
|
||||||
|
.claude/docs/config-resolution.md ← corrected "why this command" section
|
||||||
|
.claude/docs/director-gates.md ← example line updated
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Files: Merge Carefully
|
||||||
|
|
||||||
|
**Skills you have edited yourself.** If you customised a skill, keep your
|
||||||
|
version and change two lines in it — the config line and the `allowed-tools`
|
||||||
|
entry — to this form, with your skill's folder name in place of `<name>`:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
allowed-tools: …, Bash(bash "*/.claude/skills/<name>/../../hooks/yaml-helper.sh" resolve_config *)
|
||||||
|
```
|
||||||
|
```markdown
|
||||||
|
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys <same keys as before>`
|
||||||
|
```
|
||||||
|
|
||||||
|
Both halves are needed: the line without the grant still aborts. The same
|
||||||
|
applies to any skill you wrote yourself that copied the 1.1.0 line.
|
||||||
|
|
||||||
|
**`project.yaml`** — optionally set `framework.version: 1.1.1`. Nothing reads it
|
||||||
|
for this release.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## v1.0 → v1.1
|
## v1.0 → v1.1
|
||||||
|
|
||||||
**Released:** 2026-09-23
|
**Released:** 2026-09-23
|
||||||
|
|||||||
+2
-2
@@ -4,8 +4,8 @@
|
|||||||
schema_version: 1
|
schema_version: 1
|
||||||
|
|
||||||
framework:
|
framework:
|
||||||
version: 1.1.0
|
version: 1.1.1
|
||||||
last_upgraded: 2026-09-23
|
last_upgraded: 2026-09-24
|
||||||
|
|
||||||
# NOTE: this template ships with no `modes:` block, and the six knobs below must
|
# NOTE: this template ships with no `modes:` block, and the six knobs below must
|
||||||
# never be added to one.
|
# never be added to one.
|
||||||
|
|||||||
Reference in New Issue
Block a user