Release 1.1.3 — long skills keep their later steps

Fix release for 1.1.2: the 14 longest skills keep their later phases
after a compaction, a question nobody answered is never taken as an
answer, settings read the same from a subfolder, the commit check works
for a project in a subfolder of a larger repository, every skill opens
with a title, and the shipped allow rules no longer approve deleting a
branch or writing files without asking. Details in CHANGELOG.md; upgrade
steps in UPGRADING.md (v1.1.2 → v1.1.3).

Refs #83
Refs #133

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0185en4t76fPn7315q4c3nko
This commit is contained in:
Donchitos
2026-10-08 17:52:48 +11:00
co-authored by Claude Opus 5.5
parent b21fa0f7f2
commit be8993bbc5
231 changed files with 12000 additions and 10527 deletions
+2 -2
View File
@@ -14,7 +14,7 @@ ADR Dependencies, Engine Compatibility, GDD Requirements Addressed
- Use `/architecture-decision` to create ADRs through the guided flow
**TR Registry:** `docs/architecture/tr-registry.yaml`
- Stable requirement IDs (e.g. `TR-MOV-001`) that link GDD requirements to stories
- Stable requirement IDs (e.g. `TR-movement-001`) that link GDD requirements to stories
- Never renumber existing IDs — only append new ones
- Updated by `/architecture-review` Phase 8
@@ -30,4 +30,4 @@ ADR Dependencies, Engine Compatibility, GDD Requirements Addressed
Version-pinned engine API snapshots. **Always check here before using any
engine API** — the LLM's training data predates the pinned engine version.
Current engine: see `docs/engine-reference/godot/VERSION.md`
Current engine: see `docs/engine-reference/<engine>/VERSION.md` (`<engine>` is `godot`, `unity` or `unreal`, matching `engine.name` in `project.yaml`)
+5 -14
View File
@@ -365,7 +365,11 @@ pattern:
❌ **Don't use it for:**
- Open-ended discovery questions ("What excites you about roguelikes?")
- Single yes/no confirmations ("May I write to file?")
- When running as a Task subagent (tool may not be available)
- When running as a subagent (spawned through the `Agent` tool), which never gets
the tool: end with the options as a short labeled list and let the caller ask
A question that comes back skipped, dismissed or empty is not an answer. Act on
nothing; ask again in plain text and wait (`.claude/docs/automation-modes.md`).
### Format Guidelines
@@ -678,16 +682,3 @@ WHEN implementing:
2. Flag any deviations from design docs
3. Ask about ambiguities rather than assuming
```
---
## Implementation Status
This principle has been fully embedded across the project:
- **CLAUDE.md** — Collaboration protocol section added
- **All 49 agent definitions** — Updated to enforce question-asking and approval
- **All skills** — Updated to require approval before writing
- **WORKFLOW-GUIDE.md** — Rewritten with collaborative examples
- **README.md** — Clarifies collaborative (not autonomous) design
- **AskUserQuestion tool** — Used by 68 skills (49 declare it) for structured option UI
+1 -1
View File
@@ -1408,7 +1408,7 @@ The system has 12 hooks that run automatically:
| `pre-compact.sh` | Before compaction | Logs the compaction (its output does not reach Claude) |
| `post-compact.sh` | After compaction | Debug-log reminder only (its output does not reach Claude) |
| `notify.sh` | Notification event | Shows Windows toast notification via PowerShell |
| `validate-commit.sh` | Before commit | Checks for design doc references, valid JSON, no hardcoded values |
| `validate-commit.sh` | Before commit | Checks design doc sections, valid JSON, hardcoded values, TODO format |
| `validate-push.sh` | Before push | Warns on pushes to main, master or release/* |
| `validate-assets.sh` | After a file write | Checks data-file JSON, and asset naming in Godot's `assets/` |
| `validate-skill-change.sh` | Skill file written | Advises running `/skill-test` after `.claude/skills/` changes |
+12 -6
View File
@@ -10,19 +10,25 @@
# - When a GDD requirement is reworded (same intent): update `requirement`
# text and add a `revised` date. The ID stays the same.
# - When a requirement is removed from the GDD: set status: deprecated.
# - When a requirement is split or replaced: set status: superseded-by with
# the new TR-ID(s).
# - When a requirement is split or replaced: set
# status: "superseded-by: TR-[system]-NNN" with the new TR-ID(s), quoted:
# unquoted, the second colon makes the file invalid YAML.
#
# WRITTEN BY: /architecture-review (appends new entries, never overwrites)
# READ BY: /create-stories (embed IDs in stories)
# /dev-story (current requirement text before implementing)
# /story-done (look up current requirement text at review time)
# /story-readiness (validate TR-ID exists and is active)
# /create-epics (trace requirements to ADR coverage)
# /test-helpers (map requirements to tested systems)
# /adopt (brownfield audit: is the registry there)
#
# ID FORMAT: TR-[system-slug]-[NNN]
# system-slug = short slug matching the GDD system name
# ID FORMAT: TR-[system]-[NNN]
# [system] = a short lowercase slug for the system. It is an alias: the
# system's key (system_overrides and the like) is its GDD filename stem
# NNN = three-digit zero-padded sequence per system, starting at 001
#
# STATUS VALUES: active | deprecated | superseded-by: TR-[system]-NNN
# STATUS VALUES: active | deprecated | "superseded-by: TR-[system]-NNN"
version: 1
last_updated: ""
@@ -53,4 +59,4 @@ requirements: []
# requirement: "Old damage formula using raw stats"
# created: 2026-03-10
# revised: ""
# status: superseded-by: TR-combat-001
# status: "superseded-by: TR-combat-001"
@@ -212,13 +212,12 @@ public:
// Tags
// ⚠️ UNVERIFIED FOR 5.7 — `AbilityTags` may be deprecated in favour of
// SetAssetTags()/GetAssetTags(). Reported by the `unreal-specialist`
// agent (2026-08-12), which believed the change landed around 5.5 and
// correctly REFUSED to emit code on a symbol it could not verify.
// NOT SOURCEABLE offline: this repo has no 5.7 API dump to check against,
// and the same knowledge-gap warning that governs the agent governs this
// file. Verify against the UE 5.7 docs before using this snippet, and
// correct both occurrences (here and ~line 328) together.
// SetAssetTags()/GetAssetTags(); the change is believed to have landed
// around 5.5.
// NOT SOURCEABLE — the 5.7 tag API for abilities is not covered by
// docs/engine-reference/unreal/ (no 5.7 API dump). Verify against the UE
// 5.7 docs before using this snippet, and correct both occurrences (here
// and in "Use Tags in Abilities") together.
AbilityTags.AddTag(FGameplayTag::RequestGameplayTag(FName("Ability.Attack.Fireball")));
}