the repo carries no .claude/: the run switches move into CONTRIBUTING (#28)
The probe skill was a Claude-only file, and its promises held on one machine: its shield needs an account named probe and digits, which CONTRIBUTING never asks for, and its long-run advice was macOS's. The switches every checkout has for an unattended run are plain text in CONTRIBUTING now, read by any tool; METHOD points there, AGENTS.md drops the skills folder, and .gitignore leaves .claude/ to each person. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
b410ff2055
commit
9649ef9a1b
@@ -1,44 +0,0 @@
|
||||
---
|
||||
name: probe
|
||||
description: Run the client unattended against the local vmangos server — a live probe, a capture, a leg. Use whenever a session or an agent needs the client logged in without a person at the keyboard.
|
||||
---
|
||||
|
||||
The rules are in `docs/METHOD.md` ("The local server"). This is the how.
|
||||
|
||||
**Identity.** The account this checkout declares in `.probe-identity` at the tree root
|
||||
(`WOW_USER=`, `WOW_PASS=`, `WOW_CHAR=`, one per line, never committed), or the same three in
|
||||
the environment. A login kicks whoever holds the account, so a probe account is its own, with
|
||||
the top GM level (the GM commands the probes use all work; `.modify money` is out of reach
|
||||
even so), and from a checkout that declares one the client refuses the scripted login on any
|
||||
other account; `WOW_ALLOW_ACCOUNT=1` overrides. `scripts/smoke.sh`, `cine.sh` and
|
||||
`summon-live.sh` take the identity from `scripts/probe-identity.sh`, which applies this rule.
|
||||
|
||||
**Every run:** `WOW_UNATTENDED=1`, which reconnects instead of parking on a dialog and exits
|
||||
non-zero on a login it cannot pass. An agent adds `WOW_NOSOUND=1`. The three scripts pass
|
||||
`WOW_UNATTENDED=1`; `smoke.sh` and `summon-live.sh` add `WOW_NOSOUND=1`, and `cine.sh`
|
||||
silences through a throwaway config with `MasterVolume=0` because the music path is its
|
||||
subject. A capture (`WOW_CAPTURE`) implies both; a rig (`WOW_RIG`) implies unattended only.
|
||||
|
||||
**The body.** A probe cannot die: every world entry sends `.cheat god on`. `.die` clears it for
|
||||
a death test; `WOW_GOD=off` runs unshielded. GM mode is on by default and makes reaction
|
||||
colours, nameplates, threat, aggro, fall damage and breath read wrong: `WOW_GM=off` for any of
|
||||
those. The preflight banner names the body and its state on every entry; read it first.
|
||||
|
||||
**A body that is not a level-1 human warrior:** `WOW_RIG="tauren druid 60 gear:heal-preraid-bis
|
||||
spec:heal-preraid-bis at:ThunderBluff"` finds or creates it on the slot's account and applies
|
||||
the lot; `WOW_RIG="gear:?"` lists the catalog. `WOW_PROBE_CHAT="<cmd>"` sends a GM command, and
|
||||
the server's answer is echoed as `net: server says`.
|
||||
|
||||
**Wire work is proven from the trace:** `WOW_MOVE_TRACE=<path> WOW_MOVE_TRACE_TAGS="move,snd,in"
|
||||
WOW_PROBE_EXIT_AT=<secs>`, then grep the file for the `rly` and `snd` lines. An unfiltered trace
|
||||
in a populated scene stops being a per-frame clock.
|
||||
|
||||
**Keep a long run awake:** `caffeinate -u -t 2`, then `caffeinate -dis <command>`. An occluded
|
||||
window runs at about 1 fps and the live-FPS line stamps `occluded_frames=`; a lock screen
|
||||
throttles the same way but reads 0 with `p99_ms` near 1020, so check
|
||||
`ioreg -n Root -d1 -a | grep CGSSessionScreenIsLocked` before an unattended series.
|
||||
|
||||
**Captures:** `scripts/visual.sh` wraps a capture run; the recipe, and why a capture goes
|
||||
through `cargo run` and never a bare binary, is the header of
|
||||
`crates/benilla-app/src/capture/mod.rs`. Pixel questions go through `benilla-visual crop`,
|
||||
`series` and `hotspot`.
|
||||
+2
-4
@@ -32,10 +32,8 @@ trace-*.json
|
||||
.DS_Store
|
||||
*.swp
|
||||
/.idea/
|
||||
# Claude Code: the skills are shared procedures (AGENTS.md names them); every other file under
|
||||
# .claude/ is its owner's own settings.
|
||||
/.claude/*
|
||||
!/.claude/skills/
|
||||
# Claude Code: settings and skills under .claude/ are each person's own.
|
||||
/.claude/
|
||||
|
||||
# Python bytecode from the `scripts/` tooling.
|
||||
__pycache__/
|
||||
|
||||
@@ -10,9 +10,6 @@ Read, in this order:
|
||||
touching anything.
|
||||
3. `docs/CONTRIBUTING.md` — what gets in and how a change is judged.
|
||||
|
||||
Procedures with steps are skills in `.claude/skills/`: `probe` (an unattended run against the
|
||||
local server).
|
||||
|
||||
The rest of the root is code and data: `crates/` the workspace, `reference/` the 1.12 name
|
||||
catalogues the tests check against, `scripts/` the gates and instruments, `third_party/`
|
||||
vendored code.
|
||||
|
||||
@@ -56,6 +56,22 @@ fork, and forks are welcome.
|
||||
the environment or in a `.probe-identity` file at the repo root (one per line, never
|
||||
committed), and `scripts/smoke.sh` (the live login gate) refuses without them. The probes
|
||||
drive the body with GM commands, so give that account the top GM level.
|
||||
- **Running it unattended.** The rules are `docs/METHOD.md`, "The local server"; these are the
|
||||
switches.
|
||||
- `WOW_UNATTENDED=1` reconnects instead of waiting at a dialog, and exits non-zero on a login
|
||||
it cannot pass. `WOW_NOSOUND=1` runs silent. A capture (`WOW_CAPTURE`) is both, and a rig
|
||||
(`WOW_RIG`) is unattended. `WOW_ALLOW_ACCOUNT=1` overrides the account guard.
|
||||
- On vmangos, `WOW_RIG="tauren druid 60 gear:heal-preraid-bis spec:heal-preraid-bis
|
||||
at:ThunderBluff"` finds or creates that character on the account and applies the server's
|
||||
premade sets (`WOW_RIG="gear:?"` lists them). `WOW_PROBE_CHAT="<command>"` sends one GM
|
||||
command and logs the reply as `net: server says`. An account named `probe` and digits is
|
||||
shielded: every world entry sends `.cheat god on`, `.die` clears it for a death test, and
|
||||
`WOW_GOD=off` leaves it off.
|
||||
- A trace is `WOW_MOVE_TRACE=<file>`, filtered with `WOW_MOVE_TRACE_TAGS` (`"move,snd,in"`) and
|
||||
ended by `WOW_PROBE_EXIT_AT=<seconds>`; grep it for the `rly` and `snd` lines.
|
||||
- A capture runs through `scripts/visual.sh`, whose recipe is the header of
|
||||
`crates/benilla-app/src/capture/mod.rs`. Pixel questions go through `benilla-visual crop`,
|
||||
`series` and `hotspot`.
|
||||
- **The loop.** `cargo play` builds and runs the play profile. `scripts/check.sh` verifies a
|
||||
round of work; `scripts/gates.sh` is the full chain, and it opens a window for the engine boot
|
||||
checks, so it needs a display. Work on a branch.
|
||||
|
||||
+1
-3
@@ -63,8 +63,6 @@ comment naming the reference fact and why we differ. Anything else is a fork.
|
||||
- git: the history. No changelogs, no status docs, no "what we did" narratives.
|
||||
- The code: a comment says what the code does and the 1.12 fact behind it, in a line. No
|
||||
history, no stories.
|
||||
- `.claude/skills/`: procedures with steps. `probe` runs the client unattended against the local
|
||||
server.
|
||||
|
||||
## Gates
|
||||
|
||||
@@ -101,4 +99,4 @@ account. These bind every session and every agent:
|
||||
`WOW_GM=off`.
|
||||
- Read the preflight banner before debugging anything else.
|
||||
|
||||
The mechanics are the `probe` skill.
|
||||
The switches for such a run are `docs/CONTRIBUTING.md`, "Running it unattended".
|
||||
|
||||
Reference in New Issue
Block a user