Why it matters
The weekly "Update Unity API Data" workflow looks like it keeps the API database current, but it only rewrites lifecycle_order.json, which no MCP tool reads. It also pushes directly to an unprotected main, pinned to an old docs version. It gives a false sense of freshness while adding unreviewed commits.
Evidence
.github/scripts/refresh_unity_data.py:118-121 - only lifecycle_order.json is refreshed. unity_api_common.json, deprecated_patterns.json, shader_properties.json, platform_defines.json are never updated.
grep lifecycle_order mcp-server/server.py returns nothing: no tool loads that file.
refresh_unity_data.py:22 - UNITY_DOCS_BASE = ".../6000.1/Documentation/ScriptReference" is hardcoded.
- The lifecycle list includes
OnPreCull, OnPreRender, OnPostRender, OnRenderImage, which are not called in URP/HDRP, with no pipeline note.
.github/workflows/update-unity-api.yml commits and git pushes straight to main; gh api .../branches/main/protection returns "Branch not protected".
Suggested approach
- Either expose lifecycle data through a tool (e.g. a
lifecycle_info tool or include it in lookup_api) or stop refreshing it.
- Rename the workflow to reflect what it does, read the docs version from a single config value, and open a PR (e.g.
peter-evans/create-pull-request) instead of pushing to main.
- Enable branch protection on
main with required status checks (Validate), and allow the release bot through a ruleset bypass.
- Add a pipeline-compatibility field to lifecycle entries.
Done when
Automated data changes arrive as PRs that pass CI, the refreshed data is actually used, and main is protected.
Why it matters
The weekly "Update Unity API Data" workflow looks like it keeps the API database current, but it only rewrites
lifecycle_order.json, which no MCP tool reads. It also pushes directly to an unprotectedmain, pinned to an old docs version. It gives a false sense of freshness while adding unreviewed commits.Evidence
.github/scripts/refresh_unity_data.py:118-121- onlylifecycle_order.jsonis refreshed.unity_api_common.json,deprecated_patterns.json,shader_properties.json,platform_defines.jsonare never updated.grep lifecycle_order mcp-server/server.pyreturns nothing: no tool loads that file.refresh_unity_data.py:22-UNITY_DOCS_BASE = ".../6000.1/Documentation/ScriptReference"is hardcoded.OnPreCull,OnPreRender,OnPostRender,OnRenderImage, which are not called in URP/HDRP, with no pipeline note..github/workflows/update-unity-api.ymlcommits andgit pushes straight tomain;gh api .../branches/main/protectionreturns "Branch not protected".Suggested approach
lifecycle_infotool or include it inlookup_api) or stop refreshing it.peter-evans/create-pull-request) instead of pushing tomain.mainwith required status checks (Validate), and allow the release bot through a ruleset bypass.Done when
Automated data changes arrive as PRs that pass CI, the refreshed data is actually used, and
mainis protected.