Pin Bun 1.4.3 with packageManager, and force every bun run script onto the Bun runtime through bunfig so ng, ESLint and Prettier never fall back to an installed Node. Type checking uses bun check for the application and test projects, next to the Angular build. CI jobs install the pinned release from a checksum-verified download instead of npm and run project steps in a shell without Node on PATH, which stays available only for the checkout and upload actions. The image test's fake docker runs on Bun. Refs #290, #293 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
38 lines
2.5 KiB
Plaintext
38 lines
2.5 KiB
Plaintext
# Agent Rules and Verification Constraints
|
|
|
|
All AI agents (including Cline, Antigravity, Cursor, and Copilot) must adhere to the following rules before declaring a task complete:
|
|
|
|
1. **Test Coverage (>= 80%)**:
|
|
- The overall project line coverage must be maintained at **80% or higher**. Bun reports line data only; statement, branch and function coverage are no longer measured.
|
|
- Verify coverage by running:
|
|
```bash
|
|
bun scripts/generate-langs.js
|
|
bun test --config=bunfig.coverage.toml --isolate --path-ignore-patterns='**/benchmark/**'
|
|
bun scripts/coverage-reports.mjs
|
|
```
|
|
- If your changes introduce new code or modify existing code in a way that drops the coverage below 80%, you must write appropriate unit tests in `.spec.ts` files to bring it back up.
|
|
|
|
2. **Code Formatting (Prettier)**:
|
|
- All code files, the CI scripts and the workflow must be correctly formatted according to the project's Prettier config before finishing.
|
|
- Run the formatter with:
|
|
```bash
|
|
bun run format
|
|
```
|
|
|
|
3. **Successful Build**:
|
|
- The project must always build successfully for production without compilation or bundling errors before ending.
|
|
- Verify the build with:
|
|
```bash
|
|
bun run build
|
|
```
|
|
|
|
4. **CI Checks**:
|
|
- You must execute the local validation commands before completing your task. The Gitea workflow is `.gitea/workflows/ci.yml`; owner activation is tracked in issue #268, and local checks do not satisfy the migration gate. All of the following commands must pass:
|
|
- **Linting check**: `bun run lint` (or use `bun run lint:fix` to resolve auto-fixable issues)
|
|
- **Formatting check**: `bun run format:check`
|
|
- **TypeScript Type check**: `bun run typecheck` (`bun check` for application and test code; it does not replace the production build, which alone checks Angular templates)
|
|
- **Unit Tests and Coverage**: generate the language registry, then run the coverage command in rule 1, matching the Gitea functional-test job.
|
|
- **CI policy and publication**: `bun scripts/ci-policy.test.mjs` and `bun scripts/ci-image.test.mjs`
|
|
- **Production Build**: `bun run build -- --configuration production`
|
|
- The separate performance benchmark is a required CI job with a relative gate: each scenario's budget is a multiple of the frozen engine's two-year calibration measured in the same run. Run it outside coverage with `timeout 600s bun test src/app/benchmark --timeout=600000` when verifying performance; see `docs/benchmark/README.md`.
|