跳转至

v0.2.2 — 2026-04-28

Added

  • auditor_model configuration key in config/config.yaml.default (default sonnet) — selects the model used by the new two-pass GDD audit; previously the default was inlined in game-planner SKILL.md and could drift from config.
  • Cross-layer consistency tests — tests/test_config_consistency.py checks that every *_model referenced from a skill is declared in config.yaml.default with the same default; tests/test_audit_workflow.py enforces the Round 6 + Round 7 dispatch contract and the "Previously Asked" MUST-populate marker on the second audit pass.
  • docs/wiki/07-contributing/codebase-guide.md (EN + zh): "Permission contract layers" subsection explaining the three-place split — stage_schemas.json (completion gates), check_file_permissions.py (write-scope authority), per-skill Permission section (human-readable mirror) — and warning that schemas alone do not grant write permission.
  • docs/update/v0.2.0.md: "Upgrading from v0.1.x" section that declares clean redeploy via python tools/publish.py --force as the supported path. There is no migrations/0.1_to_0.2/ script and the in-place migration story for that boundary is intentionally out of scope.
  • Pre-push CI-mirror hook — runs the same lint and test commands as GitHub Actions before every push, catching CI-only failures locally.

Changed

  • check_file_permissions.py — narrowed evaluate/verify write scopes. Evaluate may now write e2e/, .godotmaker/evaluation.json, .godotmaker/stage.jsonl, and .godotmaker/current_role; verify is read-only except for .godotmaker/stage.jsonl and .godotmaker/current_role. Both roles previously had implicit access to the entire .godotmaker/ directory, which contradicted the documented permission contract.
  • gm-evaluate and gm-verify SKILL.md — explicit Permission sections that mirror the new hook allow-lists; gm-fixgap SKILL.md notes the loop position (fixgap → verify → evaluate, never terminal).
  • game-planner SKILL.md — auditor_model default switched from opus to sonnet to match config.yaml.default; the audit task is checklist-driven and does not need opus-tier reasoning.
  • the-9-roles.md (EN + zh): /gm-asset section expanded to describe scene reference image generation and how /gm-evaluate uses references/scene_<name>.png as the visual contract for VQA.
  • FAQ (EN + zh): per-scene visual reference target now correctly listed as references/scene_<name>.png; runtime screenshot directory e2e/screenshots/scene_<name>/frame_*.png is documented separately as the animated frame capture location.
  • Active terminology converged on the role-based model — "Stage 1b", "Stage 4", and "orchestrator" removed from hooks, skills, templates, agents, and tests. Historical references in changelog/glossary/FAQ explanations are kept on purpose.
  • README first-run flow (EN + zh) — entry command for a new project is now /gm-scaffold, with /gm-gdd as the per-milestone follow-up; previously the two were ordered inconsistently between README and the wiki.
  • docs/update/release-checklist.md — new step 5 covering five cross-layer consistency gates (README/wiki entry-flow, new *_model in config default, documented-vs-produced artifacts, release-notes nav, EN-only zh release-notes policy).
  • templates/TOC.md — replaced the legacy "Stage Execution Records" placeholders with a "Pipeline Records" section listing real artifacts (stage.jsonl, evaluation.json, final_report.json, GAP.md).
  • tests/test_agents.py — drops the PyYAML runtime dependency by parsing frontmatter manually; the project already mandates Python 3.10 stdlib only.
  • CI workflows bumped to actions/checkout@v6 and actions/setup-python@v6 (Node 24 runtime), tracking GitHub's deprecation timeline.

Fixed

  • Hook docstrings, comments, and user-visible block messages no longer say "orchestrator" — check_file_permissions.py, session_start.py, stage_reminder.py, metrics/highlights.py (Completion Fail Loop highlight), and metrics/schema.py (event-type comment) now use "main agent", "the active role", or "the dispatching role".
  • _shared/manifest.json sanity checks — check_stage_prerequisites.py and stage_reminder.py now raise RuntimeError (instead of assert) when their role-mapping invariants drift, so the check survives python -O.
  • All references to .godotmaker/verify_result.json removed from skills and wiki — that file was documented but never produced; the verify role's actual output is the printed report plus a stage.jsonl event.

Removed

  • templates/TOC.md "Stage Execution Records" rows (STAGE_3 through STAGE_8) — those stage names map to nothing in the role-based pipeline.