Skip to content

Commit ddb184c

Browse files
committed
Bump Codex package to 0.4.4
1 parent b0d2e4c commit ddb184c

7 files changed

Lines changed: 108 additions & 4 deletions

File tree

.agents/skills/playtest-report/SKILL.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,14 @@ Generate this template and output it to the user:
3636
- **Session Type**: [First time / Returning / Targeted test]
3737

3838
## Test Focus
39-
[What specific features or flows were being tested]
39+
- **Hypothesis**: [What feeling, behavior, or evidence this playtest is probing]
40+
- **Setup/build**: [Build, commit, command, save state, or scenario if known]
41+
- **Observation prompts**:
42+
1. [Specific thing to watch for]
43+
2. [Specific thing to watch for]
44+
3. [Optional specific thing to watch for]
45+
4. [Optional specific thing to watch for]
46+
- **Verdict/evidence to return**: [User-owned pass/fail/needs-rethink verdict plus notes, screenshots, logs, or report path]
4047

4148
## First Impressions (First 5 minutes)
4249
- **Understood the goal?** [Yes/No/Partially]
@@ -91,6 +98,12 @@ Generate this template and output it to the user:
9198

9299
Read the raw notes at the provided path. Cross-reference with existing design documents. Fill in the template above with structured findings. Flag any playtest observations that conflict with design intent.
93100

101+
If the notes omit a specific hypothesis or focus, state that gap before
102+
analysis and ask for or infer only a provisional `Playtest focus:` from the
103+
notes. Do not route the user to another manual playtest without a concrete
104+
hypothesis, setup/build if known, 2-4 observation prompts, and the
105+
verdict/evidence the user should return.
106+
94107
---
95108

96109
## Phase 3: Action Routing
@@ -141,6 +154,10 @@ Verdict: **COMPLETE** — playtest report generated.
141154
- Act on the highest-priority finding category first.
142155
- After addressing design changes: re-run `$design-review` on the updated GDD.
143156
- After fixing bugs: re-run `$bug-triage` to update priorities.
157+
- If another user-owned playtest is the routed next step, include `Playtest
158+
focus:` with the specific hypothesis, setup/build if known, 2-4 observation
159+
prompts, and the verdict/evidence the user should return. The focus brief
160+
narrows the test but leaves game-feel and balance decisions to the user.
144161

145162
## Ported metadata
146163

.codex/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.4.3
1+
0.4.4

.codex/docs/session-continuity.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,24 @@ The checkpoint exception is narrow. It never authorizes new design, game-feel,
2626
balance, architecture, source, registry, index, status-file, commit, push,
2727
branch, build, boot-smoke, mutating `gh`, or additional file changes.
2828

29+
## User-Owned Playtest Focus
30+
31+
When owed verification or the next valid lane is a user-owned playtest, preserve
32+
a concrete focus brief in both the closeout and any `## Session Worklist` entry.
33+
Use the label `Playtest focus:` and include:
34+
35+
- **Hypothesis**: what feeling, behavior, or evidence the playtest is probing.
36+
- **Setup/build**: the build, command, save state, or scenario to use when
37+
known.
38+
- **Observation prompts**: 2-4 observation prompts for specific things the
39+
user should watch for.
40+
- **Verdict/evidence to return**: the user-owned pass/fail/needs-rethink
41+
verdict plus the notes, screenshots, logs, or playtest report path needed to
42+
make the evidence usable.
43+
44+
The brief narrows the test; it does not make the game-feel, balance, keep,
45+
revert, or tune decision for the user.
46+
2947
## Pause Procedure
3048

3149
Before pausing a meaningful work unit, check whether the invoked workflow still
@@ -44,6 +62,8 @@ decision, blocker, or true stop point.
4462
clear next lane:
4563
`Next action:` then `1. (Recommended) [action label] - [brief reason /
4664
command]`. The user can reply with `1`.
65+
If that lane is a user-owned playtest, include the preserved `Playtest
66+
focus:` brief before the next-action prompt.
4767
4. Preserve exact next commands only when they are known to be useful.
4868
5. Keep local-only notes out of tracked docs unless they are project state.
4969
6. Suggest `$handoff [short-label]` when installed and the next session would

.codex/lib/validate_runtime.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,34 @@
227227
"numbered choice set",
228228
)
229229

