Skip to content

fix(docs): repoint dead iii.dev links, add link-check CI - #655

Merged
anthonyiscoding merged 2 commits into
mainfrom
fix/broken-doc-links
Jul 31, 2026
Merged

fix(docs): repoint dead iii.dev links, add link-check CI#655
anthonyiscoding merged 2 commits into
mainfrom
fix/broken-doc-links

Conversation

@anthonyiscoding

@anthonyiscoding anthonyiscoding commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Four iii.dev URLs in the repo returned 404. Found them by grepping every iii.dev URL and checking it live; fixed the three that have valid targets with sed.

Was Now Files
iii.dev/docs/sdk-reference/engine-sdk iii.dev/docs/reference/engine-protocol harness/prompts/default.txt, harness/src/prompt/tests.rs, 8 provider-*/prompts/identity.txt
iii.dev/docs/sdk-reference/ iii.dev/docs/reference/ harness/README.md
iii.dev/docs/workers/iii-state#error-codes workers.iii.dev/workers/iii-state#error-codes state/src/update_ops.rs, state/src/adapters.rs

The sdk-reference redirect in docs.json only covers /next/, so the stable paths 404'd.

Also adds scripts/check-links.sh (grep + curl -L with backoff on 429/5xx) and a Link Check workflow that runs it on PRs, weekly, and on demand. All 41 URLs now return 200.

Not fixed: workers.iii.dev/workers/skills 404s while its badge.svg returns 200 — the worker is published but the registry page is missing. It's in the script's ignore list with that note; needs a fix on the registry side.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added a recorded-session console demo with theme selection and bundled interface styling.
    • Improved demo compatibility with shared React and console UI capabilities.
  • Documentation

    • Updated SDK, engine protocol, and worker documentation links to current reference pages.
    • Corrected state service documentation URLs.
  • Bug Fixes

    • Added automated checking for repository links, helping detect broken or outdated references before release.

@anthonyiscoding anthonyiscoding added the no-ticket PR deliberately has no Linear ticket (bump/typo/CI-only) label Jul 31, 2026
@vercel

vercel Bot commented Jul 31, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
workers Ready Ready Preview Jul 31, 2026 4:19pm
workers-tech-spec Ready Ready Preview Jul 31, 2026 4:19pm

Request Review

@github-actions

Copy link
Copy Markdown
Contributor

skill-check — worker

0 verified, 51 skipped (no docs/).

Layer Result
structure
vale
ai
render

Four for four. Nicely done.

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@anthonyiscoding, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 56 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 40fd13eb-3dc2-4ed3-974f-763dd48fd740

📥 Commits

Reviewing files that changed from the base of the PR and between afb2dcd and 50e3274.

📒 Files selected for processing (15)
  • .github/workflows/link-check.yml
  • harness/README.md
  • harness/prompts/default.txt
  • harness/src/prompt/tests.rs
  • provider-anthropic/prompts/identity.txt
  • provider-claude-code/prompts/identity.txt
  • provider-kimi/prompts/identity.txt
  • provider-llamacpp/prompts/identity.txt
  • provider-openai-codex/prompts/identity.txt
  • provider-openai/prompts/identity.txt
  • provider-xai/prompts/identity.txt
  • provider-zai/prompts/identity.txt
  • scripts/check-links.sh
  • state/src/adapters.rs
  • state/src/update_ops.rs
📝 Walkthrough

Walkthrough

The PR adds automated repository link checks, updates SDK and engine documentation URLs, changes workers state error links, and adds generated assets and runtime shims for a recorded console demo.

Changes

Link validation and URL migration

Layer / File(s) Summary
Repository link-check workflow
.github/workflows/link-check.yml, scripts/check-links.sh
The repository scans iii.dev URLs, retries requests, reports failures, and runs checks on pull requests, weekly, or manually.
Documentation reference updates
harness/..., provider-*/prompts/identity.txt
Harness guidance, provider prompts, and prompt tests now use the current SDK and engine protocol documentation paths.
Workers state error documentation
state/src/adapters.rs, state/src/update_ops.rs
Workers state errors now reference the workers-specific error-code documentation endpoint.

Console recorded demo

