The end-of-file-fixer pre-commit hook requires files to end with exactly one newline. governance.md had an extra trailing blank line. Co-Authored-By: Claude <noreply@anthropic.com>
65 lines
1.4 KiB
Markdown
65 lines
1.4 KiB
Markdown
# Governance — flask
|
|
# Inferred by crag analyze — review and adjust as needed
|
|
|
|
## Identity
|
|
- Project: flask
|
|
- Stack: python
|
|
|
|
## Gates (run in order, stop on failure)
|
|
### Lint
|
|
- uv run ruff check .
|
|
- uv run ruff format --check .
|
|
- uv run mypy .
|
|
|
|
### Test
|
|
- uv run tox run
|
|
|
|
### Build
|
|
- python -m build
|
|
|
|
### CI (inferred from workflow)
|
|
- uv run --locked --no-default-groups --group pre-commit pre-commit run --show-diff-on-failure --color=always --all-files
|
|
- uv run --locked --no-default-groups --group dev tox run
|
|
- uv run --locked --no-default-groups --group dev tox run -e typing
|
|
|
|
## Advisories (informational, not enforced)
|
|
- actionlint # [ADVISORY]
|
|
|
|
## Branch Strategy
|
|
- Trunk-based development
|
|
- Free-form commits
|
|
- Commit trailer: Co-Authored-By: Claude <noreply@anthropic.com>
|
|
|
|
## Security
|
|
- No hardcoded secrets — grep for sk_live, AKIA, password= before commit
|
|
|
|
## Autonomy
|
|
- Auto-commit after gates pass
|
|
|
|
## Architecture
|
|
- Type: monolith
|
|
|
|
## Key Directories
|
|
- `.github/` — CI/CD
|
|
- `docs/` — documentation
|
|
- `src/` — source
|
|
- `tests/` — tests
|
|
|
|
## Testing
|
|
- Framework: pytest
|
|
- Layout: flat
|
|
- Naming: test_*.py
|
|
|
|
## Code Style
|
|
- Indent: 4 spaces
|
|
- Line length: 88
|
|
|
|
## Dependencies
|
|
- Package manager: uv (uv.lock)
|
|
|
|
## Anti-Patterns
|
|
|
|
Do not:
|
|
- Do not catch bare `Exception` — catch specific exceptions
|
|
- Do not use mutable default arguments (e.g., `def f(x=[])`)
|
|
- Do not use `import *` — use explicit imports
|