← Commit history

publishing skill: import smoke-test gate (1.9.145 outage lesson)

John Lauer ·64a8a2a98e ·1mo ago ·parent 2f6a38f
1 file changed +11−2
dev-skills/fusion-publishing/SKILL.md+11−2
@@ -46,8 +46,17 @@ The bridge has TWO delivery channels that move together: - **package** (SKILL.md, skills/ tier, docs, installers, per page.json `files`) -> delivered by   `adom-wiki pkg install` / user updates. Skills ship ONLY here. -1. Edit source. `python3 -c "import ast; ast.parse(open('server.py').read())"` +-   `python3 tools/shadow_check.py server.py` (0 findings required).+1. Edit source. THREE gates, all required - and the third is the one that catches what the+   first two cannot:+   - `python3 -c "import ast; ast.parse(open('server.py').read())"` (syntax)+   - `python3 tools/shadow_check.py server.py` (0 findings)+   - `python3 -c "import server"` **(IMPORT SMOKE TEST - MANDATORY.)** Syntax + AST pass a+     forward reference; import does not. The 1.9.145 OUTAGE (2026-08-23): a handler was+     registered in the COMMAND_HANDLERS dict literal ~1600 lines BEFORE its `def`, syntax and+     shadow-check were green, and the deployed server NameError'd on import and crash-looped -+     every fusion verb returned "Transient" until the 1.9.146 hotfix. If a handler must be+     defined after the dict, register it post-definition+     (`COMMAND_HANDLERS["x"] = _handle_x` after the def, like the mcp_* handlers). 2. Bump `BRIDGE_VERSION` + `bridge.json` (bridge ver) AND `page.json` + `package.json`    (pkg ver) - they track separately but always move together in a release. 3. Build the zip from `tools/release-files.txt` (python zipfile; 59 files, MISSING must be none).