Skip to content

feat: claude-science + claude-tag product launches + archive pipeline fixes - #1215

Merged
claude-yolo[bot] merged 5 commits into
mainfrom
docs/archive-integrity-20260824
Aug 25, 2026
Merged

feat: claude-science + claude-tag product launches + archive pipeline fixes#1215
claude-yolo[bot] merged 5 commits into
mainfrom
docs/archive-integrity-20260824

Conversation

@lroolle

@lroolle lroolle commented Aug 25, 2026

Copy link
Copy Markdown
Member

Four commits, from a housekeeping sweep of the archive. Two were sitting
unpushed on a local branch; two are new.

What was wrong

The pipeline was healthy by every rule it had: green 4x/day, PRs merging,
main fresh. It was also quietly diverging from upstream, and every symptom
looked like success.

# Defect Blast radius
1 159 files held an HTML soft-404 instead of docs all 135 of content/en/api/terraform/ among them
2 1,560 platform docs stopped refreshing on 2026-07-07 upstream de-indexed them but kept editing; 7 weeks stale
3 claude.com/docs was never fetched at all 215 pages of product docs
4 Redirect bodies written back to the requested path 94 files misattributed, incl. a 471KB prompt history
5 123 permanently-dead URLs failing on every run success rate pinned at 96.9% forever
6 Discovery printed to a log with no reader academy.claude.com (725 pages) found by a human, not the automation
7 content/.metadata.json reported the pre-fix numbers console said 100.0%, file said 97.6%

What changed

Commits 1-2 (previously unpushed) close 1-5: refetch the on-disk
inventory rather than trusting the index, record moves instead of writing
the target's body to the source's path, tombstone confirmed deaths so the
rate is computed over live docs, and let the archive shrink -- with a
200-file circuit breaker and a rule that only markup is deleted
automatically.

Commit 3 is a full sync on top of main.

Commit 4 closes 6-7:

  • discovery.json is now a tracked file rewritten by every full run --
    per-domain capability, redirect targets seen, anthropics repos fetched vs
    not, and a review list of domains we could archive today and do not. A
    new source becomes a diff, which the existing publish path already turns
    into a PR. The workflow prompt classifies any change to it as high signal.
  • _finalize_stats() is now called by both the console and the metadata
    writer, so the artifact stops reporting failed: 95 / 97.6% for a run
    whose real numbers are 0 / 100.0%. Known deaths matched neither items
    nor failures and fell out of the file entirely; they now have their own
    list.

Verification

Three consecutive full runs before the merge, two after:

Total: 3904   Downloaded: 3810   Failed: 0
Gone: 94 (confirmed removed upstream)   Reaped: 0
Success: 100.0% of 3810 live docs
  • tombstones byte-stable, 0 HTML shells, 0 fragment filenames
  • every tombstoned "moved" target present on disk
  • discovery.json: review empty, no UNKNOWN domains -- correct today
  • tripwire fired on purpose: injecting a redirect to an unlisted domain
    probes it, marks it UNKNOWN -- seen only as a redirect target, adds the
    review line, and prints the decision block. It is a tripwire, not a
    hypothesis.

Not in this PR

  • 356 stale branches Corrected after merge: that number was
    measured from this clone's remote-tracking refs, and the clone had a
    narrowed fetch refspec (+refs/heads/main:refs/remotes/origin/main), so
    359 refs deleted on the remote long ago had never been pruned locally.
    git ls-remote and the branches API both said 20. All 20 were
    no-PR-ever orphans from the June 2026 incident, all content-only (zero
    non-content files in any diff vs main), and all have now been deleted --
    the repo is down to main. The "one branch per closed PR" mechanism I
    described does not exist: 353 closed PRs left zero branches behind. The
    orphan-producing failure is already instrumented by the Verify-outcome
    step in this workflow, so no cleanup automation was added.
  • academy.claude.com (725 pages) still needs an HTML extraction path,
    which is a design decision, not a fetcher config change. discovery.json
    now holds the open question instead of a comment in sources.json.

