Skip to content

Go prototype: isolated static binary, embedded skills, and Ticket run through Harness session #1832

Closed

Description

@JacobStephens2

This was generated by AI during triage.

Parent

#1830

What to build

Set up the isolated Go prototype directory and test-selection routing so changes inside the Go prototype run only the Go test suite (go test ./...) without running the full Rust suite, and ordinary Rust changes do not run the Go prototype suite. Deliver a static Linux Go binary (CGO_ENABLED=0) that embeds the Factory skills and executes the opening half of a Ticket run (thirdshift <Issue URL>): pre-flight checks (Origin match, open issue, Trusted account check), applying the Claim (in-progress), creating the Worktree with linked Factory skills excluded from git status, and running a streaming JSON Harness session with process-group SIGINT → SIGTERM → SIGKILL escalation on interruption.

Acceptance criteria

  • The repository's affected-test selector routes changes confined to the Go prototype directory to go test ./... in that directory without running the full Rust test suite, and changes outside the Go prototype directory do not require or run the Go prototype suite.
  • The Go prototype compiles with CGO_ENABLED=0 into a single static binary that embeds the Factory skills (embed.FS) and links them into a created Worktree while excluding them from git status.
  • Running the binary on an Issue URL performs pre-flight checks (Origin match, open issue, Trusted account), applies the in-progress Claim label (replacing ready-for-agent if present), creates the issue Worktree and branch, writes the issue file, and invokes the Harness session with stdin null and streaming JSON parsing.
  • Interrupting a running Ticket run escalates SIGINT → SIGTERM → SIGKILL to the Harness process group and finishes Claim ending cleanly.
  • End-to-end CLI tests using temporary git repositories and fake gh and Harness executables verify pre-flight failures, Claim labelling, Worktree skill linking, streaming session execution, and process-group signal termination.

Blocked by

  • None (can start immediately)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions