mirror of
https://github.com/Akkudoktor-EOS/EOS.git
synced 2026-11-13 01:03:45 +01:00
Additional changes Agents write a task plan to .scratch/<branch>/plan.md and self-review with code-review Agents fix hard violations, report judgement calls and rerun the self-review before every push Agents declare the review in a Self-review section of the pull request body Add the ai-self-review workflow and scripts/check_pr_self_review.py for pull requests into main Detect agents by Assisted-by or Anthropic Co-Authored-By trailers, body markers or the AI box Fail only on a missing Self-review section or a missing, malformed or stale Reviewed SHA Note an unticked AI-assisted box and malformed optional lines without failing Comment on the pull request how to fix a failure and update that one comment on later runs Show the same report in the job summary and accept Windows line endings in the body Skip dependabot and release pull requests Run on pull_request_target with the base branch's script, never pull request code Add the pull request template: the pr skill's sections plus Checklist and Self-review Require always valid optimization parameters in the energy-domain skill Require datetimeutil for date and time handling in new and changed code in AGENTS.md Require the Assisted-by trailer on agent commits in the commit-messages skill Add tests for the check in tests/test_ai.py Add GLOSSARY.md and the agent tracker docs in docs/agents/ Add decision record docs/adr/0001 with an ADR index in the docs toctree Document the workflow in docs/develop/ai.md and CONTRIBUTING.md Exclude docs/agents from Sphinx and PyMarkdown and ignore .scratch/ Document cz check instead of make gitlint for commit messages in docs/develop/ai.md Assisted-by: Claude Code (claude-opus-5-5) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
98 lines
2.8 KiB
YAML
98 lines
2.8 KiB
YAML
default_stages: [pre-commit]
|
|
# Exclude some file types from automatic code style
|
|
exclude: \.(json|csv)$
|
|
repos:
|
|
# --- Basic sanity checks ---
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: v6.0.0
|
|
hooks:
|
|
- id: check-merge-conflict
|
|
- id: check-toml
|
|
- id: check-yaml
|
|
- id: end-of-file-fixer
|
|
- id: trailing-whitespace
|
|
- id: check-merge-conflict
|
|
exclude: '\.rst$' # Exclude .rst files from whitespace cleanup
|
|
|
|
# --- Import sorting ---
|
|
- repo: https://github.com/PyCQA/isort
|
|
rev: 8.0.1
|
|
hooks:
|
|
- id: isort
|
|
|
|
# --- Linting + Formatting via Ruff ---
|
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
rev: v0.16.3
|
|
hooks:
|
|
# Run the linter and fix simple isssues automatically
|
|
- id: ruff
|
|
args: [--fix]
|
|
# Run the formatter
|
|
- id: ruff-format
|
|
|
|
- repo: local
|
|
hooks:
|
|
# Run EOS custom file name linter
|
|
- id: eos-filename-linter
|
|
name: EOS filename linter
|
|
entry: uv run --locked --exact --extra dev python scripts/lint_filenames.py
|
|
language: system
|
|
types: [python]
|
|
pass_filenames: true
|
|
|
|
# --- Static type checking ---
|
|
- repo: local
|
|
hooks:
|
|
- id: mypy
|
|
name: mypy (locked development environment)
|
|
entry: uv run --locked --exact --extra dev python -m mypy --config-file pyproject.toml
|
|
language: unsupported
|
|
pass_filenames: false
|
|
always_run: true
|
|
|
|
# --- Markdown linter ---
|
|
- repo: https://github.com/jackdewinter/pymarkdown
|
|
rev: v0.9.39
|
|
hooks:
|
|
- id: pymarkdown
|
|
files: ^docs/
|
|
# docs/agents/ is seeded from the vendored engineering skills, not user documentation.
|
|
exclude: ^docs/agents/
|
|
args:
|
|
- --config=docs/pymarkdown.json
|
|
- scan
|
|
|
|
# --- Commit message linting ---
|
|
# - Local cross-platform hooks
|
|
- repo: local
|
|
hooks:
|
|
# Validate commit messages (using Python wrapper)
|
|
- id: commitizen-commit
|
|
name: Commitizen (venv-aware)
|
|
entry: scripts/cz_check_commit_message.py
|
|
language: python
|
|
additional_dependencies:
|
|
- .
|
|
stages: [commit-msg]
|
|
pass_filenames: false
|
|
|
|
# Branch name check on push (using Python wrapper)
|
|
- id: commitizen-branch
|
|
name: Commitizen branch check
|
|
entry: scripts/cz_check_branch.py
|
|
language: python
|
|
additional_dependencies:
|
|
- .
|
|
stages: [pre-push]
|
|
pass_filenames: false
|
|
|
|
# Validate new commit messages before push (using Python wrapper)
|
|
- id: commitizen-new-commits
|
|
name: Commitizen (check new commits only, .venv aware)
|
|
entry: scripts/cz_check_new_commits.py
|
|
language: python
|
|
additional_dependencies:
|
|
- .
|
|
stages: [pre-push]
|
|
pass_filenames: false
|