Skip to content

Document public CLI and clarify Orchestrator positioning#559

Merged
frostebite merged 6 commits intomainfrom
docs/public-cli-orchestrator-positioning
May 6, 2026
Merged

Document public CLI and clarify Orchestrator positioning#559
frostebite merged 6 commits intomainfrom
docs/public-cli-orchestrator-positioning

Conversation

@frostebite
Copy link
Copy Markdown
Member

@frostebite frostebite commented May 5, 2026

Summary

  • Add a top-level public GameCI CLI docs section for install, build, remote provider usage, and plugin configuration
  • Reframe the standalone Orchestrator CLI as an advanced/backend entry point
  • Rewrite the Orchestrator introduction and GameCI comparison to clarify the minimal standard GameCI foundation versus the advanced Orchestrator automation layer
  • Combine hot runner and incremental sync guidance into a Standalone Streaming Hot Runner page

Validation

  • yarn build

Summary by CodeRabbit

  • Documentation
    • Reframed Orchestrator vs Standard GameCI as complementary tiers with clearer guidance on when to choose each.
    • Expanded public game-ci CLI docs (install, build, remote builds, config/plugins, GitHub Action) and migrated many orchestrator examples to CLI flows.
    • Added Standalone Streaming Hot Runner and consolidated incremental sync guidance.
    • Revised caching/retained-workspaces, introduced custom jobs under build services, and added build-reliability (logging, garbage collection) content.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

Cat Gif

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 5, 2026

Warning

Rate limit exceeded

@frostebite has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 57 minutes and 31 seconds before requesting another review.

To continue reviewing without waiting, purchase usage credits in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1cce7ded-85fc-4aaf-b26a-16baf02a3d67

📥 Commits

Reviewing files that changed from the base of the PR and between ad9dc65 and 9bbb196.

📒 Files selected for processing (13)
  • docs/03-github-cli/02-build.mdx
  • docs/03-github-cli/03-remote-builds.mdx
  • docs/03-github-cli/04-configuration-and-plugins.mdx
  • docs/03-github-cli/05-github-action.mdx
  • docs/03-github-cli/_category_.yaml
  • docs/03-github-cli/index.mdx
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/03-getting-started.mdx
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/01-command-line.mdx
  • docs/03-github-orchestrator/07-advanced-topics/10-build-services.mdx
  • docs/03-github-orchestrator/08-cli/01-getting-started.mdx
  • docs/03-github-orchestrator/08-cli/02-build-command.mdx
  • docs/03-github-orchestrator/08-cli/03-orchestrate-command.mdx
  • docs/03-github-orchestrator/08-cli/04-other-commands.mdx
📝 Walkthrough

Walkthrough

Reworks Orchestrator docs to present a two-layer model (Standard GameCI + Orchestrator), consolidates incremental-sync content into the hot-runner protocol, and adds/rewrites comprehensive public GameCI CLI documentation (install, build, remote builds, plugins) and many cross-reference updates.

Changes

Orchestrator Positioning & Hot-Runner Consolidation

