Context
From @rockymadden's #3217/#3225 reviews. Three PRs in a row shipped a named absolute about extension types that was wrong (uipath.aggregate "doesn't exist" — it's a Jint helper; "only X/Y have a template" — StartAgentJob etc. exist; Orchestrator.RunJob called an extension type — it's an outputType). Each was caught at review, not CI.
Fix
Add a CI check (extend tests/tasks/uipath-maestro-bpmn/_shared/test_bpmn_check.py, which already asserts doc claims against bpmn-spec.json) that:
- Extracts
Namespace.Type tokens (e.g. Orchestrator.StartJob, Actions.HITL) and uipath.* helper tokens from skills/uipath-maestro-bpmn/references/**/*.md.
- For any token asserted to not exist (or asserted as an extension type), checks it against
bpmn-spec.json extensionTypes / uipathShortcuts and the Jint-helper allowlist.
- Fails when a doc negates an identifier the spec defines, or calls an
outputType an extension type.
Acceptance
A false absolute about an extension type / Jint helper in the references fails CI instead of surfacing in review.
Context
From @rockymadden's #3217/#3225 reviews. Three PRs in a row shipped a named absolute about extension types that was wrong (
uipath.aggregate"doesn't exist" — it's a Jint helper; "only X/Y have a template" —StartAgentJobetc. exist;Orchestrator.RunJobcalled an extension type — it's anoutputType). Each was caught at review, not CI.Fix
Add a CI check (extend
tests/tasks/uipath-maestro-bpmn/_shared/test_bpmn_check.py, which already asserts doc claims againstbpmn-spec.json) that:Namespace.Typetokens (e.g.Orchestrator.StartJob,Actions.HITL) anduipath.*helper tokens fromskills/uipath-maestro-bpmn/references/**/*.md.bpmn-spec.jsonextensionTypes/uipathShortcutsand the Jint-helper allowlist.outputTypean extension type.Acceptance
A false absolute about an extension type / Jint helper in the references fails CI instead of surfacing in review.