🤖 Generated with Claude Code

lroolle and others added 5 commits August 24, 2026 20:36
Housekeeping found the archive quietly diverging from upstream in three
ways, none of which the 4x/day pipeline could report because all three
look like success.

1. 159 files held an HTML soft-404 instead of docs, including all 135 of
   content/en/api/terraform/. The 2026-08-05 guard (PR #1139) stopped new
   ones being written but never removed those already on disk: each run
   refuses the write, counts a failure, and leaves the stale file. Terraform
   was additionally excluded from fetching, so it was invisible to both the
   guard and that cleanup. Re-probed all 159 upstream: 145 hard 404, 14
   still soft-404, 0 recoverable. Deleted.

2. 1,560 platform docs stopped being refreshed on 2026-07-07. Upstream
   dropped every per-language SDK reference page from its sitemap *and* its
   llms.txt while continuing to edit the pages; the fetcher follows the
   sitemap, so they froze. en/api/python/messages/create.md was 35% smaller
   than upstream. Full runs now also refetch every doc already on disk,
   which recovered 1,268 files here.

3. claude.com/docs was never fetched at all: 215 pages of product docs
   (Claude Tag, Cowork, office agents, connectors, government,
   claude-science). sources.json still described the domain as cf-blocked
   marketing. Upstream had been 301-ing dead support articles there for
   weeks and nothing read the Location header; the fetcher now reports
   off-site redirects, which also surfaced academy.claude.com (725 pages,
   HTML-only, recorded but not fetched).

Reaping is deliberately conservative: only files holding markup are
deleted automatically. Real markdown whose URL died is content Anthropic
removed and we may hold the only copy, so it is reported for a human --
content/en/resources/prompt-library/ (19 pages) is exactly that. A reap of
more than 200 files is refused outright as an upstream outage rather than
executed by a job that merges its own PRs.

Also: strip #fragments from sitemap URLs (16 files had landed as
`delete#delete.md`, all of them soft-404s), and drop 28 stale
content/en/agent-sdk/ duplicates superseded by the canonical
code.claude.com copies. stop-reasons.md is kept -- it is gone upstream and
we hold the only copy.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The refresh pass added in the previous commit fetches URLs the sitemap no
longer lists, which means it routinely follows redirects -- and
download_doc was writing the *target's* body to the *requested* path.

Silent misattribution, invisible in review because the content looks real.
94 files were affected:

- release-notes/system-prompts.md: upstream split it into per-model pages
  today, so the old URL 307s to system-prompts/overview.md and our 471KB
  prompt history was replaced by the 3.7KB overview. The 18 new per-model
  files hold 467KB, so nothing was lost -- but the monolith path is now a
  duplicate of overview.md and is removed.
- 93 MCP community pages: the project renamed community/<x>/charter to
  community/{interest,working}-groups/<x>. Every one of those old paths had
  been receiving the new page's body. Verified all 93 targets are on disk
  and each old file was a byte-exact duplicate before removing it.

A redirect to a different path now records "moved -> <target>" and skips
the write. The target has its own entry in the fetch set, so it is still
archived; only the misattribution stops.

Also in this commit:

- tombstones.json: 187 URLs confirmed gone upstream, so a page that died
  once is counted quietly instead of re-reported forever. Before this, 123
  dead URLs failed on every run and pinned the success rate at 96.9%,
  which is exactly the condition that hides the next real breakage.
  Failed is now 0 and the rate is computed over live docs.
- The dead/failed split moved into _print_summary so every entry point
  reports it; --section runs no longer rewrite tombstones.json, which
  would have resurrected other sections' entries by omission.
- Newly-gone lines print the requested URL first. Printing the reason
  first put "moved -> <target>" ahead of the source URL and the pair read
  in the wrong order -- it misled me during this very investigation.

Verified over three consecutive full runs: newly-gone 0, known-dead 94,
tombstones byte-stable, 0 HTML shells, 0 fragment filenames, 0 dead
CLAUDE.md references, and every tombstoned "moved" target present on disk.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Conflicts were all fetcher-derived churn (63 support/ articles whose CDN
image URLs rotated upstream, plus content/.metadata.json). Resolved to
origin/main's newer fetch; a full fetcher run follows and regenerates
both regardless.
First full run on top of the merge with main. Confirms the archive-integrity
fixes hold against live upstream:

- newly-gone 0, known-dead 94 (tombstones byte-stable), reaped 0
- Failed 1, and it is a transient TLS connect error on a single
  platform.claude.com page, not a breakage
- 76 content files refreshed, 1 new page
  (claude/claude-tag/concepts/data-lifecycle.md)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ying

Two findings from a housekeeping sweep. Same root cause: the pipeline knew
things it had no way to tell anyone.

1. Discovery was written to a log with no reader.

   `_report_offsite_redirects` already prints "<-- UNKNOWN DOMAIN, consider
   adding a source" during every full run. In CI that is an Actions log
   nobody opens, and the agent that decides whether a run is newsworthy
   reads `git status`, not the step above it. So the pipeline printed
   `support.claude.com -> academy.claude.com` four times a day for weeks
   while a human eventually found those 725 pages by chasing a dead support
   article. The signal existed; the path to a person did not.

   Full runs now write `discovery.json`: per-domain capability, the set of
   redirect targets seen, the anthropics repos we do and do not fetch, and
   a `review` list of domains reachable-and-serving-markdown that nothing
   fetches. A new source is now a diff, which the existing publish path
   already turns into a PR — no new plumbing, and the workflow prompt
   classifies any change to it as high signal.

   `serves_markdown` is the field that carries the weight: it is the exact
   test for whether this fetcher could archive a domain at all. It
   independently re-derives today's answer (academy.claude.com: sitemap
   yes, markdown no) and will flip the day that stops being true.

   Probing detail worth keeping: sampling the *first* sitemap <loc> called
   platform.claude.com and claude.com markdown-incapable, because their
   first entries are the site root and a localised marketing page. It now
   samples five doc URLs spread through the sitemap.

   A `--discover` run observes no redirects, so it preserves the last full
   run's `redirect_targets` instead of clearing them — otherwise a manual
   probe would erase academy.claude.com and report it as good news.

2. content/.metadata.json still carried the number the console fix removed.

   The dead/failed split landed in `_print_summary`, but `_save_metadata`
   runs before it. The terminal said `Failed: 1 / 100.0% of 3810 live docs`
   while the machine-readable artifact — the one a consumer would parse —
   said `failed: 95, success_rate: 97.6`. That is rule 12's camouflage
   surviving in the file: a rate pinned by 94 standing deaths cannot show
   the 95th failure that is new.

   The split moved into an idempotent `_finalize_stats()` both writers
   call. The artifact also gains a `dead` list: known deaths matched
   neither `items` (successes only) nor `failures` (status == "failed"),
   so all 94 fell out of the file entirely while the summary still counted
   them.

Verified on two consecutive full runs:
  - Failed 0, Gone 94, tombstones byte-stable, reaped 0, 100.0% of 3810
  - metadata now reads failed 0 / dead 94 / 100.0, with 94 dead entries
  - discovery.json review [] and no UNKNOWN domains — correct today
  - tripwire fired on purpose: injecting a redirect to an unlisted domain
    probes it, marks it "UNKNOWN — seen only as a redirect target", adds
    the review line, and prints the decision block

