Identity
| Field | Value |
|---|---|
| Workflow ID | mSJmBzpIcuCKz1WT |
| Webhook path | /webhook/forge-resolve-next-ticket |
| n8n instance | https://hab.so1.io |
| Local JSON | /FORGE Resolve-Next-Ticket.json (untracked) |
| Node count | 43 (cleaned; was 77 with duplicates) |
| Purpose | Strategic planner: reads GitHub epic/block/task structure, assembles prompts, delegates execution |
Architecture
Three Execution Modes
| Mode | Behaviour | Timeout |
|---|---|---|
manual | Returns the assembled prompt for human review. No execution. | 120s |
api | Calls Claude API directly, then auto-closes GitHub issues on success. | 120s |
tommy | Delegates to TOMMY workflow via HTTP POST. Auto-closes on ALL_PASS. | 600s |
Webhook Input Schema
execution_mode: Controls the Switch node routing (manual/api/tommy)block_issue_number: Optional override. If omitted, FORGE finds the next open block.ssh_host/project_path: Only used intommymode.
Set Configuration Node (10 fields)
| ID | Field | Source | Default |
|---|---|---|---|
| a1 | gh_org | $json.body.gh_org | (required) |
| a2 | gh_repo | $json.body.gh_repo | (required) |
| a3 | epic_issue | $json.body.epic_issue_number | (required) |
| a4 | override_block | $json.body.block_issue_number | "" |
| a5 | exec_mode | $json.body.execution_mode | "manual" |
| a6 | target_repo | $json.body.target_repo_for_code | "" |
| a7 | api_base | (hardcoded) | https://api.github.com |
| a8 | claude_key | $json.body.claude_api_key | "" |
| a9 | ssh_host | $json.body.ssh_host | "root@vps.devarno.cloud" |
| a10 | project_path | $json.body.project_path | "/root/projects/so1-platform" |
Issue Closure Chain
Bothapi and tommy modes run on success:
- Prepare Closure — Maps task data for the loop
- Close Task Issues — SplitInBatches loop
- Comment + Close each task issue
- Comment + Close the block issue
- Return Result to webhook caller
Credentials
| Name | ID | Type | Used by |
|---|---|---|---|
| GitHub (Dev4rno) | FhglvXmXMeC2SQTl | githubApi | All GitHub HTTP Request nodes (~15) |
| google_ai_key | PdEKB19B1R0PQ4th | httpHeaderAuth | Call Claude API (api mode only) |
Duplicate Node History
The FORGE JSON historically contained 29 duplicate nodes with1 suffix. These were stripped during 2026-03-27 deployment (77 → 43 nodes). If the local JSON still has them, strip before pushing — see the n8n Deployment skill.
Known Issues
- Vercel proxy timeout: Rover UI routes through Vercel (
maxDuration = 300). Tommy-mode executions exceeding 5 minutes time out at Vercel (n8n continues). - GitHub issue structure assumed: FORGE expects epics with markdown checklists referencing block issues, and blocks referencing task issues. Parsing is regex-based.