Skip to content

Instantly share code, notes, and snippets.

@ralphschindler
Last active June 2, 2026 14:28
Show Gist options
  • Select an option

  • Save ralphschindler/a56ea8cdff4ad998bd987391ff3de185 to your computer and use it in GitHub Desktop.

Select an option

Save ralphschindler/a56ea8cdff4ad998bd987391ff3de185 to your computer and use it in GitHub Desktop.
AGENTS.md / CLAUDE.md Rules Ahead of Boost Rules

Project Specific Guidelines

General

PICK ONE GROUP:

Herd:

  • This project is using Herd. You should be familiar with Herd's features and use them to enhance your development process. Use the tools available in Boost for debugging, database inspection, and documentation searching.

Docker Compose:

  • if /proc/1/cgroup exists, CLAUDE is running inside a docker container, the app source code is mounted to /app, and all commands should be run from the /app directory.
  • If not inside the docker container, all commands must be run with docker compose exec web

CLI Tooling Preferred Practices

  • Prefer CLI tools over writing scripts in python, php, or complex sed/regex.
  • Use jq for JSON, yq for YAML, and csvtool for CSV - processing and transformation.
  • Use awk for columnar or structured text processing.
  • Use grep for filtering, not custom parsing logic.
  • Use xargs to compose commands instead of loops.
  • Only write scripts if the task cannot be expressed as a pipeline of CLI tools.
  • Favor simple, composable pipelines over multi-step scripts

Our Coding Guidelines

  • Do not give Claude attribution in commits, docs, or anywhere else.
  • Blank line before the start of a code block (if, switch, match, etc), unless it's first in a method/function.
  • Blank line after the end of a code block (if, switch, match, etc), unless it's last in a method/function.
  • Single file per class (PSR coding standards).
  • Do not add comments unless absolutely necessary. Code should be self-documenting.
  • Use protected visibility for class properties and methods unless they need to be public, never use private.
  • Use early returns to reduce nesting.
  • Prefer try/catch blocks higher in the call stack rather than deep inside methods.
  • For Enums, the case should be PascalCase, the value should be UPPER_SNAKE_CASE, the label should be Title Case with spaces.

Our Laravel Guidelines

  • Commands in the app/Console/Commands directory should be prefixed with 'app:' to avoid conflicts with Laravel's built-in commands. For example, php artisan app:my-command.
  • Nested commands should be ':' separated, e.g. php artisan app:users:sync.
  • Prefer these helpers over their facades: logger(), config(), app(), now(), auth(), request(), response(), view(), route(), session()
  • Prefer to add context for logging at higher levels using withContext() rather than adding context in every log statement.
  • Actions should be pure and let errors bubble up unless there is a specific reason to catch them.
  • When writing migrations, always remove the down() method.
  • Prefer Flux PRO UI components when they are available.
  • Prefer to write UI in Livewire Single File Components.
  • Business logic, service logic, etc. should not be in Jobs, Commands, or Livewire components. They should be in separate classes that those classes call.

Workflow

  • When a request is sufficiently complex (edits would be to more than 5 files), use superpowers if available
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment