Skip to content

feat(harness): /orchestrator:provision — guided dedicated-server onboarding - #205

Merged
robercano merged 4 commits into
mainfrom
feat/issue-204-provision
Aug 1, 2026
Merged

feat(harness): /orchestrator:provision — guided dedicated-server onboarding#205
robercano merged 4 commits into
mainfrom
feat/issue-204-provision

Conversation

@robercano-ghbot

@robercano-ghbot robercano-ghbot commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Closes #204.

What

A new guided command /orchestrator:provision that walks a human through provisioning a fresh dedicated Linux box for the autonomous loop, executing docs/HARDENING.mdWorked example: dedicated Linux server end-to-end. Same contract as /orchestrator:harden: HARDENING.md stays the source of truth, the command materializes it.

  • One interview (agent username, target repos, notifier, optional layers: nftables egress / auditd detection / remote SSH per docs/REMOTE_SSH_RUNBOOK.md).
  • Checkpointed phases with an explicit agent-runs vs human-runs-in-real-terminal split and a mandatory verification per phase (never trust "done" without checking).
  • Resumable: progress + interview answers persist in .claude/state/provision-progress.json.
  • Ends on HARDENING.md's checklist deltas plus a live tick in the ledger and a test notification.

Docs

One pointer blockquote at the top of the worked-example section in docs/HARDENING.md.

Follow-up commits (review round)

  • 3cae3cf — the interview's optional remote-SSH layer is now actually executed (new Phase 8 walking docs/REMOTE_SSH_RUNBOOK.md, with verification; final verify is Phase 9); provision.md registered in plugin.json's commands array; CHANGELOG [Unreleased] entry; interview phase-number fix + onboarding precondition.
  • 1eff37e — explicit GitHub PAT mint walkthroughs: HARDENING.md worked-example step 2 carries the fine-grained-PAT click-path + exact permission table and the classic repo-scope bot-token recipe; provision Phase 3 prints it; /orchestrator:setup step 7 spells out the bot-account walkthrough.
  • 91df113 — genericity sweep for the machine migration: BOT_LOGIN default in pr-ci-fix/pr-comment-fix/pr-rebase/pr-feedback is now derived from the bot token instead of a hardcoded personal login; .env.example uses placeholders.

Gates

self/checks.sh build / lint / test and self/smoke-fanout.sh pass locally on every commit.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FozLCW3EkDbnZaiaiPjSxL

…onboarding (issue #204)

Turns docs/HARDENING.md's 'dedicated Linux server' worked example into an
interactive, checkpointed, resumable command: one interview, eight phases
(prereqs, agent user, fresh credentials, agent clone, managed settings,
harden+arm, optional egress/detection, final verification), progress
tracked in .claude/state/provision-progress.json. HARDENING.md stays the
source of truth; the command executes it — same contract as
/orchestrator:harden. Adds a pointer line at the top of the worked example.

Closes #204

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FozLCW3EkDbnZaiaiPjSxL
claude added 3 commits August 1, 2026 12:20
…SH layer, register the command (issue #204)

Follow-ups on PR #205 found in review:
- The interview collected the optional remote-SSH layer but no phase
  executed it: add Phase 8 (docs/REMOTE_SSH_RUNBOOK.md walkthrough with
  verification + Phase 2/7 interplay notes); final verification is now
  Phase 9 and re-checks the runbook's §6 posture block.
- Register ./commands/provision.md in plugin.json's commands array so
  consumer installs expose /orchestrator:provision like the other three.
- CHANGELOG: add the [Unreleased] entry.
- Fix interview pointing at Phase 3 for the clone (it happens in Phase 4)
  and state the onboarding precondition (gates.json + arm-loop.sh must
  exist — /orchestrator:setup first).

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

HARDENING.md worked example step 2 becomes the canonical mint walkthrough:
fine-grained PAT click-path with the exact repository-permission table
(Contents/Issues/Pull requests read-write, Metadata read, Workflows
read-write only if the loop may push .github/workflows/ changes — the
workflow-scope push restriction), expiry guidance, and the separate
classic repo-scope GH_BOT_TOKEN recipe with the why-classic rationale.

/orchestrator:provision Phase 3 prints that walkthrough verbatim;
/orchestrator:setup step 7's action-needed path now lists the full
bot-account walkthrough (machine account, write-collaborator invite,
classic token, .env) instead of a parenthetical.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017k7HtdHgtG6WcHGrW1knJg
…m the bot token

Genericity sweep before the machine migration:
- pr-ci-fix.sh / pr-comment-fix.sh / pr-rebase.sh / pr-feedback.sh no
  longer fall back to a hardcoded personal bot login; when BOT_LOGIN is
  unset they resolve the login from the bot token itself
  (bot-gh.sh api user), so consumer repos never silently filter for the
  plugin author's bot. Failure mode improves too: a missing/invalid
  GH_BOT_TOKEN now fails loudly instead of proceeding with a wrong
  default and matching zero PRs.
- .env.example: replace concrete logins with placeholders and document
  the new derived default.
- Kept as-is (deliberate, not machine-specific): authorship in
  LICENSE/README/plugin manifests, robercano/reCode self-references
  (feedback target, install snippets, test fixtures), and the
  site's branding.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017k7HtdHgtG6WcHGrW1knJg
@robercano
robercano merged commit c79536c into main Aug 1, 2026
9 checks passed
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.

Guided dedicated-server provisioning: /orchestrator:provision command

3 participants