$ cat node-template.py

C

Code agent

// Run a coding agent in a lane's folder. Wire the lane's Worktree folder, an approved brief and a Decisions block into it; the agent works on the lane's branch, commits as it goes, pushes, and runs your checks — or stops and asks when the brief does not answer something. It never clones and never opens a pull request: a fix round is another run of this same node on the same folder (each result carries the lane's round count), and the Pull request node opens the PR for the commit these checks ran on.

Process
Utility
#code#agent#github#lane
template.py
1"""Code agent — one coding run in a lane's folder (vibe-coding Lane split).23**This file does not run.** It is here because a marketplace template must4carry `code`, and because the schema-coverage linter checks that every port a5template declares is named somewhere in it. The work happens in the6`coding-agent` runtime's image, whose adapter7(`apps/workspace-executor-coding-agent/adapter/lane.mjs`) reads the same stdin8envelope this file would have received and ignores `code` entirely.910## What the node does with the ports below1112    inputs.folder     the lane's folder (from its Worktree node); never cloned13    inputs.brief      ─┐14    inputs.decisions  ─┼─▶ the prompt (DECISIONS first, review fixes after)15    inputs.checks     ─┘16    inputs.llmModelId the model, resolved per run into an endpoint and a key1718    ── the agent works on the folder's branch, checkpointing every 10 min ──19    ── push, then the checks ──2021    outputs.head_sha, pr_title, pr_body   for the Pull request node22    outputs.branch, folder, summary, changed_files, patch, log, checks23    outputs.inputs_digest, source_executions   provenance24    outputs.outcome, reason   only when the run stopped (waiting | failed)2526## Editing this file does nothing2728Changing the body below changes the node's `code_hash` and nothing else.29"""3031CODE_AGENT_INPUTS = ("folder", "brief", "decisions", "checks", "llmModelId")32CODE_AGENT_OUTPUTS = (33    "head_sha",34    "pr_title",35    "pr_body",36    "branch",37    "folder",38    "summary",39    "changed_files",40    "outcome",41    "reason",42    "patch",43    "log",44    "inputs_digest",45    "source_executions",46    "checks",47)4849ADAPTER_ENTRYPOINT = "/executor/adapter/main.mjs"5051raise RuntimeError(52    "The Code agent template is executed by the coding-agent runtime's adapter "53    f"({ADAPTER_ENTRYPOINT}), not by this code. Reaching this line means the "54    "node ran in a template runtime — check that TEMPLATE_META.runtime is "55    "'coding-agent' and that this template's id is on "56    "PRIVILEGED_RUNTIME_TEMPLATE_IDS in "57    "apps/workspace-service/app/executors/runtime_table.py."58)59

$ git log --oneline

v1.1.0
HEAD
2026-10-14

First marketplace publish: vibe-coding lanes and the gstack plan flow (PR #1313).