agentleFS
karlomikuskarlomikus/bar-assistant/AGENTS.md

bar-assistant

AGENTS.md1.1k starsChanged 6 months agoMITView on GitHub

  • Installs packages

Trending

Quiet since August.about the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 2 mentionsMar 2026: 0 mentionsApr 2026: 2 mentionsMay 2026: 0 mentionsJun 2026: 0 mentionsJul 2026: 0 mentionsAug 2026: 1 mentionSep 2026: 0 mentionsOct 2026: 0 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the karlomikus/bar-assistant repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about karlomikus/bar-assistant

The biggest 5 of 18 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 18

Talked about on GitHub (18 times).

On GitHub · 18

13 more on GitHub
  • Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.

    Of the AGENTS.md files we read, the 31,439 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.

  • In this repository3 other files it gives its agents.

The file

We split this AGENTS.md into the rules it gives an agent

11 rules. About 0 are common, 6 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    All files must use strict typing

    line 67
  2. Very specific:

    Use named parameters in method calls for clarity: createCocktail(barId: $id, name: $name)

    line 68
  3. Distinctive:

    Always specify parameter and return types

    line 69
  4. Very specific:

    Use generic type annotations in PHPDoc for arrays: @param CocktailIngredient[] $ingredients

    line 70
  5. Very specific:

    Use readonly for immutable DTOs and value objects

    line 71
  6. Distinctive:

    Write comments only to explain complex business logic

    line 73
  7. Distinctive:

    Prefer static factory methods on aggregate roots with private constructors

    line 77
  8. Distinctive:

    Do not write comprehensive documentation or reference guide in separate markdown files

    line 78
  9. Very specific:

    Use InMemory* implementations for unit tests instead of mocks

    line 87
  10. Very specific:

    Use UbiquitousLanguage.md as a reference

    line 88
  11. Distinctive:

    Write tests only when explicitly asked

    line 91

≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
AGENTS.md

AGENTS.md

Project information

Bar Assistant is all-in-one solution for managing your home bar. Compared to other recipe management software that usually tries to be more for general use, Bar Assistant is made specifically for managing cocktail recipes.

Architecture

  • PHP 8.4, SQLite, Redis (cache), Optional queue via Laravel Horizon
  • Development environment is run via docker compose stack
    • Service app runs the API
    • This means you need to prefix php commands with docker compose exec app
  • OpenAPI is used to document the API endpoints
  • Database: SQLite located at ./storage/bar-assistant/database.ba3.sqlite

Folder structure

  • Folder app contains the complete Laravel application and is considered as a legacy infrastrucutre layer
    • Code written there should follow standard Laravel best practices
  • Folder src is a new code that will follow Domain Driven Design and hexagonal architecture principles
  • Folder tests contains tests
    • Unit tests are located in tests/Unit
    • Feature tests (laravel HTTP testing) are located in tests/Feature

System requirements (non-discoverable)

  • The image processing library jcupitt/vips requires:
    • System package libvips42 (CI installs it via apt-get install libvips42)
    • PHP FFI extension enabled (ffi.enable=true)
    • Raised stack size: zend.max_allowed_stack_size=-1 (prevents stack overflow in FFI calls)
  • Without these, image upload/processing tests and functionality will fail silently or crash.

OpenAPI caveat

  • composer openapi generates OpenAPI docs by scanning the app/ directory only. New endpoints written in src/ (DDD layer) will not appear in the generated spec unless you also register them in app/.
  • CI runs Spectral to lint the generated OpenAPI YAML.

Commands

# Run static analysis (level: max)
docker compose exec app vendor/bin/phpstan analyse

# Automatically fix code style issues
docker compose exec app vendor/bin/pint

# Run the full test suite
docker compose exec app vendor/bin/phpunit

# Run a single test class
docker compose exec app vendor/bin/phpunit tests/Unit/UtilsTest.php

# Run tests (Laravel wrapper — CI-preferred)
docker compose exec app composer test

# Run a specific test method
docker compose exec app vendor/bin/phpunit --filter=testCalculateAbv

# Run static analysis with specific path
docker compose exec app vendor/bin/phpstan analyse src/Domain/Cocktail

# View database schema
docker compose exec app sqlite3 ./storage/bar-assistant/database.ba3.sqlite ".schema"

# Query database
docker compose exec app sqlite3 ./storage/bar-assistant/database.ba3.sqlite "SELECT * FROM table_name LIMIT 10;"

Conventions

  • All files must use strict typing
  • Use named parameters in method calls for clarity: createCocktail(barId: $id, name: $name)
  • Always specify parameter and return types
  • Use generic type annotations in PHPDoc for arrays: @param CocktailIngredient[] $ingredients
  • Use readonly for immutable DTOs and value objects
  • Validate invariants in constructors and setter methods
  • Write comments only to explain complex business logic
  • New code should follow DDD and Hexagonal Architecture principles
  • Tests will use Tests\Infrastructure\InMemory* implementations instead of mocks/stubs where applicable
  • Changes in the src should only affect Unit testsuite
  • Prefer static factory methods on aggregate roots with private constructors
  • Do not write comprehensive documentation or reference guide in separate markdown files
  • Since this is legacy code with already in place database schema the model identities are auto incrementing integers generated by a database and usually filled in by setId() method call

Architecture patterns (src folder - DDD/Hexagonal)

  • Entities use private constructors with public static factory methods
  • Aggregate roots are final classes implementing Identity interface
  • Value objects are readonly with equals() method for comparison
  • Application services use readonly DTOs for input/output
  • Methods return $this for fluent chaining where appropriate
  • Use InMemory* implementations for unit tests instead of mocks
  • Use UbiquitousLanguage.md as a reference

Testing

  • Write tests only when explicitly asked
  • Unit tests for domain logic in tests/Unit
  • Feature tests for HTTP endpoints in tests/Feature

CI pipeline (what runs in GitHub Actions)

  1. composer install
  2. ./vendor/bin/pint --test (code style check)
  3. composer test (runs php artisan test — the Laravel test wrapper, not raw phpunit)
  4. vendor/bin/phpstan analyse
  5. Spectral API spec linting (docs/*.yaml)

Tools at Your Disposal

  • phpstan - PHP Static Analysis Tool (level: max)
  • pint - Laravel code style formatter
  • phpunit - PHP test runner
  • rector - Automated refactoring tool

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.