Also fixes two stale README claims found on the way: it advertised a
6-hourly schedule (the cron is 4x daily) and said blog/research/support
articles go through jina.ai for HTML-to-markdown — that path was removed
in 2026-07, which is the reason content/blog/ is frozen at all.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 25, 2026 09:10
@claude-yolo claude-yolo Bot changed the title fix(fetcher): archive integrity + make discovery a tracked file feat: claude-science + claude-tag product launches + archive pipeline fixes Aug 25, 2026
@claude-yolo
claude-yolo Bot merged commit e005928 into main Aug 25, 2026
2 checks passed
@claude-yolo
claude-yolo Bot deleted the docs/archive-integrity-20260824 branch August 25, 2026 09:12

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c86de1e2a5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/fetcher.py
for p in paths[:20]:
print(f" would reap: {p}", file=sys.stderr)
print(f" ... +{len(paths) - 20} more", file=sys.stderr)
return 0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Fail the run when the reap limit trips

When more than 200 markup files are queued for reaping, this branch prints an Actions error annotation but returns normally; fetch_all() then prints a summary and exits successfully. During the exact mass-soft-404 outage this circuit breaker is intended to detect, CI therefore remains green and can continue publishing the newly generated tombstones and partial results. Raise an exception or otherwise return a nonzero process status here.

Useful? React with 👍 / 👎.

Comment thread scripts/fetcher.py
Comment on lines +750 to +754
if not self._stats_finalized:
self._stats_finalized = True
self.stats["dead"] = len(self.dead_now)
self.stats["failed"] -= len(self.dead_now)
return self.stats["total"] - self.stats["dead"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve failures for explicit URL fetches

For fetcher.py URL, a 404, 410, or moved-page redirect increments failed and adds the URL to dead_now, but _save_metadata() calls this method before fetch_urls() tests self.stats["failed"]. Subtracting every death here consequently turns a single failed explicit fetch into failed == 0, so the command prints FAIL but exits successfully. Only complete archive runs should suppress known deaths, or the reporting count should be separated from the process exit status.

Useful? React with 👍 / 👎.

Comment thread scripts/fetcher.py
"facts only: a change here is always news. `review` is the "
"actionable list — domains we could archive today and do not."
),
"updated": datetime.now(timezone.utc).strftime("%Y-%m-%d"),

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Remove the volatile date from discovery snapshots

On the first scheduled run of every UTC day, this field changes even when no domain capability, redirect target, or repository changed. That contradicts the snapshot's stated stable-facts-only contract and, more importantly, .github/workflows/fetch-claude-docs.yml classifies any discovery.json change as high signal requiring human review, so this creates a guaranteed spurious high-signal PR each day.

Useful? React with 👍 / 👎.

Comment thread scripts/fetcher.py
Comment on lines +938 to +942
targets = sorted({hop.split(" -> ")[1] for hop in self.redirects_offsite})
if not targets:
try:
targets = json.loads(
self.discovery_path.read_text()).get("redirect_targets", [])

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Let full runs clear stale redirect targets

When a full fetch observes no off-site redirects, targets is empty and this fallback restores the previous snapshot's targets, just as it does for --discover. Consequently, a domain that upstream stops redirecting to remains recorded forever as currently observed and potentially UNKNOWN; a later full run can never report or clear its disappearance. Preserve the old value only for the manual discovery mode, while full runs should write their observed empty set.

Useful? React with 👍 / 👎.

Copilot AI 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.

Pull request overview

This PR is a large archive-integrity maintenance and re-sync that (per the PR description) updates the fetcher so the on-disk archive stays correct over time (handling soft-404 HTML shells, de-indexed-but-live pages, redirects, and permanent “gone” URLs via tombstones), and makes discovery a tracked artifact (discovery.json) so newly-detected sources become reviewable diffs/PRs. The content changes shown in this diff reflect the resulting full sync: many documentation pages are added/removed/normalized, API reference pages are reformatted for consistency, and a number of support-article screenshot URLs are refreshed.