Layer / File(s) Summary
Product Positioning
docs/03-github-orchestrator/01-introduction-to-orchestrator/01-introduction.mdx, docs/03-github-orchestrator/01-introduction-to-orchestrator/02-game-ci-vs-orchestrator.mdx
Replaces single-path intro with two-layer model; adds "What Orchestrator Adds", decision guidance, migration path, and rule-of-thumb content and diagrams.
Getting Started Wiring
docs/03-github-orchestrator/01-introduction-to-orchestrator/03-getting-started.mdx, docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/*
Switches examples and install/command guidance to use the public GameCI CLI with orchestrator as a plugin; retains standalone Orchestrator CLI framing for maintenance.
Protocol Consolidation
docs/03-github-orchestrator/07-advanced-topics/12-hot-runner-protocol.mdx, docs/03-github-orchestrator/07-advanced-topics/14-incremental-sync-protocol.mdx, docs/03-github-orchestrator/07-advanced-topics/15-large-projects.mdx
Deletes standalone incremental-sync page and expands hot-runner-protocol with core pieces, transports, editor modes, incremental-sync strategies, runner state JSON, and structured protocol messages; updates cross-references to point at hot-runner anchors.
Advanced Topics / Reliability
docs/03-github-orchestrator/07-advanced-topics/01-caching.mdx, docs/03-github-orchestrator/07-advanced-topics/17-build-reliability.mdx, docs/03-github-orchestrator/07-advanced-topics/10-build-services.mdx
Introduces build-caching and retained-workspaces material into caching page; moves garbage-collection and logging into build-reliability; adds Custom Jobs under build-services.
Cross-Refs & Cleanup
multiple docs/03-github-orchestrator/... files
Updates internal anchors and references across examples and topic pages to reflect moved/merged sections (caching, retained-workspaces, garbage-collection, custom-jobs).

Public GameCI CLI & Plugin Documentation

Layer / File(s) Summary
New Top-Level CLI Page
docs/04-cli/index.mdx, docs/04-cli/_category_.yaml
Adds a CLI index with installation methods, command model overview, and links into build/remote/plugin docs; adjusts sidebar position.
CLI Commands & Engine Options (Data Shape / Surface)
docs/04-cli/02-build.mdx, docs/03-github-orchestrator/08-cli/02-build-command.mdx
Adds comprehensive build command docs: engine detection (Unity/Godot/Unreal), engine-specific flags, Android/Unity options, global flags, and CLI engine/plugin options (--engine, --engine-plugin).
Remote Builds & Providers
docs/04-cli/03-remote-builds.mdx, docs/04-cli/04-configuration-and-plugins.mdx
New remote-builds and configuration/plugins pages describing provider strategies (local Docker, AWS, Kubernetes, custom jobs, provider executables), plugin loading sources, .game-ci.yml config, plugin API example, and CLI plugin usage (orchestrator as plugin).
GitHub Action Integration
docs/04-cli/05-github-action.mdx
Adds a page describing using the game-ci CLI via a GitHub Action, install-only usage, version pinning, inputs, remote-build examples, and working-directory handling.
Examples & Getting Started
docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/01-command-line.mdx, docs/03-github-orchestrator/08-cli/01-getting-started.mdx
Replaces orchestrator-centric examples with public CLI remote-build examples and adds Standalone Orchestrator CLI guidance for maintenance/provider development.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~28 minutes

Possibly related PRs

  • game-ci/documentation#558: Overlapping Orchestrator documentation reorganization and content updates across introduction, CLI guidance, and advanced topics.
  • game-ci/documentation#541: Coordinated documentation changes touching Orchestrator intro, CLI/getting-started, remote-builds, and hot-runner content.
  • game-ci/documentation#531: Related refactor/rename of Cloud Runner → Orchestrator and edits to similar docs files.

Suggested reviewers

  • webbertakken

Poem

🐰 Hopped through pages, tidy and bright,
Two layers now — foundation and flight,
CLI plugins hum, hot runners keep warm,
Workspaces retained through every storm,
A rabbit applauds this doc-day delight!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The description covers the main changes (public CLI docs, reframing Orchestrator, combining hot runner/incremental sync), but lacks the required checklist items from the template. Add the required checklist items (Read contribution guide, Readme status, Tests status) from the template to complete the pull request description.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main changes: documenting the public CLI and clarifying Orchestrator positioning within the documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/public-cli-orchestrator-positioning

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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 and usage tips.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

Visit the preview URL for this PR (updated for commit 9bbb196):

https://game-ci-5559f--pr559-docs-public-cli-orch-1ochl50o.web.app

(expires Wed, 13 May 2026 15:14:27 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 1f0574f15f83e11bfc148eae8646486a6d0e078b

@frostebite frostebite requested a review from webbertakken May 5, 2026 15:23
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🧹 Nitpick comments (1)
docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/01-command-line.mdx (1)

58-76: ⚡ Quick win

Clarify command invocation for maintenance commands.

The section header states these commands are "available only on the standalone Orchestrator CLI," but the examples show game-ci commands without the --plugin flag or any indication they're using the standalone CLI. This could confuse users about:

  1. Whether these commands work with the public game-ci CLI
  2. Whether they require the Orchestrator plugin
  3. Whether they require switching to the standalone Orchestrator CLI

Consider either:

  • Updating the examples to show the full invocation path (e.g., with --plugin if they work through the public CLI), or
  • Clarifying that users should switch to the standalone Orchestrator CLI for these commands and showing the correct invocation pattern
🤖 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
`@docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/01-command-line.mdx`
around lines 58 - 76, The examples show the standalone Orchestrator commands
(game-ci list-resources, game-ci watch, game-ci garbage-collect) but don't
indicate whether they run via the public game-ci CLI or require the standalone
Orchestrator CLI; update the examples to be unambiguous by either (A) adding the
required plugin flag to each example (e.g., append the appropriate
--plugin=<orchestrator-plugin> / --provider-strategy flags) so they clearly run
through the public game-ci CLI, or (B) changing the header to instruct users to
switch to the standalone Orchestrator CLI and show the exact invocation pattern
used by that standalone binary for the three commands (list-resources, watch,
garbage-collect); ensure you update the header text and each command line
(game-ci list-resources, game-ci watch, game-ci garbage-collect) to reflect the
chosen invocation method.
🤖 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 `@docs/03-github-orchestrator/07-advanced-topics/12-hot-runner-protocol.mdx`:
- Around line 130-154: The two examples use inconsistent syncInputRef URIs
(direct-input: storage://my-remote/inputs/changes.tar.lz4 vs storage-pull:
storage://s3:my-bucket/job-inputs/changes.tar.lz4); pick a canonical form and
make both examples consistent (prefer the named-remote form like
storage://my-s3-remote/... ), update the storage-pull example to use that same
format, and add one short clarifying sentence after the examples that explains
the chosen form is a configured rclone remote name (e.g., my-s3-remote must be
configured to point to the desired S3/GCS/Blob bucket) and when you would
instead use an inline provider path if you support it.

In `@docs/03-github-orchestrator/08-cli/01-getting-started.mdx`:
- Around line 43-56: Clarify the binary name conflict: state whether the
Orchestrator package and the public CLI both install the same game-ci executable
or whether they are distinct binaries, and if distinct explain which one wins on
PATH and how to disambiguate; update the section around the two examples to
mention the package names (Orchestrator vs public CLI), the plugin identifier
`@game-ci/orchestrator/cli-plugin`, and give guidance such as using the public CLI
with --plugin, installing one globally vs using npx/NPX or explicit package bin
paths, or renaming/aliasing to avoid PATH clashes so readers know which game-ci
will run.
- Around line 63-68: Update the AWS example that uses game-ci/unity-builder@v4
with providerStrategy: aws to show GitHub Actions OIDC authentication: add a
workflow-level permissions entry granting id-token: write and include the
builder input for role-to-assume (and optional aws-region) instead of suggesting
secrets; locate the snippet around providerStrategy: aws in the example and
replace or augment it to demonstrate using role-to-assume for OIDC-based
credential exchange with the Unity builder.

In `@docs/04-cli/03-remote-builds.mdx`:
- Around line 136-137: Update the cross-reference link string in
docs/04-cli/03-remote-builds.mdx by replacing the incorrect relative path
"../github-orchestrator/providers/cli-provider-protocol" with the correct
relative path "../03-github-orchestrator/05-providers/12-cli-provider-protocol"
so the link points to the actual document; locate the link text "CLI provider
protocol" in that file and change only the URL portion to the new path to
preserve link text and formatting.

---

Nitpick comments:
In
`@docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/01-command-line.mdx`:
- Around line 58-76: The examples show the standalone Orchestrator commands
(game-ci list-resources, game-ci watch, game-ci garbage-collect) but don't
indicate whether they run via the public game-ci CLI or require the standalone
Orchestrator CLI; update the examples to be unambiguous by either (A) adding the
required plugin flag to each example (e.g., append the appropriate
--plugin=<orchestrator-plugin> / --provider-strategy flags) so they clearly run
through the public game-ci CLI, or (B) changing the header to instruct users to
switch to the standalone Orchestrator CLI and show the exact invocation pattern
used by that standalone binary for the three commands (list-resources, watch,
garbage-collect); ensure you update the header text and each command line
(game-ci list-resources, game-ci watch, game-ci garbage-collect) to reflect the
chosen invocation method.
🪄 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: defaults

Review profile: CHILL

Plan: Pro

Run ID: f5877fa2-10de-4b46-a23c-bc8d95915d5b

📥 Commits

Reviewing files that changed from the base of the PR and between 7a5d2e9 and a59bd62.

📒 Files selected for processing (14)
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/01-introduction.mdx
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/02-game-ci-vs-orchestrator.mdx
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/03-getting-started.mdx
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/01-command-line.mdx
  • docs/03-github-orchestrator/07-advanced-topics/12-hot-runner-protocol.mdx
  • docs/03-github-orchestrator/07-advanced-topics/14-incremental-sync-protocol.mdx
  • docs/03-github-orchestrator/07-advanced-topics/15-large-projects.mdx
  • docs/03-github-orchestrator/08-cli/01-getting-started.mdx
  • docs/03-github-orchestrator/08-cli/_category_.yaml
  • docs/04-cli/02-build.mdx
  • docs/04-cli/03-remote-builds.mdx
  • docs/04-cli/04-configuration-and-plugins.mdx
  • docs/04-cli/_category_.yaml
  • docs/04-cli/index.mdx

Comment on lines +130 to +154
- uses: game-ci/unity-builder@v4
with:
editorMode: persistent
syncStrategy: direct-input
syncInputRef: storage://my-remote/inputs/changes.tar.lz4
```

Benefits:
This supports workflows such as:

- No editor startup time (saves 30–120 seconds per build)
- Unity Library folder stays warm - only changed assets reimport
- Domain reload only when scripts change
- Run tests before committing local changes
- Build with an asset override
- Validate a generated config bundle
- Test a hotfix without opening a pull request

### Hybrid
### Storage Pull

Pool of persistent editors, scale up ephemeral instances for burst load:
Large overlays can be stored through rclone and referenced by URI:

```yaml
editorMode: hybrid
syncStrategy: storage-pull
syncInputRef: storage://s3:my-bucket/job-inputs/changes.tar.lz4
```

## Runner Labels
rclone keeps this provider-neutral: S3, GCS, Azure Blob, local filesystem, WebDAV, SFTP, and other
storage backends can all carry job input.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Inconsistent syncInputRef URI format across direct-input and storage-pull examples.

The two URI examples use different formats for the same syncInputRef field:

  • Line 134 (direct-input): storage://my-remote/inputs/changes.tar.lz4 — uses a logical rclone remote name
  • Line 150 (storage-pull): storage://s3:my-bucket/job-inputs/changes.tar.lz4 — embeds the rclone provider:bucket path directly

A reader cannot tell which form is authoritative or whether both are accepted. If both formats are valid, a brief note explaining when to use each (named remote alias vs. inline provider path) would help. If only one is canonical, fix the other.

📝 Option: normalize to the named-remote form
 syncStrategy: storage-pull
-syncInputRef: storage://s3:my-bucket/job-inputs/changes.tar.lz4
+syncInputRef: storage://my-s3-remote/job-inputs/changes.tar.lz4

Then add a note that my-s3-remote must be a configured rclone remote (e.g., pointing to an S3 bucket).

🤖 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 `@docs/03-github-orchestrator/07-advanced-topics/12-hot-runner-protocol.mdx`
around lines 130 - 154, The two examples use inconsistent syncInputRef URIs
(direct-input: storage://my-remote/inputs/changes.tar.lz4 vs storage-pull:
storage://s3:my-bucket/job-inputs/changes.tar.lz4); pick a canonical form and
make both examples consistent (prefer the named-remote form like
storage://my-s3-remote/... ), update the storage-pull example to use that same
format, and add one short clarifying sentence after the examples that explains
the chosen form is a configured rclone remote name (e.g., my-s3-remote must be
configured to point to the desired S3/GCS/Blob bucket) and when you would
instead use an inline provider path if you support it.

Comment on lines 43 to 56
game-ci build \
--target-platform StandaloneLinux64
--target-platform StandaloneLinux64 \
--provider-strategy aws
```

You can also specify the Unity version explicitly:
This command talks directly to the Orchestrator package. The public CLI equivalent is:

```bash
game-ci build \
--unity-version 2022.3.56f1 \
game-ci \
--plugin @game-ci/orchestrator/cli-plugin \
remote build ./my-project \
--provider-strategy aws \
--target-platform StandaloneLinux64
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Clarify the binary name overlap between the standalone Orchestrator CLI and the public game-ci CLI.

Both code blocks use game-ci as the executable name:

# standalone Orchestrator CLI
game-ci build --target-platform StandaloneLinux64 --provider-strategy aws

# public CLI "equivalent"
game-ci --plugin `@game-ci/orchestrator/cli-plugin` remote build ./my-project ...

If both packages install a binary called game-ci, they conflict on PATH. The page should clarify:

  • Whether the standalone Orchestrator CLI and the public CLI are the same binary (e.g., the public CLI ships the game-ci command and Orchestrator is always a plugin) or two distinct binaries with the same name.
  • If distinct, which one takes precedence, and whether they can coexist.

Without this, a reader following the install instructions for both will have no way to tell which game-ci they are running.

🤖 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 `@docs/03-github-orchestrator/08-cli/01-getting-started.mdx` around lines 43 -
56, Clarify the binary name conflict: state whether the Orchestrator package and
the public CLI both install the same game-ci executable or whether they are
distinct binaries, and if distinct explain which one wins on PATH and how to
disambiguate; update the section around the two examples to mention the package
names (Orchestrator vs public CLI), the plugin identifier
`@game-ci/orchestrator/cli-plugin`, and give guidance such as using the public CLI
with --plugin, installing one globally vs using npx/NPX or explicit package bin
paths, or renaming/aliasing to avoid PATH clashes so readers know which game-ci
will run.

Comment on lines +63 to 68
```yaml
- uses: game-ci/unity-builder@v4
with:
providerStrategy: aws
targetPlatform: StandaloneLinux64
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add OIDC authentication setup to the providerStrategy: aws snippet.

The example references providerStrategy: aws without any credential configuration. Per project conventions, AWS examples should demonstrate GitHub Actions OIDC authentication (id-token: write permission and role-to-assume) rather than implying long-lived secrets.

📝 Suggested addition
+permissions:
+  id-token: write
+  contents: read
+
 - uses: game-ci/unity-builder@v4
+  env:
+    AWS_ROLE_TO_ASSUME: ${{ secrets.AWS_ROLE_TO_ASSUME }}
   with:
     providerStrategy: aws
     targetPlatform: StandaloneLinux64

Based on learnings: AWS workflow examples under docs/03-github-orchestrator/ should use GitHub Actions OIDC authentication instead of long-lived secrets.

🤖 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 `@docs/03-github-orchestrator/08-cli/01-getting-started.mdx` around lines 63 -
68, Update the AWS example that uses game-ci/unity-builder@v4 with
providerStrategy: aws to show GitHub Actions OIDC authentication: add a
workflow-level permissions entry granting id-token: write and include the
builder input for role-to-assume (and optional aws-region) instead of suggesting
secrets; locate the snippet around providerStrategy: aws in the example and
replace or augment it to demonstrate using role-to-assume for OIDC-based
credential exchange with the Unity builder.

Comment on lines +136 to +137
For protocol details, see
[CLI provider protocol](../github-orchestrator/providers/cli-provider-protocol).
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if the referenced CLI provider protocol documentation exists

echo "Searching for CLI provider protocol documentation..."
fd -e mdx -e md "cli-provider-protocol" docs/

Repository: game-ci/documentation

Length of output: 188


Fix the cross-reference link path to match the actual documentation structure.

The link path ../github-orchestrator/providers/cli-provider-protocol is incorrect. The actual file is located at docs/03-github-orchestrator/05-providers/12-cli-provider-protocol.mdx. Update the link to ../03-github-orchestrator/05-providers/12-cli-provider-protocol to resolve correctly in Docusaurus.

🤖 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 `@docs/04-cli/03-remote-builds.mdx` around lines 136 - 137, Update the
cross-reference link string in docs/04-cli/03-remote-builds.mdx by replacing the
incorrect relative path "../github-orchestrator/providers/cli-provider-protocol"
with the correct relative path
"../03-github-orchestrator/05-providers/12-cli-provider-protocol" so the link
points to the actual document; locate the link text "CLI provider protocol" in
that file and change only the URL portion to the new path to preserve link text
and formatting.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
docs/03-github-orchestrator/07-advanced-topics/17-build-reliability.mdx (1)

315-323: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Inputs Reference table is missing the parameters introduced in the new sections.

orchestratorDebug, mode (garbage-collect), garbageMaxAge, and useCleanupCron are all described or used in the Logging / Garbage Collection sections above but have no entries in the reference table. Readers consulting this table will have no place to look up defaults or descriptions for these inputs.

📝 Suggested additions to the table
 | `buildArchiveRetention`  | Number of builds to retain per platform                                          | `'3'`     |
+| `orchestratorDebug`      | Enable verbose provider diagnostics (setup, env, disk, cache)                    | `'false'` |
+| `mode`                   | Execution mode; set to `garbage-collect` to run stale-resource cleanup           | `''`      |
+| `garbageMaxAge`          | Age threshold (hours) for garbage collection                                     | `'24'`    |
+| `useCleanupCron`         | Create a CloudFormation-based cleanup cron on AWS when GC runs                   | `'false'` |
🤖 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 `@docs/03-github-orchestrator/07-advanced-topics/17-build-reliability.mdx`
around lines 315 - 323, Add missing input rows to the Inputs Reference table for
the new parameters: orchestratorDebug, mode (document the 'garbage-collect'
option), garbageMaxAge, and useCleanupCron; for each row include a short
Description matching the Logging / Garbage Collection sections (e.g.,
orchestratorDebug toggles verbose orchestration logs, mode selects operation
mode such as 'garbage-collect', garbageMaxAge sets the retention age threshold
for GC, useCleanupCron enables scheduled cleanup), and the appropriate Default
values (e.g., orchestratorDebug `'false'`, mode `'garbage-collect'` or the
module's default, garbageMaxAge the default duration used in GC, useCleanupCron
`'false'`), so readers can look up these inputs directly from the table.
docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/03-aws.mdx (1)

24-29: ⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

Replace long-lived AWS key secrets with OIDC across all three workflow examples.

The Minimal AWS Build (lines 24-29), Multi-Platform Matrix Build (lines 70-75), and Scheduled Garbage Collection (lines 185-190) all authenticate via AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY. All three examples should instead demonstrate OIDC role assumption (no long-lived credentials stored as secrets). The Required Secrets table (lines 221-224) will also need updating to reflect the switch to OIDC.

📝 Example replacement for the Minimal AWS Build credential step
-      - name: Configure AWS Credentials
-        uses: aws-actions/configure-aws-credentials@v4
-        with:
-          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
-          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
-          aws-region: eu-west-2
+      - name: Configure AWS Credentials
+        uses: aws-actions/configure-aws-credentials@v4
+        with:
+          role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
+          aws-region: eu-west-2

The calling job also needs id-token: write permission:

 jobs:
   build:
     runs-on: ubuntu-latest
+    permissions:
+      id-token: write
+      contents: read

Apply the same pattern to the Matrix Build and Garbage Collection workflows.

Based on learnings: all AWS workflow examples under docs/03-github-orchestrator/ should use GitHub Actions OIDC authentication (role-to-assume with id-token: write) instead of long-lived AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY secrets.

Also applies to: 70-75, 185-190

🤖 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
`@docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/03-aws.mdx`
around lines 24 - 29, Replace the long-lived credentials usage in the three
workflow examples by switching the aws-actions/configure-aws-credentials@v4 step
(the "name: Configure AWS Credentials" block) to OIDC role assumption: remove
aws-access-key-id and aws-secret-access-key inputs and instead supply
role-to-assume (and optionally role-session-name) in that step, and add the
calling job permission id-token: write so GitHub can request an OIDC token;
apply this exact pattern to the Minimal AWS Build, Multi-Platform Matrix Build,
and Scheduled Garbage Collection examples, and update the Required Secrets table
to remove AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY (and document that no AWS
long-lived secrets are required when using OIDC).
♻️ Duplicate comments (3)
docs/03-github-orchestrator/08-cli/01-getting-started.mdx (2)

63-68: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add OIDC-based AWS auth guidance to the Unity Builder AWS snippet.

The providerStrategy: aws example should show OIDC-based role assumption (or explicitly link to that setup) so it does not imply credential configuration is optional.

Based on learnings: In the game-ci/documentation repository, all AWS workflow examples under docs/03-github-orchestrator/ should use GitHub Actions OIDC authentication (configure role-to-assume with required permissions, including id-token: write) instead of embedding or referencing long-lived AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY secrets.

🤖 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 `@docs/03-github-orchestrator/08-cli/01-getting-started.mdx` around lines 63 -
68, Update the Unity Builder AWS snippet (the block that uses
game-ci/unity-builder@v4 with providerStrategy: aws and targetPlatform:
StandaloneLinux64) to demonstrate GitHub Actions OIDC role assumption instead of
implying long‑lived credentials: show or link to configuration that requests
id-token: write, configures a role-to-assume ARN, and uses the action's
OIDC-based provider setup (or add a clearly marked note linking to a
step-by-step OIDC setup doc) so readers know to configure role assumption and
required permissions rather than using AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY.

48-55: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Clarify how to distinguish standalone vs public game-ci binary invocation.

Both examples use game-ci, but the page does not explain how users verify which binary is on PATH when both are installed. Add a short disambiguation note (package source, precedence, and a safe invocation pattern).

🤖 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 `@docs/03-github-orchestrator/08-cli/01-getting-started.mdx` around lines 48 -
55, Add a short disambiguation note explaining how to tell the standalone
orchestrator binary from the public game-ci binary: describe how PATH precedence
favors a local node_modules/.bin entry over a global install, note how to check
which executable is being invoked (e.g., system which/where or checking npm/yarn
global vs local bins), and recommend a safe invocation pattern such as using
npx/yarn dlx or invoking the package directly via the
`@game-ci/orchestrator-plugin` to guarantee the intended binary for commands like
"game-ci --plugin `@game-ci/orchestrator-plugin` remote build" and the "remote
build" flow.
docs/04-cli/03-remote-builds.mdx (1)

136-137: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix the CLI provider protocol cross-reference path.

The link target appears incorrect and likely won’t resolve from this page. Please update it to the actual Orchestrator provider doc path.

Suggested fix
- [CLI provider protocol](../github-orchestrator/providers/cli-provider-protocol).
+ [CLI provider protocol](../03-github-orchestrator/05-providers/12-cli-provider-protocol).
🤖 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 `@docs/04-cli/03-remote-builds.mdx` around lines 136 - 137, The cross-reference
for "CLI provider protocol" currently points to
../github-orchestrator/providers/cli-provider-protocol which is incorrect;
update the link target so it resolves to the Orchestrator provider doc (replace
the href in the markdown link `[CLI provider
protocol](../github-orchestrator/providers/cli-provider-protocol)` with the
correct path to the Orchestrator provider docs, e.g.
`../orchestrator/providers/cli-provider-protocol` or the actual published doc
path used in the repo) so the link text "CLI provider protocol" correctly
navigates to the intended provider documentation.
🤖 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 `@docs/03-github-orchestrator/07-advanced-topics/10-build-services.mdx`:
- Around line 27-37: Add an OIDC credential step before the unity-builder job:
insert a step named "Configure AWS Credentials" that uses
aws-actions/configure-aws-credentials@v4 and sets role-to-assume (e.g., ${ {
secrets.AWS_ROLE_ARN } }) and aws-region, so the existing unity-builder
invocation (the block containing providerStrategy: aws and
customJob/godot-export) runs under GitHub Actions OIDC rather than long-lived
keys; ensure the step matches the pattern used in 03-getting-started.mdx and
includes a comment referencing the AWS provider OIDC setup.

In `@docs/04-cli/04-configuration-and-plugins.mdx`:
- Around line 22-24: The example uses the inconsistent key cliOptions.plugin;
update it to the plural cliOptions.plugins so it matches other examples and the
actual parsed option name (replace cliOptions.plugin with cliOptions.plugins in
the example block), ensuring consistency with references to cliOptions.plugins
elsewhere in the docs.

In `@docs/04-cli/index.mdx`:
- Line 50: Update the PATH guidance to include the Windows equivalent alongside
the Unix one: keep the existing "~/.game-ci/bin" note and add the Windows user
bin path "%USERPROFILE%\\.game-ci\\bin" with a short PowerShell instruction to
add it to PATH (referencing the PATH environment variable and PowerShell's user
profile path), so Windows users who installed via PowerShell know which
directory to add to their PATH.

---

Outside diff comments:
In
`@docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/03-aws.mdx`:
- Around line 24-29: Replace the long-lived credentials usage in the three
workflow examples by switching the aws-actions/configure-aws-credentials@v4 step
(the "name: Configure AWS Credentials" block) to OIDC role assumption: remove
aws-access-key-id and aws-secret-access-key inputs and instead supply
role-to-assume (and optionally role-session-name) in that step, and add the
calling job permission id-token: write so GitHub can request an OIDC token;
apply this exact pattern to the Minimal AWS Build, Multi-Platform Matrix Build,
and Scheduled Garbage Collection examples, and update the Required Secrets table
to remove AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY (and document that no AWS
long-lived secrets are required when using OIDC).

In `@docs/03-github-orchestrator/07-advanced-topics/17-build-reliability.mdx`:
- Around line 315-323: Add missing input rows to the Inputs Reference table for
the new parameters: orchestratorDebug, mode (document the 'garbage-collect'
option), garbageMaxAge, and useCleanupCron; for each row include a short
Description matching the Logging / Garbage Collection sections (e.g.,
orchestratorDebug toggles verbose orchestration logs, mode selects operation
mode such as 'garbage-collect', garbageMaxAge sets the retention age threshold
for GC, useCleanupCron enables scheduled cleanup), and the appropriate Default
values (e.g., orchestratorDebug `'false'`, mode `'garbage-collect'` or the
module's default, garbageMaxAge the default duration used in GC, useCleanupCron
`'false'`), so readers can look up these inputs directly from the table.

---

Duplicate comments:
In `@docs/03-github-orchestrator/08-cli/01-getting-started.mdx`:
- Around line 63-68: Update the Unity Builder AWS snippet (the block that uses
game-ci/unity-builder@v4 with providerStrategy: aws and targetPlatform:
StandaloneLinux64) to demonstrate GitHub Actions OIDC role assumption instead of
implying long‑lived credentials: show or link to configuration that requests
id-token: write, configures a role-to-assume ARN, and uses the action's
OIDC-based provider setup (or add a clearly marked note linking to a
step-by-step OIDC setup doc) so readers know to configure role assumption and
required permissions rather than using AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY.
- Around line 48-55: Add a short disambiguation note explaining how to tell the
standalone orchestrator binary from the public game-ci binary: describe how PATH
precedence favors a local node_modules/.bin entry over a global install, note
how to check which executable is being invoked (e.g., system which/where or
checking npm/yarn global vs local bins), and recommend a safe invocation pattern
such as using npx/yarn dlx or invoking the package directly via the
`@game-ci/orchestrator-plugin` to guarantee the intended binary for commands like
"game-ci --plugin `@game-ci/orchestrator-plugin` remote build" and the "remote
build" flow.

In `@docs/04-cli/03-remote-builds.mdx`:
- Around line 136-137: The cross-reference for "CLI provider protocol" currently
points to ../github-orchestrator/providers/cli-provider-protocol which is
incorrect; update the link target so it resolves to the Orchestrator provider
doc (replace the href in the markdown link `[CLI provider
protocol](../github-orchestrator/providers/cli-provider-protocol)` with the
correct path to the Orchestrator provider docs, e.g.
`../orchestrator/providers/cli-provider-protocol` or the actual published doc
path used in the repo) so the link text "CLI provider protocol" correctly
navigates to the intended provider documentation.
🪄 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: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4538bd0c-d6a7-48bb-84e5-04b4c00d48c0

📥 Commits

Reviewing files that changed from the base of the PR and between a59bd62 and ba464d6.

📒 Files selected for processing (27)
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/01-introduction.mdx
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/02-game-ci-vs-orchestrator.mdx
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/03-getting-started.mdx
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/01-command-line.mdx
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/02-github-actions.mdx
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/03-aws.mdx
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/04-kubernetes.mdx
  • docs/03-github-orchestrator/04-jobs.mdx
  • docs/03-github-orchestrator/05-api-reference.mdx
  • docs/03-github-orchestrator/07-advanced-topics/01-caching.mdx
  • docs/03-github-orchestrator/07-advanced-topics/02-retained-workspace.mdx
  • docs/03-github-orchestrator/07-advanced-topics/03-custom-job.mdx
  • docs/03-github-orchestrator/07-advanced-topics/04-garbage-collection.mdx
  • docs/03-github-orchestrator/07-advanced-topics/06-logging.mdx
  • docs/03-github-orchestrator/07-advanced-topics/08-storage.mdx
  • docs/03-github-orchestrator/07-advanced-topics/10-build-services.mdx
  • docs/03-github-orchestrator/07-advanced-topics/14-incremental-sync-protocol.mdx
  • docs/03-github-orchestrator/07-advanced-topics/17-build-reliability.mdx
  • docs/03-github-orchestrator/07-advanced-topics/18-engine-plugins.mdx
  • docs/03-github-orchestrator/08-cli/01-getting-started.mdx
  • docs/03-github-orchestrator/08-cli/02-build-command.mdx
  • docs/04-cli/02-build.mdx
  • docs/04-cli/03-remote-builds.mdx
  • docs/04-cli/04-configuration-and-plugins.mdx
  • docs/04-cli/05-github-action.mdx
  • docs/04-cli/index.mdx
  • docs/10-faq/index.mdx
💤 Files with no reviewable changes (5)
  • docs/03-github-orchestrator/07-advanced-topics/03-custom-job.mdx
  • docs/03-github-orchestrator/07-advanced-topics/04-garbage-collection.mdx
  • docs/03-github-orchestrator/07-advanced-topics/06-logging.mdx
  • docs/03-github-orchestrator/07-advanced-topics/14-incremental-sync-protocol.mdx
  • docs/03-github-orchestrator/07-advanced-topics/02-retained-workspace.mdx
✅ Files skipped from review due to trivial changes (2)
  • docs/04-cli/05-github-action.mdx
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/02-github-actions.mdx

Comment on lines +27 to +37
```yaml
- uses: game-ci/unity-builder@v4
with:
providerStrategy: aws
customJob: |
- name: godot-export
image: barichello/godot-ci:4.3
commands: |
godot --headless --export-release "Linux/X11" /build/output/game
gitPrivateToken: ${{ secrets.GITHUB_TOKEN }}
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

AWS example missing OIDC credential step.

The snippet uses providerStrategy: aws but provides no credential setup. Per the project learning, AWS examples under docs/03-github-orchestrator/ should demonstrate OIDC authentication with configure-aws-credentials rather than implying static keys.

Consider prefixing the snippet with the OIDC step (or at least an inline comment pointing to the provider setup guide), consistent with the pattern used in 03-getting-started.mdx:

📄 Suggested update
 ```yaml
+- name: Configure AWS Credentials
+  uses: aws-actions/configure-aws-credentials@v4
+  with:
+    role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
+    aws-region: eu-west-1
+    # See the AWS provider page for full OIDC setup
+
 - uses: game-ci/unity-builder@v4
   with:
     providerStrategy: aws

Based on learnings: "all AWS workflow examples under docs/03-github-orchestrator/ should use GitHub Actions OIDC authentication (configure role-to-assume with required permissions, including id-token: write) instead of embedding or referencing long-lived AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY secrets."

🤖 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 `@docs/03-github-orchestrator/07-advanced-topics/10-build-services.mdx` around
lines 27 - 37, Add an OIDC credential step before the unity-builder job: insert
a step named "Configure AWS Credentials" that uses
aws-actions/configure-aws-credentials@v4 and sets role-to-assume (e.g., ${ {
secrets.AWS_ROLE_ARN } }) and aws-region, so the existing unity-builder
invocation (the block containing providerStrategy: aws and
customJob/godot-export) runs under GitHub Actions OIDC rather than long-lived
keys; ensure the step matches the pattern used in 03-getting-started.mdx and
includes a comment referencing the AWS provider OIDC setup.

Comment on lines +22 to +24
cliOptions:
plugin:
- '@game-ci/orchestrator-plugin'
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify which key is documented/implemented across the repo.
# Expected: one canonical key (likely `plugins`) in docs and code-facing references.
rg -n -C2 '\bcliOptions:\s*$|^\s+plugin[s]?:'

Repository: game-ci/documentation

Length of output: 1586


🏁 Script executed:

# First, find the CLI implementation files
fd -t f '\.(ts|js)$' | head -20

Repository: game-ci/documentation

Length of output: 628


🏁 Script executed:

# Search for where cliOptions or plugin config is parsed
rg -n 'cliOptions|plugin[s]?\s*:' --type ts --type js -A 2 -B 2 | head -100

Repository: game-ci/documentation

Length of output: 489


🏁 Script executed:

# Look for CLI argument parser or config handler
rg -n -i 'plugin.*config|config.*plugin' --type ts --type js -A 2 -B 2 | head -100

Repository: game-ci/documentation

Length of output: 301


🏁 Script executed:

# Look for package.json and any references to orchestrator or CLI packages
cat package.json | grep -A 5 -B 5 orchestrator

Repository: game-ci/documentation

Length of output: 47


🏁 Script executed:

# Search for any references to the actual CLI repo or implementation links
rg -n 'orchestrator|@game-ci' --type json --type yaml --type md | head -30

Repository: game-ci/documentation

Length of output: 131


🏁 Script executed:

# Look for configuration schema or type definitions
fd -t f '\.(ts|d\.ts|schema\)' -path '*config*' -o -path '*schema*' | head -20

Repository: game-ci/documentation

Length of output: 234


🏁 Script executed:

# Read the full section from the config file around the inconsistency
sed -n '15,70p' docs/04-cli/04-configuration-and-plugins.mdx

Repository: game-ci/documentation

Length of output: 1543


🏁 Script executed:

# Check if there are any other references to the plugin key in the entire file
cat docs/04-cli/04-configuration-and-plugins.mdx | wc -l

Repository: game-ci/documentation

Length of output: 69


🏁 Script executed:

# Search for any explanatory text about configuration
rg -n -A 5 -B 5 'plugin' docs/04-cli/04-configuration-and-plugins.mdx | head -80

Repository: game-ci/documentation

Length of output: 2434


Fix config key inconsistency: use plugins (plural), not plugin.

Line 23 uses cliOptions.plugin, but line 62 in the same file and line 145 in 03-remote-builds.mdx all use cliOptions.plugins. The first example will mislead users if plugins is the parsed option key. Update line 23 to use the consistent plural form.

🤖 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 `@docs/04-cli/04-configuration-and-plugins.mdx` around lines 22 - 24, The
example uses the inconsistent key cliOptions.plugin; update it to the plural
cliOptions.plugins so it matches other examples and the actual parsed option
name (replace cliOptions.plugin with cliOptions.plugins in the example block),
ensuring consistency with references to cliOptions.plugins elsewhere in the
docs.

| `GAME_CI_VERSION` | Pin a release, for example `v0.1.0`. | latest |
| `GAME_CI_INSTALL` | Install directory for the `game-ci` executable. | `~/.game-ci/bin` |

After installation, make sure `~/.game-ci/bin` is on your `PATH`.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

PATH guidance is Linux/macOS-only; add the Windows equivalent.

Line 50 references ~/.game-ci/bin, which only applies to Unix shells. Windows users arriving via the PowerShell install block have no guidance on which directory to add to their PATH.

📄 Suggested update
-After installation, make sure `~/.game-ci/bin` is on your `PATH`.
+After installation, make sure the install directory is on your `PATH`:
+- **Linux / macOS**: `~/.game-ci/bin`
+- **Windows**: `%USERPROFILE%\.game-ci\bin` (or the directory specified by `GAME_CI_INSTALL`)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
After installation, make sure `~/.game-ci/bin` is on your `PATH`.
After installation, make sure the install directory is on your `PATH`:
- **Linux / macOS**: `~/.game-ci/bin`
- **Windows**: `%USERPROFILE%\.game-ci\bin` (or the directory specified by `GAME_CI_INSTALL`)
🤖 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 `@docs/04-cli/index.mdx` at line 50, Update the PATH guidance to include the
Windows equivalent alongside the Unix one: keep the existing "~/.game-ci/bin"
note and add the Windows user bin path "%USERPROFILE%\\.game-ci\\bin" with a
short PowerShell instruction to add it to PATH (referencing the PATH environment
variable and PowerShell's user profile path), so Windows users who installed via
PowerShell know which directory to add to their PATH.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (5)
docs/03-github-orchestrator/08-cli/01-getting-started.mdx (2)

43-56: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Binary name overlap between the standalone CLI and the public game-ci CLI remains unresolved.

Both code blocks still use the same game-ci executable without clarifying whether they are the same binary or two distinct binaries that conflict on PATH. Readers following both install paths will be unable to determine which game-ci they are running.

🤖 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 `@docs/03-github-orchestrator/08-cli/01-getting-started.mdx` around lines 43 -
56, The docs show the same "game-ci" executable for both the standalone
Orchestrator CLI and the public plugin-based CLI which creates ambiguity; update
the text to disambiguate the binaries by either (a) stating that the standalone
Orchestrator binary is a differently named executable (e.g.,
"game-ci-orchestrator") and show that name in the first code block, or (b)
explicitly call out PATH precedence and how to invoke the Orchestrator package
via its package-scoped binary versus the public "game-ci" with "--plugin
`@game-ci/orchestrator-plugin`"; modify the two examples so one uses the unique
standalone binary name (or a fully-qualified path) and the other uses "game-ci
--plugin `@game-ci/orchestrator-plugin`" to remove confusion.

63-68: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add OIDC authentication to the providerStrategy: aws snippet.

The YAML example references providerStrategy: aws with no credential configuration. Per project conventions, AWS examples under docs/03-github-orchestrator/ must demonstrate GitHub Actions OIDC authentication (id-token: write + role-to-assume) rather than implying long-lived secrets.

Based on learnings: AWS workflow examples under docs/03-github-orchestrator/ should use GitHub Actions OIDC authentication instead of embedding or referencing long-lived AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY secrets.

🤖 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 `@docs/03-github-orchestrator/08-cli/01-getting-started.mdx` around lines 63 -
68, Update the AWS example to use GitHub Actions OIDC: add repository-level
permissions "id-token: write" and remove any long-lived AWS secrets, and pass
the target role via the unity-builder input "role-to-assume" (e.g.,
role-to-assume: arn:aws:iam::ACCOUNT_ID:role/YourGithubOIDCRole) while keeping
providerStrategy: aws and targetPlatform: StandaloneLinux64; ensure the snippet
shows that id-token permission is required and that "role-to-assume" is used
instead of AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY.
docs/04-cli/index.mdx (1)

54-54: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add Windows PATH guidance alongside the Unix path.

Line 54 is Unix-only, but this page also documents Windows install. Please include %USERPROFILE%\.game-ci\bin (or GAME_CI_INSTALL) for Windows users.

Suggested minimal diff
-After installation, make sure `~/.game-ci/bin` is on your `PATH`.
+After installation, make sure the install directory is on your `PATH`:
+- **Linux / macOS**: `~/.game-ci/bin`
+- **Windows**: `%USERPROFILE%\.game-ci\bin` (or the path set by `GAME_CI_INSTALL`)
🤖 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 `@docs/04-cli/index.mdx` at line 54, Update the sentence "After installation,
make sure `~/.game-ci/bin` is on your `PATH`." to also include Windows guidance
by adding the equivalent Windows path `%USERPROFILE%\.game-ci\bin` and mention
the alternative `GAME_CI_INSTALL` variable (e.g., use `%GAME_CI_INSTALL%\bin` or
`%USERPROFILE%\.game-ci\bin`) so Windows users know which path to add to their
PATH environment variable; keep the wording concise and parallel to the Unix
instruction.
docs/04-cli/03-remote-builds.mdx (1)

141-142: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix the broken relative link for the CLI provider protocol.

Line 142 still points to ../github-orchestrator/providers/cli-provider-protocol, which does not match the documented file structure used elsewhere in this PR.

Suggested minimal diff
-For protocol details, see
-[CLI provider protocol](../github-orchestrator/providers/cli-provider-protocol).
+For protocol details, see
+[CLI provider protocol](../03-github-orchestrator/05-providers/12-cli-provider-protocol).
🤖 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 `@docs/04-cli/03-remote-builds.mdx` around lines 141 - 142, The relative link
target "../github-orchestrator/providers/cli-provider-protocol" is incorrect;
update the Markdown link in docs/04-cli/03-remote-builds.mdx to use the same
relative path used elsewhere in this PR for the CLI provider protocol (locate
other occurrences of the CLI provider protocol link and copy that exact href),
replacing the current target so the link resolves correctly.
docs/04-cli/04-configuration-and-plugins.mdx (1)

23-25: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use plugins (plural) in the config example for consistency.

Line 24 uses plugin, but the rest of the CLI docs/examples use cliOptions.plugins. Keeping this singular key here is likely to confuse copy/paste usage.

Suggested minimal diff
 cliOptions:
-  plugin:
+  plugins:
     - '@game-ci/orchestrator-plugin'
🤖 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 `@docs/04-cli/04-configuration-and-plugins.mdx` around lines 23 - 25, Update
the YAML example to use the plural key to match the rest of the docs: replace
cliOptions.plugin with cliOptions.plugins so the snippet shows "cliOptions:\n 
plugins:\n    - '@game-ci/orchestrator-plugin'"; ensure the example now
references cliOptions.plugins consistently with other examples.
🤖 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.

Duplicate comments:
In `@docs/03-github-orchestrator/08-cli/01-getting-started.mdx`:
- Around line 43-56: The docs show the same "game-ci" executable for both the
standalone Orchestrator CLI and the public plugin-based CLI which creates
ambiguity; update the text to disambiguate the binaries by either (a) stating
that the standalone Orchestrator binary is a differently named executable (e.g.,
"game-ci-orchestrator") and show that name in the first code block, or (b)
explicitly call out PATH precedence and how to invoke the Orchestrator package
via its package-scoped binary versus the public "game-ci" with "--plugin
`@game-ci/orchestrator-plugin`"; modify the two examples so one uses the unique
standalone binary name (or a fully-qualified path) and the other uses "game-ci
--plugin `@game-ci/orchestrator-plugin`" to remove confusion.
- Around line 63-68: Update the AWS example to use GitHub Actions OIDC: add
repository-level permissions "id-token: write" and remove any long-lived AWS
secrets, and pass the target role via the unity-builder input "role-to-assume"
(e.g., role-to-assume: arn:aws:iam::ACCOUNT_ID:role/YourGithubOIDCRole) while
keeping providerStrategy: aws and targetPlatform: StandaloneLinux64; ensure the
snippet shows that id-token permission is required and that "role-to-assume" is
used instead of AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY.

In `@docs/04-cli/03-remote-builds.mdx`:
- Around line 141-142: The relative link target
"../github-orchestrator/providers/cli-provider-protocol" is incorrect; update
the Markdown link in docs/04-cli/03-remote-builds.mdx to use the same relative
path used elsewhere in this PR for the CLI provider protocol (locate other
occurrences of the CLI provider protocol link and copy that exact href),
replacing the current target so the link resolves correctly.

In `@docs/04-cli/04-configuration-and-plugins.mdx`:
- Around line 23-25: Update the YAML example to use the plural key to match the
rest of the docs: replace cliOptions.plugin with cliOptions.plugins so the
snippet shows "cliOptions:\n  plugins:\n    - '@game-ci/orchestrator-plugin'";
ensure the example now references cliOptions.plugins consistently with other
examples.

In `@docs/04-cli/index.mdx`:
- Line 54: Update the sentence "After installation, make sure `~/.game-ci/bin`
is on your `PATH`." to also include Windows guidance by adding the equivalent
Windows path `%USERPROFILE%\.game-ci\bin` and mention the alternative
`GAME_CI_INSTALL` variable (e.g., use `%GAME_CI_INSTALL%\bin` or
`%USERPROFILE%\.game-ci\bin`) so Windows users know which path to add to their
PATH environment variable; keep the wording concise and parallel to the Unix
instruction.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 995fc18b-8729-43a4-b15c-bcb64e8dd8d3

📥 Commits

Reviewing files that changed from the base of the PR and between ba464d6 and ad9dc65.

📒 Files selected for processing (8)
  • docs/03-github-orchestrator/01-introduction-to-orchestrator/04-examples/01-command-line.mdx
  • docs/03-github-orchestrator/08-cli/01-getting-started.mdx
  • docs/04-cli/02-build.mdx
  • docs/04-cli/03-remote-builds.mdx
  • docs/04-cli/04-configuration-and-plugins.mdx
  • docs/04-cli/05-github-action.mdx
  • docs/04-cli/_category_.yaml
  • docs/04-cli/index.mdx

@frostebite frostebite merged commit 7a9f876 into main May 6, 2026
9 checks passed
@frostebite frostebite deleted the docs/public-cli-orchestrator-positioning branch May 6, 2026 16:25
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