Files
Metropolis/AGENTS.md
2026-10-22 17:33:45 -07:00

36 lines
2.2 KiB
Markdown

# Metropolis Working Rules
Start with [CONTRIBUTING.md](CONTRIBUTING.md) for the first-contribution path,
architecture, build/test commands, and operational safety. [README.md](README.md)
is the player/server-admin behavior reference. Other files in `docs/` are
optional reference material, not competing onboarding guides.
- Use **Metropolis** in human-facing prose. Preserve machine-facing identifiers,
including `Metropolis`, `com.majinnaibu.bukkitplugins.metropolis`, artifact
names, plugin IDs, commands, permission nodes, and URLs.
- Inspect the current diff before editing and preserve unrelated work. Do not
edit generated `build/`, `target/`, or `.gradle/` output. Never read, expose,
or commit `.env`, server/player data, or publishing credentials.
- Keep claims aligned with source, build configuration, CI, and scripts. State
Paper targets separately from versions actually built or tested. Keep
implemented behavior, planned work, automated coverage, and manual scenarios
distinct.
- When editing Java, preserve the existing AGPL header, use Gradle Spotless,
and keep Bukkit/Paper state and API access on the main thread. Avoid unrelated
gameplay changes.
- Before editing `docs/project-description.json`, read
`docs/projects.schema.json`. Validate the JSON against that schema without
changing the schema to accommodate invalid metadata. Preserve exactly the
existing top-level project key, `id`, `title`, `docId`, `image.url`, and
`headerImage.url` when present. Preserve `headerImage: null` or its absence.
These are fixed consuming-project integration values: do not derive or
“correct” their spelling, capitalization, spacing, or slug from repository
names. Image paths are relative to the consuming project's root; do not
resolve them here, convert them to repository URLs, or replace them with
generated/remote URLs. Preserve all other integration fields unless the task
requires a change. If schema compliance conflicts with preserving protected
values, stop and explain the conflict before editing.
- Do not start/stop servers, deploy, restore, publish, tag, or release without
explicit authorization. `tools/stop-server.sh` can match unrelated Paper
processes; `tools/restore-server.sh` replaces archive top-level items.