Surfaced while writing #135's contributor doc (contribute/how-to-update-crmscript-reference.mdx). There's no automated check today that catches api-sources/crmscript/*.yml being edited without the corresponding en/automation/crmscript/reference/*.mdx being regenerated to match — or the reverse: someone hand-edits the generated .mdx directly, and the next real regeneration silently clobbers their fix, since transform-crmscript.ps1 always overwrites the whole folder from source.
Natural fit once Tony's Phase 4 API/DB reference pipeline work is further along, since that pipeline will need the same kind of drift-safety.
Surfaced while writing #135's contributor doc (
contribute/how-to-update-crmscript-reference.mdx). There's no automated check today that catchesapi-sources/crmscript/*.ymlbeing edited without the correspondingen/automation/crmscript/reference/*.mdxbeing regenerated to match — or the reverse: someone hand-edits the generated.mdxdirectly, and the next real regeneration silently clobbers their fix, sincetransform-crmscript.ps1always overwrites the whole folder from source.api-sources/crmscript/**and fails if the generateden/automation/crmscript/reference/**output wasn't regenerated to match..mdxdirectly without a corresponding source.ymlchange, since that content is silently overwritten on the next real regeneration.transform-crmscript.ps1+generate-crmscript-nav.ps1+verify-nav-paths.pyinto one wrapper script (mirroringmigrate-folder.ps1's own multi-step orchestration convention), so contributors and CI have a single command instead of three — reduces the chance of a partial run.Natural fit once Tony's Phase 4 API/DB reference pipeline work is further along, since that pipeline will need the same kind of drift-safety.