bar-assistant
AGENTS.md1.1k starsChanged 6 months agoMITView on GitHub
- Installs packages
Trending
Quiet since August.about the whole repository
Who's talking about karlomikus/bar-assistant
- karlomikus/vue-salt-rim“bar-assistant version”GitHub · Aug 9, 2026 · 1 reactions
- karlomikus/vue-salt-rim“Add runtime cache busting”GitHub · Feb 3, 2026 · 1 reactions
- elfhosted/enhancements“Bar Assistant — self-hosted home cocktail bar manager”GitHub · Apr 28, 2026
- karlomikus/vue-salt-rim“Optionally hide "My Shelf" and associated features.”GitHub · Apr 24, 2026
- YunoHost/apps“Add Bar Assistant to wishlist”GitHub · Feb 18, 2026
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
- Aug 9, 2026bar-assistant version — karlomikus/vue-salt-rim1 reaction
- Feb 3, 2026Add runtime cache busting — karlomikus/vue-salt-rim1 reaction
- Apr 28, 2026Bar Assistant — self-hosted home cocktail bar manager — elfhosted/enhancements0 reactions
- Apr 24, 2026Optionally hide "My Shelf" and associated features. — karlomikus/vue-salt-rim0 reactions
- Feb 18, 2026Add Bar Assistant to wishlist — YunoHost/apps0 reactions
13 more on GitHub
- Jul 17, 2025Bar assistant — community-scripts/ProxmoxVE0 reactions · 1 comment
- Jul 10, 2025Unable to start the services on different ports — bar-assistant/docker0 reactions · 7 comments
- Feb 20, 2025Update support for taxonomies — bar-assistant/data0 reactions
- Jan 16, 2025feat: implement oauth login — bar-assistant/docker0 reactions
- Jan 14, 2025feature: oauth login — karlomikus/vue-salt-rim0 reactions
- Nov 10, 2024basic example for oidc — karlomikus/vue-salt-rim0 reactions
- May 5, 2024Configuration for Meilisearch when API Key is required appears to be missing from documentation — karlomikus/vue-salt-rim0 reactions · 2 comments
- Oct 20, 2023[feat] Show cocktail and ingredient updated at/by information — karlomikus/vue-salt-rim0 reactions
- Sep 19, 2023Add Healthcks and Depends_on Healthy Condition — bar-assistant/docker0 reactions · 1 comment
- Jul 13, 2023Home Resource Planning — claha/smart-home0 reactions · 1 comment
- Apr 20, 2023[Add]: Bar Assistant — trueforge-org/truecharts0 reactions · 2 comments
- Jan 2, 2023New dashboard — karlomikus/vue-salt-rim0 reactions
- Jun 17, 2021Software to check out — claha/dotfiles0 reactions · 1 comment
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
- Distinctive: line 67
All files must use strict typing
- Very specific: line 68
Use named parameters in method calls for clarity: createCocktail(barId: $id, name: $name)
- Distinctive: line 69
Always specify parameter and return types
- Very specific: line 70
Use generic type annotations in PHPDoc for arrays: @param CocktailIngredient[] $ingredients
- Very specific: line 71
Use readonly for immutable DTOs and value objects
- Distinctive: line 73
Write comments only to explain complex business logic
- Distinctive: line 77
Prefer static factory methods on aggregate roots with private constructors
- Distinctive: line 78
Do not write comprehensive documentation or reference guide in separate markdown files
- Very specific: line 87
Use InMemory* implementations for unit tests instead of mocks
- Very specific: line 88
Use UbiquitousLanguage.md as a reference
- Distinctive: line 91
Write tests only when explicitly asked
≈ “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.
Files
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
appruns the API - This means you need to prefix php commands with
docker compose exec app
- Service
- OpenAPI is used to document the API endpoints
- Database: SQLite located at
./storage/bar-assistant/database.ba3.sqlite
Folder structure
- Folder
appcontains the complete Laravel application and is considered as a legacy infrastrucutre layer- Code written there should follow standard Laravel best practices
- Folder
srcis a new code that will follow Domain Driven Design and hexagonal architecture principles - Folder
testscontains tests- Unit tests are located in
tests/Unit - Feature tests (laravel HTTP testing) are located in
tests/Feature
- Unit tests are located in
System requirements (non-discoverable)
- The image processing library
jcupitt/vipsrequires:- System package
libvips42(CI installs it viaapt-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)
- System package
- Without these, image upload/processing tests and functionality will fail silently or crash.
OpenAPI caveat
composer openapigenerates OpenAPI docs by scanning theapp/directory only. New endpoints written insrc/(DDD layer) will not appear in the generated spec unless you also register them inapp/.- 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
readonlyfor 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
srcshould only affectUnittestsuite - 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
Identityinterface - Value objects are readonly with
equals()method for comparison - Application services use readonly DTOs for input/output
- Methods return
$thisfor fluent chaining where appropriate - Use
InMemory*implementations for unit tests instead of mocks - Use
UbiquitousLanguage.mdas 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)
composer install./vendor/bin/pint --test(code style check)composer test(runsphp artisan test— the Laravel test wrapper, not raw phpunit)vendor/bin/phpstan analyse- Spectral API spec linting (
docs/*.yaml)
Tools at Your Disposal
phpstan- PHP Static Analysis Tool (level: max)pint- Laravel code style formatterphpunit- PHP test runnerrector- Automated refactoring tool
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
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.

