Quality Assurance Code Review
SkillDev toolsQuality code review enforcing Deno standards and project conventions
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Quality Assurance Code Review skill
What this skill tells your AI
The instructions your AI receives, as published by covoiturage-gouv-fr/mono in .claude/skills/check-qa/SKILL.md and read by ahel’s review.
Review code for quality, consistency with project conventions, and Deno best practices.
Scope
Review changes from: !git diff --name-only HEAD~1 or files specified in $ARGUMENTS
Pre-checks
Run automated checks first:
cd api && deno lint
cd api && deno fmt --check
Quality Checklist
1. Code Style & Formatting
- Line width: Max 120 characters (per deno.jsonc)
- Import organization: Use Deno's organize imports (no
../../../paths, use@/) - Consistent naming: PascalCase for classes/interfaces, camelCase for functions/variables
- No unused imports: Remove dead imports
- No commented code: Remove or document why it's kept
2. TypeScript Standards
- Explicit types: Function parameters and return types should be typed
- No
any: Avoidany, useunknownor proper types - Interface naming: Use
Interfacesuffix for interfaces - Type imports: Use
import typefor type-only imports - Null handling: Prefer
undefinedovernullunless interfacing with external APIs
3. ILOS Framework Conventions
- Action structure: Actions extend
Actionclass with properhandlemethod - Handler decorator: Correct
@handler()configuration - Service signatures: Format
service:methodfor RPC calls - Repository pattern: SQL via
sqltemplate literal, no string concatenation - Dependency injection: Use Inversify decorators properly
4. Error Handling
- Specific exceptions: Use typed exceptions (NotFoundException, etc.)
- Error context: Include relevant context in error messages
- Async/await: Proper try/catch for async operations
- No swallowed errors: All catch blocks either rethrow or log
5. Testing
- Test coverage: New logic has corresponding tests
- Test naming:
.unit.spec.tsor.integration.spec.tssuffix - Edge cases: Tests cover boundary conditions
- Test isolation: Tests don't depend on each other
6. Code Organization
- Single responsibility: Functions/classes do one thing
- File length: Files under 300 lines preferred
- Function length: Functions under 50 lines preferred
- Nesting depth: Max 3-4 levels of nesting
7. Project Coherence
- Existing patterns: Follow patterns from similar existing code
- Shared types: Use types from
shared/or define in service contracts - Configuration: Use
env_or_*helpers for environment variables - No over-engineering: Simple solutions preferred (per CLAUDE.md)
8. Deno 2.x Best Practices
- Import maps: Use aliases from deno.jsonc
- Standard library: Prefer
jsr:@std/*packages - Node compatibility: Use
node:prefix for Node.js APIs - Permission-aware: Consider minimal permission requirements
Output Format
## Quality Review Summary
**Quality Score**: [A | B | C | D | F]
**Files Reviewed**: X files
**Lint Issues**: X errors, Y warnings
### Code Issues
#### [SEVERITY] Issue Title
- **File**: path/to/file.ts:line
- **Issue**: What's wrong
- **Standard**: Which convention is violated
- **Fix**: How to correct it
### Style Issues
- Minor formatting or naming issues
### Suggestions
- Non-blocking improvements for code quality
### Approved Changes
- Changes that meet quality standards
### Required Actions
- [ ] Fix all ERROR level issues
- [ ] Address WARNING level issues
- [ ] Run `deno fmt` before commit
Invocation
/check-qa # Review uncommitted changes
/check-qa src/pdc/services/auth/ # Review specific directory
/check-qa --strict # Enable stricter checks
Signals
- GitHub stars
- 36
- Forks
- 12
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
check-qa- Source
- github.com/covoiturage-gouv-fr/mono