Imported from bellodox/huarong-dao (
AGENTS.md). Install upstream withnpx skills add bellodox/huarong-dao. Copyright stays with the author.
AGENTS.md
This file provides guidance to agents when working with code in this repository.
Commands and configuration
- “Ship”, “release”, and “next beta patch” mean local preparation/versioning/validation/review only, never deployment. Do not run cloud authentication/status probes, logins, deployment, or remote publishing unless explicitly requested; do not infer commit/tag/push authorization. No GitHub push is authorized. Beta.2 is prepared locally, not deployed; cloud authentication does not block local completion. The optional issuer secret is not a prerequisite for local-only play.
- Five checkout-relative Python Playwright scripts and their prerequisites/commands are listed in local QA guidance; the deep script includes independent Python BFS. No package manifest, lockfile, package test runner, or build/lint scripts are checked in. Do not invent package commands or confuse parent-reported validation with freshly executed checks.
- No formatter, linter, import-order, naming, or type configuration is checked in; do not impose inferred style rules. Wrangler configuration defines deployment and asset routing only.
Hidden contracts
- The browser game, scoring, solver, signing, and translation logic share ordered inline scripts in the HTML asset, not separate frontend modules.
- Preserve the exact empty issuer declaration: the Worker replacement sentinel is a literal text match; changing it causes configured root requests to return 500. The Worker is unchanged for beta.2.
- Worker injection exposes the issuer key in delivered HTML. Worker secrets do not make it private; use only a disposable experiment wallet. No issuer serves the unchanged local-only asset.
- Keep asset binding and Worker-first paths aligned with GET-only root interception; other requests pass through to assets.
- The 14-layout catalog has 3 unscored practice and 11 ranked layouts. Training, First Steps, and Next Steps never save/publish scores or commit names. Preserve stable IDs and the Classic startup selection; legacy practice-only records must not lock names.
- First-score confirmation verifies a combined owner/score record before locking the nickname, restoring the prior name if the score save fails; this applies without public scoring too. Retain cross-tab locking, durable bests, duplicate suppression, and stale-retry guards.
- Assistance activation enables the solver lazily and excludes scoring. Preserve single-cell BFS moves and interchangeable-piece canonicalization.
- Keep custom name-input signing; the upstream script parser mishandles long name values. Publication creates the player identity only when needed.
- New Bulgarian UI text also needs the inline translation map; the mutation observer translates dynamic text.
- Preserve dialog keyboard handling and analytics consent/withdrawal, including host/domain cookie cleanup at startup after rejection. Analytics consent and public-score consent are independent.
- Beta validation evidence is parent-reported local testing. Live analytics, broadcasts, public leaderboard integration, and deployment remain unverified; documentation work does not verify them.
