This project uses bd (beads) for issue tracking.
Run bd prime for workflow context, or install hooks with bd hooks install for auto-injection.
Quick reference:
bd ready # Find unblocked work
bd show <id> # View issue details
bd update <id> --status in_progress # Claim work
bd create --title="Title" --type task --priority 2
bd close <id> # Complete work
bd dolt push # Push beads to Dolt remoteFor full workflow details: bd prime
To avoid CSP warnings and regressions:
- No inline scripts/styles: prefer external JS/CSS files. If inline is unavoidable, always add
<?= csp_script_nonce() ?>/<?= csp_style_nonce() ?>to the<script>/<style>tag. - No inline event handlers: avoid
onclick=,onload=, etc. Use JS event listeners in a script file or a nonce’d script block. - No
style=attributes: move styles into CSS classes and include them in a nonce’d<style>block or external stylesheet. - Keep CSP strict: do not add
unsafe-inlineback toscript-srcorstyle-src. If a new use case requires it, refactor instead. - Before finishing: scan
app/Viewsfor inline scripts/styles/handlers and ensure they follow the rules above.
When adding new user-facing strings to the application:
- Check existing strings: Before adding a new key, search
resources/i18n/en/(frontend) orapp/Language/en/(backend) to see if an appropriate string or key already exists. - Update all files: New strings MUST be added to all available language files.
- Frontend: matching domain files in
resources/i18n/en/,de/,fr/, andsk/. - Backend:
app/Language/en/and any other locale directories present.
- Frontend: matching domain files in
- Maintain Consistency: Keep keys identical across all files. If a translation is unknown, use the English version as a temporary placeholder rather than leaving the key out.
- Verify JSON: After editing, run
composer i18n:buildandcomposer i18n:check.
- Docker uses an init container to populate the shared code volume; updates refresh automatically based on the image version marker.
When ending a work session, you MUST complete ALL steps below. Work is NOT complete until git push succeeds.
MANDATORY WORKFLOW:
- File issues for remaining work - Create issues for anything that needs follow-up
- Run quality gates (if code changed) - Tests, linters, builds
- Update issue status - Close finished work, update in-progress items
- PUSH TO REMOTE - This is MANDATORY:
git pull --rebase bd dolt push git push git status # MUST show "up to date with origin" - Clean up - Clear stashes, prune remote branches
- Verify - All changes committed AND pushed
- Hand off - Provide context for next session
CRITICAL RULES:
- Work is NOT complete until
git pushsucceeds - NEVER stop before pushing - that leaves work stranded locally
- NEVER say "ready to push when you are" - YOU must push
- If push fails, resolve and retry until it succeeds