Layer / File(s) Summary
Demo entry and generated styles
console/web/dist-demo/demo.html, console/web/dist-demo/assets/*
The demo initializes its theme, loads bundled assets, mounts the application, and includes generated styles and fonts.
Console runtime vendor shims
console/web/dist-demo/vendor/*
Browser modules now expose console-provided UI, React, ReactDOM, JSX runtime, and client APIs.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • iii-hq/workers#624: Both PRs modify the console demo build and its generated distribution assets.

Suggested reviewers: andersonleal, ytallo

Poem

A rabbit checks each link in line,
While demo lights begin to shine.
New paths guide the docs with care,
Runtime shims bring React there.
Hop, hop—the build is ready to share!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main changes: updating dead documentation links and adding link-check CI.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/broken-doc-links

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (3)
console/web/dist-demo/assets/demo-BOaV_wZh.js (1)

1-152: 📐 Maintainability & Code Quality | 🔵 Trivial | 🏗️ Heavy lift

Recommended: do not commit generated/minified bundles to source control.

This file is a bundled and minified build artifact. It includes vendor code (React, Radix UI, Zod, Prism, remark/rehype, TanStack virtual) together with first-party demo logic, compiled into a single unreadable file.

Committing build output has three costs:

  • Reviewers cannot meaningfully review or diff this file.
  • The repository grows with every rebuild, even for trivial source changes.
  • Any future fix to the bundled logic must be re-generated and re-committed, which is easy to get out of sync with the actual source.

Move dist-demo/ (and its generated assets) into a build step that runs in CI or at deploy time, and add the directory to .gitignore. If the demo needs to ship as a static artifact for review or preview purposes, publish it via a build pipeline or a package registry instead of checking it into the repository.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@console/web/dist-demo/assets/demo-BOaV_wZh.js` around lines 1 - 152, Remove
the generated dist-demo bundle and its assets from source control, add
dist-demo/ to the repository ignore configuration, and ensure the demo build
regenerates these artifacts during CI or deployment. Keep the original demo
source as the canonical implementation and use the existing build pipeline
rather than adding committed generated output.
scripts/check-links.sh (2)

22-22: 🩺 Stability & Availability | 🔵 Trivial | 💤 Low value

Consider setting a custom User-Agent to reduce false FAIL reports.

The curl call uses the default User-Agent. Some sites block or reduce access for default bot-like user agents, returning a non-retryable status (for example 403) even though the page is reachable to a normal browser. The retry logic only accounts for 429, 5xx, and 000; a 403 from anti-bot filtering would be reported as a hard FAIL, requiring a manual addition to the ignore list rather than fixing the root cause.

Do you want me to add a browser-like -A User-Agent header to the curl invocation?

[reliability]

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/check-links.sh` at line 22, Update the curl invocation in the
link-checking flow to include a browser-like custom User-Agent via the -A
option, while preserving the existing URL, redirect, timeout, and HTTP-status
handling.

21-25: 🚀 Performance & Scalability | 🔵 Trivial | 💤 Low value

Avoid the unneeded sleep after the last retry attempt.

On the third (attempt=3) iteration, if code still matches the retryable set, the loop still executes sleep $((attempt * attempt * 2)) (18s) even though the for loop ends immediately afterward with no further retry. This wastes up to 18 seconds per persistently failing URL with no benefit.

♻️ Proposed fix to skip the sleep after the final attempt
   for attempt in 1 2 3; do
     code=$(curl -sS -o /dev/null -w '%{http_code}' -L --max-time 20 "$url")
     [[ "$code" =~ ^(429|5..|000)$ ]] || break
-    sleep $((attempt * attempt * 2))   # backoff: 2s, 8s
+    (( attempt < 3 )) && sleep $((attempt * attempt * 2))   # backoff: 2s, 8s
   done
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/check-links.sh` around lines 21 - 25, Update the retry loop around
the curl status check so the backoff sleep runs only when another attempt
remains; preserve the existing retryable-code matching and retry counts, but
skip the sleep when attempt is 3.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/link-check.yml:
- Line 20: Update the actions/checkout@v4 step in the workflow to disable
credential persistence by configuring persist-credentials as false, ensuring
pull-request-controlled scripts cannot access checkout credentials.

In `@console/web/dist-demo/assets/demo-BWlqPMEY.css`:
- Line 2: Exclude the generated Tailwind output under dist-demo from Stylelint
by updating the project’s Stylelint ignore configuration to match
console/web/dist-demo/**. Do not modify the generated demo-BWlqPMEY.css file or
add formatting changes to generated assets.

---

Nitpick comments:
In `@console/web/dist-demo/assets/demo-BOaV_wZh.js`:
- Around line 1-152: Remove the generated dist-demo bundle and its assets from
source control, add dist-demo/ to the repository ignore configuration, and
ensure the demo build regenerates these artifacts during CI or deployment. Keep
the original demo source as the canonical implementation and use the existing
build pipeline rather than adding committed generated output.

In `@scripts/check-links.sh`:
- Line 22: Update the curl invocation in the link-checking flow to include a
browser-like custom User-Agent via the -A option, while preserving the existing
URL, redirect, timeout, and HTTP-status handling.
- Around line 21-25: Update the retry loop around the curl status check so the
backoff sleep runs only when another attempt remains; preserve the existing
retryable-code matching and retry counts, but skip the sleep when attempt is 3.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2ca318c3-a9a1-46cd-8ad3-23f3c54997d9

📥 Commits

Reviewing files that changed from the base of the PR and between b23e7e4 and afb2dcd.

⛔ Files ignored due to path filters (72)
  • approval-gate/Cargo.lock is excluded by !**/*.lock
  • console/web/dist-demo/assets/chivo-mono-latin-400-normal-BIF4JAKS.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/chivo-mono-latin-400-normal-DZ3T-ph7.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/chivo-mono-latin-500-normal-BJB2L2Ln.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/chivo-mono-latin-500-normal-yaIk6wkS.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/chivo-mono-latin-600-normal-D8ZcYpdM.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/chivo-mono-latin-600-normal-RpBPN2_R.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/chivo-mono-latin-ext-400-normal-D2sLLYA-.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/chivo-mono-latin-ext-400-normal-UHfHOjZK.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/chivo-mono-latin-ext-500-normal-D1z6GQOH.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/chivo-mono-latin-ext-500-normal-WNoP_gXg.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/chivo-mono-latin-ext-600-normal-BdTF6ibp.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/chivo-mono-latin-ext-600-normal-C86iOssW.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/chivo-mono-vietnamese-400-normal-Dm4OwksM.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/chivo-mono-vietnamese-400-normal-Drvd1ekh.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/chivo-mono-vietnamese-500-normal-XrHUrQoZ.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/chivo-mono-vietnamese-500-normal-xwWRnSK6.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/chivo-mono-vietnamese-600-normal-CmYQG3WF.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/chivo-mono-vietnamese-600-normal-DSP6tK2J.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-cyrillic-400-normal-DXusLSnH.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-cyrillic-400-normal-DkrqoNl2.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-cyrillic-500-normal-BboVsk8R.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-cyrillic-500-normal-NWpm63d5.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-cyrillic-600-normal-BeW5VFD_.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-cyrillic-600-normal-CnEeIcMC.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-cyrillic-ext-400-normal-ChfpGzr5.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-cyrillic-ext-500-normal-BXrH8YSv.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-cyrillic-ext-600-normal-PR76dHFV.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-latin-400-normal-B40WzpMT.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-latin-400-normal-akEymXtG.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-latin-500-normal-BDXIbFrL.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-latin-500-normal-CTWBw9NS.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-latin-600-normal-CSETrqM2.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-latin-600-normal-DsPlZH-9.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-latin-ext-400-normal-Bz1pQMyt.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-latin-ext-400-normal-CND6cjiG.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-latin-ext-500-normal-BovoTgeE.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-latin-ext-500-normal-C9fx-R30.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-latin-ext-600-normal-CVFbg5dS.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-latin-ext-600-normal-TmIUreF9.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-cyrillic-400-normal-C51Di1Mf.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-mono-cyrillic-400-normal-CPJFfJgk.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-cyrillic-500-normal-D2cXvDHF.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-mono-cyrillic-500-normal-DfuvdVgn.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-cyrillic-600-normal-Dfv53e6N.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-mono-cyrillic-600-normal-DzvMIgFZ.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-latin-400-normal-B2yvC1Cq.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-latin-400-normal-DTRLJnHl.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-mono-latin-500-normal-D-GG86Jb.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-latin-500-normal-YINYabwD.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-mono-latin-600-normal-V-KvD_pi.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-mono-latin-600-normal-bZn07FKM.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-latin-ext-400-normal-CfzLURNc.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-latin-ext-400-normal-DI-rJ0UV.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-mono-latin-ext-500-normal-Buglb9-a.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-mono-latin-ext-500-normal-CrWEgvU_.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-latin-ext-600-normal-B7ybHiTt.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-latin-ext-600-normal-TphwrhF8.woff2 is excluded by !**/*.woff2
  • console/web/dist-demo/assets/geist-mono-symbols2-400-normal-DjbiTEEA.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-symbols2-500-normal-CmnCPGa0.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-symbols2-600-normal-D7I4D0GJ.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-vietnamese-400-normal-CZEPLOgu.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-vietnamese-500-normal-Dx9-epDo.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-mono-vietnamese-600-normal-BLL01lwa.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-vietnamese-400-normal-C8xY9-dI.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-vietnamese-500-normal-_b1ojCbH.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-vietnamese-600-normal-B5MZcNo4.woff is excluded by !**/*.woff
  • console/web/dist-demo/assets/geist-vietnamese-600-normal-BFUgqsz8.woff2 is excluded by !**/*.woff2
  • eval/Cargo.lock is excluded by !**/*.lock
  • provider-kimi/Cargo.lock is excluded by !**/*.lock
  • provider-llamacpp/Cargo.lock is excluded by !**/*.lock
  • provider-xai/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (23)
  • .github/workflows/link-check.yml
  • console/web/dist-demo/assets/demo-BOaV_wZh.js
  • console/web/dist-demo/assets/demo-BWlqPMEY.css
  • console/web/dist-demo/demo.html
  • console/web/dist-demo/vendor/console-ui.js
  • console/web/dist-demo/vendor/jsx-runtime.js
  • console/web/dist-demo/vendor/react-dom-client.js
  • console/web/dist-demo/vendor/react-dom.js
  • console/web/dist-demo/vendor/react.js
  • harness/README.md
  • harness/prompts/default.txt
  • harness/src/prompt/tests.rs
  • provider-anthropic/prompts/identity.txt
  • provider-claude-code/prompts/identity.txt
  • provider-kimi/prompts/identity.txt
  • provider-llamacpp/prompts/identity.txt
  • provider-openai-codex/prompts/identity.txt
  • provider-openai/prompts/identity.txt
  • provider-xai/prompts/identity.txt
  • provider-zai/prompts/identity.txt
  • scripts/check-links.sh
  • state/src/adapters.rs
  • state/src/update_ops.rs

