{"id":50721102,"url":"https://github.com/marktoflow/skelm-code-reviewer","last_synced_at":"2026-06-10T00:01:24.335Z","repository":{"id":356448120,"uuid":"1232501031","full_name":"marktoflow/skelm-code-reviewer","owner":"marktoflow","description":"Code Reviewer agent built on Skelm","archived":false,"fork":false,"pushed_at":"2026-05-08T04:18:25.000Z","size":17,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-08T06:25:24.965Z","etag":null,"topics":["agent","codereviewer","skelm","workflow"],"latest_commit_sha":null,"homepage":"","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/marktoflow.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-05-08T01:57:07.000Z","updated_at":"2026-05-08T04:19:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/marktoflow/skelm-code-reviewer","commit_stats":null,"previous_names":["marktoflow/skelm-code-reviewer"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/marktoflow/skelm-code-reviewer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marktoflow%2Fskelm-code-reviewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marktoflow%2Fskelm-code-reviewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marktoflow%2Fskelm-code-reviewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marktoflow%2Fskelm-code-reviewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marktoflow","download_url":"https://codeload.github.com/marktoflow/skelm-code-reviewer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marktoflow%2Fskelm-code-reviewer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34130642,"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-09T02:00:06.510Z","response_time":63,"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":["agent","codereviewer","skelm","workflow"],"created_at":"2026-06-10T00:01:01.027Z","updated_at":"2026-06-10T00:01:24.323Z","avatar_url":"https://github.com/marktoflow.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# skelm-code-reviewer\n\nAn autonomous GitHub pull-request reviewer built on the\n[skelm](https://github.com/scottgl9/skelm) workflow framework.\n\nThe reviewer:\n\n1. Polls a configured list of repos for open pull requests on a cron schedule.\n2. Clones (or fast-forwards) each repo into a per-repo persistent workspace\n   so the LLM has the **whole codebase** as reference, not just the diff.\n3. Runs a multi-turn coding-agent step that explores the repo (`rg`, `cat`,\n   `git log`) and produces a structured review — summary, verdict, and a\n   prioritized list of file:line findings with severity and category.\n4. Either writes the review to `reviews/\u003crepo\u003e__\u003cpr\u003e__\u003csha\u003e.md` (dry-run)\n   or posts it as a real PR review via `gh pr review` (real mode).\n5. Dedupes on `repo#pr@headSha` so updates trigger a re-review but the\n   same commit never gets reviewed twice.\n\n## Layout\n\n```\nskelm-code-reviewer/\n├── skelm.config.ts                   — backend + project-level permission defaults\n├── workflows/review-prs.workflow.ts  — outer cron pipeline + per-PR sub-pipeline\n├── src/{schema,gh}.ts                — shared schemas and gh/git helpers\n├── skills/pr-review-format/SKILL.md  — output schema + style guide for the agent\n├── .env.example                      — TARGET_REPOS, POST_MODE, PI_PROVIDER, PI_MODEL\n├── reviews/                          — dry-run output (gitignored)\n└── .skelm/                           — runs DB, state DB, repo workspaces (gitignored)\n```\n\n## Setup\n\n```bash\npnpm install\ncp .env.example .env   # then edit\n```\n\nThe workflow uses the [pi](https://github.com/mariozechner/pi-coding-agent)\nSDK backend. Pi must be installed and a model configured (`pi --list-models`).\nThe example config defaults to `llamacpp / qwen36`; a llama-server on\n`localhost:8000` exposing the `qwen36` model is enough.\n\nThe `gh` CLI must be authenticated to whichever GitHub account should appear\nas the review author (`gh auth status`).\n\n## Run\n\n**One-shot review of every open PR in `TARGET_REPOS`:**\n\n```bash\npnpm run review:once\n```\n\n**One-shot review of an explicit PR list (bypasses dedupe):**\n\n```bash\npnpm run review:once -- --input '{\n  \"items\": [{\n    \"repo\": \"owner/repo\", \"number\": 42,\n    \"headSha\": \"\u003csha\u003e\", \"headBranch\": \"feature/x\", \"baseBranch\": \"main\",\n    \"title\": \"...\", \"url\": \"https://github.com/owner/repo/pull/42\"\n  }]\n}'\n```\n\n**Long-running autonomous gateway (cron-driven, every 5 min):**\n\n```bash\npnpm run gateway\n```\n\n## Posting reviews\n\n`POST_MODE=dry-run` (default) writes review markdown to `reviews/`. Set\n`POST_MODE=real` to publish via `gh pr review` using the verdict:\n\n| verdict          | gh flag             |\n| ---------------- | ------------------- |\n| approve          | `--approve`         |\n| comment          | `--comment`         |\n| request_changes  | `--request-changes` |\n\n## Permissions model\n\n`skelm.config.ts` declares project-level defaults; per-step `agent()` calls\nnarrow further. The pi-sdk backend enforces tool, executable, filesystem,\nMCP, and skill permissions natively in-process. Network egress is **not**\nenforced for in-process backends — switch to a subprocess backend (pi RPC,\nopencode) under the long-running gateway if you need outbound traffic\ngated by the egress proxy.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarktoflow%2Fskelm-code-reviewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarktoflow%2Fskelm-code-reviewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarktoflow%2Fskelm-code-reviewer/lists"}