chore: fix all hlint warnings, update AGENTS.md pre-commit checklist
- Fix 8 hlint hints across 6 files (unused pragma, newtype, lambda, redundant brackets/\$) - Add blank line after LANGUAGE pragma in Route.hs (fourmolu) - Fix HouseholdFormData deriving to use explicit strategies for newtype - Update AGENTS.md: require hlint clean before every commit, add pre-commit checklist (format, lint, build, test), update NB CSS URL to jsdelivr CDN
This commit is contained in:
@@ -21,7 +21,12 @@ Hyperbole, a serverside web framework. There is zero application JavaScript.
|
||||
## Haskell Conventions
|
||||
|
||||
- **Style:** fourmolu-formatted. Run `./hs fourmolu --mode inplace app/ src/ test/` before committing.
|
||||
- **Lint:** hlint clean required. Fix any hints before committing.
|
||||
- **Lint:** hlint clean required — MUST run `./hs hlint app/ src/ test/` and fix all hints before committing. Zero hints is the standard. Do not suppress or ignore hlint suggestions.
|
||||
- **Pre-commit checklist:** Before every commit, run:
|
||||
1. `./hs fourmolu --mode inplace app/ src/ test/` — format code
|
||||
2. `./hs hlint app/ src/ test/` — fix ALL hints (must output "No hints")
|
||||
3. `./hs stack build --fast` — must compile with zero errors
|
||||
4. `./hs stack test --fast` — all tests must pass
|
||||
- **Warnings:** `-Wall -Werror` in `package.yaml`. All warnings are fatal.
|
||||
- **Module qualifiers:** Use qualified imports with descriptive aliases
|
||||
(e.g., `import Data.Text qualified as T`).
|
||||
@@ -37,8 +42,7 @@ Hyperbole, a serverside web framework. There is zero application JavaScript.
|
||||
|
||||
- **Framework:** [Hyperbole](https://github.com/seanhess/hyperbole) — Haskell
|
||||
serverside web framework. All HTML rendered in Haskell.
|
||||
- **CSS:** [Neo Brutalism](https://unpkg.com/neobrutalismcss@latest) CDN +
|
||||
`frontend/static/style.css` for custom styles.
|
||||
- **CSS:** [Neo Brutalism](https://github.com/matifandy8/NeoBrutalismCSS) CDN via jsdelivr + `frontend/static/style.css` for custom styles.
|
||||
- **Build:** No npm/build step for frontend. All pages rendered in Haskell.
|
||||
- **Interactive components:** HyperViews with typed Actions and server-side
|
||||
updates via VirtualDOM over WebSocket.
|
||||
@@ -86,5 +90,6 @@ sis/
|
||||
- Run `./scripts/test` before committing. Tests must pass.
|
||||
|
||||
## Agent Autonomy
|
||||
- Run `./hs hlint app/ src/ test/` and fix ALL hints before committing.
|
||||
- As changes are completed then verify functionality using Playwright
|
||||
- Once functionality is confirmed then commit and push changes
|
||||
|
||||
Reference in New Issue
Block a user