Comment thread .github/workflows/link-check.yml
Comment thread console/web/dist-demo/assets/demo-BWlqPMEY.css Outdated
@anthonyiscoding

Copy link
Copy Markdown
Contributor Author

Addressed in a7b2f0e:

  • persist-credentials: false on checkout — valid, applied. The job does run a PR-controlled script.
  • Backoff sleep after the final attempt — valid, applied ((( attempt < 3 )) && sleep ...).

Skipped:

  • Browser-like -A User-Agent — no 403s observed across all 41 URLs, and all of them are our own hosts (iii.dev, workers.iii.dev, install.iii.dev). Adding a UA to pre-empt anti-bot filtering we don't have isn't worth it; if a host ever starts filtering, that's the time to add it.
  • console/web/dist-demo/** Stylelint exclusion and the committed demo-*.js bundle — not introduced by this PR. Those files came in on main in 451250f; this branch only touches doc links, the checker script, and the workflow. Worth a separate ticket if the committed-bundle concern stands.

anthonyiscoding and others added 2 commits July 31, 2026 11:18
api-reference -> reference across the harness and provider prompts,
sdk-reference/engine-sdk -> reference/engine-protocol (the docs.json
redirect only covers /next/), and the iii-state error-code anchor to
workers.iii.dev where the worker pages actually live.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
scripts/check-links.sh greps every iii.dev URL in the repo and curls it
with backoff on 429/5xx/timeouts; the workflow runs it on PRs, Mondays,
and on demand. Checkout runs with persist-credentials: false since the
job executes a PR-controlled script.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@anthonyiscoding
anthonyiscoding merged commit 8f14fa7 into main Jul 31, 2026
80 of 81 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-ticket PR deliberately has no Linear ticket (bump/typo/CI-only)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants