.squad/skills/water-connections/SKILL.md
Techniques for visually connecting water bodies (canals, lakes, rivers) in Minecraft
npx skillsauth add csharpfritz/aspire-minecraft water-connectionsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Connecting separate water bodies in Minecraft requires careful multi-depth construction. A simple one-block opening creates a visible wall or step. Natural-looking water flow requires opening multiple blocks and filling water at all relevant depth levels.
When connecting a canal to a lake (or two water bodies at different depths), open at least 2 Z-blocks deep and fill water at both depth levels.
// Open the wall between canal and lake (2 blocks deep into lake)
await rcon.SendCommandAsync(
$"fill {minX} {surfaceY-2} {lakeZ} {maxX} {surfaceY} {lakeZ+1} minecraft:air");
// Fill water at canal depth (shallow)
await rcon.SendCommandAsync(
$"fill {minX} {surfaceY-1} {lakeZ} {maxX} {surfaceY-1} {lakeZ+1} minecraft:water");
// Fill water at lake depth (deep)
await rcon.SendCommandAsync(
$"fill {minX} {surfaceY-2} {lakeZ} {maxX} {surfaceY-2} {lakeZ+1} minecraft:water");
Don't stop the trunk canal at the lake edge — extend it 2+ blocks into the lake interior for a clean visual connection.
// Trunk canal runs past lake boundary
int trunkEndZ = lakeZ + 2; // 2 blocks into lake
await rcon.SendCommandAsync(
$"fill {trunkX-1} {surfaceY-2} {trunkStartZ} {trunkX+1} {surfaceY} {trunkEndZ} minecraft:air");
Where a branch canal (E-W) meets the trunk canal (N-S), remove the wall between them and ensure water flows at the correct depth.
// Clear the wall between branch and trunk
await rcon.SendCommandAsync(
$"fill {junctionX} {surfaceY-2} {branchZ-1} {junctionX} {surfaceY} {branchZ+1} minecraft:air");
// Fill water
await rcon.SendCommandAsync(
$"fill {junctionX} {surfaceY-1} {branchZ-1} {junctionX} {surfaceY-1} {branchZ+1} minecraft:water");
| Feature | Floor (bottom) | Water surface | Air above | |---------|---------------|---------------|-----------| | Branch canal | SurfaceY - 2 | SurfaceY - 1 | SurfaceY | | Trunk canal | SurfaceY - 2 | SurfaceY - 1 | SurfaceY | | Lake | SurfaceY - 3 | SurfaceY - 1 | SurfaceY | | Junction | Both depths | SurfaceY - 1 | SurfaceY |
tools
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
development
# Static Configuration Pattern **Confidence:** low **Source:** earned ## When to Use When a class has compile-time constants (`const`) that need to become runtime-configurable without breaking existing consumers. ## Pattern 1. Convert `const` fields to `static T { get; private set; } = <original value>`. 2. Add a public `Configure*()` method that sets the new values. Call once at startup. 3. Add an `internal static Reset*()` method that restores defaults — needed for test isolation since `p
development
Core conventions and patterns used in the Squad codebase
development
# SKILL: RCON Minecraft Commands > Patterns for sending Minecraft RCON commands from the Worker service to create in-game effects. ## When to Use When implementing new in-world features that send RCON commands to the Minecraft server — particles, sounds, titles, boss bars, weather, entity spawning, scoreboard updates, etc. ## Command Format Reference ### Particle Effects ``` particle minecraft:{type} {x} {y} {z} {dx} {dy} {dz} {speed} {count} force ``` - `force` makes particles visible from