The guidebook / 181 guides
Developer tools
Code, configuration and workflows. Source-linked checks to help you move forward.
Docker Exec Says the Container Is Not Running: Inspect the Original Exit
docker exec starts an additional process in a running container.
Docker EXPOSE Does Not Publish a Host Port: Inspect the Mapping and Listener
EXPOSE documents an intended container port.
A Container Cannot Reach Host Localhost: Choose the Correct Network Endpoint
Inside a normally isolated container, localhost points back into that container.
Compose Expands the Wrong Variable: Separate Configuration and Container Expansion
A service env_file supplies container variables; it does not automatically supply every ${NAME} in the Compose model.
jq Exit Status with -e: The Last Value Is Not an All-Items Check
Build one explicit validation result when a shell command must approve every record.
Git Show-Toplevel Resolves a Symlink: Choose Logical or Physical Paths
Avoid assuming that Git preserves the shell path spelling used to enter a checkout.
Git Setting Comes from the Wrong File: Inspect Origin and Scope
Trace a configuration key before editing global or repository settings.
Read a File from Another Git Branch Without Replacing Your Working Copy
Use object inspection when you need the content, and restore only when replacement is intended.
jq Filter Returns Separate Objects: Keep an Array with map(select)
Choose the expected output container before filtering JSON values.
npm CI Lock Mismatch: Repair the Inputs Before the Clean Install
Compare manifest and lockfile changes without using CI to silently update dependencies.
npm Package-Lock-Only Does Not Inventory Your Installed Modules
Separate dependency resolution metadata from the current node_modules directory.
Node Writable write Returns False: Wait, Then Send the Next Chunk
Avoid retrying a chunk that the writable stream has already accepted.
Node EventEmitter Error Events: Attach the Handler Before Starting Work
Handle failures at the emitter lifecycle instead of relying on a global catch-all.
Circular JSON Error: Serialize the Data, Not the Runtime Owner
Build a deliberate transfer object instead of stringifying a framework or request object.
JSON and Large Integer IDs: Preserve the Digits with a String Contract
Avoid rounding an identifier before serialization or converting every numeric field globally.
Node Env File Exists but process.env Is Missing: Load It Before Reading
Separate environment-file loading, startup path and already-set variable precedence.
Git Sparse Checkout Cone Mode Still Includes Root Files
Choose directory selection or explicit patterns before trying to exclude a file type.
Git Tag Exists Locally but Not Remotely: Push One Exact Ref
Verify the destination and publish a selected tag without sending every local tag.