230+
PLAYTEST_FOCUS_CONTRACT = {
231+
"AGENTS.md": (
232+
"user-owned playtest",
233+
"Playtest focus:",
234+
"hypothesis",
235+
"setup/build",
236+
"2-4 observation",
237+
"verdict/evidence",
238+
),
239+
".codex/docs/session-continuity.md": (
240+
"user-owned playtest",
241+
"Playtest focus:",
242+
"hypothesis",
243+
"setup/build",
244+
"2-4 observation",
245+
"verdict/evidence",
246+
"Session Worklist",
247+
),
248+
".agents/skills/playtest-report/SKILL.md": (
249+
"user-owned playtest",
250+
"Playtest focus:",
251+
"hypothesis",
252+
"setup/build",
253+
"2-4 observation",
254+
"verdict/evidence",
255+
),
256+
}
257+
230258
INTERNAL_READONLY_CLOSEOUT_PATTERNS = (
231259
(re.compile(r"\bself[- ]check\b", re.IGNORECASE), "Self-Check"),
232260
(re.compile(r"\bregistry (?:candidate )?scan\b", re.IGNORECASE), "registry scan"),
@@ -430,6 +458,20 @@ def validate_instruction_budgets(root: Path) -> tuple[list[str], list[str]]:
430458
return errors, warnings
431459

432460

461+
def validate_playtest_focus_contract(root: Path) -> list[str]:
462+
errors: list[str] = []
463+
for rel, required_phrases in PLAYTEST_FOCUS_CONTRACT.items():
464+
path = root / rel
465+
if not path.exists():
466+
errors.append(f"{rel}: missing playtest focus contract surface")
467+
continue
468+
text = path.read_text(encoding="utf-8").lower()
469+
missing = [phrase for phrase in required_phrases if phrase.lower() not in text]
470+
if missing:
471+
errors.append(f"{rel}: missing playtest focus contract phrase(s): {', '.join(missing)}")
472+
return errors
473+
474+
433475
def validate_active_state_checkpoint_text(rel: Path, text: str, exempt: bool = False) -> list[str]:
434476
if exempt or ACTIVE_STATE_PATH not in text:
435477
return []
@@ -639,6 +681,7 @@ def main() -> int:
639681
budget_errors, budget_warnings = validate_instruction_budgets(root)
640682
errors.extend(budget_errors)
641683
warnings.extend(budget_warnings)
684+
errors.extend(validate_playtest_focus_contract(root))
642685
if args.kind == "skills":
643686
errors.extend(validate_skills(root, args.require_present))
644687
if args.kind == "agents":

AGENTS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ verification-first implementation.
4242
`Next action:` then `1. (Recommended) [action label] - [brief reason /
4343
command]`. Base that next action on the `## Session Worklist` when
4444
`production/session-state/active.md` exists. The user can reply with `1`.
45+
- When the next action or owed verification is a user-owned playtest, include
46+
`Playtest focus:` with the hypothesis, setup/build if known, 2-4 observation
47+
prompts, and the verdict/evidence the user should return.
4548

4649
## Available Codex Role Agents
4750

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,19 @@
44

55
- Nothing yet.
66

7+
## v0.4.4 - 2026-07-09
8+
9+
- Added a user-owned playtest focus contract so closeouts and owed verification
10+
must include a `Playtest focus:` brief instead of generic playtest requests.
11+
- Updated session continuity guidance to preserve the playtest hypothesis,
12+
setup/build, observation prompts, and requested verdict/evidence in
13+
`## Session Worklist` entries.
14+
- Updated `$playtest-report` templates and routing so new reports and follow-up
15+
playtests carry a concrete hypothesis while leaving game-feel and balance
16+
verdicts with the user.
17+
- Added runtime validation to keep the playtest-focus rule present in root
18+
instructions, continuity docs, and the playtest-report workflow.
19+
720
## v0.4.3 - 2026-07-08
821

922
- Tightened the role-agent delegation contract so invoking a CCGS skill is the

README.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Codex Game Studios turns a game repository into a Codex-native indie studio
44
workflow: 49 role agents, 77 repo-local skills, verification-first handoffs, and
55
Godot-first production guidance for small teams building playable slices.
66

7-
Current package version: `0.4.2`.
7+
Current package version: `0.4.4`.
88

99
This project is an unofficial Codex-native port of
1010
[Donchitos/Claude-Code-Game-Studios](https://github.com/Donchitos/Claude-Code-Game-Studios),
@@ -29,8 +29,16 @@ surfaces with Codex-native agents, skills, hooks, rules, and install behavior.
2929

3030
## Current Status
3131

32-
The current release line is `v0.4.2`. It includes:
32+
The current release line is `v0.4.4`. It includes:
3333

34+
- User-owned playtest focus routing: when owed verification or the next action
35+
is a manual playtest, closeouts include a `Playtest focus:` brief with the
36+
hypothesis, setup/build, observation prompts, and verdict/evidence to return.
37+
- `$playtest-report` templates and follow-up routing now require concrete
38+
hypotheses before sending the user back to play, while preserving the user's
39+
ownership of game-feel and balance verdicts.
40+
- Runtime validation keeps the playtest-focus contract present in root
41+
instructions, session-continuity docs, and the playtest-report workflow.
3442
- Active session-state checkpoint updates: after the user approves the
3543
underlying workflow artifact or decision, skills may update only
3644
`production/session-state/active.md` without asking a second "May I write?"

0 commit comments

Comments
 (0)