@W-23201206: build-mule-integration — port skill scripts (incl. templates) from bash to Node#147
@W-23201206: build-mule-integration — port skill scripts (incl. templates) from bash to Node#147bpolat1 wants to merge 1 commit into
Conversation
f85f828 to
874a8ca
Compare
874a8ca to
68bfd53
Compare
68bfd53 to
efaae39
Compare
…ates) from bash to Node Replaces ALL bundled helper scripts with the validated OS-agnostic Node port from mule-dx-agent-evaluation. Behavior-preserving (byte-identical output, verified by a .sh<->.mjs parity suite); only the implementation language and the invocation form (node scripts/<name>.mjs) change. - scripts/*.sh -> scripts/*.mjs (11 scripts, ESM, zero npm deps) + new lib/*.mjs (7 shared modules). The template-search path ports too: search_templates.sh -> search_templates.mjs, and references/template-project-creation.md now documents the node invocation (Step 1b / Exchange / Local flows unchanged). - Drops scripts/_suggest_nearest.py (its only consumer, validate_before_build, now uses lib/nearest.mjs). - SKILL.md body synced to the Node version (node scripts invocations, update-mode + Step-8 mule-artifact alignment). Bash->Node is breaking for direct script callers, so the skill majors: 1.3.0 -> 2.0.0. - package.json: 1.5.0 -> 2.0.0; files += "*/lib/**" so the imported lib/ modules publish. - CHANGELOG.md: 2.0.0 entry documenting the breaking script-language switch. validate-skills (R1-R7) and validate-jtbd both pass; all 18 .mjs node --check clean.
efaae39 to
122e351
Compare
| @@ -0,0 +1,193 @@ | |||
| #!/usr/bin/env node | |||
There was a problem hiding this comment.
skills/mule-development/manage-global-configurations/SKILL.md (lines 171, 179, 187, 210)
Issue: Invokes bash scripts/{get_latest_connector,pick_connector,describe_connector,build_gav}.sh but these scripts no longer exist — PR deleted all .sh files and replaced them with .mjs.
Impact: When an agent runs the manage-global-configurations skill (Steps 3-7: connector resolution), all four bash invocations will fail with "No such file or directory". Skill is broken.
Root cause: PR updated build-mule-integration/SKILL.md comprehensively to use node scripts/*.mjs, but manage-global-configurations/SKILL.md shares the same helper scripts (they live in build-mule-integration/scripts/) and was not updated.
Fix required: Update manage-global-configurations/SKILL.md lines 171, 179, 187, and 210 to use node scripts/.mjs instead of bash scripts/.sh.
There was a problem hiding this comment.
The scripts aren't shared. manage-global-configurations has its own copies of get_latest_connector.sh / pick_connector.sh / describe_connector.sh / build_gav.sh in manage-global-configurations/scripts/, and its SKILL.md explicitly resolves scripts/ against its own skill root ("shell scripts in its own scripts/ directory", line 104/113). This PR doesn't modify anything under manage-global-configurations — those .sh files still exist and still run. So the connector-resolution steps (3–7) are unaffected; nothing is broken.
What
Ports all of the
build-mule-integrationskill's bundled helper scripts from bash to Node (OS-agnostic, ESM, zero npm deps). This includes the template-search path —search_templates.sh→search_templates.mjs— so the skill no longer ships any bash. Template functionality is fully preserved; only the implementation language changed.The Node port is the version validated under W-22940856 in
mule-dx-agent-evaluation(full unit + bash↔Node parity suite green), where each.mjsis asserted to produce byte-identical output to the.shit replaces.Bash → Node is a breaking change for anything that invoked the
.shfiles directly, so the skill majors to 2.0.0.Changes
scripts/*.sh→scripts/*.mjs(11 scripts) + newlib/*.mjs(7 shared modules: Exchange ranking, template ranking, POM editing, nearest-match, platform/anypoint helpers, fs utils). Invocation form changes frombash scripts/<name>.shtonode scripts/<name>.mjs.search_templates.sh→search_templates.mjs;references/template-project-creation.mdnode-ified (documentsnode scripts/search_templates.mjs ...). Step 1b and the Exchange/Local template flows are otherwise unchanged.scripts/_suggest_nearest.py— its only consumer (validate_before_build) now useslib/nearest.mjs, removing the Python dependency.SKILL.mdbody synced to the Node version (node invocations, update-mode + Step-8mule-artifact.jsonalignment). Version1.3.0→2.0.0.package.json:1.5.0→2.0.0, andfilesnow includes*/lib/**so the importedlib/modules publish (the Node scriptsimportfrom../lib/*.mjs).CHANGELOG.md: new2.0.0entry documenting the breaking script-language switch (Changed / Added / Removed).Validation
make validate-skills(R1–R7) → all skills valid.make validate-jtbd→ job valid (18 sequential steps).node --checkclean on all 18.mjs.mule-dx-agent-evaluation): 125/125 unit + parity tests green, including asearch_templates.sh↔search_templates.mjsbyte-identical-output parity scenario.