{"id":"cc2edd4c-4310-485b-bb83-b9467128de31","shortId":"dYEp8f","kind":"skill","title":"codebase-argus","tagline":"Portable Codebase Argus agent playbook for evidence-first multi-agent review of GitHub pull requests, CI failures, GitHub Actions logs, GitHub App webhook review, /argus PR comment commands, autofix branch planning, OpenAI/Claude/Gemini/Codex provider tribunals, downstream merge/","description":"# Codebase Argus\n\nUse this portable agent playbook for evidence-first codebase review across\nGitHub PRs, CI failures, and downstream fork integration work. It works as an\nOpenClaw/ClawHub skill, Codex project instruction, Claude Code project\ninstruction, or a plain Markdown playbook for any coding agent that can run\nlocal shell commands.\n\nBoth upstream and downstream workflows can send the same evidence package to one\nprovider or a multi-agent tribunal.\n\n## Fast Path\n\nFrom a Codebase Argus checkout:\n\n```bash\nnpm install\nnpm run argus -- review owner/repo#123\n```\n\nFor private repositories or higher GitHub API limits:\n\n```bash\nGITHUB_TOKEN=<read-only-token> npm run argus -- review owner/repo#123\n```\n\nDo not print tokens. Do not write tokens to files.\n\n## Upstream PR Review\n\nDefault review is deterministic and rule-based:\n\n```bash\nnpm run argus -- review owner/repo#123 --format markdown\n```\n\nUse a policy file when the repository has local rules:\n\n```bash\nnpm run argus -- review owner/repo#123 --policy .codebase-argus.yml\n```\n\nUse API providers when credentials are available in the environment:\n\n```bash\nOPENAI_API_KEY=<key> npm run argus -- review owner/repo#123 --provider openai-api\nANTHROPIC_API_KEY=<key> npm run argus -- review owner/repo#123 --provider anthropic-api\nGEMINI_API_KEY=<key> npm run argus -- review owner/repo#123 --provider gemini-api\n```\n\nUse local CLI providers only in trusted local workspaces:\n\n```bash\nnpm run argus -- review owner/repo#123 --provider codex-cli\nnpm run argus -- review owner/repo#123 --provider claude-cli\nnpm run argus -- review owner/repo#123 --provider gemini-cli\n```\n\nFor multi-agent review:\n\n```bash\nnpm run argus -- review owner/repo#123 --tribunal openai-api,claude-cli,codex-cli\n```\n\nTreat output as review assistance. Do not approve, merge, push, or post comments automatically unless the user explicitly asks.\n\n## CI Failure Review\n\nWhen the user provides a failing job log or local log file, review it through the\nsame provider system:\n\n```bash\nnpm run argus -- ci-log logs/failure.txt\nnpm run argus -- ci-log logs/failure.txt --provider codex-cli\nnpm run argus -- ci-log logs/failure.txt --tribunal codex-cli,claude-cli,gemini-cli\n```\n\nWhen the user points at a GitHub PR with failing Actions checks, fetch the job\nlogs directly:\n\n```bash\nGITHUB_TOKEN=<read-only-token> npm run argus -- ci-github owner/repo#123\nGITHUB_TOKEN=<read-only-token> npm run argus -- ci-github owner/repo#123 --provider codex-cli\n```\n\nFocus on the first failing command, the most likely root cause, and the smallest\nfix that can be verified locally.\n\n## Autofix Plan\n\nUse `autofix-plan` when the user asks for suggested fixes, safe automatic repair,\nor a branch plan for narrow mechanical failures:\n\n```bash\nnpm run argus -- autofix-plan owner/repo#123\n```\n\nThe plan covers gated lanes such as npm lockfile refreshes, snapshot updates, and\nformatter/linter fixes. Treat it as a command plan; do not execute, push, or open\na PR unless the user explicitly asks.\n\n## GitHub App Webhook Review\n\nFor automatic PR review, the deployed Next.js server exposes:\n\n```text\nPOST /api/github/webhook\nGET /api/github/app-manifest\n```\n\nRequired environment:\n\n```bash\nGITHUB_WEBHOOK_SECRET=<secret>\nGITHUB_APP_ID=<app-id>\nGITHUB_APP_PRIVATE_KEY=<pem-or-escaped-pem>\n```\n\nUse `GITHUB_APP_PRIVATE_KEY_BASE64` if storing multiline PEM is awkward. The\nwebhook verifies `X-Hub-Signature-256`, reviews `opened`, `reopened`,\n`ready_for_review`, and `synchronize`, ignores draft PRs, posts `COMMENT` reviews\nonly, and can add inline comments when `ARGUS_WEBHOOK_INLINE_COMMENTS=true`.\n\nSupported PR comment commands:\n\n```text\n/argus help\n/argus review\n/argus ci\n/argus autofix\n/argus pause\n/argus resume\n```\n\n`/argus pause` applies `argus:paused`; automatic review skips PRs with that label.\n`/argus resume` removes it.\n\nDo not approve, request changes, merge, push, or post comments outside this\nconfigured webhook path unless the user explicitly asks.\n\n## What To Look For\n\nPrioritize findings with concrete evidence:\n\n- failing or pending checks;\n- source changes without matching tests;\n- workflow edits, especially `pull_request_target`;\n- auth, token, webhook, payment, signature, or route-handling changes;\n- dependency and lockfile changes;\n- large PRs that exceed policy gates;\n- stacked PRs targeting non-default base branches;\n- merge queue states such as blocked, behind, dirty, or unstable;\n- agreement between multiple providers.\n\nLow-confidence model-only claims need manual verification before reporting them as facts.\n\n## Downstream Fork Sync And Integration Review\n\nFor long-lived fork maintenance, use the downstream CLI first:\n\n```bash\nnpm run argus -- downstream owner/upstream me/fork\nnpm run argus -- downstream owner/upstream me/fork --upstream-branch main --fork-branch feature/demo\n```\n\nFor AI CLI review of merge/rebase risk:\n\n```bash\nnpm run argus -- downstream owner/upstream me/fork --fork-branch feature/demo --provider codex-cli\nnpm run argus -- downstream owner/upstream me/fork --fork-branch feature/demo --tribunal codex-cli,claude-cli,gemini-cli\n```\n\nWhen the user explicitly asks the agent to perform the downstream integration,\nuse `sync`. It prints a dry-run plan unless `--execute` is present:\n\n```bash\nnpm run argus -- sync owner/upstream me/fork --mode merge --fork-branch feature/demo --test \"npm test\"\nnpm run argus -- sync owner/upstream me/fork --mode rebase --fork-branch feature/demo --test \"npm test\" --execute --push --create-pr\n```\n\nExecution rules:\n\n- run `downstream` with a provider or tribunal first for risky branches;\n- prefer a sync branch such as `sync/upstream-main`;\n- push only with explicit `--push`;\n- open a PR only with explicit `--create-pr`;\n- never push directly over the user's original target branch;\n- report failed commands, conflicts, and test output without hiding them.\n\nThe downstream prompt must consider both integration paths:\n\n- merge upstream into the fork, using `git merge-tree` conflict evidence;\n- rebase the fork on upstream, using temporary worktree rebase simulation;\n- patch-equivalent cleanup candidates from `git cherry -v`;\n- semantic patch movement from `git range-diff`;\n- backup, test, and force-with-lease gates before any push.\n\nUse the local dashboard when a human needs to inspect the same evidence visually:\n\n```bash\nnpm run dev\n```\n\nOpen the Downstream Fork Sync, Downstream Merge/Rebase Risk, and Downstream Agent Workflow panels. The local analyzer works in `.cache/repos` and temporary worktrees, and must not push or force-push by itself. Actual sync execution belongs to the CLI `sync` command and only runs after explicit flags.","tags":["codebase","argus","aaronz345","agent-skills","ai-agents","claude-code","claude-code-plugin","code-review","codex","developer-tools","fork-sync","github-actions"],"capabilities":["skill","source-aaronz345","skill-codebase-argus","topic-agent-skills","topic-ai-agents","topic-claude-code","topic-claude-code-plugin","topic-code-review","topic-codex","topic-developer-tools","topic-fork-sync","topic-github-actions","topic-github-app","topic-multi-agent","topic-openclaw"],"categories":["codebase-argus"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/AaronZ345/codebase-argus/codebase-argus","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add AaronZ345/codebase-argus","source_repo":"https://github.com/AaronZ345/codebase-argus","install_from":"skills.sh"}},"qualityScore":"0.478","qualityRationale":"deterministic score 0.48 from registry signals: · indexed on github topic:agent-skills · 57 github stars · SKILL.md body (6,656 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:57:23.034Z","embedding":null,"createdAt":"2026-05-10T18:56:37.483Z","updatedAt":"2026-05-18T18:57:23.034Z","lastSeenAt":"2026-05-18T18:57:23.034Z","tsv":"'/api/github/app-manifest':530 '/api/github/webhook':528 '/argus':30,595,597,599,601,603,605,607,619 '123':128,145,173,192,214,227,240,260,270,280,296,411,421,478 '256':563 'across':55 'action':24,394 'actual':1027 'add':581 'agent':7,15,47,86,111,288,810,1005 'agreement':705 'ai':763 'analyz':1010 'anthrop':219,230 'anthropic-api':229 'api':135,196,207,218,220,231,233,244,300 'app':27,514,538,541,546 'appli':609 'approv':314,625 'argus':3,6,43,118,125,142,170,189,211,224,237,257,267,277,293,351,358,369,406,416,473,585,610,744,750,772,786,832,847 'ask':325,455,512,642,808 'assist':311 'auth':667 'autofix':34,446,450,475,602 'autofix-plan':449,474 'automat':320,460,518,612 'avail':201 'awkward':555 'backup':966 'base':166,693 'base64':549 'bash':120,137,167,186,205,254,290,348,401,470,533,741,769,829,991 'behind':701 'belong':1030 'block':700 'branch':35,464,694,756,760,778,792,840,855,877,881,908 'cache/repos':1013 'candid':953 'caus':436 'chang':627,657,676,680 'check':395,655 'checkout':119 'cherri':956 'ci':21,58,326,353,360,371,408,418,600 'ci-github':407,417 'ci-log':352,359,370 'claim':715 'claud':74,273,302,379,799 'claude-c':272,301,378,798 'cleanup':952 'cli':247,264,274,284,303,306,366,377,380,383,425,739,764,783,797,800,803,1033 'code':75,85 'codebas':2,5,42,53,117 'codebase-argus':1 'codebase-argus.yml':194 'codex':71,263,305,365,376,424,782,796 'codex-c':262,304,364,375,423,781,795 'command':33,92,431,498,593,911,1035 'comment':32,319,576,583,588,592,632 'concret':650 'confid':711 'configur':635 'conflict':912,937 'consid':923 'cover':481 'creat':863,897 'create-pr':862,896 'credenti':199 'dashboard':980 'default':159,692 'depend':677 'deploy':522 'determinist':162 'dev':994 'diff':965 'direct':400,901 'dirti':702 'downstream':40,61,96,724,738,745,751,773,787,814,868,920,997,1000,1004 'draft':573 'dri':822 'dry-run':821 'edit':662 'environ':204,532 'equival':951 'especi':663 'evid':11,51,102,651,938,989 'evidence-first':10,50 'exceed':684 'execut':502,826,860,865,1029 'explicit':324,511,641,807,888,895,1040 'expos':525 'fact':723 'fail':334,393,430,652,910 'failur':22,59,327,469 'fast':113 'feature/demo':761,779,793,841,856 'fetch':396 'file':155,179,340 'find':648 'first':12,52,429,740,874 'fix':440,458,493 'flag':1041 'focus':426 'forc':970,1023 'force-push':1022 'force-with-leas':969 'fork':62,725,734,759,777,791,839,854,931,941,998 'fork-branch':758,776,790,838,853 'format':174 'formatter/linter':492 'gate':482,686,973 'gemini':232,243,283,382,802 'gemini-api':242 'gemini-c':282,381,801 'get':529 'git':933,955,962 'github':18,23,26,56,134,138,390,402,409,412,419,513,534,537,540,545 'handl':675 'help':596 'hide':917 'higher':133 'hub':561 'human':983 'id':539 'ignor':572 'inlin':582,587 'inspect':986 'instal':122 'instruct':73,77 'integr':63,728,815,925 'job':335,398 'key':208,221,234,543,548 'label':618 'lane':483 'larg':681 'leas':972 'like':434 'limit':136 'live':733 'local':90,184,246,252,338,445,979,1009 'lockfil':487,679 'log':25,336,339,354,361,372,399 'logs/failure.txt':355,362,373 'long':732 'long-liv':731 'look':645 'low':710 'low-confid':709 'main':757 'mainten':735 'manual':717 'markdown':81,175 'match':659 'me/fork':747,753,775,789,835,850 'mechan':468 'merg':41,315,628,695,837,927,935 'merge-tre':934 'merge/rebase':767,1001 'mode':836,851 'model':713 'model-on':712 'movement':960 'multi':14,110,287 'multi-ag':13,109,286 'multilin':552 'multipl':707 'must':922,1018 'narrow':467 'need':716,984 'never':899 'next.js':523 'non':691 'non-default':690 'npm':121,123,140,168,187,209,222,235,255,265,275,291,349,356,367,404,414,471,486,742,748,770,784,830,843,845,858,992 'one':105 'open':505,565,890,995 'openai':206,217,299 'openai-api':216,298 'openai/claude/gemini/codex':37 'openclaw/clawhub':69 'origin':906 'output':308,915 'outsid':633 'owner/repo':127,144,172,191,213,226,239,259,269,279,295,410,420,477 'owner/upstream':746,752,774,788,834,849 'packag':103 'panel':1007 'patch':950,959 'patch-equival':949 'path':114,637,926 'paus':604,608,611 'payment':670 'pem':553 'pend':654 'perform':812 'plain':80 'plan':36,447,451,465,476,480,499,824 'playbook':8,48,82 'point':387 'polici':178,193,685 'portabl':4,46 'post':318,527,575,631 'pr':31,157,391,507,519,591,864,892,898 'prefer':878 'present':828 'print':148,819 'priorit':647 'privat':130,542,547 'project':72,76 'prompt':921 'provid':38,106,197,215,228,241,248,261,271,281,332,346,363,422,708,780,871 'prs':57,574,615,682,688 'pull':19,664 'push':316,503,629,861,885,889,900,976,1020,1024 'queue':696 'rang':964 'range-diff':963 'readi':567 'rebas':852,939,947 'refresh':488 'remov':621 'reopen':566 'repair':461 'report':720,909 'repositori':131,182 'request':20,626,665 'requir':531 'resum':606,620 'review':16,29,54,126,143,158,160,171,190,212,225,238,258,268,278,289,294,310,328,341,516,520,564,569,577,598,613,729,765 'risk':768,1002 'riski':876 'root':435 'rout':674 'route-handl':673 'rule':165,185,866 'rule-bas':164 'run':89,124,141,169,188,210,223,236,256,266,276,292,350,357,368,405,415,472,743,749,771,785,823,831,846,867,993,1038 'safe':459 'secret':536 'semant':958 'send':99 'server':524 'shell':91 'signatur':562,671 'simul':948 'skill':70 'skill-codebase-argus' 'skip':614 'smallest':439 'snapshot':489 'sourc':656 'source-aaronz345' 'stack':687 'state':697 'store':551 'suggest':457 'support':590 'sync':726,817,833,848,880,999,1028,1034 'sync/upstream-main':884 'synchron':571 'system':347 'target':666,689,907 'temporari':945,1015 'test':660,842,844,857,859,914,967 'text':526,594 'token':139,149,153,403,413,668 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-claude-code-plugin' 'topic-code-review' 'topic-codex' 'topic-developer-tools' 'topic-fork-sync' 'topic-github-actions' 'topic-github-app' 'topic-multi-agent' 'topic-openclaw' 'treat':307,494 'tree':936 'tribun':39,112,297,374,794,873 'true':589 'trust':251 'unless':321,508,638,825 'unstabl':704 'updat':490 'upstream':94,156,755,928,943 'upstream-branch':754 'use':44,176,195,245,448,544,736,816,932,944,977 'user':323,331,386,454,510,640,806,904 'v':957 'verif':718 'verifi':444,558 'visual':990 'webhook':28,515,535,557,586,636,669 'without':658,916 'work':64,66,1011 'workflow':97,661,1006 'workspac':253 'worktre':946,1016 'write':152 'x':560 'x-hub-signatur':559","prices":[{"id":"c3a0b74e-111d-414e-bc02-4ae574891c2b","listingId":"cc2edd4c-4310-485b-bb83-b9467128de31","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"AaronZ345","category":"codebase-argus","install_from":"skills.sh"},"createdAt":"2026-05-10T18:56:37.483Z"}],"sources":[{"listingId":"cc2edd4c-4310-485b-bb83-b9467128de31","source":"github","sourceId":"AaronZ345/codebase-argus/codebase-argus","sourceUrl":"https://github.com/AaronZ345/codebase-argus/tree/main/skills/codebase-argus","isPrimary":false,"firstSeenAt":"2026-05-10T18:56:37.483Z","lastSeenAt":"2026-05-18T18:57:23.034Z"}],"details":{"listingId":"cc2edd4c-4310-485b-bb83-b9467128de31","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"AaronZ345","slug":"codebase-argus","github":{"repo":"AaronZ345/codebase-argus","stars":57,"topics":["agent-skills","ai-agents","ci","claude-code","claude-code-plugin","code-review","codex","developer-tools","fork-sync","github-actions","github-app","multi-agent","openclaw","pull-request","skill-md"],"license":"mit","html_url":"https://github.com/AaronZ345/codebase-argus","pushed_at":"2026-05-10T16:12:26Z","description":"Multi-agent codebase review for PRs, CI, and downstream fork syncs.","skill_md_sha":"160235c0db57005830568ff9fb85382210291b6e","skill_md_path":"skills/codebase-argus/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/AaronZ345/codebase-argus/tree/main/skills/codebase-argus"},"layout":"multi","source":"github","category":"codebase-argus","frontmatter":{"name":"codebase-argus","description":"Portable Codebase Argus agent playbook for evidence-first multi-agent review of GitHub pull requests, CI failures, GitHub Actions logs, GitHub App webhook review, /argus PR comment commands, autofix branch planning, OpenAI/Claude/Gemini/Codex provider tribunals, downstream merge/rebase work, and long-lived fork sync against an upstream repository."},"skills_sh_url":"https://skills.sh/AaronZ345/codebase-argus/codebase-argus"},"updatedAt":"2026-05-18T18:57:23.034Z"}}