{"id":48582466,"url":"https://github.com/zircote/refactor","last_synced_at":"2026-04-08T17:33:58.276Z","repository":{"id":341265248,"uuid":"1169495944","full_name":"zircote/refactor","owner":"zircote","description":"Swarm-orchestrated code refactoring plugin for Claude Code. Four AI agents iterate on architecture, tests, implementation, and simplification with parallel execution.","archived":false,"fork":false,"pushed_at":"2026-03-28T18:17:33.000Z","size":946,"stargazers_count":0,"open_issues_count":11,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-28T20:22:17.333Z","etag":null,"topics":["ai-agents","architecture","claude-code","claude-code-plugin","clean-code","code-quality","code-simplification","developer-tools","refactoring","static-analysis","swarm-orchestration","test-coverage"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zircote.png","metadata":{"files":{"readme":".github/readme-infographic-dark.svg","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","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},"funding":{"github":"zircote"}},"created_at":"2026-02-28T19:19:30.000Z","updated_at":"2026-03-19T15:05:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zircote/refactor","commit_stats":null,"previous_names":["zircote/refactor"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/zircote/refactor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Frefactor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Frefactor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Frefactor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Frefactor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zircote","download_url":"https://codeload.github.com/zircote/refactor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zircote%2Frefactor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31567056,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["ai-agents","architecture","claude-code","claude-code-plugin","clean-code","code-quality","code-simplification","developer-tools","refactoring","static-analysis","swarm-orchestration","test-coverage"],"created_at":"2026-04-08T17:33:57.610Z","updated_at":"2026-04-08T17:33:58.263Z","avatar_url":"https://github.com/zircote.png","language":null,"funding_links":["https://github.com/sponsors/zircote"],"categories":[],"sub_categories":[],"readme":"\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 800 520\" width=\"800\" height=\"520\"\u003e\n  \u003cdefs\u003e\n    \u003clinearGradient id=\"ig-bg-d\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\"\u003e\n      \u003cstop offset=\"0%\" style=\"stop-color:#1A1A2E\"/\u003e\n      \u003cstop offset=\"100%\" style=\"stop-color:#16213E\"/\u003e\n    \u003c/linearGradient\u003e\n  \u003c/defs\u003e\n\n  \u003crect width=\"800\" height=\"520\" rx=\"12\" fill=\"url(#ig-bg-d)\" stroke=\"#2D3748\" stroke-width=\"1\"/\u003e\n\n  \u003c!-- Title --\u003e\n  \u003ctext x=\"400\" y=\"48\" font-family=\"Georgia, serif\" font-size=\"28\" font-weight=\"bold\" fill=\"#E2E8F0\" text-anchor=\"middle\"\u003eRefactor Plugin\u003c/text\u003e\n  \u003ctext x=\"400\" y=\"72\" font-family=\"system-ui, sans-serif\" font-size=\"13\" fill=\"#64748B\" text-anchor=\"middle\"\u003eSwarm-orchestrated code refactoring for Claude Code\u003c/text\u003e\n\n  \u003c!-- Divider --\u003e\n  \u003cline x1=\"60\" y1=\"90\" x2=\"740\" y2=\"90\" stroke=\"#2D3748\" stroke-width=\"1\"/\u003e\n\n  \u003c!-- Phase flow --\u003e\n  \u003crect x=\"60\" y=\"110\" width=\"160\" height=\"80\" rx=\"8\" fill=\"#1E293B\" stroke=\"#FF8C42\" stroke-width=\"2\"/\u003e\n  \u003ctext x=\"140\" y=\"136\" font-family=\"system-ui, sans-serif\" font-size=\"12\" font-weight=\"bold\" fill=\"#FF8C42\" text-anchor=\"middle\"\u003ePhase 1\u003c/text\u003e\n  \u003ctext x=\"140\" y=\"155\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#CBD5E0\" text-anchor=\"middle\"\u003eFoundation\u003c/text\u003e\n  \u003ctext x=\"140\" y=\"172\" font-family=\"system-ui, sans-serif\" font-size=\"10\" fill=\"#64748B\" text-anchor=\"middle\"\u003ePARALLEL\u003c/text\u003e\n\n  \u003cpath d=\"M225,150 L260,150\" fill=\"none\" stroke=\"#475569\" stroke-width=\"2\" marker-end=\"url(#arrow-d)\"/\u003e\n  \u003cdefs\u003e\u003cmarker id=\"arrow-d\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"6\" markerHeight=\"6\" orient=\"auto\"\u003e\u003cpath d=\"M0,0 L10,5 L0,10Z\" fill=\"#475569\"/\u003e\u003c/marker\u003e\u003c/defs\u003e\n\n  \u003crect x=\"265\" y=\"110\" width=\"200\" height=\"80\" rx=\"8\" fill=\"#1E293B\" stroke=\"#8B5CF6\" stroke-width=\"2\"/\u003e\n  \u003ctext x=\"365\" y=\"136\" font-family=\"system-ui, sans-serif\" font-size=\"12\" font-weight=\"bold\" fill=\"#A78BFA\" text-anchor=\"middle\"\u003ePhase 2\u003c/text\u003e\n  \u003ctext x=\"365\" y=\"155\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#CBD5E0\" text-anchor=\"middle\"\u003eIteration Loop (x3)\u003c/text\u003e\n  \u003ctext x=\"365\" y=\"172\" font-family=\"system-ui, sans-serif\" font-size=\"10\" fill=\"#64748B\" text-anchor=\"middle\"\u003eSEQUENTIAL\u003c/text\u003e\n\n  \u003cpath d=\"M470,150 L505,150\" fill=\"none\" stroke=\"#475569\" stroke-width=\"2\" marker-end=\"url(#arrow-d)\"/\u003e\n\n  \u003crect x=\"510\" y=\"110\" width=\"160\" height=\"80\" rx=\"8\" fill=\"#1E293B\" stroke=\"#4ECDC4\" stroke-width=\"2\"/\u003e\n  \u003ctext x=\"590\" y=\"136\" font-family=\"system-ui, sans-serif\" font-size=\"12\" font-weight=\"bold\" fill=\"#4ECDC4\" text-anchor=\"middle\"\u003ePhase 3-4\u003c/text\u003e\n  \u003ctext x=\"590\" y=\"155\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#CBD5E0\" text-anchor=\"middle\"\u003eAssessment + Report\u003c/text\u003e\n  \u003ctext x=\"590\" y=\"172\" font-family=\"system-ui, sans-serif\" font-size=\"10\" fill=\"#64748B\" text-anchor=\"middle\"\u003ePARALLEL\u003c/text\u003e\n\n  \u003c!-- Divider --\u003e\n  \u003cline x1=\"60\" y1=\"210\" x2=\"740\" y2=\"210\" stroke=\"#2D3748\" stroke-width=\"1\"/\u003e\n\n  \u003ctext x=\"400\" y=\"240\" font-family=\"system-ui, sans-serif\" font-size=\"14\" font-weight=\"bold\" fill=\"#94A3B8\" text-anchor=\"middle\" letter-spacing=\"2\"\u003eFIVE SPECIALIST AGENTS\u003c/text\u003e\n\n  \u003c!-- Agent 1: Architect --\u003e\n  \u003crect x=\"60\" y=\"260\" width=\"128\" height=\"100\" rx=\"8\" fill=\"#1E293B\" stroke=\"#FF8C42\" stroke-width=\"1.5\"/\u003e\n  \u003ccircle cx=\"86\" cy=\"285\" r=\"10\" fill=\"#FF8C42\" opacity=\"0.15\"/\u003e\n  \u003ctext x=\"86\" y=\"289\" font-family=\"system-ui, sans-serif\" font-size=\"12\" fill=\"#FF8C42\" text-anchor=\"middle\" font-weight=\"bold\"\u003eA\u003c/text\u003e\n  \u003ctext x=\"136\" y=\"289\" font-family=\"system-ui, sans-serif\" font-size=\"12\" font-weight=\"bold\" fill=\"#E2E8F0\" text-anchor=\"middle\"\u003eArchitect\u003c/text\u003e\n  \u003ctext x=\"124\" y=\"310\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003eReviews architecture\u003c/text\u003e\n  \u003ctext x=\"124\" y=\"324\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003ePlans optimizations\u003c/text\u003e\n  \u003ctext x=\"124\" y=\"338\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003eScores quality (1-10)\u003c/text\u003e\n\n  \u003c!-- Agent 2: Test --\u003e\n  \u003crect x=\"198\" y=\"260\" width=\"128\" height=\"100\" rx=\"8\" fill=\"#1E293B\" stroke=\"#4ECDC4\" stroke-width=\"1.5\"/\u003e\n  \u003ccircle cx=\"224\" cy=\"285\" r=\"10\" fill=\"#4ECDC4\" opacity=\"0.15\"/\u003e\n  \u003ctext x=\"224\" y=\"289\" font-family=\"system-ui, sans-serif\" font-size=\"12\" fill=\"#4ECDC4\" text-anchor=\"middle\" font-weight=\"bold\"\u003eT\u003c/text\u003e\n  \u003ctext x=\"274\" y=\"289\" font-family=\"system-ui, sans-serif\" font-size=\"12\" font-weight=\"bold\" fill=\"#E2E8F0\" text-anchor=\"middle\"\u003eTest\u003c/text\u003e\n  \u003ctext x=\"262\" y=\"310\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003eAnalyzes coverage\u003c/text\u003e\n  \u003ctext x=\"262\" y=\"324\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003eGenerates test cases\u003c/text\u003e\n  \u003ctext x=\"262\" y=\"338\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003eVerifies all passing\u003c/text\u003e\n\n  \u003c!-- Agent 3: Code --\u003e\n  \u003crect x=\"336\" y=\"260\" width=\"128\" height=\"100\" rx=\"8\" fill=\"#1E293B\" stroke=\"#8B5CF6\" stroke-width=\"1.5\"/\u003e\n  \u003ccircle cx=\"362\" cy=\"285\" r=\"10\" fill=\"#8B5CF6\" opacity=\"0.15\"/\u003e\n  \u003ctext x=\"362\" y=\"289\" font-family=\"system-ui, sans-serif\" font-size=\"12\" fill=\"#A78BFA\" text-anchor=\"middle\" font-weight=\"bold\"\u003eC\u003c/text\u003e\n  \u003ctext x=\"412\" y=\"289\" font-family=\"system-ui, sans-serif\" font-size=\"12\" font-weight=\"bold\" fill=\"#E2E8F0\" text-anchor=\"middle\"\u003eCode\u003c/text\u003e\n  \u003ctext x=\"400\" y=\"310\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003eImplements changes\u003c/text\u003e\n  \u003ctext x=\"400\" y=\"324\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003eClean code principles\u003c/text\u003e\n  \u003ctext x=\"400\" y=\"338\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003eFixes test failures\u003c/text\u003e\n\n  \u003c!-- Agent 4: Simplifier --\u003e\n  \u003crect x=\"474\" y=\"260\" width=\"128\" height=\"100\" rx=\"8\" fill=\"#1E293B\" stroke=\"#F59E0B\" stroke-width=\"1.5\"/\u003e\n  \u003ccircle cx=\"500\" cy=\"285\" r=\"10\" fill=\"#F59E0B\" opacity=\"0.15\"/\u003e\n  \u003ctext x=\"500\" y=\"289\" font-family=\"system-ui, sans-serif\" font-size=\"12\" fill=\"#FBBF24\" text-anchor=\"middle\" font-weight=\"bold\"\u003eS\u003c/text\u003e\n  \u003ctext x=\"550\" y=\"289\" font-family=\"system-ui, sans-serif\" font-size=\"12\" font-weight=\"bold\" fill=\"#E2E8F0\" text-anchor=\"middle\"\u003eSimplifier\u003c/text\u003e\n  \u003ctext x=\"538\" y=\"310\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003eNaming clarity\u003c/text\u003e\n  \u003ctext x=\"538\" y=\"324\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003eFlow simplification\u003c/text\u003e\n  \u003ctext x=\"538\" y=\"338\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003eCross-file consistency\u003c/text\u003e\n\n  \u003c!-- Agent 5: Security --\u003e\n  \u003crect x=\"612\" y=\"260\" width=\"128\" height=\"100\" rx=\"8\" fill=\"#1E293B\" stroke=\"#F87171\" stroke-width=\"1.5\"/\u003e\n  \u003ccircle cx=\"638\" cy=\"285\" r=\"10\" fill=\"#F87171\" opacity=\"0.15\"/\u003e\n  \u003ctext x=\"638\" y=\"289\" font-family=\"system-ui, sans-serif\" font-size=\"12\" fill=\"#F87171\" text-anchor=\"middle\" font-weight=\"bold\"\u003eR\u003c/text\u003e\n  \u003ctext x=\"690\" y=\"289\" font-family=\"system-ui, sans-serif\" font-size=\"12\" font-weight=\"bold\" fill=\"#E2E8F0\" text-anchor=\"middle\"\u003eSecurity\u003c/text\u003e\n  \u003ctext x=\"676\" y=\"310\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003eRegression detection\u003c/text\u003e\n  \u003ctext x=\"676\" y=\"324\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003eVulnerability scanning\u003c/text\u003e\n  \u003ctext x=\"676\" y=\"338\" font-family=\"system-ui, sans-serif\" font-size=\"9\" fill=\"#94A3B8\" text-anchor=\"middle\"\u003eSecurity scoring\u003c/text\u003e\n\n  \u003c!-- Divider --\u003e\n  \u003cline x1=\"60\" y1=\"380\" x2=\"740\" y2=\"380\" stroke=\"#2D3748\" stroke-width=\"1\"/\u003e\n\n  \u003ctext x=\"400\" y=\"410\" font-family=\"system-ui, sans-serif\" font-size=\"14\" font-weight=\"bold\" fill=\"#94A3B8\" text-anchor=\"middle\" letter-spacing=\"2\"\u003eKEY FEATURES\u003c/text\u003e\n\n  \u003c!-- Feature pills (5) --\u003e\n  \u003crect x=\"60\" y=\"425\" width=\"120\" height=\"30\" rx=\"15\" fill=\"#FF8C42\" opacity=\"0.08\" stroke=\"#FF8C42\" stroke-width=\"1\" opacity=\"0.5\"/\u003e\n  \u003ctext x=\"120\" y=\"445\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#FF8C42\" text-anchor=\"middle\"\u003eSafety First\u003c/text\u003e\n\n  \u003crect x=\"195\" y=\"425\" width=\"120\" height=\"30\" rx=\"15\" fill=\"#4ECDC4\" opacity=\"0.08\" stroke=\"#4ECDC4\" stroke-width=\"1\" opacity=\"0.5\"/\u003e\n  \u003ctext x=\"255\" y=\"445\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#4ECDC4\" text-anchor=\"middle\"\u003eAuto Test Gen\u003c/text\u003e\n\n  \u003crect x=\"330\" y=\"425\" width=\"120\" height=\"30\" rx=\"15\" fill=\"#8B5CF6\" opacity=\"0.08\" stroke=\"#8B5CF6\" stroke-width=\"1\" opacity=\"0.5\"/\u003e\n  \u003ctext x=\"390\" y=\"445\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#A78BFA\" text-anchor=\"middle\"\u003eParallel Exec\u003c/text\u003e\n\n  \u003crect x=\"465\" y=\"425\" width=\"120\" height=\"30\" rx=\"15\" fill=\"#F59E0B\" opacity=\"0.08\" stroke=\"#F59E0B\" stroke-width=\"1\" opacity=\"0.5\"/\u003e\n  \u003ctext x=\"525\" y=\"445\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#FBBF24\" text-anchor=\"middle\"\u003eQuality Scoring\u003c/text\u003e\n\n  \u003crect x=\"600\" y=\"425\" width=\"120\" height=\"30\" rx=\"15\" fill=\"#F87171\" opacity=\"0.08\" stroke=\"#F87171\" stroke-width=\"1\" opacity=\"0.5\"/\u003e\n  \u003ctext x=\"660\" y=\"445\" font-family=\"system-ui, sans-serif\" font-size=\"11\" fill=\"#F87171\" text-anchor=\"middle\"\u003eFocus Mode\u003c/text\u003e\n\n  \u003c!-- Footer --\u003e\n  \u003ctext x=\"400\" y=\"495\" font-family=\"'SF Mono', monospace\" font-size=\"12\" fill=\"#475569\" text-anchor=\"middle\"\u003ev2.2.0  |  All languages  |  Claude Code plugin\u003c/text\u003e\n\u003c/svg\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzircote%2Frefactor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzircote%2Frefactor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzircote%2Frefactor/lists"}