diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index f006250..ed26bcd 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "codex-game-studios", "version": "0.2.0", - "description": "A Codex plugin for game-production workflows, project runtime setup, and guided game concept brainstorming.", + "description": "A Codex plugin for game-production workflows and guided game concept brainstorming.", "author": { "name": "wxm", "email": "18854896936@163.com", @@ -14,7 +14,6 @@ "games", "game-development", "studio-workflow", - "runtime-setup", "brainstorm", "gdd" ], @@ -22,7 +21,7 @@ "interface": { "displayName": "Codex Game Studios", "shortDescription": "Game-production workflows for Codex", - "longDescription": "Codex Game Studios exposes plugin-native skills for initializing game projects, installing bundled director agents, and guiding concept ideation into structured game design documentation.", + "longDescription": "Codex Game Studios exposes plugin-native skills for guided game concept ideation and structured game design documentation.", "developerName": "wxm", "category": "Coding", "capabilities": [ @@ -34,9 +33,7 @@ "privacyPolicyURL": "https://gitea.wuxianming.ac.cn/wxm/codex-game-studios", "termsOfServiceURL": "https://gitea.wuxianming.ac.cn/wxm/codex-game-studios", "defaultPrompt": [ - "Use $setup-runtime to initialize this game project.", - "Use $brainstorm to shape my game concept.", - "Use $using-codex-game-studios to explain the workflow." + "Use $brainstorm to shape my game concept." ], "brandColor": "#0F766E", "composerIcon": "./assets/codex-game-studio.svg", diff --git a/README.md b/README.md index 876224a..bce815b 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,6 @@ skills expose the runtime workflows directly. Do not use a global ## Current State - Skills: - - `$using-codex-game-studios` explains the plugin workflow and entry points. - - `$setup-runtime` installs bundled director agents into a target game project. - `$brainstorm` guides game concept ideation into `design/gdd/game-concept.md` and `design/gdd/game-pillars.md`. - Runtime agents: `creative-director`, `art-director`, `technical-director`, `producer` @@ -33,11 +31,11 @@ still call specialist subagents as part of their core work. ## Runtime Setup -To install the bundled custom agents into a game project, invoke `$setup-runtime` -or run the installer directly: +To install the bundled custom agents into a game project, run the installer +directly: ```bash -python3 skills/setup-runtime/scripts/install_codex_runtime.py /path/to/game-project +python3 scripts/install_codex_runtime.py /path/to/game-project ``` The installer writes custom agents to: diff --git a/references/studio-docs/director-gates.md b/references/studio-docs/director-gates.md index 741dc6c..f1635da 100644 --- a/references/studio-docs/director-gates.md +++ b/references/studio-docs/director-gates.md @@ -21,9 +21,10 @@ Spawn `creative-director` via Codex custom-agent delegation using gate The matching custom agent must already be installed in the target project at `.codex/agents/.toml`. The plugin source copies for those agents live -in `runtime/agents/`; run `$setup-runtime` if the target project is missing -them. Pass the context listed under that gate's **Context to pass** field, then -handle the verdict using the **Verdict handling** rules below. +in `runtime/agents/`; run `python3 scripts/install_codex_runtime.py ` +from the plugin root if the target project is missing them. Pass the context +listed under that gate's **Context to pass** field, then handle the verdict +using the **Verdict handling** rules below. Director names are Codex custom agent names. Do not recreate them by pasting profile text into a generic default agent. diff --git a/skills/setup-runtime/scripts/install_codex_runtime.py b/scripts/install_codex_runtime.py similarity index 100% rename from skills/setup-runtime/scripts/install_codex_runtime.py rename to scripts/install_codex_runtime.py diff --git a/scripts/validate_plugin.py b/scripts/validate_plugin.py index 444cd67..212b57c 100755 --- a/scripts/validate_plugin.py +++ b/scripts/validate_plugin.py @@ -12,10 +12,8 @@ from pathlib import Path ROOT = Path(__file__).resolve().parents[1] FORBIDDEN_NAMES = {".DS_Store", ".env", "plan.md"} FORBIDDEN_PARTS = {".git", "__pycache__"} -REQUIRED_SKILLS = { +EXPECTED_SKILLS = { "brainstorm", - "setup-runtime", - "using-codex-game-studios", } REQUIRED_RUNTIME_AGENTS = { "art-director.toml", @@ -78,6 +76,20 @@ def assert_skill(skill_name: str) -> None: fail(f"Missing skill description in {skill_path.relative_to(ROOT)}") +def assert_skill_set() -> None: + present = { + path.parent.name + for path in (ROOT / "skills").glob("*/SKILL.md") + } + if present != EXPECTED_SKILLS: + fail( + "Skill set mismatch. Expected exactly: " + + ", ".join(sorted(EXPECTED_SKILLS)) + + "; found: " + + ", ".join(sorted(present)) + ) + + def assert_runtime_agents() -> None: agent_dir = ROOT / "runtime" / "agents" if not agent_dir.is_dir(): @@ -113,7 +125,8 @@ def assert_package_hygiene() -> None: def main() -> int: assert_manifest() - for skill_name in sorted(REQUIRED_SKILLS): + assert_skill_set() + for skill_name in sorted(EXPECTED_SKILLS): assert_skill(skill_name) assert_runtime_agents() assert_package_hygiene() diff --git a/skills/brainstorm/DETAILS.md b/skills/brainstorm/DETAILS.md index c50f7d5..b719e73 100644 --- a/skills/brainstorm/DETAILS.md +++ b/skills/brainstorm/DETAILS.md @@ -20,9 +20,10 @@ When this skill is invoked: Director agent source files live in `../../runtime/agents/`. Before running any `full` review-mode gate, verify the target project has the matching `.codex/agents/.toml` files installed. If they are missing, run - `$setup-runtime` for the project first. When a gate is active, spawn the - named Codex custom agent; do not recreate the director role by pasting - profile text into a generic default agent. + `python3 scripts/install_codex_runtime.py ` from the plugin + root first. When a gate is active, spawn the named Codex custom agent; do not + recreate the director role by pasting profile text into a generic default + agent. 2. **Check for existing concept work**: - Read `design/gdd/game-concept.md` if it exists (resume, don't restart) diff --git a/skills/brainstorm/SKILL.md b/skills/brainstorm/SKILL.md index 139dbdd..9712868 100644 --- a/skills/brainstorm/SKILL.md +++ b/skills/brainstorm/SKILL.md @@ -9,7 +9,7 @@ Run the Codex Game Studios brainstorm workflow. Before acting, read `DETAILS.md` for the full workflow. Apply project guidance from `AGENTS.md` and use `../../standards/` for path-specific standards. -Director gates use the bundled custom agents from `../../runtime/agents/`. If the current project does not already have those agents installed in `.codex/agents/`, run `$setup-runtime` first. +Director gates use the bundled custom agents from `../../runtime/agents/`. If the current project does not already have those agents installed in `.codex/agents/`, run `python3 scripts/install_codex_runtime.py ` from the plugin root first. Review mode controls review-gate intensity, not all custom-agent usage: `full` runs key director/lead gates, `lean` runs only PHASE-GATE checks such as diff --git a/skills/setup-runtime/SKILL.md b/skills/setup-runtime/SKILL.md deleted file mode 100644 index 99e2e7e..0000000 --- a/skills/setup-runtime/SKILL.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -name: setup-runtime -description: "Use when a user asks to initialize, install, or refresh the Codex Game Studios runtime in a game project. Installs bundled director custom agents into the target project's .codex/agents directory." ---- - -# Setup Runtime - -Install the Codex Game Studios runtime assets into the current game project. - -## Workflow - -1. Treat the current working directory as the target project unless the user names another path. -2. Run `scripts/install_codex_runtime.py `. -3. Report installed, unchanged, and conflicting agent files. -4. If conflicts are reported, do not overwrite them unless the user explicitly asks for `--force`. - -The installer copies runtime agents from the plugin's `runtime/agents/` directory to: - -```text -/.codex/agents/ -``` - -The runtime currently contains only Codex custom-agent TOML files. It does not install hooks, rules, MCP servers, apps, or project templates. diff --git a/skills/setup-runtime/agents/openai.yaml b/skills/setup-runtime/agents/openai.yaml deleted file mode 100644 index 8171611..0000000 --- a/skills/setup-runtime/agents/openai.yaml +++ /dev/null @@ -1,4 +0,0 @@ -interface: - display_name: "Setup Runtime" - short_description: "Install game-studio agents into a project" - default_prompt: "Use $setup-runtime to initialize this game project." diff --git a/skills/using-codex-game-studios/SKILL.md b/skills/using-codex-game-studios/SKILL.md deleted file mode 100644 index e52e01a..0000000 --- a/skills/using-codex-game-studios/SKILL.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -name: using-codex-game-studios -description: "Use when a user asks how the Codex Game Studios plugin is structured, what workflow to run next, how to initialize it, or how it differs from generic development workflow plugins." ---- - -# Using Codex Game Studios - -Codex Game Studios is a game-production plugin built around plugin-discovered skills, not global `~/.codex/skills` bridge folders. - -## Entry Points - -- Use `$setup-runtime` when a project needs the bundled director agents installed into `.codex/agents/`. -- Use `$brainstorm` to turn a rough game idea into `design/gdd/game-concept.md`. -- Use `runtime/agents/` as the plugin source of bundled custom agents. -- Use `references/` and `standards/` only when the active workflow points to them. - -## Review Intensity - -`production/review-mode.txt` controls review-gate intensity, not whether agents -exist or whether future team workflows may use subagents for core work: - -- `full` — all key director / lead review gates call their custom agents. -- `lean` — only PHASE-GATE review gates such as `/gate-check` call directors; - ordinary per-skill review gates are skipped. -- `solo` — all director review gates are skipped. - -## Design Rule - -Do not rely on a global `~/.codex/skills/codex-game-studio` bridge. The installed plugin exposes its skills through `.codex-plugin/plugin.json` with `"skills": "./skills/"`, matching the normal Codex plugin layout. diff --git a/skills/using-codex-game-studios/agents/openai.yaml b/skills/using-codex-game-studios/agents/openai.yaml deleted file mode 100644 index 8eac1ac..0000000 --- a/skills/using-codex-game-studios/agents/openai.yaml +++ /dev/null @@ -1,4 +0,0 @@ -interface: - display_name: "Using Codex Game Studios" - short_description: "Understand the game-studio plugin workflow" - default_prompt: "Use $using-codex-game-studios to explain this plugin workflow."