Skip to content

docs(cloud): re-verify cloud pages and add fleet-wide cloud setup guide - #2613

Merged
kyle-sexton merged 3 commits into
mainfrom
claude/web-quickstart-docs-hxzpat
Aug 14, 2026
Merged

docs(cloud): re-verify cloud pages and add fleet-wide cloud setup guide#2613
kyle-sexton merged 3 commits into
mainfrom
claude/web-quickstart-docs-hxzpat

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

No linked issue

Summary

Re-verifies docs/CLOUD-SESSIONS.md against rung-1 raw-markdown fetches of the three live cloud pages (web-quickstart, claude-code-on-the-web, cloud-environments) and adds docs/CLOUD-FLEET-SETUP.md, a goal-oriented guide for getting every melodic-software repository runnable in Claude Code cloud sessions from one shared environment.

Fix

  • docs/CLOUD-SESSIONS.md: folds in the new web-quickstart page (onboarding split out of claude-code-on-the-web, including the /web-setup terminal flow), records the roughly-five-minute setup-script cache-build budget and its bearing on the guarded bootstrap one-liner, and notes Claude Tag as an environment-sharing surface plus self-hosted environments as the routed alternative. Verification stamp scoped honestly: the three cloud pages carry 2026-08-13; other linked pages keep 2026-07-30.
  • docs/CLOUD-FLEET-SETUP.md (new): fleet audit of all 13 attachable active repos (toolchain pins: .NET SDK 10.0.302/10.0.400, Node 24.18.0, Python 3.14, Go 1.26.6, pwsh), a shared-environment design with a paste-ready setup script, manifest-driven per-repo SessionStart hook + settings.json templates, routine starters, a post-creation verification checklist, and network-allowlist fallbacks for the .NET and Python installers. Records the finding that this repo's session-start.sh is present but unregistered in committed settings.json (contradicting CLOUD-SESSIONS.md), left to an explicit decision because claude-ops converge owns committed plugin enablement (fix(claude-ops): stop sync writing committed settings, restoring the invariant #2539).

Verification

  • All three cloud pages fetched via the raw .md channel per the upstream-drift convention (slugs confirmed canonical in llms.txt, first headings checked); every existing CLOUD-SESSIONS.md anchor and restated claim matched the live text before the three deltas were folded in.
  • Fleet audit derived from shallow clones of each repo's default branch on 2026-08-13.
  • npx markdownlint-cli2 clean on both files; the embedded hook template passes shellcheck (one expected SC1091 info for the sourced nvm.sh).

Related

🤖 Generated with Claude Code

https://claude.ai/code/session_01AXaqhrFZeGTzbCJun12Ngx


Generated by Claude Code

claude added 2 commits August 13, 2026 01:15
…web-quickstart split

Rung-1 raw-markdown fetches (2026-08-13) of web-quickstart,
claude-code-on-the-web, and cloud-environments confirmed every existing
anchor and restated claim; three upstream changes folded in:

- link the new web-quickstart page (onboarding split out of
  claude-code-on-the-web, including the /web-setup terminal flow)
- record the roughly-five-minute setup-script cache-build budget and its
  bearing on the guarded bootstrap one-liner
- note Claude Tag as an environment-sharing surface (org-shared
  environments only) and that VMs are Anthropic-managed by default with
  self-hosted environments as the routed alternative

Verification stamp scoped honestly: the three cloud pages carry the
2026-08-13 date; other linked pages keep their 2026-07-30 stamp.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AXaqhrFZeGTzbCJun12Ngx
… and repo templates

Audited all 13 attachable active melodic-software repos (shallow clones,
2026-08-13) for toolchain pins and .claude/ state, and distilled the
result into a goal-oriented setup guide:

- fleet audit table: .NET 10.0.302/10.0.400, Node 24.18.0, Python 3.14,
  Go 1.26.6, and pwsh needs mapped per repo
- one shared cloud environment design with a paste-ready setup script
  (parallel tracks, five-minute cache-build budget, guarded per-repo
  bootstrap line for warm-boot caching)
- per-repo SessionStart hook + settings.json templates, manifest-driven
  and idempotent, modeled on this repo's production hook
- routine starters, a post-creation verification checklist, and network
  allowlist fallbacks for the .NET and Python installers
