[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1481":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":14,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":16,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":15,"starSnapshotCount":15,"syncStatus":13,"lastSyncTime":27,"discoverSource":28},1481,"GodModeSkill","99xAgency\u002FGodModeSkill","99xAgency","Multi-LLM cross-review workflow for Claude Code. \u002Fwork orchestrates plan\u002Fimplement\u002Fbug-fix with 3 different model families voting on every gate.",null,"Shell",227,27,2,1,0,3,11,48.94,"MIT License",false,"main",true,[],"2026-06-12 04:00:09","# 🧠 GodModeSkill\n\n> **`\u002Fwork`** — a single Claude Code command that runs every plan, feature, and bugfix past **3 different model families** before any merge.\n\nCodex + Gemini + OpenCode (Kimi\u002FDeepSeek) review your work in parallel. Quorum must agree, or Claude revises and retries. Zero token-burn while waiting. Auto-handles git. Always asks before merge.\n\n---\n\n## ✨ Why this exists\n\n🤖 **Single-model AI coding fails silently.** Code looks reasonable, tests pass — but a subtle bug or design drift only shows up later.\n\n👯 **Same-family models share blind spots.** Three Codex sessions reviewing each other is an echo chamber.\n\n✅ **Lineage diversity is the unlock.** A different model family reading the same code from scratch catches a startling amount of what the author missed.\n\n---\n\n## 🚀 Quick start\n\n### Option 1 — paste-and-go (recommended)\n\nOpen Claude Code and paste [`INSTALL.md`](INSTALL.md). Claude asks which CLIs you have, then installs everything.\n\n### Option 2 — manual\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002F99xAgency\u002FGodModeSkill.git\ncd GodModeSkill\n# Read skill\u002F layout, then copy each file to its target (see \"Install layout\" below)\n```\n\n---\n\n## 🎯 Modes\n\n| Mode | When to use | What happens |\n|------|-------------|--------------|\n| 📐 `plan` | New feature design | Propose → review → converge → write `planning\u002F\u003Cfeature>.md` |\n| 🛠️ `implement` | Build the agreed plan | Design review → code → test → code review → PR → merge gate |\n| 🐛 `major-bug` | Real bug fix | Failing test (TDD) → fix-plan review → code → test → code review → PR |\n| ✏️ `minor-bug` | Typo \u002F one-liner | Just fix it. No LLM gates. |\n\n```\n\u002Fwork plan an oauth login flow for the admin panel\n\u002Fwork implement the planning\u002Foauth-login.md design\n\u002Fwork fix bug: detail page crashes on null verdict\n\u002Fwork fix typo in nav header\n```\n\nClaude picks the mode, picks 3 reviewers, builds the pack, runs the loop, and asks for sign-off at the merge gate.\n\n---\n\n## 📋 Prerequisites\n\nYou need at least **3 different model families**:\n\n- 🟣 **Claude Code** — any plan\n- 🟠 **Codex CLI** — ChatGPT subscription (Plus or Pro)\n- 🔵 **Gemini CLI** — Google AI Pro\n- 🟢 **OpenCode CLI** — one of:\n  - OpenCode Go subscription (gives Kimi + DeepSeek + others, flat-fee) ← **recommended**\n  - Direct API keys (Moonshot, DeepSeek)\n\nSystem tools: `tmux`, `jq`, `inotify-tools`, `git`, `python3`.\n\n> ⚠️ Only have 2 families? The lineage quorum will fail (you need 1 of each: codex + gemini + opencode). You can edit `work-converge` to relax the rule, but you lose the diversity insight.\n\n---\n\n## 💸 Cost\n\n**~$0 incremental** if you use plan-priced reviewers (ChatGPT subscription + Google AI Pro + OpenCode Go).\n\nIf you use API keys for Kimi\u002FDeepSeek instead of OpenCode Go, expect **~cents per review** depending on pack size (~50KB packs typical).\n\n---\n\n## 🧬 How the lineage quorum works\n\n`work-converge` parses each reviewer's XML response, extracts the `\u003Cverdict agree=\"true|false|partial\">` block, and groups by lineage:\n\n| Lineage | Sessions |\n|---------|----------|\n| 🟠 codex | `cdx-*` |\n| 🔵 gemini | `gem-*` |\n| 🟢 opencode | `kimi`, `deepseek`, … |\n\n✅ **Quorum passes** only when **at least one agent of each lineage** returns `agree`.\n🟡 Partial verdicts count as agree only if no critical\u002Fhigh findings.\n\n| Outcome | Exit | Meaning |\n|---------|------|---------|\n| 🟢 all 3 agree | `0` | merge gate opens |\n| 🔴 any disagree | `1` | revise + retry |\n| ⚪ lineage missing | `2` | escalate to user |\n\n---\n\n## ⚡ How the wait is zero-token\n\nWhen `\u002Fwork` is waiting for reviewers, Claude is suspended on a **single Bash tool call** running `inotifywait`:\n\n| Metric | Value |\n|--------|-------|\n| 🪙 Claude tokens during wait | **0** |\n| 🔋 CPU during wait | **0** (kernel inotify) |\n| ⏱️ Resume latency | **\u003C1 s** (filesystem event) |\n\nA **5-second safety wakeup** also re-checks for permission prompts, modal popups, and provider errors — see *Resilience* below.\n\n---\n\n## ✅ Pre-merge checklist\n\nBefore any merge, Claude fills out and shows you:\n\n```\n1. Coding principles (CLAUDE.md): [followed | drifted: what + why]\n2. Architecture guidelines:        [followed | drifted: what + why]\n3. Tests:                          [PASS | FAIL: which]\n4. Reviewer consensus:             [agree | overridden: reason]\n\nMerge?\n1. Yes — merge now\n2. No — fix drift \u002F failures first\n3. Override and merge anyway (give reason)\n```\n\nCatches a lot of \"I think it's done\" moments where the model has quietly drifted.\n\n---\n\n## 🛡️ Resilience — what happens when a reviewer breaks\n\n`\u002Fwork` handles each failure class automatically and only escalates to Claude when it can't recover.\n\n| 💥 Failure | 🔍 Detection (≤5 s) | 🔧 Recovery |\n|---|---|---|\n| **Provider error** — Moonshot\u002FDeepSeek 5xx, rate limit, gateway hiccup, \"Error from provider\", context overflow | `ERROR_RE` matches in pane | Retry the nudge **once**. If a 2nd error fires within 60 s: opencode lineage gets a **peer-swap** (kimi ⇄ deepseek). Other lineages get a stub findings file ending `## DONE` so the watcher exits fast and Claude takes over. |\n| **TUI modal popup** — opencode \"Select agent\" \u002F \"Select model\" \u002F \"Ask: No results found\" (triggered by `\u002F` or `@` at chunk boundaries during paste) | `OPENCODE_POPUP_RE` matches | Send `Escape` ×2 + re-nudge. **Pre-flight `Escape ×2`** also runs before every opencode nudge (defensive). |\n| **Permission prompt** — CLI prompts the reviewer for `cat`\u002F`tee`\u002F`bash` execution | `PROMPT_RE` matches | Auto-approve with the right keystrokes (codex `y`, gemini `2`, opencode `Right Enter` for \"Allow always\"). Logs the command to `approvals.log`. |\n| **Destructive command** — `rm -rf`, `sudo`, `git push --force`, `DROP TABLE`, ~25 patterns | `DESTRUCTIVE_RE` matches | 🛑 **NOT auto-approved.** Agent stays stuck, orchestrator prints `tmux attach -t \u003Csession>`, logs to `destructive-blocks.log`. |\n\n**Peer-swap works for ALL lineages, not just opencode:**\n\n| Lineage | Swap chain | When |\n|---|---|---|\n| 🟠 Codex | `cdx-1 → cdx-2 → cdx-3` (or however many you have) | One ChatGPT account hits its 5h\u002Fweekly limit |\n| 🔵 Gemini | `gem-1 → gem-2 → …` | First Google AI account hits daily quota |\n| 🟢 Opencode | `kimi ⇄ deepseek` | OpenCode Go gateway hiccup on one provider |\n\n`try_lineage_swap` finds any alive agent of the same `type` in `agents.json` not already in the run, copies the prompt over, \u002Fclears the partner, nudges. Stays on subscription pricing — picks from agents you've already configured.\n\n**See what's been stuck across runs:**\n\n```bash\nwork status        # snapshot of current run: who's working, errored, popup-stuck, done\nwork status --watch # refresh every 2s\nwork permissions   # last 30 auto-approvals + repeating commands + destructive blocks\n```\n\n`work status` replaces ad-hoc `tmux capture-pane` debugging. Surfaces a one-line state per agent (WORKING \u002F ERRORED \u002F POPUP-STUCK \u002F PERM-PROMPT \u002F DONE) plus log-line counts.\n\n`work permissions` surfaces bash patterns that prompt repeatedly. Add them to your CLI config (e.g. `~\u002F.config\u002Fopencode\u002Fopencode.json`'s `permission.bash` block) so they're allowed permanently — no orchestrator round-trip.\n\n---\n\n## 💬 Per-CLI prompt format\n\nEach CLI's TUI handles multi-line input differently, so `\u002Fwork` builds a **per-CLI prompt**:\n\n| CLI | 📝 Format | 💡 Why |\n|---|---|---|\n| 🟠 Codex | Multi-paragraph (bracketed-paste safe) | Handles `[Pasted Content N chars]` blocks correctly |\n| 🔵 Gemini | **Single line** with `@\u002Fabs\u002Fpath\u002Fto\u002Fpack.xml` (inline file attach) | Every `\\n` is Submit — multi-paragraph paste fragments into N separate queries |\n| 🟢 Opencode | **Single line**, plain-text path (no leading `\u002F` or `@`) | tmux splits paste at ~1.5 KB chunks; `\u002F` or `@` at a chunk boundary opens slash-command or agent-picker mid-paste |\n\n---\n\n## 📦 Pack truncation safety\n\nWhen a review pack exceeds `MAX_CTX_BYTES` (**800 KB** default — sized for 1M-context reviewers like Opus 4.7 \u002F Gemini 3.1 Pro \u002F Kimi K2.6), `work-pack-build` drops:\n\n1. Journals\n2. Memory files\n3. Diff (last resort, truncated to 50 KB)\n\nWhen the diff itself gets truncated, the pack emits:\n\n```xml\n\u003Cdiff truncated=\"true\" original-bytes=\"N\" shown-bytes=\"50000\">…\u003C\u002Fdiff>\n\u003Creviewer-instruction priority=\"critical\">\n  Verify each finding against the full \u003Ccode_file> blocks\n  before reporting — do NOT rely on the truncated diff alone.\n\u003C\u002Freviewer-instruction>\n```\n\nPrevents reviewers from anchoring on the truncated diff and hallucinating findings about the cut-off portion.\n\n## 🔁 Cross-round packs are diff-only\n\nWhen a review goes to round 2 (after disagreement + revision), the pack **drops `\u003Crelated-memory>` and `\u003Crelated-journals>`** — they don't change between rounds and the reviewer already saw them in round 1. Typical saving: **~65% pack size reduction** on round 2+.\n\nReplaced with a stub:\n\n```xml\n\u003Cstable-context-skipped reason=\"round-2-no-change-since-round-1\"\n                        memory-files-omitted=\"6\" journals-omitted=\"3\"\u002F>\n```\n\nArchitecture docs, code files, diff, and `\u003Cprior-rounds>` (which grows each round) are still included — all the things that matter for re-review. Reviewers are reminded in the `\u003Cask>` block that round-2+ context was intentionally trimmed.\n\n## 🎯 Self-consistency check (anti-hallucination)\n\nFindings now require structured evidence:\n\n```xml\n\u003Cfinding severity=\"critical\" category=\"bug\">\n  \u003Cclaim>Unquoted variable in test causes syntax error on empty input.\u003C\u002Fclaim>\n  \u003Cevidence>\n    \u003Cfile-path>scripts\u002Fgreet.sh\u003C\u002Ffile-path>\n    \u003Cline-number>5\u003C\u002Fline-number>\n    \u003Cquoted-line>\u003C![CDATA[if [ $name == \"admin\" ]; then]]>\u003C\u002Fquoted-line>\n  \u003C\u002Fevidence>\n  \u003Csuggestion>Quote it: if [ \"$name\" = \"admin\" ]; then\u003C\u002Fsuggestion>\n\u003C\u002Ffinding>\n```\n\n`work-converge` greps the cited file for the `\u003Cquoted-line>` (whitespace-tolerant). Findings whose quote can't be located are flagged `verified: false` — likely hallucinations. The output JSON exposes:\n\n```json\n{ \"verified_findings\": 7, \"unverified_findings\": 1,\n  \"unverified_blockers\": [ \u002F* critical\u002Fhigh findings that failed verification *\u002F ] }\n```\n\nClaude can then weight unverified findings lower or ignore them. Direct counter to the gem-1-style anchor-bias hallucination class.\n\n---\n\n## ⚙️ Install layout (manual install only)\n\n```\nskill\u002Fwork*           → ~\u002F.local\u002Fbin\u002F\nskill\u002Fagent-status    → ~\u002F.local\u002Fbin\u002F\nskill\u002Fcommands\u002Fwork.md → ~\u002F.claude\u002Fcommands\u002Fwork.md\nskill\u002Fagent-sessions\u002F → ~\u002F.config\u002Fagent-sessions\u002F\n                        (rename agents.json.template → agents.json, edit)\nskill\u002Fgemini\u002Fsettings.snippet.json → merge into ~\u002F.gemini\u002Fsettings.json\nskill\u002Fgemini\u002FGEMINI.snippet.md     → append to  ~\u002F.gemini\u002FGEMINI.md\nskill\u002Fgemini\u002Fpolicies\u002F00-deny-destructive.toml → ~\u002F.gemini\u002Fpolicies\u002F\nskill\u002Fopencode\u002Fopencode.snippet.json → merge into ~\u002F.config\u002Fopencode\u002Fopencode.json\nskill\u002Fexamples\u002FAGENTS.md → put in each opencode session working dir\n```\n\nMake all `skill\u002Fwork*` files executable: `chmod +x ~\u002F.local\u002Fbin\u002Fwork*`\n\n---\n\n## 🔧 Customization\n\n| What | Where |\n|---|---|\n| Quorum rule | `quorum_check()` in `work-converge` |\n| Pack cap + context discovery | `MAX_CTX_BYTES` (800 KB) + discovery fns in `work-pack-build` |\n| Auto-approve patterns | `PROMPT_RE` in `work` |\n| Destructive block list | `DESTRUCTIVE_RE` in `work` |\n| Provider-error patterns | `ERROR_RE` in `work` |\n| Opencode popup patterns | `OPENCODE_POPUP_RE` in `work` |\n| Opencode peer-swap map | `OPENCODE_PARTNER` in `work` (default `kimi ⇄ deepseek`) |\n| Mode workflows | `~\u002F.claude\u002Fcommands\u002Fwork.md` |\n\n---\n\n## ➕ Adding more agents\n\nEdit `~\u002F.config\u002Fagent-sessions\u002Fagents.json`. New entries are auto-included in the LRU rotation for their lineage.\n\n- 4th Codex on a new ChatGPT account → `cdx-4` with its own `CODEX_HOME`\n- 2nd Gemini → `gem-2` (parallel review)\n- Claude reviewer in tmux → `claude-1` with `type: \"claude\"` (extend `work-converge` quorum logic)\n\n---\n\n## 🛟 Troubleshooting\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>🪧 Reviewer hangs forever\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n- Did the findings file end with `## DONE`?\n- Is the tmux pane stuck on a permission prompt, modal popup, or \"Error from provider\" toast?\n- Check the per-run log dir `\u002Ftmp\u002Fwork-\u003Ctask>-r\u003Cn>-\u003Cts>\u002F`:\n  - `error-retries.log` — provider errors + retries + peer-swaps + escalations\n  - `popup-dismissals.log` — opencode modal popups dismissed\n  - `approvals.log` — bash prompts auto-approved (with command line)\n  - `destructive-blocks.log` — destructive commands refused\n- Run `work permissions` for the aggregate view.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>🚫 Quorum never passes\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n- `agents.json` has at least one alive agent per lineage?\n- `agent-status` shows nobody rate-limited?\n- Look in the per-run log dir for an `\u003Cagent>-findings.md` containing `⚠️ AGENT ESCALATED TO CLAUDE` — orchestrator gave up after retries\u002Fswaps. Pick from the 3 numbered options in the stub.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>👻 Reviewer reports findings about code that isn't in the diff\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nLikely the pack hit the diff truncation cap. Check `pack-meta.json` for `diff_bytes` — if it's `50026`, truncation fired. The reviewer should have seen a `\u003Creviewer-instruction priority=\"critical\">` warning. If they hallucinated anyway, the model isn't following the instruction — file an issue.\n\n**Workaround:** bump `MAX_CTX_BYTES` higher in `work-pack-build`.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>📁 Wrong file paths\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n- `~\u002F.local\u002Fbin` in `$PATH`?\n- All scripts use `$HOME` \u002F `Path.home()` — should work for any Unix user.\n\n\u003C\u002Fdetails>\n\n---\n\n## 🔒 Safety guarantees\n\n- 🛑 Destructive shell ops blocked at **3 layers**: CLI configs, runtime guard in `work`, Gemini policy file\n- 👀 Destructive prompts → agent stays **visibly stuck** so a human notices and decides\n- 🚫 **Gemini does NOT run in `yolo` mode** — `yolo` has wiped repos for others (write_file overwriting source with empty content). It runs in `auto_edit`: file-write tools auto-approved, shell prompts caught and approved by orchestrator\n- 📜 All blocks logged to `destructive-blocks.log` in the run directory\n\n---\n\n## 📜 License\n\nMIT — do whatever you want.\n\n---\n\n## 🤝 Contributing\n\nPRs welcome. Especially:\n\n- Support for more CLI types (Claude Code as a reviewer, Ollama agents, …)\n- Better permission-prompt regex patterns for new CLI versions\n- Smarter context discovery in `work-pack-build`\n\n---\n\n## 🌱 Credits\n\nBuilt incrementally over April 2026 by trial and error. The **lineage diversity** insight came from Reddit discussion about Claude blind spots in self-review loops. The **`\u002Fclear` between rounds** rule came from watching opencode CLIs go conversational mid-orchestration. The **provider-error escalation** + **kimi ⇄ deepseek peer-swap** came from real OpenCode Go gateway hiccups. The **single-line gemini prompt** came from spotting that Gemini's TUI was treating each `\\n` as Submit.\n","GodModeSkill 是一个用于 Claude Code 的多语言模型交叉评审工作流。它通过三个不同家族的模型（Codex、Gemini 和 OpenCode）对代码计划、实现和修复进行投票审查，确保代码质量。项目使用 Shell 语言编写，具备自动处理 git 操作、零等待时间消耗 token 以及在合并前征求同意等特性。适用于需要高质量代码输出且希望避免单一模型或同族模型审查盲点的开发场景。该项目要求至少拥有三种不同的模型服务，并推荐使用订阅制以降低成本。","2026-06-11 02:44:01","CREATED_QUERY"]