Skip to content

svg153/software-factory

v0.1.0MIT

Press Play and iterate your repo autonomously: discovery → GSD plan → self-grilling → GitHub issues wired into a Project → implementation → review/audit, in bounded rounds. Canvas control panel + CLI runner + skill for GitHub Copilot.

🏭 Software Factory

Plugin for GitHub Copilot (desktop app + CLI): press ▶ Play in the canvas and an agent iterates over a repo autonomously — audits it, plans (GSD style), grills its own plan, files GitHub issues wired into your Project, implements them with PRs, reviews/audits the round, and repeats for a bounded number of rounds.

What's inside

ComponentPathPurpose
Canvas extensionextensions/software-factory/Control panel: live pipeline (SSE), tasks, created issues, Play/Pause. Play sends the kick-off prompt to the session agent via session.send.
Runner CLIextensions/software-factory/runner/sf.mjsState machine in <repo>/.software-factory/: emits work orders per phase and executes the mechanical issues phase (gh issue create + gh project item-add).
Skillskills/software-factory/SKILL.mdThe loop contract the agent follows (phases, subagents, rules).

Phases: discover → plan → grill → issues → implement → review · rounds capped by max_rounds (default 3) · pause stops re-cruitment at any time.

Requirements

  • Node 20+, gh CLI authenticated (issues/Project phase), a GitHub Project id if you want issues enqueued (gh project list).
  • GitHub Copilot desktop app with canvas extensions enabled.

Install

Option A — installer script (Windows):

git clone https://github.com/svg153/software-factory.git
cd software-factory
./install.ps1        # copies canvas+runner to ~/.copilot/extensions/software-factory
                     # and the skill to ~/.copilot/skills/software-factory

Then reload extensions in the app (or restart it).

Option B — awesome-copilot: once accepted as an external plugin, install it from the catalog with one click. To propose it, open an external-plugin submission issue in github/awesome-copilot pointing at a release tag + commit SHA of this repo.

Use

# 1. One-time setup per repo
node ~/.copilot/extensions/software-factory/runner/sf.mjs init C:\path\to\repo `
  --repo owner/name --project <github-project-id> --rounds 3

# 2. Open the "Software Factory" canvas (pass repo=<absolute path> as input
#    if the factory should target a repo other than the session workspace).

# 3. ▶ Play. Watch the pipeline; the agent executes work orders and marks them done.
#    ⏸ Pause anytime. State lives in <repo>/.software-factory/.

Privacy & security

  • The plugin stores state only inside <repo>/.software-factory/ (JSON + markdown).
  • It never reads, writes or sends credentials. All GitHub operations go through the official gh CLI using your existing auth, with the permissions of your account.
  • The canvas HTTP server binds to 127.0.0.1 on a random port (localhost-only UI).
  • gh project item-add failures are recorded in state.notes; they never leak output.

Repo layout notes

This is a standalone repo on purpose: the plugin bundles a canvas extension with its runner and has its own release cadence. It can still be listed from a marketplace (marketplace.json) like sibling plugins. MIT licensed.