chore: sync .pr-review.json with main
This commit is contained in:
+23
-14
@@ -1,21 +1,30 @@
|
|||||||
{
|
{
|
||||||
"languages": [
|
|
||||||
"java",
|
|
||||||
"yaml",
|
|
||||||
"markdown"
|
|
||||||
],
|
|
||||||
"focus": [
|
"focus": [
|
||||||
"thread-safety",
|
"correctness",
|
||||||
"paper-chunk-ticketing",
|
"security",
|
||||||
"item-loss-prevention",
|
"performance"
|
||||||
"resource-cleanup",
|
|
||||||
"performance-and-chunk-loading",
|
|
||||||
"null-safety-and-unit-tests"
|
|
||||||
],
|
],
|
||||||
"exclude_paths": [
|
"exclude_paths": [
|
||||||
"target/**",
|
"target/**",
|
||||||
"*.bak*",
|
"*.class"
|
||||||
"docs/**"
|
|
||||||
],
|
],
|
||||||
"instructions": "Canalhandia is a Minecraft Paper 1.21.x server plugin written in modern Java 25. Enforce these core invariants:\n1. Thread Safety: Bukkit API, World, Entity, and Inventory mutations MUST run on the main server thread. Async threads only do pure calculation or async file I/O.\n2. Item & Inventory Safety: Never discard player items. Always handle full-inventory overflow by dropping excess items at the player's location. On multi-step container placement (e.g. chests), roll back blocks if not all items fit.\n3. Lifecycle & Cleanup: All registered chunk tickets, recipes, schedulers, and I/O executors must be cleanly flushed and unloaded in onDisable() and module toggles.\n4. Chunk Loading: Never trigger synchronous chunk generation or loading inside event handlers. Always check world.isChunkLoaded() before querying blocks.\n5. Test Coverage: All domain logic, coordinates math, parsers, and pure helpers must have corresponding JUnit tests in src/test/java."
|
"languages": [
|
||||||
|
"java"
|
||||||
|
],
|
||||||
|
"style": "balanced",
|
||||||
|
"require_tests": true,
|
||||||
|
"exclude_tests": false,
|
||||||
|
"max_findings": 15,
|
||||||
|
"severity_threshold": "low",
|
||||||
|
"patterns": {
|
||||||
|
"deny": [
|
||||||
|
"**/README.md",
|
||||||
|
"**/*.md"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"cost_target": "claude-sonnet-5",
|
||||||
|
"additional_context_urls": [
|
||||||
|
"http://nexus-service.nexus.svc.cluster.local:8081/repository/raw-hosted/canalhandia/architecture.md"
|
||||||
|
],
|
||||||
|
"instructions": "Minecraft plugin (Paper 26.2, pt-BR, JDK 25 build). Chat-only — never touch gameplay. Watch thread-safety on event handlers (PlayerDeathEvent, PlayerInteractEvent) — the Bukkit main thread is single-threaded but async chunks/events cross it. Avoid main-thread I/O; defer expensive scans (chunk loading, spiral search) to scheduled tasks or async paths. Flag mutable shared state across listener invocations. Hard constraints: chat messages are immutable after send (counts baked into buttons freeze at send time); names go out as translatable components so the singular-form rule applies (number never agrees with the noun); Geyser/Bedrock cannot click and cannot show emoji (every click has a typed fallback); vanilla statistics are the only data source (offline path is <world>/players/stats/<uuid>.json, NOT <world>/stats); reactions keep counting late (reacao-validade-minutos); Floodgate is optional runtime dep. Flag: real bugs, missing persistence of new settings, comando/permission not in plugin.yml, breaking Bedrock equivalent invariant, removing the frozen-at-send assumption, violating singular-form rule, missing Stats.resolve() on renames."
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user