Install
openclaw skills install @loonghao/glr-cliConfigure and operate the GameLearningRuntime agent-first CLI for bridge startup, bounded goal-driven research and training, concurrent review capture, run queries, spatial knowledge transfer, and verified model playback. Use for operating an existing GLR project; use glr-adapter-builder when implementing the game adapter itself.
openclaw skills install @loonghao/glr-cliOperate GLR through the standalone Rust control plane while preserving the
adapter/learner boundary. The glr executable is the canonical deployment and
Agent entrypoint; Python is an optional SDK for project roles, not a CLI runtime
dependency.
This Skill is distributed from both GLR releases and Agent Plugin packages.
Resolve its references/ directory relative to the directory containing this
SKILL.md; do not assume a repository checkout or a user-profile install
path. The --skills-dir option below is a project-owned destination for an
explicit update and is separate from the host's installed plugin directory.
Read references/commands.md before creating a project config, running a goal, transferring knowledge, or claiming reproduction.
glr-adapter-builder when implementing or changing observation, action, lifecycle,
transport, target binding, or post-action verification.glr --version, resolve the nearest glr-project.toml (legacy JSON is
also supported), and run
glr --project . --json doctor; do not guess a bridge path or game target.environment_id, environment_family, and
protocol_version before execution.doctor.data.lifecycle is present, treat it as the loaded-input manifest:
verify every config owner, path, schema version, and SHA-256, then use only the
listed lifecycle modes. A missing mode is a shared GLR capability gap; do not
create a project-local run_*.py lifecycle wrapper to bypass it.--context config/contexts/NAME.toml. Treat doctor.data.run_context as the
frozen glr.run-context.v1 receipt. Python roles must call
load_inherited_run_context(project) before consuming selected inputs.glr runtime start only for the configured fixed-argv runtime command. Its process exit
proves command completion, not a live bridge handshake or gameplay success.glr.agent-goal.v1 with machine-readable success criteria and
hard trial, step, time, and research-source budgets.glr goal run. Let the project researcher gather only allowed sources; let the planner
emit declarative reward terms; require the trainer/runtime to persist metrics; accept success
only when evaluator evidence matches those persisted authoritative metrics.glr runs show and query entities, routes, or research before deciding the next action.
Route and guide results are hints; re-observe and verify postconditions in the live runtime.glr.toml, run glr --project . --json task list
before assuming a project workflow is missing.glr task show NAME, then pass only declared values with
repeated --set NAME=VALUE arguments.runner = "vx" with argv = ["uv", "run", ...] for Python training
workflows. VX owns Python/tool versions and the project environment; GLR owns
validation, dependency ordering, timeouts, logs, and receipts.glr task run season
proves process completion only; require authoritative run/evaluator evidence
before claiming the season or gameplay objective succeeded.glr.toml as trusted repository configuration.glr update --check is a read-only release check and is safe to use when
diagnosing version drift.glr update --yes only when the user explicitly asks to update GLR. It
verifies the exact platform archive and SHA256SUMS, then updates the glr
executable, its sibling glr-hostd, and the repository-owned glr-cli and
glr-adapter-builder Skills.--skills-dir only for an explicitly selected project Skills directory.
Use --no-skills when the user requested binary-only maintenance.SHA256SUMS.On a knowledge-enabled decision, persist the injector's query fingerprint, trigger/hit counts, selection counts, and rejection counters with the step. No invocation, a valid zero-hit lookup, and a rejected stale source are distinct states. Knowledge-file presence is not a trigger or a hit; a hit is not learning.
New projects use a single glr-project.toml. Before migration, verify the
installed CLI and Python SDK support TOML; unreleased source changes do not
upgrade installed tools. Never leave JSON and TOML manifests side by side.
Use GLR_PROJECT_MANIFEST or find_project() to locate the project; resolve
relative config paths from its parent, not cwd or a fixed number of parents.
Read the portable layout and clone gates in commands.md
when scaffolding, migrating environments, or handing a project to another user.
When capture is configured, keep it enabled for glr train and glr goal run unless the user
explicitly opts out. The recorder is a concurrent project-owned sidecar and must emit both a small
H.264 MP4 and glr.capture-frame.v1 step/frame index. A video without a valid checksummed index is
review media, not supervised-learning data.
Do not claim live-game acceptance from synthetic tests, process exit, video presence, run status, or model hashes. Report the exact remaining runtime acceptance boundary.
Generate a self-contained, interactive review page from one completed run:
glr --project . --json report build <run-id>
glr --project . --json report build <run-id> --output review/report
The default output is .glr/runs/<run-id>/report/index.html; a custom output
must remain inside that run directory. Before writing, GLR verifies every
registered evidence artifact's portable path, byte size, and SHA-256 digest,
omits prior run-report outputs to avoid self-referential hashes, then
registers the HTML as a run-report artifact. The page is offline and
filterable: it summarizes metrics, renders navigation.route_sample points,
shows progression.* unlock/catalog events, lists explicit match.result
records (including match_kind=pvp), and links authorized screenshots or
videos by their checksummed artifact paths.
Reports are projections over the run store, not a second source of truth. They do not mutate training data, infer missing unlocks or wins, widen action masks, or establish live-game acceptance. Keep unsupported panels empty and return to the adapter/runtime boundary when authoritative evidence is missing.