{"id":51153553,"url":"https://github.com/violhex/greenloop","last_synced_at":"2026-06-26T08:30:46.049Z","repository":{"id":364420698,"uuid":"1267841614","full_name":"violhex/greenloop","owner":"violhex","description":"Done is an exit code; not a feeling.","archived":false,"fork":false,"pushed_at":"2026-06-13T00:57:41.000Z","size":71,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-13T01:14:39.806Z","etag":null,"topics":["agentic-workflow","agents-md","ai-agents","aider","automation","claude-code","cli","coding-agents","cursor","developer-tools","github-copilot","llm","prompt-engineering","state-machine","windsurf","workflow"],"latest_commit_sha":null,"homepage":"https://greenloop.violhex.workers.dev/ ","language":"TypeScript","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/violhex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-06-12T22:57:21.000Z","updated_at":"2026-06-13T01:03:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/violhex/greenloop","commit_stats":null,"previous_names":["violhex/greenloop"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/violhex/greenloop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/violhex%2Fgreenloop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/violhex%2Fgreenloop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/violhex%2Fgreenloop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/violhex%2Fgreenloop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/violhex","download_url":"https://codeload.github.com/violhex/greenloop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/violhex%2Fgreenloop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34809886,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-26T02:00:06.560Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["agentic-workflow","agents-md","ai-agents","aider","automation","claude-code","cli","coding-agents","cursor","developer-tools","github-copilot","llm","prompt-engineering","state-machine","windsurf","workflow"],"created_at":"2026-06-26T08:30:45.391Z","updated_at":"2026-06-26T08:30:46.044Z","avatar_url":"https://github.com/violhex.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GREENLOOP\n\n**Done is an exit code.**\n\nGREENLOOP is a state-machine execution workflow you hand to any AI coding agent —\nClaude Code, Cursor, Windsurf, Aider, local models. It makes the agent persist its\nstate, converge before it edits, test its own assumptions, and refuse to call\nanything finished until a verification harness says so.\n\n```sh\ncurl -fsSL https://greenloop.violhex.workers.dev/install.sh | sh\n```\n\nInject the current repo only (no CLI, pure shell): `… | sh -s -- --repo` ·\nboth: `--all` · remove: `--uninstall`\n\n## The three disciplines\n\n| | Law | Kills |\n|---|---|---|\n| **S** | **The State Law** — every decision, assumption, failure, and verification result is persisted to `.greenloop/`. If it exists only in context, it does not exist. | context loss, amnesia between sessions |\n| **C** | **Convergence Machine** — ORBITING → CONTACT → LOCK_IN. No edit or irreversible action until the agent can write a falsifiable `DONE WHEN`. | orbiting, premature execution |\n| **R** | **Reality Calibration** — assumptions live in a market with confidence, evidence, and a falsifier; the load-bearing one gets tested first; beliefs expire. | confidently wrong, goal corruption |\n\nThe full contract, the ten phases, and GREEN itself live in\n[`workflow/GREENLOOP.md`](workflow/GREENLOOP.md).\n\n## Repository layout\n\n```\ngreenloop/\n├── index.html       docs site (served at the site root)\n├── install.sh       POSIX installer — curl | sh target, stays at site root\n├── wrangler.jsonc   Cloudflare Workers config — serves the repo as the site\n├── SHA256SUMS       integrity manifest verified by install.sh\n├── AGENTS.md        Cursor Cloud / agent environment instructions\n├── workflow/        the workflow files agents read\n│   ├── GREENLOOP.md                  core workflow — contract, S/C/R, phases 0–10\n│   ├── GREENLOOP-APPENDICES.md       orchestration · no-tools mode · role library\n│   ├── GREENLOOP-PROFILE-DESIGN.md   domain profile — activates on visual tasks\n│   └── greenloop.state.schema.json   copy-to-initialize state template\n├── cli/\n│   ├── greenloop-inject.ts           injector CLI — detection, bindings, TUI, gates\n│   ├── greenloop-inject.test.ts      unit/integration tests for the injector\n│   └── greenloop-mcp.ts              portable MCP server (verify / gate / state)\n└── docs/\n    └── DEPLOY.md    hosting, forking, and release process\n```\n\n`cli/greenloop-inject.ts` is deliberately single-file: it embeds the `workflow/`\npayloads so one download binds everything. Any edit to `workflow/` must be mirrored\ninto the embedded constants (see [`docs/DEPLOY.md`](docs/DEPLOY.md)).\n\n## Supported agents\n\nClaude Code (CLAUDE.md + enforcement hooks), Cursor, Windsurf, Aider, Cline,\nRoo Code, Continue, GitHub Copilot, OpenAI Codex CLI, Gemini CLI, OpenCode, Zed,\nJetBrains Junie, OpenHands, local LLMs (system-prompt rendition) — and anything else\nvia the universal `AGENTS.md` convention. Sixteen targets in all; run\n`greenloop --list` inside a repo to see what's detected.\n\n## Safety, by construction\n\n- **Proportional** — every task is triaged (TRIVIAL → HAZARDOUS) and the workflow\n  compresses to match: a typo fix runs a 30-second self-check, destructive work\n  requires explicit user confirmation. Effort is budgeted, not unbounded.\n- **Idempotent** — re-running upgrades in place, never duplicates.\n- **Non-destructive** — shared files get marker-delimited blocks; unrecognized files\n  are backed up to `.bak` before replacement. Nothing is ever deleted.\n- **Verifiable** — `install.sh` checks `SHA256SUMS` before installing anything; the\n  files are plain markdown, JSON, and one TypeScript file. Read them first — that's\n  the point.\n\n## Contributing\n\nPRs that add agent targets go in one place: the `TARGETS` registry in\n`cli/greenloop-inject.ts` — a detect probe plus a plan function, ~15 lines each.\nRelease process is in [`docs/DEPLOY.md`](docs/DEPLOY.md).\n\n## License\n\n[MIT](LICENSE) © [violhex](https://github.com/violhex)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviolhex%2Fgreenloop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviolhex%2Fgreenloop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviolhex%2Fgreenloop/lists"}