- finding: this repo's session-start.sh is present but unregistered in
  committed settings.json, contradicting CLOUD-SESSIONS.md; left to an
  explicit decision because claude-ops converge owns plugin enablement

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AXaqhrFZeGTzbCJun12Ngx
@cursor

cursor Bot commented Aug 14, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@claude

claude Bot commented Aug 14, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 3m 39s —— View job


Code Review

  • Read repo CLAUDE.md and REVIEW.md guidelines
  • Review diff (docs/CLOUD-SESSIONS.md, docs/CLOUD-FLEET-SETUP.md)
  • Check for correctness / maintainability issues per /review:code-review criteria
  • Post findings (inline + summary)

This repo carries a claude-security-review.yml workflow, so security-scoped findings are left to that lane; this review stays in the correctness/maintainability lane per REVIEW.md.

Both files are documentation-only, well-organized, and internally consistent (cross-references, anchors, and the fleet-audit table all check out against the diff). I read the full new docs/CLOUD-FLEET-SETUP.md and the diff hunks in docs/CLOUD-SESSIONS.md; note the PR's own claimed verification (rung-1 doc fetches, markdownlint, shellcheck) is author-reported and not independently re-verified here.

One finding posted inline on docs/CLOUD-FLEET-SETUP.md#L87: the shared-environment setup script's apt-get install -y gh is likely to silently no-op on a stock Ubuntu VM, since gh isn't in Ubuntu's default apt sources without first adding the cli.github.com repo/keyring — and the failure is masked by the trailing || true. That undercuts the verification checklist's gh --version check, and unlike the .NET/Python installers in the same doc, this gap has no documented fallback.

Everything else reviewed clean — no other correctness or maintainability issues found in the changed lines.

@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: 3acfd38c28

ℹ️ 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 docs/CLOUD-FLEET-SETUP.md Outdated
Comment thread docs/CLOUD-FLEET-SETUP.md Outdated
Comment thread docs/CLOUD-FLEET-SETUP.md Outdated
Comment thread docs/CLOUD-FLEET-SETUP.md
@github-actions

github-actions Bot commented Aug 14, 2026

Copy link
Copy Markdown

Claude has reviewed this PR 2 times. The lane skips further automatic reviews after 5; deleting this comment resets the count.

…review

- download-then-run the .NET installer in the hook template (a curl
  failure piped into bash exits 0 and masked the miss), and gate the
  DOTNET_ROOT/PATH env lines on the install actually existing
- warn explicitly when the pinned Node install fails instead of
  silently continuing on a preinstalled version
- list dot.net in the Custom-allowlist fallback so the recovery path
  stands even without the include-defaults checkbox
- annotate why gh installs from Ubuntu's archives: the official
  cloud-environments worked example is apt install gh, and
  cli.github.com is not on the default allowlist

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AXaqhrFZeGTzbCJun12Ngx
@claude

claude Bot commented Aug 14, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 3m 27s —— View job


Code Review

  • Read repo CLAUDE.md / REVIEW.md guidelines
  • Review diff (docs/CLOUD-SESSIONS.md, docs/CLOUD-FLEET-SETUP.md)
  • Check for correctness / maintainability issues per /review:code-review criteria
  • Post findings (inline + summary)

This repo carries a claude-security-review.yml workflow, so this lane stays in the correctness/maintainability scope per REVIEW.md; security-scoped findings are left to that lane.

Both files are documentation-only. I diffed aa9085c...HEAD (the full 3-commit PR: +328/-8 across the two files, matching the PR description) and read both files end-to-end at HEAD (c056b52), including the embedded setup script and SessionStart hook template.

