{"id":46418930,"url":"https://github.com/nullne/star-fleet","last_synced_at":"2026-03-05T15:01:21.819Z","repository":{"id":342241067,"uuid":"1173352168","full_name":"nullne/star-fleet","owner":"nullne","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-05T13:19:52.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-05T13:49:37.739Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nullne.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-05T09:18:06.000Z","updated_at":"2026-03-05T13:19:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nullne/star-fleet","commit_stats":null,"previous_names":["nullne/star-fleet"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/nullne/star-fleet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullne%2Fstar-fleet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullne%2Fstar-fleet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullne%2Fstar-fleet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullne%2Fstar-fleet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nullne","download_url":"https://codeload.github.com/nullne/star-fleet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullne%2Fstar-fleet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30132585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T14:41:47.141Z","status":"ssl_error","status_checked_at":"2026-03-05T14:41:21.567Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-05T15:00:40.833Z","updated_at":"2026-03-05T15:01:21.811Z","avatar_url":"https://github.com/nullne.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Star Fleet\n\nA CLI tool that takes a GitHub Issue and autonomously delivers a human-ready PR.\n\nTwo agents run in parallel — **Dev** writes implementation, **Test** writes tests — without seeing each other's work. A main orchestrator reviews, cross-validates, and delivers the final PR. All activity surfaces on GitHub via `gh`.\n\n## Prerequisites\n\n- **Go 1.22+**\n- **`gh`** (GitHub CLI), authenticated\n- A local code agent:\n  - [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (`claude` CLI), or\n  - [Cursor](https://cursor.sh) (`cursor` CLI)\n\n## Install\n\n**One-liner** (Linux / macOS):\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/nullne/star-fleet/main/install.sh | bash\n```\n\nCustom install directory:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/nullne/star-fleet/main/install.sh | bash -s -- --dir ~/.local/bin\n```\n\n**Go install:**\n\n```bash\ngo install github.com/nullne/star-fleet/cmd/fleet@latest\n```\n\n**Build from source:**\n\n```bash\ngit clone https://github.com/nullne/star-fleet.git\ncd star-fleet\ngo build -o fleet ./cmd/fleet\n```\n\n## Usage\n\n```bash\nfleet run 42\nfleet run org/repo#42\nfleet run https://github.com/org/repo/issues/42\n```\n\nRun `fleet` from inside the target repository. It will:\n\n1. Fetch and validate the issue spec\n2. Create isolated git worktrees for Dev and Test agents\n3. Dispatch both agents in parallel\n4. Review the resulting PRs\n5. Cross-validate (merge + run tests)\n6. Open a final PR ready for human review\n\n## Configuration\n\nCreate `.fleet/config.toml` in the repo root:\n\n```toml\n[agent]\nbackend = \"claude-code\"  # \"claude-code\" | \"cursor\"\n\n[test]\ncommand = \"\"  # override auto-detected test command, e.g. \"go test ./...\"\n\n[validate]\nmax_fix_rounds = 3\nmax_cycles = 2\n```\n\n### `[agent]`\n\n| Key | Default | Description |\n|---|---|---|\n| `backend` | `\"claude-code\"` | Which code agent CLI to invoke (`\"claude-code\"` or `\"cursor\"`) |\n\n### `[test]`\n\n| Key | Default | Description |\n|---|---|---|\n| `command` | `\"\"` (auto-detect) | Test command to run during cross-validation. When empty, Star Fleet detects the project type (`go test ./...`, `npm test`, `cargo test`, etc.) |\n\n### `[validate]`\n\n| Key | Default | Description |\n|---|---|---|\n| `max_fix_rounds` | `3` | Max fix attempts per cycle before restarting |\n| `max_cycles` | `2` | Max full cycles before halting |\n\n## How It Works\n\n```\nfleet run \u003cissue\u003e\n    │\n    ▼\nFetch \u0026 validate Issue spec  (gh issue view)\n    │  gaps found → post Issue comment → halt\n    ▼\nCreate isolated worktrees\n    ├─ worktrees/dev   (branch: fleet/dev/\u003cissue-id\u003e)\n    └─ worktrees/test  (branch: fleet/test/\u003cissue-id\u003e)\n    │\n    ▼\nDispatch in parallel\n    ├─► Dev Agent  → implementation → push → PR\n    └─► Test Agent → tests only     → push → PR\n    │\n    ▼\nReview both PRs via code agent\n    ├─ issues → agent fixes → push\n    └─ clean  → proceed\n    │\n    ▼\nCross-validation\n    │  merge both branches, strip dev-authored tests, run suite\n    ├─ pass → create final PR → done\n    └─ fail → attribute → fix → retry (max 3 rounds × 2 cycles)\n```\n\n## GitHub Trail\n\n| Stage | What gets posted |\n|---|---|\n| Intake | \"Picked up\" comment on Issue |\n| Spec gap | Gap list comment on Issue, pipeline halted |\n| PR review | Review comment on each agent's PR |\n| Cross-validation fail | Failure attribution + output on PR |\n| Done | Final merged PR opened, Issue closed |\n\n## Architecture\n\nEach agent runs in its own [git worktree](https://git-scm.com/docs/git-worktree) — they share the same `.git` but have completely separate working directories, so neither can read the other's files.\n\nAgents invoke the configured code agent CLI (Claude Code or Cursor) as a subprocess with a role-specific prompt containing the issue body. The code agent is treated as a black box that reads the repo and makes commits.\n\n```\nstar-fleet/\n├── cmd/fleet/main.go             # entrypoint\n├── internal/\n│   ├── cli/                      # cobra commands + issue ref parsing\n│   ├── config/                   # .fleet/config.toml loader\n│   ├── gh/                       # gh CLI wrapper\n│   ├── git/                      # git worktree + branch ops\n│   ├── agent/                    # Backend interface, Dev/Test agents\n│   ├── orchestrator/             # main pipeline\n│   ├── review/                   # PR review via code agent\n│   ├── validate/                 # cross-validation logic\n│   └── ui/                       # terminal display\n└── .fleet/config.toml            # default config\n```\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnullne%2Fstar-fleet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnullne%2Fstar-fleet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnullne%2Fstar-fleet/lists"}