Resolve provider targets into the canonical resolved-target shape and
write them to artifacts/batch-workflows-targets.json before queueing.
For Jira, use the trusted Jira tool surface to search and preview the list:
project = "<jira_project_key>" AND status = "<jira_status>"
Append additional_jql only when provided. Each target is:
{
"provider": "jira",
"ref": "MM-123",
"jiraIssue": {"key": "MM-123", "summary": "...", "description": "...",
"url": "...", "status": "In Progress", "assignee": "..."},
"repository": "MoonLadderStudios/MoonMind"
}
Never use raw Jira credentials, web scraping, or guessed issue content to
build the target list.
For GitHub, the inclusive number range is search criteria, not a target list.
GitHub issues and pull requests share numbers, and numbers may be absent. Use
the helper's --github-issue-range plus --github-repository inputs so its
trusted GraphQL issue(number:) lookup returns only real Issue objects.
Pull requests and absent numbers are omitted normally and never become
targets. The helper rejects numeric spans wider than 1,000 numbers before
querying GitHub and writes the resolved target artifact before queueing.
Queue child workflows by running the helper:
python3 "$MOONMIND_ACTIVE_SKILLS_DIR/batch-workflows/bin/batch_workflows.py" \
--targets artifacts/batch-workflows-targets.json \
--run-ref <curated provider-specific run ref> \
--publish-mode <none|branch|pr|pr_with_merge_automation> \
--constraints-file <optional path to shared constraints> \
--run-verify | --no-run-verify \
--update-status | --no-update-status \
--max-workflows <cap>
For the GitHub preset, replace --targets with:
--github-issue-range <START-END> \
--github-repository <owner/repository>
For each resolved target the helper:
- Auto-binds Jira issues into
skill:jira-verify inputs (jira_issue,
jira_issue_key, repository, verification_mode, update_status, and
constraints).
- Auto-binds Jira issues into
preset:jira-implement inputs
(jira_issue, jira_issue_key, constraints, and run_verify).
- Auto-binds the same Jira inputs into
preset:jira-orchestrate.
- Auto-binds GitHub issue targets into the Implement and Orchestrate presets,
including
run_verify.
- Stamps
runtimeInheritance="caller" plus a fallback copy of the parent's
effective runtime (mode/model/effort/provider profile) so children reuse the
caller runtime even on deployments that do not honour the inheritance
contract.
- Applies the chosen
publish.mode once to every child.
- Assigns a stable idempotency key per
(batch scope, provider, target kind, target slug, target ref) so rerunning the same batch does not create
duplicate child workflows.
- Submits via the internal Temporal execution API (
POST /api/executions);
MOONMIND_URL must point at the MoonMind API from the managed session.
If provider-specific input validation fails before a trustworthy target list
can be written, still invoke the same helper exactly once with
--preflight-error <actionable message> and
--requested-count <requested target count>. The helper records the
current execution's authoritative failure in the managed artifact spool and
does not read targets or queue children. Do not handcraft or reuse a
repo-local result artifact.