Changes:

  • Refreshes/normalizes large portions of the docs corpus (including API reference pages across multiple SDKs/CLIs) and adds new claude.com product documentation pages.
  • Removes a set of pages that appear to have been reaped/relocated upstream (several full-file deletions in this diff).
  • Updates many support article embedded image URLs (expiring signed Intercom CDN links).

Reviewed changes

Copilot reviewed 115 out of 1836 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
content/support/9927533-disable-public-projects-for-your-organization.md Refresh embedded screenshot URL.
content/support/9267400-move-your-personal-claude-account-to-a-team-or-enterprise-organization.md Refresh embedded screenshot URL.
content/support/8325618-paid-plan-billing-faqs.md Refresh embedded screenshot URL.
content/support/8114491-get-started-with-claude.md Refresh embedded screenshot URL.
content/support/15936181-get-started-with-1password-for-claude.md Refresh embedded screenshot URL.
content/support/15330088-set-a-default-model-for-your-organization.md Refresh embedded screenshot URL.
content/support/14604416-get-started-with-claude-design.md Refresh embedded screenshot URL.
content/support/14604406-claude-design-admin-guide-for-team-and-enterprise-plans.md Refresh embedded screenshot URL.
content/support/14604397-set-up-your-design-system-in-claude-design.md Refresh embedded screenshot URL.
content/support/14503775-mcp-web-search.md Refresh embedded screenshot URL.
content/support/14479288-claude-cowork-desktop-architecture-overview.md Remove page content (reaped/removed upstream).
content/support/13854387-schedule-recurring-tasks-in-claude-cowork.md Refresh embedded screenshot URL.
content/support/13837433-manage-plugins-for-your-organization.md Refresh embedded screenshot URL.
content/support/13756069-public-sector-faqs.md Refresh embedded screenshot URL.
content/support/13371040-log-in-to-your-console-account.md Refresh embedded screenshot URL.
content/support/13346458-customizing-your-console-appearance-settings.md Refresh embedded screenshot URL.
content/support/13345190-get-started-with-claude-cowork.md Refresh embedded screenshot URL.
content/support/13325567-account-management-faqs.md Refresh embedded screenshot URL.
content/support/13189465-log-in-to-your-claude-account.md Refresh embedded screenshot URL.
content/support/12997503-team-plan-billing-faqs.md Refresh embedded screenshot URL.
content/support/12626668-use-quick-entry-with-claude-desktop-on-mac.md Refresh embedded screenshot URL.
content/support/12512180-use-skills-in-claude.md Refresh embedded screenshot URL.
content/support/12466728-troubleshoot-claude-error-messages.md Refresh embedded screenshot URL.
content/support/12429409-manage-usage-credits-for-paid-claude-plans.md Refresh embedded screenshot URL.
content/support/12293051-use-claude-in-xcode.md Refresh embedded screenshot URL.
content/support/12260368-use-incognito-chats.md Refresh embedded screenshot URL.
content/support/12157520-claude-code-usage-analytics.md Refresh embedded screenshot URL.
content/support/12012173-get-started-with-claude-in-chrome.md Refresh embedded screenshot URL.
content/support/11869629-use-claude-with-android-apps.md Refresh embedded screenshot URL.
content/support/11818288-why-am-i-being-asked-to-verify-my-payment-method.md Refresh embedded screenshot URL.
content/support/11725453-set-up-the-claude-lti-in-canvas-by-instructure.md Refresh embedded screenshot URL.
content/support/10684626-enable-and-use-web-search.md Refresh embedded screenshot URL.
content/support/10504853-manage-user-feedback-settings-on-claude-console.md Refresh embedded screenshot URL.
content/support/10504844-manage-user-feedback-settings-on-team-and-enterprise-plans.md Refresh embedded screenshot URL.
content/support/10310342-how-do-i-log-out-of-all-active-sessions.md Refresh embedded screenshot URL.
content/mcp/docs/learn/versioning.md Remove page content (reaped/removed upstream).
content/en/test-and-evaluate/strengthen-guardrails/keep-claude-in-character.md Remove page content (reaped/removed upstream).
content/en/build-with-claude/prompt-engineering/prompt-generator.md Remove page content (reaped/removed upstream).
content/en/api/typescript/messages/batches/delete.md Normalize headings/signature/example formatting.
content/en/api/typescript/beta/webhooks/unwrap.md Normalize headings/signature/example formatting.
content/en/api/ruby/messages/batches/delete.md Normalize headings/method casing/example formatting.
content/en/api/ruby/beta/webhooks/unwrap.md Normalize headings/example formatting.
content/en/api/python/messages/batches/delete.md Normalize headings/signature/example formatting.
content/en/api/python/beta/webhooks/unwrap.md Normalize headings/example formatting.
content/en/api/php/messages/batches/retrieve.md Normalize headings/method casing/example formatting.
content/en/api/php/messages/batches/results.md Normalize headings/method casing/example formatting.
content/en/api/php/messages/batches/list.md Normalize headings/method casing; add parameter default note.
content/en/api/php/messages/batches/delete.md Normalize headings/method casing/example formatting.
content/en/api/php/messages/batches/cancel.md Normalize headings/method casing/example formatting.
content/en/api/php/completions/create.md Add frontmatter metadata; keep “not available” notice.
content/en/api/php/beta/vaults/update.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/vaults/retrieve.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/vaults/list.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/vaults/delete.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/vaults/credentials/update.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/vaults/credentials/retrieve.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/vaults/credentials/mcp_oauth_validate.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/vaults/credentials/list.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/vaults/credentials/delete.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/vaults/credentials/create.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/vaults/credentials/archive.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/vaults/create.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/vaults/archive.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/user_profiles/create_enrollment_url.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/tunnels/reveal_token.md Add full endpoint docs (was previously “not available”).
content/en/api/php/beta/skills/versions/retrieve.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/skills/versions/list.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/skills/versions/download.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/skills/versions/delete.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/skills/versions/create.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/skills/retrieve.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/skills/list.md Normalize headings/method casing; add parameter default note.
content/en/api/php/beta/skills/delete.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/skills/create.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/sessions/resources/update.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/sessions/resources/retrieve.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/sessions/resources/list.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/sessions/resources/delete.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/sessions/resources/add.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/sessions/events/send.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/sessions/delete.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/messages/batches/retrieve.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/messages/batches/results.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/messages/batches/list.md Normalize headings/method casing; add parameter default note.
content/en/api/php/beta/messages/batches/delete.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/messages/batches/cancel.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/memory_stores/update.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/memory_stores/retrieve.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/memory_stores/memory_versions/retrieve.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/memory_stores/memory_versions/redact.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/memory_stores/memories/update.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/memory_stores/memories/retrieve.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/memory_stores/memories/list.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/memory_stores/memories/delete.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/memory_stores/memories/create.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/memory_stores/list.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/memory_stores/delete.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/memory_stores/create.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/memory_stores/archive.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/files/upload.md Normalize headings/method casing; adjust return type naming in docs/example.
content/en/api/php/beta/files/retrieve_metadata.md Normalize headings/method casing; adjust return type naming in docs/example.
content/en/api/php/beta/files/list.md Normalize headings/method casing; add parameter default note; adjust return type naming.
content/en/api/php/beta/files/download.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/files/delete.md Normalize headings/method casing; adjust return type naming in docs/example.
content/en/api/php/beta/environments/work/stats.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/environments/work/heartbeat.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/environments/retrieve.md Normalize headings/method casing; clarify nullable description field; update example formatting.
content/en/api/php/beta/environments/delete.md Normalize headings/method casing; normalize response schema wording; update example formatting.
content/en/api/php/beta/environments/create.md Normalize headings/method casing; clarify nullable description field; update example formatting.
content/en/api/php/beta/environments/archive.md Normalize headings/method casing; clarify nullable description field; update example formatting.
content/en/api/php/beta/deployments/run.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/deployment_runs/retrieve.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/deployment_runs/list.md Normalize headings/method casing; update beta enum usage in example.
content/en/api/php/beta/agents/versions.md Update endpoint docs/example payload for latest schema.
content/en/api/java/messages/batches/delete.md Normalize headings/method casing/signature wording.
content/en/api/go/beta/webhooks/unwrap.md Normalize headings/example formatting (go fmt style).
content/en/api/csharp/messages/batches/delete.md Normalize headings/method casing/signature wording.
content/en/api/csharp/completions/create.md Add frontmatter metadata; keep “not available” notice.
content/en/api/compliance/apps/chats/generated_files/content.md Remove page content (reaped/removed upstream).
content/en/api/compliance/apps/chats/files/content.md Remove page content (reaped/removed upstream).
content/en/api/compliance/apps/artifacts/content.md Remove page content (reaped/removed upstream).
content/en/api/cli/messages/batches/delete.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/vaults/retrieve.md Normalize headings/method casing; improve schema annotations; normalize example fence language.
content/en/api/cli/beta/vaults/delete.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/vaults/credentials/delete.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/vaults/archive.md Normalize headings/method casing; improve schema annotations; normalize example formatting.
content/en/api/cli/beta/user_profiles/create_enrollment_url.md Normalize headings/method casing; improve schema annotations; normalize example formatting.
content/en/api/cli/beta/tunnels/rotate_token.md Add full endpoint docs (was previously “not available”).
content/en/api/cli/beta/tunnels/reveal_token.md Add full endpoint docs (was previously “not available”).
content/en/api/cli/beta/skills/versions/retrieve.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/skills/versions/list.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/skills/versions/download.md Normalize headings/method casing; schema name normalization.
content/en/api/cli/beta/skills/versions/delete.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/skills/versions/create.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/skills/retrieve.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/skills/list.md Normalize headings/method casing; fix pagination param wording; normalize example formatting.
content/en/api/cli/beta/skills/delete.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/skills/create.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/sessions/resources/delete.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/sessions/delete.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/messages/batches/delete.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/memory_stores/memories/delete.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/memory_stores/delete.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/files/download.md Normalize headings/method casing; schema name normalization.
content/en/api/cli/beta/files/delete.md Normalize headings/method casing; response schema naming.
content/en/api/cli/beta/environments/work/stats.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/environments/work/heartbeat.md Normalize headings/method casing/example formatting.
content/en/api/cli/beta/environments/delete.md Normalize headings/method casing/example formatting.
content/en/api/beta/webhooks/unwrap.md Normalize heading formatting.
content/claude/third-party/claude-desktop/claude-api.md Add new claude.com product doc page.
content/claude/government/tenant-admin/configuration.md Add new claude.com government doc page.
content/claude/government/org-admin/configuration.md Add new claude.com government doc page.
content/claude/cowork/overview.md Add new claude.com product doc page.
content/claude/connectors/building/after-publishing.md Add new claude.com connectors doc page.
content/claude/claude-science/whats-not-available-yet.md Add new claude.com Claude Science doc page.
content/claude/claude-science/the-reviewer.md Add new claude.com Claude Science doc page.
content/claude/claude-science/overview.md Add new claude.com Claude Science doc page.
content/claude/claude-science/multiple-computers.md Add new claude.com Claude Science doc page.
content/claude/claude-science/monitor-usage.md Add new claude.com Claude Science doc page.
content/claude/claude-science/custom-connectors.md Add new claude.com Claude Science doc page.
content/claude/claude-science/cloud-storage.md Add new claude.com Claude Science doc page.
content/claude/claude-science/annotations.md Add new claude.com Claude Science doc page.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +42 to +44
$betaTunnelToken = $client->beta->tunnels->revealToken(
'tunnel_id', betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24]
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants