Backend: Perl (Mojolicious), Minion job queue, PostgreSQL. Frontend: JavaScript (Bootstrap).
make tidy: Must pass before committing (runsperltidy+eslint/prettier).make test-checkstyle: Must pass before committing.make test-unit-and-integration TESTS=t/your_test.t: Run specific tests.COVERAGE=1 make test-unit-and-integration TESTS=t/your_test.t: Run specific tests with statement coverage enabled.cover -report text -select_re 'path/to/modified_file': Generate and view a fast text-based coverage report restricted to the specific file you changed (run this after generating the coverage database).make test: Full test suite.
- Commits: Conventional Commits format. Include motivation and details for "feat" commits.
- Documentation: Markdown (
.md).
- Planning: Only create
.mdplan documents intasks/. Do not change other files. Every plan MUST include test adaptations or new tests. - Verification: Every code change must have corresponding test adaptations
or new tests.
make tidyandmake test-checkstylemust pass before creating git commits. - Strict Statement Coverage: Full statement coverage is a hard
requirement. You MUST run tests with
COVERAGE=1for your specific test adaptations and verify that all new/modified lines are covered usingcover -report textbefore creating git commits. Do not wait for CI/Codecov in PRs to catch missing coverage.
tasks/: Read/write access for planning. NEVER run git add, git commit, or git rm on this directory or delete files from there.- Never run git clean or any command that deletes unversioned files. Ask the user for confirmation.
- Commit message format: 50/80 rule, 80-char limit, wrap in single quotes.