mirror of
https://github.com/Donchitos/Claude-Code-Game-Studios.git
synced 2026-10-16 10:17:06 +00:00
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:
co-authored by
Claude Opus 5.5
parent
b21fa0f7f2
commit
be8993bbc5
@@ -0,0 +1,121 @@
|
||||
# /story-done — Phase 6: Present the Completion Report
|
||||
|
||||
> Part of `/story-done`. `SKILL.md` names when to read this file; the settings it
|
||||
> resolved and the rules under its later headings still apply here.
|
||||
|
||||
## Phase 6: Present the Completion Report
|
||||
|
||||
**In this file:**
|
||||
|
||||
- The completion report template
|
||||
- Verdict definitions
|
||||
- `NOT ASSESSED` and verdict precedence
|
||||
|
||||
Before updating any files, present the full report:
|
||||
|
||||
```markdown
|
||||
## Story Done: [Story Name]
|
||||
**Story**: [file path]
|
||||
**Date**: [today]
|
||||
|
||||
### Acceptance Criteria: [X/Y passing]
|
||||
- [x] [Criterion 1] — auto-verified (test file present)
|
||||
- [x] [Criterion 2] — confirmed
|
||||
- [ ] [Criterion 3] — FAILS: [reason]
|
||||
- [?] [Criterion 4] — DEFERRED: requires playtest
|
||||
|
||||
### Test-Criterion Traceability
|
||||
| Criterion | Test | Status |
|
||||
|-----------|------|--------|
|
||||
| AC-1: [text] | [test file::test name] | COVERED |
|
||||
| AC-2: [text] | Manual confirmation | COVERED |
|
||||
| AC-3: [text] | — | UNTESTED |
|
||||
|
||||
### Test Evidence
|
||||
**Story Type**: [Logic | Integration | Visual/Feel | UI | Config/Data | Not declared]
|
||||
**Required evidence**: [unit test file | integration test or playtest | screenshot + sign-off | screenshot of each screen touched | smoke check pass]
|
||||
**Evidence found**: [YES — `[path]` | NO — BLOCKING | NO — ADVISORY]
|
||||
|
||||
### Deviations
|
||||
[NONE] OR:
|
||||
- BLOCKING: [description] — [GDD/ADR reference]
|
||||
- ADVISORY: [description] — user accepted / flagged for tech debt
|
||||
|
||||
### Scope
|
||||
[All changes within stated scope] OR:
|
||||
- Extra files touched: [list] — [note whether valid or scope creep]
|
||||
|
||||
### Verdict: COMPLETE / COMPLETE WITH NOTES / NOT ASSESSED / BLOCKED
|
||||
```
|
||||
|
||||
**Verdict definitions:**
|
||||
- **COMPLETE**: all criteria pass, no blocking deviations
|
||||
- **COMPLETE WITH NOTES**: every criterion passes or is `DEFERRED` (Phase 3 —
|
||||
evaluable, awaiting a playtest), with advisory deviations or deferred criteria
|
||||
documented — list each DEFERRED criterion so it is not lost
|
||||
- **NOT ASSESSED**: one or more acceptance criteria could not be evaluated at
|
||||
all — name which, and why
|
||||
- **BLOCKED**: failing criteria or blocking deviations must be resolved first
|
||||
|
||||
**`NOT ASSESSED` — the story nobody could verify.** Rank: it **outranks COMPLETE
|
||||
and COMPLETE WITH NOTES** (a review that could not evaluate a criterion has not
|
||||
shown the criterion is met) and **ranks below BLOCKED** (a criterion known to
|
||||
fail is more actionable than one nobody could check, and demoting it would bury
|
||||
it). It is not a gentler BLOCKED: "this acceptance criterion fails" and "I could
|
||||
not tell whether it passes" send the reader to different fixes.
|
||||
|
||||
**Verdict precedence — first matching rule wins**, evaluated in this order:
|
||||
**BLOCKED**, then **NOT ASSESSED**, then **COMPLETE WITH NOTES**, then
|
||||
**COMPLETE**. A run with both a failing criterion and an unassessable one is
|
||||
BLOCKED. Stating the order mechanically, rather than leaving it to be inferred
|
||||
from the rank sentence, is what keeps two reviewers from grading the same story
|
||||
differently.
|
||||
|
||||
Emit it when any of:
|
||||
|
||||
- An acceptance criterion **cannot be evaluated at all** — it names no observable
|
||||
outcome, so no evidence could settle it either way.
|
||||
> **Not the same as Phase 3's `DEFERRED`.** A criterion that is evaluable but
|
||||
> needs a playtest is `DEFERRED — requires playtest session`, it does **not**
|
||||
> block, and Phase 3 keeps ownership of it. This trigger is for a criterion no
|
||||
> session could ever settle as written. If Phase 3 already marked it DEFERRED,
|
||||
> that classification stands and this trigger does not fire.
|
||||
- A criterion the user answered **`Not tested yet`** (Phase 3) — it could be
|
||||
checked, but nobody has. Name it and what would settle it: launch the build,
|
||||
check it, then re-run `/story-done`.
|
||||
- QL-TEST-COVERAGE or LP-CODE-REVIEW returned **NOT ASSESSED** and the input it
|
||||
named was not supplied.
|
||||
- The **test evidence is present but unreadable or unclassifiable** — corrupt,
|
||||
empty, or of a type that cannot be determined.
|
||||
> **Absent evidence is Phase 3's, not this trigger's.** Phase 3 resolves a
|
||||
> missing file through `testing.strict`: BLOCKING types produce **BLOCKED**,
|
||||
> ADVISORY types produce **COMPLETE WITH NOTES**. Both outrank or are already
|
||||
> decided, so re-routing "absent" here would silently override an explicit
|
||||
> advisory ruling. *Unreadable* is the genuinely unassessable case, and it is
|
||||
> the only one this trigger claims.
|
||||
- **`/test-evidence-review` returned `NOT ASSESSED`** for this story — applicable
|
||||
only when that skill was actually run against it, which this skill does not do
|
||||
itself. It
|
||||
propagates: that skill's whole point is that "could not check" is not
|
||||
"checked and fine", and collapsing its unknown into a COMPLETE here would undo
|
||||
the distinction one skill downstream. `coding-standards.md` marks Logic and
|
||||
Integration evidence BLOCKING, so this is the path where an unverifiable story
|
||||
would otherwise acquire a verdict saying somebody verified it.
|
||||
- A **deviation's severity cannot be determined** because the GDD or ADR it
|
||||
would be judged against is missing.
|
||||
|
||||
A `NOT ASSESSED` verdict takes the same Phase 7 path as BLOCKED: do not
|
||||
automatically proceed, list what could not be checked and what would make it
|
||||
checkable. Closing anyway remains the user's explicit call, and stays gated by
|
||||
Phase 7's `scope_changes` always-ask rule.
|
||||
|
||||
If the verdict is **BLOCKED**: do not *automatically* proceed to Phase 7. List
|
||||
what must be fixed and offer to help fix the blocking items. This is the
|
||||
default path, not an absolute stop — the user may still explicitly ask to
|
||||
close the story anyway despite the blockers. That request is what routes to
|
||||
Phase 7's menu below, and Phase 7's own `scope_changes` always-ask rule is
|
||||
exactly what stands between that request and a silent close in autonomous
|
||||
mode. Do not treat "do not automatically proceed" as "Phase 7 is now
|
||||
unreachable" — it is reachable, on request, and gated when reached.
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user