一键导入
automated-smoke-test
Run an automated smoke test using the godot-mcp server. Launches the project, captures debug output, and checks for errors or crashes.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Run an automated smoke test using the godot-mcp server. Launches the project, captures debug output, and checks for errors or crashes.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Configure the project's game engine and version. Pins the engine in AGENTS.md, detects knowledge gaps, and populates engine reference docs via webfetch when the version is beyond the LLM's training data.
Configure the project's game engine and version. Pins the engine in AGENTS.md, detects knowledge gaps, and populates engine reference docs via webfetch when the version is beyond the LLM's training data.
Validate readiness to advance between development phases. Produces a PASS/CONCERNS/FAIL verdict with specific blockers and required artifacts. Use when user says 'are we ready to move to X', 'can we advance to production', 'check if we can start the next phase', 'pass the gate'.
Reviews a game design document for completeness, internal consistency, implementability, and adherence to project design standards. Run this before handing a design document to programmers.
Estimates task effort by analyzing complexity, dependencies, historical velocity, and risk factors. Produces a structured estimate with confidence levels.
Rapid prototyping workflow. Skips normal standards to quickly validate a game concept or mechanic. Produces throwaway code and a structured prototype report.
| name | automated-smoke-test |
| description | Run an automated smoke test using the godot-mcp server. Launches the project, captures debug output, and checks for errors or crashes. |
| argument-hint | [duration-seconds] |
| user-invocable | true |
| allowed-tools | Read, Glob, Grep, Write, Bash, Task, question |
This skill runs a fully automated smoke test against the Godot project using the godot-mcp server. It launches the project headlessly, captures debug output for a configurable duration, and analyzes the output for errors, warnings, and assertions — producing a structured pass/fail report.
No manual verification required. The entire check is automated through MCP.
Call get_godot_version via the godot-mcp server. If the call succeeds, note
the version string. If it fails, inform the user:
"godot-mcp server is not available. Install it with:
npx @coding-solo/godot-mcpThen configure the MCP server inopencode.json(OpenCode) orpi.json(Pi)."
Stop if the server is unavailable.
Call get_project_info via godot-mcp. Record:
If get_project_info fails, retry up to 3 times with a 2-second delay between
attempts. If all retries fail: "Could not read project info after 3 attempts. Is
the godot-mcp server running against the correct project?" Then stop.
Parse the optional argument for duration. If no argument is provided, default
to 10 seconds. The argument is in seconds: /automated-smoke-test 15 means
capture output for 15 seconds.
Call run_project via godot-mcp. The project must respond (start or error)
within 30 seconds. If no response within the timeout, treat as a failure:
If run_project returns an error or the project fails to start:
Duration scaling: The capture duration should reflect project complexity. A minimal 2D project may produce output in 5 seconds; a large 3D project with many scenes may need 30+ seconds. Default to 10 seconds but consider the project's scope (from Phase 2's project info) and scale up for complex titles. For headless CI runs, prefer longer durations to account for slower hardware.
If get_debug_output returns an error:
Do not use a fixed sleep. Instead, poll get_debug_output in a loop:
get_debug_output.get_debug_output returns an error on any poll tick:
Once polling ends (duration elapsed or early-stop triggered), use the last successful output for analysis. If all polls failed (3 consecutive errors), there is no output to analyze — skip directly to the FAIL verdict.
If the final output is empty or trivially short, note: "Output appears minimal — the project may not have rendered any frames."
Scan the debug output for:
| Pattern | Severity | Flags |
|---|---|---|
ERROR | Error | Catch-all for Godot error messages |
error: | Error | Lower-case variant in scripts |
crash | Critical | Game crashed during runtime |
NullReferenceException | Error | Null access in C# script (.NET) |
segfault | Critical | Memory access violation |
segmentation fault | Critical | Full-form segfault message |
WARNING | Warning | Non-fatal warnings |
warning: | Warning | Lower-case variant |
Assertion failed | Error | GDScript or C# assertion failure |
Count the occurrences of each pattern. Record the actual matching lines (up to 10 per pattern for the report).
Call stop_project via godot-mcp to clean up. If it fails, note:
"Could not stop the project cleanly — you may need to close the Godot
editor or kill the process manually."
Format the report:
## Automated Smoke Test Report
**Date**: [date]
**Project**: [project title]
**Main Scene**: [main scene path]
**Godot Version**: [version from Phase 1]
**Duration**: [X seconds]
---
### Results
| Check | Result |
|-------|--------|
| Project launched | ✅ / ❌ |
| No runtime errors | ✅ / ❌ (N errors found) |
| No critical crashes | ✅ / ❌ (N crashes detected) |
| No warnings | ✅ / ⚠️ (N warnings) |
| No assertion failures | ✅ / ❌ (N assertions failed) |
---
### Error Details
[If errors/crashes found, include the matching lines in a code block.
Otherwise: "No errors detected."]
---
### Warning Details
[If warnings found, include the matching lines in a code block.
Otherwise: "No warnings detected."]
---
### Verdict: [PASS | FAIL | SILENT-FAIL]
**FAIL** if ANY of:
- Project failed to start
- Runtime errors or crashes detected
- Assertion failures found
- Debug output could not be captured after retries
**SILENT-FAIL** if:
- Project launched successfully AND no errors/crashes detected BUT
debug output was empty or trivially short (zero or near-zero lines).
This means the project may have started but produced no frames or
lifecycle output — a configuration problem or silent hang. The user
should verify manually.
**PASS** if ALL of:
- Project launched successfully
- Debug output contains substantive content (not SILENT-FAIL threshold)
- No runtime errors or crashes
- No assertion failures
- Warnings are acceptable (advisory only — do not cause FAIL)
Present the report to the user. Do not write it to a file unless asked.