II.
Page JSON
Structured · livepage:docs-harness-features-backlog-gaps-tools-capabilities-gap-tools-021
GAP-TOOLS-021: External Event Triggers for Orchestration json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "page:docs-harness-features-backlog-gaps-tools-capabilities-gap-tools-021",
"_kind": "Page",
"_file": "wiki/docs/harness-features-backlog/gaps/tools-capabilities/gap-tools-021.md",
"_cluster": "wiki",
"attributes": {
"nodeKind": "Page",
"sourcePath": "docs/harness-features-backlog/gaps/tools-capabilities/GAP-TOOLS-021.md",
"sourceKind": "repo-docs",
"title": "GAP-TOOLS-021: External Event Triggers for Orchestration",
"displayName": "GAP-TOOLS-021: External Event Triggers for Orchestration",
"slug": "docs/harness-features-backlog/gaps/tools-capabilities/gap-tools-021",
"articlePath": "wiki/docs/harness-features-backlog/gaps/tools-capabilities/GAP-TOOLS-021.md",
"article": "\n# GAP-TOOLS-021: External Event Triggers for Orchestration\n\n| Field | Value |\n|-------|-------|\n| Category | tools-capabilities |\n| Priority | Medium |\n| Effort | L |\n| Status | Missing |\n\n## Description\nEnable external events (webhooks, file system changes, git push events, CI/CD pipeline completions) to trigger orchestration runs. The orchestrator should be able to react to external stimuli, not just user-initiated commands -- enabling event-driven automation workflows.\n\n## Current State\nRuns are user-initiated only. The hook system (`packages/sdk/src/hooks/`) fires hooks during run lifecycle but does not receive external events. No webhook endpoint, filesystem watcher, or event listener exists. The MCP server could theoretically receive external calls but has no event-to-run mapping.\n\n## Target State\nAn event ingestion layer that: receives webhooks via HTTP endpoint (when daemon mode is active), watches filesystem paths for changes, listens for git events (post-push, post-merge), maps events to process definitions via configurable rules, creates runs with event payload as inputs. Integrates with the embedded SDK dashboard for event visibility.\n\n## Dependencies\n- [GAP-REMOTE-001](../remote-integration/GAP-REMOTE-001.md) -- daemon mode for persistent event listening\n- [GAP-TOOLS-020](../tools-capabilities/GAP-TOOLS-020.md) -- scheduling as a special case of triggers\n- [GAP-OBS-NEW-001](../observer-integration/GAP-OBS-NEW-001.md) -- webhooks for outbound event notifications\n\n## Key Files\n| Component | Path |\n|-----------|------|\n| Hooks | `packages/sdk/src/hooks/` |\n| MCP server | `packages/sdk/src/mcp/` |\n| Run creation | `packages/sdk/src/runtime/` |\n\n## Recommendation\nPhase 4 implementation. Start with filesystem watchers and git hooks as trigger sources. Add webhook ingestion when daemon mode is available. Define event-to-process mapping configuration format.\n",
"documents": []
},
"outgoingEdges": [],
"incomingEdges": [
{
"from": "page:docs-harness-features-backlog",
"to": "page:docs-harness-features-backlog-gaps-tools-capabilities-gap-tools-021",
"kind": "contains_page"
}
]
}