Files
optimclaw/skills/ironclaw-workflow-orchestrator/SKILL.md
T
f05896fe6a Migrate GitHub webhook normalization into github tool (#758)
* Add event-triggered routines and workflow skill templates

* Add generic host-verified webhook ingress for tools

* Migrate GitHub webhook normalization into github tool

* Bump github tool registry version

* Stabilize trace E2E test rig and approval behavior

* Add reusable gateway workflow harness with mock LLM server (#762)

* Add reusable gateway workflow test harness with mock LLM server

* Fix clippy issues in workflow harness

* Stabilize trace E2E test rig and approval behavior

* Address PR review feedback on gateway workflow harness

- Extract shared TestChannelHandle into test_channel.rs with name override
  support, eliminating ~55 lines of duplication between test_rig.rs and
  gateway_workflow_harness.rs
- Remove redundant RoutineEngine creation that was immediately overwritten
  by Agent::run()
- Replace flaky sleep(500ms) with polling loop for routine run count check
- Use components.context_manager instead of creating a fresh ContextManager
  for job tools, ensuring agent and tools share the same instance

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* Fix import ordering in gateway_workflow_harness

Co-Authored-By: Claude Opus 4.6 <[email protected]>

---------

Co-authored-by: Claude Opus 4.6 <[email protected]>

* Address PR #758 review feedback

- Fix header_value to use fully case-insensitive lookup (iterate with
  to_ascii_lowercase) instead of checking only exact/lower/upper variants
- Change comment_id from u32 to u64 to handle GitHub's billion-range IDs
- Remove handle_webhook from LLM-facing JSON schema to prevent direct
  invocation bypassing HMAC verification
- Rename enrichment keys from repository/sender to repository_name/
  sender_login to preserve original JSON objects in webhook payloads
- Remove put_string_normalized helper (no longer needed)
- Replace no-op tests (test_validate_event_in_create_pr_review,
  test_validate_merge_method) with test_header_value_case_insensitive
- Add README docs for 6 undocumented actions (list_issue_comments,
  create_issue_comment, list_pull_request_comments,
  reply_pull_request_comment, get_pull_request_reviews,
  get_combined_status)
- Add comment explaining max_tool_calls <= 8 bound in e2e test
- Fix gateway workflow harness: add webhook_capability with secret auth
  to MockGithubWebhookTool, matching staging's hardened webhook security
- Fix merge artifacts: remove duplicate test function, orphaned code
  fragment in e2e_routine_heartbeat

[skip-regression-check]

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* Fix formatting in gateway workflow harness

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* Address Copilot review: filter keys, pr_number fallback, feature gate, version alignment

- Update SKILL.md and workflow-routines.md templates to use `repository_name`
  and `sender_login` (matching enriched payload field names)
- Mark webhook HMAC secret as required in SKILL.md prerequisites
- Fall back to `/issue/number` for `pr_number` on issue_comment PR webhooks
- Gate `gateway_workflow_harness` module behind `#[cfg(feature = "libsql")]`
- Align tool version to 0.2.1 in Cargo.toml and capabilities.json

Co-Authored-By: Claude Opus 4.6 <[email protected]>

---------

Co-authored-by: Claude Opus 4.6 <[email protected]>
2026-03-12 01:52:47 +00:00

3.8 KiB

name, description
name description
ironclaw-workflow-orchestrator Install and operate a full GitHub issue-to-merge workflow in IronClaw using event-driven and cron routines. Use when setting up or tuning autonomous project orchestration: issue intake, planning, maintainer feedback handling, branch/PR execution, CI/comment follow-up, batched staging review every 8 hours, and memory updates from merge outcomes.

IronClaw Workflow Orchestrator

Overview

Use this skill to install and maintain a complete project workflow as routines, not core code changes. It maps GitHub webhook events plus scheduled checks into plan/update/implement/review/merge loops with explicit staging-batch analysis.

Workflow

  1. Gather workflow parameters.
  2. Verify runtime prerequisites.
  3. Install or update routine set from templates.
  4. Run a dry test with event_emit.
  5. Monitor outcomes and tune prompts/filters.

Parameters

Collect these values before creating routines:

  • repository: owner/repo (required)
  • maintainers: GitHub handles allowed to trigger implement/replan actions
  • staging_branch: default staging
  • main_branch: default main
  • batch_interval_hours: default 8
  • implementation_label: default autonomous-impl

Prerequisites

Before installing routines, verify:

  • Routines system enabled.
  • GitHub tool authenticated (for issue/PR/comment/status operations).
  • GitHub webhook delivery configured to POST /webhook/tools/github.
  • Webhook HMAC secret configured in the secrets store as github_webhook_secret (required for GitHub webhook delivery).
  • Events can also be emitted via event_emit tool calls for testing or when webhook ingestion is not yet configured.

Install Procedure

  1. Open workflow-routines.md.
  2. For each template block:
  • replace placeholders ({{repository}}, {{maintainers}}, branch names)
  • call routine_create
  1. If a routine already exists:
  • use routine_update instead of creating duplicates
  • keep names stable so long-lived metrics/history stay intact
  1. Confirm install with routine_list and routine_history.

Routine Set

Install these routines:

  • wf-issue-plan: on issue.opened or issue.reopened, generate implementation plan comment/checklist.
  • wf-maintainer-comment-gate: on maintainer comments, decide update-plan vs start implementation.
  • wf-pr-monitor-loop: on PR open/sync/review-comment/review, address feedback and refresh branch.
  • wf-ci-fix-loop: on CI status/check failures, apply fixes and push updates.
  • wf-staging-batch-review: every 8h, review ready PRs, merge into staging, run deep batch correctness analysis, fix findings, then merge staging -> main.
  • wf-learning-memory: on merged PRs, extract mistakes/lessons and write to shared memory.

Event Filters

Prefer top-level filters for stability:

  • repository_name (string, e.g. owner/repo)
  • sender_login (string)
  • issue_number / pr_number
  • ci_status, ci_conclusion
  • review_state, comment_author

Use narrow filters to avoid accidental triggers across repos.

Operating Rules

  • All implementation work must occur on non-main branches.
  • PR loop must resolve both human and AI review comments.
  • On conflicts with origin/main, refresh branch before continuing.
  • Staging-batch routine is the only path for bulk correctness verification before mainline merge.
  • Memory update routine runs only after successful merge.

Validation

After install, run:

  1. event_emit with a synthetic issue.opened payload for the target repo.
  2. Confirm at least one routine fired.
  3. Check corresponding routine_history entries.
  4. Confirm no unrelated routines fired.

When To Update Templates

Update this skill when:

  • GitHub event names/payload fields change.
  • Team review policy changes (e.g., staging cadence, maintainer gates).
  • New CI policy requires different failure routing.