Prior findings check. Commit c056b52 ("harden hook template and allowlist guidance") addresses all three items raised on the previous head (3acfd38) by Codex and by this lane's own earlier pass:

  • The .NET fallback allowlist now includes dot.net itself, not just the three redirect targets (docs/CLOUD-FLEET-SETUP.md#L70).
  • The Node install in the SessionStart hook template now warns explicitly when nvm install/nvm alias default fails, instead of silently continuing on whatever Node the VM shipped (docs/CLOUD-FLEET-SETUP.md#L190).
  • The .NET installer in the hook template now downloads the script and runs it as two separate steps (no curl | bash), so a blocked/failed download is no longer masked by bash -s exiting 0 on empty input (docs/CLOUD-FLEET-SETUP.md#L213-L217).
  • The gh apt-install's || true swallow is now called out inline with the rationale (Ubuntu's own archives, matching the official worked example) and pointed at the verification checklist's gh --version step as the catch — an acceptable resolution for a best-effort, verify-after design consistent with how the .NET/Python installers are already handled in the same doc.

Cross-checks against actual repo state (not just the doc's own claims): .claude/settings.json at HEAD has no hooks key and no enabledPlugins key, and does use a directory-source marketplace — matching exactly what the new "Findings" section and fleet-audit table assert (docs/CLOUD-FLEET-SETUP.md#L39, #L286-L295). .claude/hooks/session-start.sh exists as claimed. All internal anchor links (#step-1--..., #findings, #verification-checklist, etc.) resolve to headings that actually exist in both files.

No new correctness or maintainability issues found in this round — nothing here rises to a blocking finding. As with the prior pass, the PR's own claimed verification (rung-1 doc fetches against the live cloud pages, markdownlint, shellcheck) is author-reported and not independently re-verified by this review.

@kyle-sexton
kyle-sexton enabled auto-merge (squash) August 14, 2026 19:30
@kyle-sexton
kyle-sexton merged commit b3b643b into main Aug 14, 2026
39 checks passed
@kyle-sexton
kyle-sexton deleted the claude/web-quickstart-docs-hxzpat branch August 14, 2026 19:36
kyle-sexton added a commit that referenced this pull request Aug 15, 2026
#2668)

No linked issue

## Summary

Folds the 2026-08-14 live verification of the Melodic cloud environment
(#2654) into `docs/CLOUD-FLEET-SETUP.md`, and swaps the guide's embedded
environment setup script for a three-line bootstrap that curls the
canonical script from the new `cloud-environment` component in standards
(melodic-software/standards#388) — so environment behavior changes land
by reviewed PR instead of hand-edits to an account-scoped UI field.

## Fix

- **Step 1 network access**: the Custom allowlist (default package
managers + `dot.net`, `aka.ms`, `builds.dotnet.microsoft.com`,
`download.visualstudio.microsoft.com`) is now documented as the
requirement, not a fallback — #2654 Blocker 1 reproduced the .NET
installer's `403` under Trusted, overturning the 2026-08-13 probe-based
optimism.
- **Setup script section**: embedded script replaced by the bootstrap +
pointers to the standards component and its README; documents the
per-step timestamped log (`/var/log/melodic-env-setup.log`), the
completion stamp (`/opt/melodic-env-setup.done`, written strictly last),
and the cache-rebuild lifecycle (a merged standards change reaches
environments only on a forced rebuild or ~7-day expiry).
- **Verification checklist**: new item 0 checks the stamp first — a
missing stamp is the #2654 Blocker 2 signature (cache build interrupted
~13 s in; PowerShell and the baked-in bootstrap never ran). The .NET
item now points at confirming the allowlist rather than "applying the
fallback".
- **Findings + audit table**: the "bootstrap is unwired" finding is
marked resolved — #2631 registered the SessionStart hook and enabled the
65-plugin catalog, #2657 closed the cp311 pyyaml hash gap the hook died
on (verified against PyPI's published digests; coverage gap, not
tampering). Remaining #2654 actions are environment-side (apply the
allowlist, rebuild the cache, re-run the checklist).

## Verification

- `markdownlint-cli2 docs/CLOUD-FLEET-SETUP.md` — 0 issues
- All referenced anchors
(`#step-1--the-shared-environment-claudeai-ui-one-time`,
`#verification-checklist`) unchanged and resolvable
- Claims cross-checked against the primary sources: #2654 (live run
forensics), #2631 / #2657 diffs on `main`, and the component content in
melodic-software/standards#388

## Related

- Refs #2654 — the verification report this folds in (left open: the
environment-side actions — Custom allowlist + cache rebuild + checklist
re-run — are still pending)
- Refs #2631, #2657 — the repo-side fixes the Findings section now
records
- Refs melodic-software/standards#388 — the canonical setup script this
guide now bootstraps from
- Refs #2613 — the original fleet guide PR this follows up

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01AXaqhrFZeGTzbCJun12Ngx

---
_Generated by [Claude
Code](https://claude.ai/code/session_01AXaqhrFZeGTzbCJun12Ngx)_

Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
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