| name | commit |
| description | MUST invoke before creating any git commit. Provides commit message format and safety rules. |
Message guideline
Title format
Use "component: Brief summary" format for the commit title.
Examples:
- "completions: Add support for keyword argument completion"
- "diagnostics: Fix false positive on unused variable"
- "ci: Update GitHub Actions workflow"
Body
Provide a brief prose summary of the purpose of the changes made. Use backticks for code elements (function names, variables, file paths, etc.).
Line length
Ensure the maximum line length never exceeds 72 characters.
GitHub references
When referencing external GitHub PRs or issues, use proper GitHub interlinking format: "owner/repo#123"
Footer
If you wrote code yourself, include a "Written by Claude" footer at the end of the commit message. No emoji.
However, when simply asked to write a commit message (without having written the code), there's no need to add that footer.
Example
analyzer: FieldError & BoundsError analysis
Add static analysis for field access errors by hooking into
`CC.builtin_tfunction` to intercept `getfield`, `setfield!`,
`fieldtype`, and `getglobal` calls.
Two new report types are introduced:
- `FieldErrorReport` (`inference/field-error`): reported when accessing
a non-existent field by name
- `BoundsErrorReport` (`inference/bounds-error`): reported when
accessing a field by an out-of-bounds integer index
Note that the `inference/bounds-error` diagnostic is reported when code
attempts to access a struct field using an integer index that is out of
bounds, such as `getfield(x, i)` or tuple indexing `tpl[i]`, and not
reported for arrays, since the compiler doesn't track array shape
information.
Reports from invalid `setfield!` and `fieldtype`, and general invalid
argument types are left as future TODO.
Also adjusts concrete evaluation logic to enable ad-hoc constant
propagation after failed concrete evaluation for better accuracy.
---
- Closes aviatesk/JETLS.jl#392