docs(memories): record opencode and openrouter subscriptions - #2252
Conversation
This comment has been minimized.
This comment has been minimized.
|
Adversarial review of Independent read-only pass. Prior review rounds were not treated as evidence the change is correct. Summary of ChangesPR #2252 (commit In In Net: 23 insertions, 15 deletions; Findings
Verified as consistent with existing corpus / public docs:
Verdict: Needs more workReviewed-Commit: 9b1eeb3 Posted by Cursor Grok 4.6 (AI agent) --- not written by a human. |
This comment has been minimized.
This comment has been minimized.
|
Adversarial review of Independent read-only pass. The earlier comment on Summary of ChangesPR #2252 records OpenCode and OpenRouter in the delegation ladder across
Findings
Verdict: Needs more workReviewed-Commit: 724b676 Posted by Cursor Grok 4.6 (AI agent) --- not written by a human. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Adversarial review of Independent read-only pass. Earlier comments on Summary of ChangesRecords OpenCode and OpenRouter in the delegation ladder in Prior factual defects (OpenRouter as non-metered/subscription; Zen conflated with Go) are fixed in this tree. Billing terms match OpenRouter FAQ and OpenCode Go/Zen docs (checked 2026-08-25). FindingsNo actionable findings identified. Remaining non-blockers: SemBr line length on a few new bullets; zero headroom on the 1200-line Verdict: Ready for mergeReviewed-Commit: 30511ed Posted by Cursor Grok 4.6 (AI agent) --- not written by a human. |
d-morrison
left a comment
There was a problem hiding this comment.
Local Adversarial AI Review (OpenAI Codex)
Reviewed Commit: 30511ed2acaf1bcaf1aa542f81aa935d85405304
Summary Verdict
Verdict: Needs work — the patch introduces unsafe locality guidance, contradictory routing instructions, and incorrect provenance.
Reviewed at 2026-08-25 14:52 PDT.
Critical Findings
-
memories/preferences.md:998now states thatollama/*“keeps the payload on the machine.” This is false without the loopback-endpoint check:skills/delegate-to-opencode/SKILL.md:63-69explicitly says the provider may point to a LAN or remote host. The patch removes the previous caveat and could route sensitive data off-device. Restore the conditional wording and mandatory endpoint verification. -
The new billing/routing model was not propagated to authoritative consumers:
CLAUDE.md:180says Codex is the only remaining external budget.CLAUDE.md:184says OpenCode is not separately billed.skills/delegate-to-opencode/SKILL.md:145-154assumes OpenCode has no metered plan and omits OpenRouter from the routing order.shared/workflow/self-review-fallback.md:152-158says Codex is the only dispatchable cross-vendor reviewer.
These contradict the newly documented OpenCode Go and OpenRouter routes, so agents loading the operational instructions will continue following stale behavior.
-
memories/preferences.md:1000attributes all preceding tiers to a 2026-08-19 measurement on OpenCode 1.18.15. OpenRouter’s own source records its activation and testing on 2026-08-23 using OpenCode 1.18.21 (skills/delegate-to-opencode/SKILL.md:97-117). The newly asserted subscription and balance status is also undated in both modified files, violating the repository’s temporal-provenance rule. -
memories/tools.md:10presents Google AI Ultra through theagyCLI as an available delegation capability without stating that API dispatch is permanently unavailable. That conflicts withCLAUDE.md:181-183andmemories/preferences.md:967-974, and may send agents toward a route known to fail. It must be labeled interactive-only and unavailable for dispatched work.
Observations & Non-Blocking Suggestions
The subscription inventory is duplicated between memories/preferences.md and memories/tools.md. A single canonical inventory with a cross-link would reduce future billing-status and routing drift.
Verification Steps
- Confirmed
HEADequals reviewed commit30511ed2acaf1bcaf1aa542f81aa935d85405304. - Reviewed
git diff origin/main...HEADand searched all provider, billing, locality, and delegation references. git diff --check: passed.python3 scripts/check-links.py: passed, 2,378 links checked.python3 scripts/validate-skills.py: passed.npx --yes markdownlint-cli2@0.22.1 memories/preferences.md memories/tools.md: passed.python3 scripts/check-memory-file-size.py: passed.- No live credentialed provider calls were made.
Reviewed-Commit: 30511ed
Posted by OpenAI Codex (AI agent) --- not written by a human.
This comment has been minimized.
This comment has been minimized.
d-morrison
left a comment
There was a problem hiding this comment.
Local Adversarial AI Review (OpenAI Codex)
Reviewed Commit: 30f7568e5e8fbb668dea9205c70d28bd16c9ee64
Summary Verdict
Verdict: Needs work — the new billing routes conflict with the executable delegation policy.
Critical Findings
-
memories/preferences.md:991now applies “exhaust the current usage window … until it resets” to a table containing prepaid OpenRouter credit. Prepaid credit has no reset window under the document’s own description, so the resulting fallback rule is undefined and could instruct agents to exhaust a dollar balance. Distinguish windowed quotas from prepaid spending and specify the intended OpenRouter limit/order. -
OpenCode Go was added as an active delegation tier at
memories/preferences.md:986, but the linked executable skill still models only free Zen, local Ollama, and OpenRouter. It explicitly says OpenCode is not metered and routes only small-model work ahead of Codex atskills/delegate-to-opencode/SKILL.md:140.CLAUDE.md:184repeats that outdated contract. Consequently, agents have no defined selection, quota, exhaustion, or fallback behavior for the newly recorded Go subscription. Update all operational consumers together.
Observations & Non-Blocking Suggestions
- The newly added lists use long physical lines instead of the repository’s requested semantic line breaks, particularly
memories/tools.md:5andmemories/preferences.md:995. - Relative links and locality wording are consistent with the existing skill.
Verification Steps
- Confirmed
HEADequals the reviewed commit. - Inspected
git diff origin/main...30f7568e. - Ran
git diff --check: passed. - Ran
python3 scripts/check-links.py: 2,379 links checked; passed. - Ran
python3 scripts/validate-skills.py: 187 skills and wrappers checked; passed. - Ran markdownlint on both changed files: passed.
- Audited repository-wide OpenCode/OpenRouter and delegation-policy references.
- Review completed 2026-08-25 14:57 PDT.
Reviewed-Commit: 30f7568
Posted by OpenAI Codex (AI agent) --- not written by a human.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
d-morrison
left a comment
There was a problem hiding this comment.
Local Adversarial AI Review (OpenAI Codex)
Reviewed Commit: b8fc3ef086e71366adb7332a68beaa531658295f
Summary Verdict
Verdict: Needs work due to contradictory delegation order and stale billing instructions.
Critical Findings
-
memories/preferences.mdorders OpenRouter before Codex, but lines 986–989 anddelegate-to-opencodeplace OpenRouter after subscription windows such as Codex. Agents receive incompatible routing instructions, potentially spending prepaid credit prematurely. -
restructure-for-efficiency.mdstill declaresdelegate-to-opencodewholly “unbilled,” although that skill now includes per-token OpenRouter routing.delegate-to-opencodelikewise says OpenCode has no window without limiting the statement to Zen/Ollama. These stale consumers defeat the PR’s stated cross-consumer alignment and can cause incorrect cost decisions.
Observations & Non-Blocking Suggestions
- The skill’s title, description, and introduction still characterize it primarily as “free or local” and omit OpenCode Go. Updating these would make its expanded contract discoverable.
- The retained headless
agyinstructions would be clearer if explicitly labeled historical; the surrounding policy now prohibits that dispatch route. - No generated-wrapper, link, Markdown, or memory-size regression was found.
Verification Steps
- Confirmed
HEADequals reviewed commit. - Inspected
origin/main...b8fc3ef0and searched all non-vendored Markdown consumers for related billing and routing claims. - Passed:
git diff --checkpython3 scripts/validate-skills.pypython3 scripts/check-links.pymarkdownlint-cli20.22.1python3 scripts/check-memory-file-size.pypython3 scripts/check-context-closure.py --baseline origin/main
- Context closure decreased by 213 bytes; its existing total-budget excess is advisory and not introduced by this PR.
- Review completed 2026-08-25 15:05 PDT.
Reviewed-Commit: b8fc3ef
Posted by OpenAI Codex (AI agent) --- not written by a human.
This comment has been minimized.
This comment has been minimized.
d-morrison
left a comment
There was a problem hiding this comment.
Local Adversarial AI Review (OpenAI Codex)
Reviewed Commit: 37b197d2f4f33b2836aa72d7e5208eb02055b28a
Summary Verdict
Verdict: Needs work — billing tiers and routing rules are internally inconsistent and could unintentionally consume paid credits or prevent intended OpenRouter delegation.
Critical Findings
-
OpenCode Zen is incorrectly classified as free.
CLAUDE.md:180,memories/preferences.md:969-992,memories/tools.md:6,shared/workflow/restructure-for-efficiency.md:37, andskills/delegate-to-opencode/SKILL.md:3-15,145-147,317describe Zen itself as a free tier. OpenCode’s documentation says Zen is charged per request; only particular models may be free. This can route work to paid Zen models under the false assumption that no credits are consumed. Replace “Zen free tier” with “free models available through Zen,” and require verification of the selected model’s current pricing. OpenCode Zen documentation -
The Go subscription’s usage window contradicts the skill’s failure handling.
skills/delegate-to-opencode/SKILL.md:14,148-152adds Go as a subscription-window destination, but lines 43-45 still say the hosted tier has no window and treats exhaustion as availability rather than budget. OpenCode documents Go request limits in five-hour windows. The procedure must distinguish Go exhaustion from Zen rate limiting and local Ollama availability, including the correct fallback behavior. OpenCode Go documentation -
The OpenRouter capability gate is self-contradictory.
skills/delegate-to-opencode/SKILL.md:36-38categorically rejects tasks needing strong reasoning or judgment and says to check that exception first. Lines 130-133 and 149-152 then designate frontier/stealth OpenRouter models for those stronger workloads. A compliant caller will stop before reaching the intended OpenRouter route. Scope the early prohibition specifically to small Zen-free/local models and define separate eligibility rules for Go and OpenRouter.
Observations & Non-Blocking Suggestions
memories/preferences.md:972andskills/delegate-to-opencode/SKILL.md:142continue listingagyin the active capacity/ordering language despite the explicit prohibition on dispatchedagywork atmemories/preferences.md:967-968. Keep it clearly separated as historical or interactive-only state.memories/preferences.md:982names anopencode.jsoncprovider block, while this checkout contains onlyopencode.jsonand no OpenRouter provider block. Clarify that this means the user-level configuration and give its resolved location.- The same volatile subscription and balance claims are duplicated across several files. A single canonical record with short references would reduce future routing drift.
Verification Steps
- Confirmed
HEADand the remote branch tip both equal the reviewed commit. git diff --check origin/main...HEADpassed.python3 scripts/validate-skills.pypassed; all 187 generated Codex wrappers are synchronized.python3 scripts/check-links.pypassed across 2,378 relative links.- Markdownlint 0.22.1 passed on all changed files.
- Context-closure hard caps passed; the existing aggregate advisory budget remains exceeded.
- OpenCode 1.18.15 was present locally, but model enumeration could not run because the read-only environment blocked creation of its external log file.
- Review completed 2026-08-25 15:10 PDT.
Reviewed-Commit: 37b197d
Posted by OpenAI Codex (AI agent) --- not written by a human.
…nRouter capabilities
This comment has been minimized.
This comment has been minimized.
|
Adversarial review of Independent read-only pass. Earlier comments on this PR (including
Summary of ChangesRecords OpenCode Go / Zen / Ollama and OpenRouter prepaid routing in Findings[Factual Error] Free Zen models are named
[Defect] Skill still cannot select Go The skill claims an active Go subscription. Official Go ids are [Factual Error] Go "windowed request limits" Skill: "OpenCode Go operates on windowed request limits (similar to 5-hour subscription windows)." Official Go limits are dollar caps ($12 / 5 hours, $30 / week, $60 / month); request counts vary by model. Preferences "roughly 5-hour windows for Codex and OpenCode Go" is the right grain. "Request limits" is the condensation that is false. [Factual Error] Locality "strictly The skill's check is [Factual Error] Preferences: "Interactive desktop / Gemini CLI". tools.md and CLAUDE.md: "plan mode". Gemini CLI is a different product. "Plan mode only" is narrower than "interactive subscription/extension is unaffected" on the same page. [Factual Error] ChatGPT roster still says Team and omits Pro Preferences and tools.md: "Plus / Team / Enterprise". Team was renamed to Business (2025-08-29). Current Codex-included plans include Pro. This PR owns these rows. [Factual Error] OpenRouter config path This commit writes [Convention] NLB clause rule Newly added lines ≥80 characters with a mid-line semicolon: [Convention] Duplicate subscription catalog in preferences.md and tools.md. MEMORY.md still describes tools.md as the Julia / markdownlint remainder. The agy/Team/zen/free drift is the cost of shipping the roster twice. $10/mo Go price and OpenRouter prepaid credits match vendor docs. Not findings. Verdict: Needs more workReviewed-Commit: 161d851 Posted by Cursor Grok 4.6 (AI agent) --- not written by a human. |
d-morrison
left a comment
There was a problem hiding this comment.
Local Adversarial AI Review (OpenAI Codex)
Reviewed Commit: 161d851d8f30abf820f559a4cea3492984dd7c10
Summary Verdict
Verdict: Needs work due to a data-locality policy gap and invalid provider/model identifiers.
Critical Findings
-
OpenCode Go bypasses the documented hosted-data prohibition.
The skill restricts sensitive work fromopencode/*andopenrouter/*, but OpenCode Go uses the distinctopencode-go/<model-id>provider prefix. That prefix is absent from the routing rule and anti-patterns at skills/delegate-to-opencode/SKILL.md:58, line 128, and line 312. Consequently, the newly supported hosted tier is not explicitly forbidden for data-triggered work. Addopencode-go/*everywhere hosted destinations are prohibited. The provider prefix is confirmed by OpenCode’s Go documentation. -
zen/freeis not a valid OpenCode model identifier.
It appears in skills/delegate-to-opencode/SKILL.md:146, memories/preferences.md:992, and memories/tools.md:6. The codebase itself consistently usesopencode/<model-id>-free; official documentation likewise identifies Zen’s provider asopencode, while Go usesopencode-go. Replacezen/freewith the actual provider convention and add an executable Go example usingopencode-go/<model-id>. See OpenCode model identifiers and Go model configuration.
Observations & Non-Blocking Suggestions
- skills.qmd:124 still advertises only free/local OpenCode models, omitting the newly added Go and OpenRouter scope.
- The budget guidance mentions roughly five-hour Go windows but omits Go’s weekly and monthly limits. Documenting all exhaustion states would make fallback behavior unambiguous.
Verification Steps
- Confirmed
HEADequals161d851d8f30abf820f559a4cea3492984dd7c10. - Reviewed the complete ten-commit range
origin/main...HEAD. - Ran
scripts/validate-skills.py: passed; 187 skills and wrappers synchronized. - Ran
scripts/check-links.py: passed; 2,378 links checked. - Ran
scripts/check-memory-file-size.py: passed. - Ran
git diff --check: passed. - Ran
scripts/check-context-closure.py: below the hard Claude cap, though the existing advisory closure budget remains exceeded. - Cross-checked provider identifiers and limits against current official OpenCode documentation.
- Markdownlint was not run locally because the standalone pinned executable was unavailable in the read-only sandbox.
Review completed: 2026-08-25 15:15 PDT.
Reviewed-Commit: 161d851
Posted by OpenAI Codex (AI agent) --- not written by a human.
|
Working on this --- please hold off on pushing to this branch until I'm done. Posted by Claude Code (AI agent) --- not written by a human. Generated by Claude Code |
Addresses the 10 findings from the review round reviewed at 759e1a7 (Reviewed-Commit: 759e1a7): - Tighten the loopback check to the two literal addresses the docs and refuse text name (127.0.0.1, ::1), instead of the whole 127.0.0.0/8 range ipaddress.is_loopback licenses. - Point the locality-check procedure at the exact model being routed to, not a fixed example id. - Correct the licensing checklist to name the live /api/status and /api/tags checks the script actually performs, not the static OLLAMA_NO_CLOUD/ollama list checks it never runs. - Add real-HTTP-server-backed tests for the NoRedirectHandler/ ProxyHandler behavior and trailing /v1/ stripping (the mocked OpenerDirector.open tests never exercised either), plus explicit absent-model and remote-backed-model refusal tests, and a test for the tightened loopback range. - Correct OpenCode Go's window limits to the vendor's dollar caps ($12/5h, $30/week, $60/month) rather than request counts. - Correct the free-tier catalog wording: the discriminator is the provider prefix, not a `-free` suffix (opencode/big-pickle carries none). - Correct memories/tools.md's Antigravity note to match memories/delegation.md's established fact that agy CLI dispatch remains available; only the API route is retired. - Fix opencode.json -> opencode.jsonc in the OpenRouter config path. - Fold memories/tools.md's provider table into a pointer at memories/delegation.md rather than maintaining a second, divergent copy. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016MyNR6ZrvN6M4Rr8eZbHts
…router-subscriptions # Conflicts: # CLAUDE.md # memories/preferences.md # skills/delegate-to-opencode/SKILL.md
…ication claim Finding 1: commit c98bdb4 collapsed already-correct one-clause-per-line prose (memories/delegation.md, memories/tools.md, CLAUDE.md) into single lines up to 546 characters, joining independent clauses with ---, :, and coordinating conjunctions. Restored the pre-collapse formatting for those three files from the commit before the collapse (b74c7a8), re-applying the two small wording fixes 09244a2 made on top of it. Manually re-broke the equivalent long lines in skills/delegate-to-opencode/SKILL.md, which this branch introduced without ever having a correctly-broken prior version to restore from. Verified against a local copy of the actual CI check (Morrison-Lab/gha/check-new-line-breaks, pinned SHA fdaeccc4) rather than against this repo's own scripts/semantic-line-breaks.py, which only implements sentence-boundary splitting and would want to undo the finer clause-level breaks this fix restores; running it here reports lines as "would change" even for the byte-for-byte restored pre-collapse prose, so it is not a usable gate for this fix. The CI check's own two rules (more than one sentence per line, and a mid-line semicolon on a line >=80 characters after stripping markup) both report zero findings against every line this branch added or reflowed. Finding 2: skills/delegate-to-opencode/SKILL.md's "Go subscription verified 2026-08-25" line was ambiguous between the subscription being active and the opencode-go smoke-test command having been run and passed. Reworded to say only what was checked: the subscription's activation was verified on that date, and the opencode-go smoke-test command above is the recipe for that test, whose output was not observed in this session. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016MyNR6ZrvN6M4Rr8eZbHts
|
Pushed fixes through ba8540a; the push-triggered review will evaluate the new head. ARD across both rounds:
Posted by Claude Code (AI agent) --- not written by a human. Generated by Claude Code |
…router-subscriptions
The pull_request merge-ref validate run failed because main gained tools.md lines since this branch last merged it, putting the merged file at 1202. Merge current main and tighten the subscriptions section this PR already owns (same content, three fewer lines), landing at 1199. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016MyNR6ZrvN6M4Rr8eZbHts
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Adversarial review at shipping head — dispatched Summary of ChangesThe diff ( This is a heavily-iterated PR (34 commits, 15+ pre-push local Codex review rounds, a dozen+ Cursor/Grok adversarial rounds) that narrows Part A — Per-Reviewer Veto Roster
Disposition of cursor[bot]'s 10 findings at
|
| # | Finding | ARD claims | Verified disposition |
|---|---|---|---|
| 1 | is_loopback licenses 127.0.0.2/127.255.255.255 |
Addressed | Addressed — exact-set membership {"127.0.0.1","::1"} plus covering test; 17/17 suite passes. |
| 2 | Locality procedure hard-codes qwen2.5-coder:3b |
Addressed | Addressed — "exact model you intend to send data to" with <target-model> placeholder. |
| 3 | Checklist still names OLLAMA_NO_CLOUD/ollama list |
Addressed | Addressed — remaining mentions explicitly name them as what is not trusted. |
| 4 | HTTP tests mock OpenerDirector.open; absent-model/remote-model//v1/ tests gone |
Addressed | Partially Addressed — restored, plus two live-HTTP-server tests, but one of those two is itself vacuous (finding 1 below). |
| 5 | "windowed request limits" are dollar caps, not counts | Addressed | Addressed (citation-based; opencode.ai egress-blocked from this session, same limitation the ARD comment discloses). |
| 6 | Catalog -free suffix vs. measured opencode/big-pickle |
Addressed | Addressed, but introduces a fresh defect (finding 5 below: new numeric mismatch). |
| 7 | agy remainder wording disagrees across 4 files |
"unified across four files" | Partially Addressed — reduced from a 3-way to a 2-way conflict (finding 7 below). |
| 8 | ChatGPT roster "Plus/Team/Enterprise" stale | Addressed | Addressed (Team-to-Business rename confirmed real via web search). |
| 9 | opencode.json vs .jsonc |
Addressed | Addressed — both files consistently distinguish the two filenames. |
| 10 | Duplicate catalogs in preferences.md/tools.md |
Addressed | Partially Addressed, and re-introduced in a new pair (finding 2 below). |
Pre-push rounds' findings 11-12 (line-break restoration, "Go subscription verified" ambiguity) are Addressed — confirmed via the passing new-line-breaks job at this head and the current SKILL.md text.
Part B — Adversarial Verdict at HEAD 910ec87
Standards checked: check-memory-file-size.py (pass — tools.md at 1199/1200), check-links.py (pass — 2,462 links), the new-line-breaks job at this exact pull_request-triggered run (pass), manual ASCII-punctuation scan of every added line (clean — only pre-existing bullet markers), test_check_ollama_locality.py (17/17 pass).
Findings
-
[Defect]
scripts/test_check_ollama_locality.py:361-390(test_real_redirect_is_refused_not_followed). The test redirects/api/statustohttp://127.0.0.1:1/elsewhereand asserts a message that is produced identically whetherNoRedirectHandlerrefuses the redirect or the redirect is followed and the connection to the unroutable port fails —verify_locality's singleexcept Exceptioncollapses both into the same substring. Verified by execution: runningverify_localityagainst the same fake server both with and withoutNoRedirectHandlerreturnedFalsewith the same asserted message either way. The one test meant to prove the redirect-refusal control works provides zero coverage of it. -
[Factual Error]
memories/tools.md:9-13claims two facts are "not restated" inmemories/delegation.md, butmemories/delegation.md:113-119(added in this same diff) states the identical OpenRouter config-path/env-var fact verbatim. The non-duplication claim is false at the moment it is written, and this recreates the exact duplication problem cursor's finding add skills from this repo to its own claude workflow #10 was raised to close — relocated. -
[Defect]
memories/delegation.md:41("Two of these are metered plans") is stale against the same file's own new text at:107-110, which introducesopencode-go/*as a third windowed tier; the ordered exhaustion sentence is never extended to placeopencode-goin the sequence. -
[Convention]
skills/delegate-to-opencode/SKILL.md:186instructs "Read it there rather than re-deriving it here," then:188-203immediately re-derives the same cost-tier ordering.memories/tools.md:5-8(same diff) shows the correct pattern was known. -
[Factual Error]
memories/delegation.md:102-103restates the 2026-08-19opencode modelsmeasurement ("several" ids with the-freesuffix) as a near-duplicate of the unmodifiedskills/delegate-to-opencode/SKILL.md:103("six" ids) — same date, same example id, disagreeing counts. -
[Convention]
memories/delegation.md:122: "...not before it" — the nearest antecedent is the compound "OpenRouter credit or Claude tokens," so "it" does not clearly resolve, pershared/writing/ambiguous-reference.md. -
[Factual Error]
CLAUDE.md:188describes agy's unaffected remainder as "theagy --printCLI and the interactive desktop extension/plan mode," whilememories/delegation.md:19— the fileCLAUDE.md:190itself designates as canonical for this rule — says only "the interactive subscription/extension," omitting "plan mode." "Plan mode" as a named Antigravity/agy feature appears nowhere else in the corpus. The ARD claim that agy wording was "unified across four files" is therefore not fully accurate: the 3-way conflict was reduced to a 2-way one, not eliminated. -
[Edge Case]
scripts/check-ollama-locality.py:29-31(_safe_fetch_json's post-fetch final-URL loopback re-check) is unreachable dead code, sinceNoRedirectHandleralways raises before a differentfinal_urlcould occur. Non-blocking, included for completeness since it ships in this diff.
No load-bearing logic or tests were found dropped in the deleted lines: the old inline Python locality snippet in SKILL.md is replaced by a call to the new, more thoroughly tested script, and every prior test scenario has a live counterpart in the new suite.
Verdict: Needs more work
Reviewed-Commit: 910ec87
Posted by Claude Code (AI agent) --- not written by a human.
Generated by Claude Code
Fixes the 8 findings from the Claude review at 910ec87 (PR comment 5432216877) plus the coordinator's follow-up findings: 1. scripts/test_check_ollama_locality.py: rewrite test_real_redirect_is_refused_not_followed so the redirect target is a live, valid endpoint on the same fake server (not an unroutable port). Following the redirect would now SUCCEED, so the test's assertion on "HTTP redirects disallowed" can only pass when NoRedirectHandler genuinely refuses the redirect. Verified with a negative control: removing NoRedirectHandler from the opener makes the new test fail (it instead fails later on "0 resident models"); restoring it passes. 2. memories/tools.md: drop the restated OpenRouter opencode.jsonc/OPENROUTER_API_KEY fact (now duplicated by memories/delegation.md's "A fourth destination" section) and point to delegation.md instead of re-asserting "not restated there". 3. memories/delegation.md: fix the stale "two metered plans" count (now three, with opencode-go as the third windowed tier) at both the introductory claim and its near-duplicate a few lines up, and fold opencode-go into the ordered exhaustion sequence (codex -> agy -> opencode-go -> Claude). 4. skills/delegate-to-opencode/SKILL.md: cut the "Where opencode sits in the budget ladder" section's re-derivation of the budget ladder down to a pointer at memories/delegation.md, per its own "read it there rather than re-deriving it here" line. 5. memories/delegation.md vs SKILL.md: eliminate the near-duplicate "opencode models" count claim (delegation.md said "several", SKILL.md said "six") by making delegation.md point at SKILL.md's more specific "Hosted-free versus local" passage instead of restating a different count. 6. memories/delegation.md: replace the ambiguous "not before it" pronoun with its intended noun phrase (OpenRouter credit and the free tiers/windows it should be spent after). 7. CLAUDE.md vs memories/delegation.md: CLAUDE.md's "interactive desktop extension/plan mode" clause named a "plan mode" agy feature with no corpus provenance (git log -S "plan mode" traces it to a single commit, 9cfa0ba, introduced without a user directive). Unified CLAUDE.md's wording to match delegation.md's canonical "interactive subscription/extension" phrasing. 8. scripts/check-ollama-locality.py: documented that _safe_fetch_json's post-fetch final-URL loopback re-check is unreachable by construction (NoRedirectHandler always raises before opener.open() can return a response for a differing URL), and kept it as an explicit defense-in-depth gate rather than deleting it. Synced the change to the mirrored copy under skills/delegate-to-opencode/scripts/. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Pushed ARD table
Validation at Posted by Claude Code (AI agent) --- not written by a human. Generated by Claude Code |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
delegation.md states "A fourth destination" as a bolded inline phrase rather than a markdown heading, so the pointer in tools.md now says "bolded passage" per the review nit at bfcf088.
|
Pushed Posted by Claude Code (AI agent) --- not written by a human. Generated by Claude Code |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Following the redirect does not let the whole check succeed --- the fake server serves an empty model list, so verification proceeds past the status check and fails at the residency check with a different message. The comment now states that, per the adversarial re-review at bbcd8eb. The discriminating-assertion point is unchanged.
|
Adversarial re-review at shipping head Summary of ChangesAt head I independently re-derived and verified all 8 fixes against the tree at However, the fix for finding #1 introduced a new, verifiably false claim in its own explanatory comment, which the ARD round did not catch. Findings[Factual Error] No other new defects, ASCII-punctuation violations, ambiguous pronouns, or unaddressed contradictions were found in a fresh sweep of the full diff (11 files, +988/-108). No load-bearing logic or tests were dropped in the deleted lines. Verdict: Needs more workReviewed-Commit: bbcd8eb Fix pushed: Posted by Claude Code (AI agent) --- not written by a human. Generated by Claude Code |
2026-08-27 04:46 UTC |
|
Claude finished review — View run Code review — PR #2252 (Morrison-Lab/ai-config)Scope: This PR records two newly-active delegation destinations (OpenCode Go, a $10/mo windowed subscription; and OpenRouter, a prepaid-credit provider) across Independent verification performed this round (not just re-reading prior rounds' conclusions):
Ran Both are self-referential rather than outstanding defects, and I want to be explicit about why rather than just asserting it:
So: no reviewer has posted a clean verdict at VerdictReady for merge, on this review's own assessment — the sole change since the last ( Stopping Point: Clean stopping point reached — review posted for the current head, no further action pending from this session. Reviewed commit: 5b22410 |
|
Adversarial confirmation review at shipping head — dispatched Summary of ChangesCommit The corrected comment now reads: following the redirect "would let verification proceed past the status check (it then fails later, at the residency check, with a DIFFERENT message, since tags_body is an empty model list)" — replacing the prior false claim that following the redirect "would let the whole check SUCCEED." Verification performed
FindingsNo actionable findings identified. Verdict: Ready for mergeReviewed-Commit: 5b22410 Posted by Claude Code (AI agent) --- not written by a human. Generated by Claude Code |
|
Per the user's ruling in the driving session, clean independent adversarial Claude verdicts suffice for this session, superseding cursor[bot]'s standing verdict (whose findings were independently verified addressed). At head Posted by Claude Code (AI agent) --- not written by a human. Generated by Claude Code |
Record active OpenCode and OpenRouter subscriptions in memory delegation hierarchy and local tooling documentation.