diff --git a/assets/file_freshness.json b/assets/file_freshness.json index 078011e..b74255b 100644 --- a/assets/file_freshness.json +++ b/assets/file_freshness.json @@ -1,399 +1,671 @@ [ { "age_days": 0, - "commits_since": 2, + "commits_since": 5, + "file": "pyproject.toml", + "last_commit": "2026-04-09T11:34:01+02:00", + "last_commit_sha": "ff039d7506b2f10932232c0f1ceb8aa49e3fd75d", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 4, "file": ".gitignore", - "last_commit": "2026-04-08T20:08:20+02:00", - "last_commit_sha": "dc1352d64a38a52246a02cde774bbdf4188cb217", + "last_commit": "2026-04-09T15:31:36+02:00", + "last_commit_sha": "7c2f6a571ca6750e244ac7e7bf04e8f22090896e", "status": "green" }, { "age_days": 0, - "commits_since": 1, - "file": ".github/workflows/file-freshness.yml", - "last_commit": "2026-04-08T23:14:04+02:00", - "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", + "commits_since": 4, + "file": "template/.claude/skills/python-docstrings/SKILL.md", + "last_commit": "2026-04-09T15:31:36+02:00", + "last_commit_sha": "7c2f6a571ca6750e244ac7e7bf04e8f22090896e", "status": "green" }, { "age_days": 0, - "commits_since": 1, - "file": ".pre-commit-config.yaml", - "last_commit": "2026-04-08T23:14:04+02:00", - "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", + "commits_since": 4, + "file": "template/.claude/skills/python-docstrings/references/auditing.md", + "last_commit": "2026-04-09T15:31:36+02:00", + "last_commit_sha": "7c2f6a571ca6750e244ac7e7bf04e8f22090896e", "status": "green" }, { "age_days": 0, - "commits_since": 1, - "file": "assets/freshness_ignore.json", - "last_commit": "2026-04-08T23:14:04+02:00", - "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", + "commits_since": 4, + "file": "template/.claude/skills/python-docstrings/references/classes.md", + "last_commit": "2026-04-09T15:31:36+02:00", + "last_commit_sha": "7c2f6a571ca6750e244ac7e7bf04e8f22090896e", "status": "green" }, { "age_days": 0, - "commits_since": 1, - "file": "docs/repo_file_status_report.md", - "last_commit": "2026-04-08T23:14:04+02:00", - "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", + "commits_since": 4, + "file": "template/.claude/skills/python-docstrings/references/examples.md", + "last_commit": "2026-04-09T15:31:36+02:00", + "last_commit_sha": "7c2f6a571ca6750e244ac7e7bf04e8f22090896e", "status": "green" }, { "age_days": 0, - "commits_since": 1, - "file": "justfile", - "last_commit": "2026-04-08T23:14:04+02:00", - "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", + "commits_since": 4, + "file": "template/.claude/skills/python-docstrings/references/functions.md", + "last_commit": "2026-04-09T15:31:36+02:00", + "last_commit_sha": "7c2f6a571ca6750e244ac7e7bf04e8f22090896e", "status": "green" }, { "age_days": 0, - "commits_since": 1, - "file": "scripts/repo_file_freshness.py", - "last_commit": "2026-04-08T23:14:04+02:00", - "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", + "commits_since": 4, + "file": "template/.claude/skills/python-docstrings/references/generators.md", + "last_commit": "2026-04-09T15:31:36+02:00", + "last_commit_sha": "7c2f6a571ca6750e244ac7e7bf04e8f22090896e", "status": "green" }, { "age_days": 0, - "commits_since": 1, - "file": "temp/justfile", - "last_commit": "2026-04-08T23:14:04+02:00", - "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", + "commits_since": 4, + "file": "template/.claude/skills/python-docstrings/references/modules.md", + "last_commit": "2026-04-09T15:31:36+02:00", + "last_commit_sha": "7c2f6a571ca6750e244ac7e7bf04e8f22090896e", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 4, + "file": "template/.claude/skills/python-docstrings/references/overrides.md", + "last_commit": "2026-04-09T15:31:36+02:00", + "last_commit_sha": "7c2f6a571ca6750e244ac7e7bf04e8f22090896e", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 4, + "file": "template/.claude/skills/python-docstrings/references/properties.md", + "last_commit": "2026-04-09T15:31:36+02:00", + "last_commit_sha": "7c2f6a571ca6750e244ac7e7bf04e8f22090896e", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 4, + "file": "template/.claude/skills/python-docstrings/references/sections.md", + "last_commit": "2026-04-09T15:31:36+02:00", + "last_commit_sha": "7c2f6a571ca6750e244ac7e7bf04e8f22090896e", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 4, + "file": "template/.claude/skills/skill-maintainer/SKILL.md", + "last_commit": "2026-04-09T15:31:36+02:00", + "last_commit_sha": "7c2f6a571ca6750e244ac7e7bf04e8f22090896e", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 4, + "file": "uv.lock", + "last_commit": "2026-04-09T15:31:36+02:00", + "last_commit_sha": "7c2f6a571ca6750e244ac7e7bf04e8f22090896e", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 3, + "file": "template/.claude/skills/cron-scheduling/references/environments.md", + "last_commit": "2026-04-09T22:37:07+02:00", + "last_commit_sha": "02720333c5e1f56f7cbb39d0967027356a91b970", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 3, + "file": "template/.claude/skills/cron-scheduling/references/managing-jobs.md", + "last_commit": "2026-04-09T22:37:07+02:00", + "last_commit_sha": "02720333c5e1f56f7cbb39d0967027356a91b970", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 3, + "file": "template/.claude/skills/cron-scheduling/references/monitoring.md", + "last_commit": "2026-04-09T22:37:07+02:00", + "last_commit_sha": "02720333c5e1f56f7cbb39d0967027356a91b970", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 3, + "file": "template/.claude/skills/cron-scheduling/references/syntax-reference.md", + "last_commit": "2026-04-09T22:37:07+02:00", + "last_commit_sha": "02720333c5e1f56f7cbb39d0967027356a91b970", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 2, + "file": ".claude/CLAUDE.md", + "last_commit": "2026-04-10T02:02:49+02:00", + "last_commit_sha": "04618942d7b499d6399568f106b63976d90265f4", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 2, + "file": ".claude/commands/ci.md", + "last_commit": "2026-04-10T02:02:49+02:00", + "last_commit_sha": "04618942d7b499d6399568f106b63976d90265f4", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 2, + "file": ".github/CLAUDE.md", + "last_commit": "2026-04-10T02:02:49+02:00", + "last_commit_sha": "04618942d7b499d6399568f106b63976d90265f4", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 2, + "file": "CLAUDE.md", + "last_commit": "2026-04-10T02:02:49+02:00", + "last_commit_sha": "04618942d7b499d6399568f106b63976d90265f4", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 2, + "file": "scripts/CLAUDE.md", + "last_commit": "2026-04-10T02:02:49+02:00", + "last_commit_sha": "04618942d7b499d6399568f106b63976d90265f4", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 2, + "file": "template/CLAUDE.md", + "last_commit": "2026-04-10T02:02:49+02:00", + "last_commit_sha": "04618942d7b499d6399568f106b63976d90265f4", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 2, + "file": "template/CLAUDE.md.jinja", + "last_commit": "2026-04-10T02:02:49+02:00", + "last_commit_sha": "04618942d7b499d6399568f106b63976d90265f4", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 2, + "file": "tests/CLAUDE.md", + "last_commit": "2026-04-10T02:02:49+02:00", + "last_commit_sha": "04618942d7b499d6399568f106b63976d90265f4", "status": "green" }, { "age_days": 0, "commits_since": 1, + "file": "template/.vscode/settings.json.jinja", + "last_commit": "2026-04-10T00:04:28+00:00", + "last_commit_sha": "66b28d9b7f12d330f127e8aed91a7ad588d80a75", + "status": "green" + }, + { + "age_days": 0, + "commits_since": 0, + "file": "template/.claude/skills/cron-scheduling/SKILL.md", + "last_commit": "2026-04-10T00:06:46+00:00", + "last_commit_sha": "ee334cc1ebe209673a8f148f8fbf193f9c2544a6", + "status": "green" + }, + { + "age_days": 1, + "commits_since": 20, + "file": "template/.claude/skills/pytest/references/anti-patterns.md", + "last_commit": "2026-04-08T20:05:38+02:00", + "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "status": "yellow" + }, + { + "age_days": 1, + "commits_since": 20, + "file": "template/.claude/skills/pytest/references/assertions.md", + "last_commit": "2026-04-08T20:05:38+02:00", + "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "status": "yellow" + }, + { + "age_days": 1, + "commits_since": 20, + "file": "template/.claude/skills/pytest/references/mocking.md", + "last_commit": "2026-04-08T20:05:38+02:00", + "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "status": "yellow" + }, + { + "age_days": 1, + "commits_since": 20, + "file": "template/.claude/skills/pytest/references/parametrize-and-markers.md", + "last_commit": "2026-04-08T20:05:38+02:00", + "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "status": "yellow" + }, + { + "age_days": 1, + "commits_since": 20, + "file": "template/.claude/skills/pytest/references/test-organization.md", + "last_commit": "2026-04-08T20:05:38+02:00", + "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "status": "yellow" + }, + { + "age_days": 1, + "commits_since": 20, + "file": "template/.claude/skills/pytest/references/test-types.md", + "last_commit": "2026-04-08T20:05:38+02:00", + "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "status": "yellow" + }, + { + "age_days": 1, + "commits_since": 12, + "file": ".github/workflows/file-freshness.yml", + "last_commit": "2026-04-08T23:14:04+02:00", + "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", + "status": "yellow" + }, + { + "age_days": 1, + "commits_since": 12, + "file": ".pre-commit-config.yaml", + "last_commit": "2026-04-08T23:14:04+02:00", + "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", + "status": "yellow" + }, + { + "age_days": 1, + "commits_since": 12, + "file": "assets/freshness_ignore.json", + "last_commit": "2026-04-08T23:14:04+02:00", + "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", + "status": "yellow" + }, + { + "age_days": 1, + "commits_since": 12, + "file": "justfile", + "last_commit": "2026-04-08T23:14:04+02:00", + "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", + "status": "yellow" + }, + { + "age_days": 1, + "commits_since": 12, + "file": "scripts/repo_file_freshness.py", + "last_commit": "2026-04-08T23:14:04+02:00", + "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", + "status": "yellow" + }, + { + "age_days": 1, + "commits_since": 12, "file": "template/.claude/skills/pytest/references/fixtures.md", "last_commit": "2026-04-08T23:14:04+02:00", "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", - "status": "green" + "status": "yellow" }, { - "age_days": 0, - "commits_since": 1, + "age_days": 1, + "commits_since": 12, "file": "tests/test_repo_file_freshness.py", "last_commit": "2026-04-08T23:14:04+02:00", "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", - "status": "green" + "status": "yellow" }, { - "age_days": 0, - "commits_since": 1, + "age_days": 1, + "commits_since": 12, "file": "tests/test_template.py", "last_commit": "2026-04-08T23:14:04+02:00", "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", - "status": "green" + "status": "yellow" }, { "age_days": 0, - "commits_since": 1, - "file": "uv.lock", - "last_commit": "2026-04-08T23:14:04+02:00", - "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", - "status": "green" + "commits_since": 10, + "file": "template/.claude/skills/markdown/SKILL.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", + "status": "yellow" }, { "age_days": 0, - "commits_since": 14, - "file": "copier.yml", - "last_commit": "2026-04-08T16:55:38Z", - "last_commit_sha": "134674da19840f482d60ebe507c50958a19d3500", + "commits_since": 10, + "file": "template/.claude/skills/markdown/references/anti-patterns-cheatsheet.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 12, - "file": ".github/labeler.yml", - "last_commit": "2026-04-08T19:10:47+02:00", - "last_commit_sha": "d0f268c5bdab2179b014c99ca7de2bdc7b151606", + "commits_since": 10, + "file": "template/.claude/skills/markdown/references/code-and-links.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 11, - "file": ".claude/hooks/README.md", - "last_commit": "2026-04-08T19:49:04+02:00", - "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "commits_since": 10, + "file": "template/.claude/skills/markdown/references/document-structure.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 11, - "file": ".claude/hooks/pre-config-protection.sh", - "last_commit": "2026-04-08T19:49:04+02:00", - "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "commits_since": 10, + "file": "template/.claude/skills/markdown/references/extended-syntax.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 11, - "file": ".claude/hooks/pre-write-src-test-reminder.sh", - "last_commit": "2026-04-08T19:49:04+02:00", - "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "commits_since": 10, + "file": "template/.claude/skills/markdown/references/file-management.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 11, - "file": ".claude/settings.json", - "last_commit": "2026-04-08T19:49:04+02:00", - "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "commits_since": 10, + "file": "template/.claude/skills/markdown/references/formatting-syntax.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 11, - "file": "pyproject.toml", - "last_commit": "2026-04-08T19:49:04+02:00", - "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "commits_since": 10, + "file": "template/.claude/skills/markdown/references/tables-images-html.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 11, - "file": "template/.claude/hooks/README.md", - "last_commit": "2026-04-08T19:49:04+02:00", - "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "commits_since": 10, + "file": "template/.claude/skills/pytest/references/ci-and-plugins.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 11, - "file": "template/.claude/hooks/pre-config-protection.sh", - "last_commit": "2026-04-08T19:49:04+02:00", - "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "commits_since": 10, + "file": "template/.claude/skills/python-code-quality/SKILL.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 11, - "file": "template/.claude/hooks/pre-write-src-test-reminder.sh", - "last_commit": "2026-04-08T19:49:04+02:00", - "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "commits_since": 10, + "file": "template/.claude/skills/python-code-quality/references/bandit.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 11, - "file": "template/.claude/rules/python/hooks.md", - "last_commit": "2026-04-08T19:49:04+02:00", - "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "commits_since": 10, + "file": "template/.claude/skills/python-code-quality/references/basedpyright.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 11, - "file": "template/.claude/settings.json", - "last_commit": "2026-04-08T19:49:04+02:00", - "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "commits_since": 10, + "file": "template/.claude/skills/python-code-quality/references/complete-configs.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 11, - "file": "template/pyproject.toml.jinja", - "last_commit": "2026-04-08T19:49:04+02:00", - "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "commits_since": 10, + "file": "template/.claude/skills/python-code-quality/references/pre-commit.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 9, - "file": "temp/pyproject.toml", - "last_commit": "2026-04-08T20:05:38+02:00", - "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "commits_since": 10, + "file": "template/.claude/skills/python-code-quality/references/ruff.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 9, - "file": "template/.claude/skills/pytest/SKILL.md", - "last_commit": "2026-04-08T20:05:38+02:00", - "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "commits_since": 10, + "file": "template/.claude/skills/python-code-quality/references/semgrep.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 9, - "file": "template/.claude/skills/pytest/references/anti-patterns.md", - "last_commit": "2026-04-08T20:05:38+02:00", - "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "commits_since": 10, + "file": "template/.claude/skills/python-code-reviewer/SKILL.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 9, - "file": "template/.claude/skills/pytest/references/assertions.md", - "last_commit": "2026-04-08T20:05:38+02:00", - "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "commits_since": 10, + "file": "template/.claude/skills/python-code-reviewer/references/checklist.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 9, - "file": "template/.claude/skills/pytest/references/ci-and-plugins.md", - "last_commit": "2026-04-08T20:05:38+02:00", - "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "commits_since": 10, + "file": "template/.claude/skills/python-code-reviewer/references/output-format.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 9, - "file": "template/.claude/skills/pytest/references/mocking.md", - "last_commit": "2026-04-08T20:05:38+02:00", - "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "commits_since": 10, + "file": "template/.claude/skills/python-code-reviewer/references/python-patterns.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 9, - "file": "template/.claude/skills/pytest/references/parametrize-and-markers.md", - "last_commit": "2026-04-08T20:05:38+02:00", - "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "commits_since": 10, + "file": "template/.claude/skills/skill-maintainer/references/audit-checklist.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 9, - "file": "template/.claude/skills/pytest/references/test-organization.md", - "last_commit": "2026-04-08T20:05:38+02:00", - "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "commits_since": 10, + "file": "template/.claude/skills/skill-maintainer/references/audit-examples.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { "age_days": 0, - "commits_since": 9, - "file": "template/.claude/skills/pytest/references/test-types.md", - "last_commit": "2026-04-08T20:05:38+02:00", - "last_commit_sha": "6d0f7f2e91fbafc7a549a0b3daafaf4b0c3e3417", + "commits_since": 10, + "file": "template/.claude/skills/skill-maintainer/references/maintenance-log.md", + "last_commit": "2026-04-09T11:03:17+02:00", + "last_commit_sha": "43e4ae8eee5163e004dc4f87eae9ec2c592e8c83", "status": "yellow" }, { - "age_days": 7, - "commits_since": 105, + "age_days": 0, + "commits_since": 7, + "file": "template/.claude/skills/pytest/SKILL.md", + "last_commit": "2026-04-09T11:21:14+02:00", + "last_commit_sha": "6ef6d84e8e23b28484622620675832dbb40bfe0b", + "status": "yellow" + }, + { + "age_days": 0, + "commits_since": 6, + "file": "docs/repo_file_status_report.md", + "last_commit": "2026-04-09T11:27:53+02:00", + "last_commit_sha": "03b1778702b21f508ec66bd4e4e5098366416ca2", + "status": "yellow" + }, + { + "age_days": 0, + "commits_since": 6, + "file": "template/.claude/skills/pytest/scripts/find_slow_tests.py", + "last_commit": "2026-04-09T11:27:53+02:00", + "last_commit_sha": "03b1778702b21f508ec66bd4e4e5098366416ca2", + "status": "yellow" + }, + { + "age_days": 0, + "commits_since": 6, + "file": "template/.claude/skills/pytest/scripts/mark_slow_tests.py", + "last_commit": "2026-04-09T11:27:53+02:00", + "last_commit_sha": "03b1778702b21f508ec66bd4e4e5098366416ca2", + "status": "yellow" + }, + { + "age_days": 8, + "commits_since": 116, "file": ".vscode/extensions.json", "last_commit": "2026-04-01T16:16:11+02:00", "last_commit_sha": "f94e6af3e7f3cdc97388c16477d8a311779445b8", "status": "red" }, { - "age_days": 7, - "commits_since": 105, + "age_days": 8, + "commits_since": 116, "file": ".vscode/launch.json", "last_commit": "2026-04-01T16:16:11+02:00", "last_commit_sha": "f94e6af3e7f3cdc97388c16477d8a311779445b8", "status": "red" }, { - "age_days": 7, - "commits_since": 105, + "age_days": 8, + "commits_since": 116, "file": ".vscode/settings.json", "last_commit": "2026-04-01T16:16:11+02:00", "last_commit_sha": "f94e6af3e7f3cdc97388c16477d8a311779445b8", "status": "red" }, { - "age_days": 7, - "commits_since": 105, + "age_days": 8, + "commits_since": 116, "file": "LICENSE", "last_commit": "2026-04-01T16:16:11+02:00", "last_commit_sha": "f94e6af3e7f3cdc97388c16477d8a311779445b8", "status": "red" }, { - "age_days": 7, - "commits_since": 105, + "age_days": 8, + "commits_since": 116, "file": "template/.github/CODE_OF_CONDUCT.md.jinja", "last_commit": "2026-04-01T16:16:11+02:00", "last_commit_sha": "f94e6af3e7f3cdc97388c16477d8a311779445b8", "status": "red" }, { - "age_days": 7, - "commits_since": 105, + "age_days": 8, + "commits_since": 116, "file": "template/.github/PULL_REQUEST_TEMPLATE.md.jinja", "last_commit": "2026-04-01T16:16:11+02:00", "last_commit_sha": "f94e6af3e7f3cdc97388c16477d8a311779445b8", "status": "red" }, { - "age_days": 7, - "commits_since": 105, + "age_days": 8, + "commits_since": 116, "file": "template/.vscode/extensions.json.jinja", "last_commit": "2026-04-01T16:16:11+02:00", "last_commit_sha": "f94e6af3e7f3cdc97388c16477d8a311779445b8", "status": "red" }, { - "age_days": 7, - "commits_since": 105, + "age_days": 8, + "commits_since": 116, "file": "template/.vscode/launch.json.jinja", "last_commit": "2026-04-01T16:16:11+02:00", "last_commit_sha": "f94e6af3e7f3cdc97388c16477d8a311779445b8", "status": "red" }, { - "age_days": 7, - "commits_since": 105, - "file": "template/.vscode/settings.json.jinja", - "last_commit": "2026-04-01T16:16:11+02:00", - "last_commit_sha": "f94e6af3e7f3cdc97388c16477d8a311779445b8", - "status": "red" - }, - { - "age_days": 7, - "commits_since": 105, + "age_days": 8, + "commits_since": 116, "file": "template/LICENSE.jinja", "last_commit": "2026-04-01T16:16:11+02:00", "last_commit_sha": "f94e6af3e7f3cdc97388c16477d8a311779445b8", "status": "red" }, { - "age_days": 7, - "commits_since": 103, + "age_days": 8, + "commits_since": 114, "file": "template/.github/ISSUE_TEMPLATE/bug_report.md.jinja", "last_commit": "2026-04-01T18:12:59+02:00", "last_commit_sha": "5c17c5dab50090fef6a209cd68d661d29fb8da42", "status": "red" }, { - "age_days": 7, - "commits_since": 103, + "age_days": 8, + "commits_since": 114, "file": "template/.github/ISSUE_TEMPLATE/config.yml.jinja", "last_commit": "2026-04-01T18:12:59+02:00", "last_commit_sha": "5c17c5dab50090fef6a209cd68d661d29fb8da42", "status": "red" }, { - "age_days": 7, - "commits_since": 103, + "age_days": 8, + "commits_since": 114, "file": "template/.github/ISSUE_TEMPLATE/feature_request.md.jinja", "last_commit": "2026-04-01T18:12:59+02:00", "last_commit_sha": "5c17c5dab50090fef6a209cd68d661d29fb8da42", "status": "red" }, { - "age_days": 7, - "commits_since": 102, + "age_days": 8, + "commits_since": 113, "file": ".claude/commands/generate.md", "last_commit": "2026-04-01T23:49:24+02:00", "last_commit_sha": "f7ff87d01252787cb3db727287da65d38b761406", "status": "red" }, { - "age_days": 7, - "commits_since": 102, + "age_days": 8, + "commits_since": 113, "file": ".claude/commands/test.md", "last_commit": "2026-04-01T23:49:24+02:00", "last_commit_sha": "f7ff87d01252787cb3db727287da65d38b761406", "status": "red" }, { - "age_days": 7, - "commits_since": 101, + "age_days": 8, + "commits_since": 112, "file": "template/tests/{{ package_name }}/test_core.py.jinja", "last_commit": "2026-04-02T00:35:48+02:00", "last_commit_sha": "ce0a8e7783e70700b8edbcd4c4cad79caac7c31e", @@ -401,879 +673,855 @@ }, { "age_days": 7, - "commits_since": 100, - "file": ".claude/commands/ci.md", - "last_commit": "2026-04-01T23:54:33Z", - "last_commit_sha": "6efdf417f100941b9c6e488b82acb6d25203ebff", - "status": "red" - }, - { - "age_days": 6, - "commits_since": 79, + "commits_since": 90, "file": "template/.claude/commands/ci.md", "last_commit": "2026-04-02T20:14:16+02:00", "last_commit_sha": "1e2f6a6ea22f4e72d9d7104c7cebe804740f363f", "status": "red" }, { - "age_days": 6, - "commits_since": 79, + "age_days": 7, + "commits_since": 90, "file": "template/.claude/commands/generate.md", "last_commit": "2026-04-02T20:14:16+02:00", "last_commit_sha": "1e2f6a6ea22f4e72d9d7104c7cebe804740f363f", "status": "red" }, { - "age_days": 6, - "commits_since": 79, + "age_days": 7, + "commits_since": 90, "file": "template/.claude/commands/test.md", "last_commit": "2026-04-02T20:14:16+02:00", "last_commit_sha": "1e2f6a6ea22f4e72d9d7104c7cebe804740f363f", "status": "red" }, { - "age_days": 6, - "commits_since": 79, + "age_days": 7, + "commits_since": 90, "file": "template/{{_copier_conf.answers_file}}.jinja", "last_commit": "2026-04-02T20:14:16+02:00", "last_commit_sha": "1e2f6a6ea22f4e72d9d7104c7cebe804740f363f", "status": "red" }, { - "age_days": 6, - "commits_since": 73, + "age_days": 7, + "commits_since": 84, "file": "scripts/update_files.sh", "last_commit": "2026-04-02T22:06:25+02:00", "last_commit_sha": "a2183edf5e9022f26d410ee148b64da0b973e250", "status": "red" }, { - "age_days": 6, - "commits_since": 73, + "age_days": 7, + "commits_since": 84, "file": "template/.github/CODEOWNERS.jinja", "last_commit": "2026-04-02T22:06:25+02:00", "last_commit_sha": "a2183edf5e9022f26d410ee148b64da0b973e250", "status": "red" }, { - "age_days": 6, - "commits_since": 73, + "age_days": 7, + "commits_since": 84, "file": "template/tests/__init__.py.jinja", "last_commit": "2026-04-02T22:06:25+02:00", "last_commit_sha": "a2183edf5e9022f26d410ee148b64da0b973e250", "status": "red" }, { - "age_days": 6, - "commits_since": 73, + "age_days": 7, + "commits_since": 84, "file": "template/tests/{{ package_name }}/__init__.py.jinja", "last_commit": "2026-04-02T22:06:25+02:00", "last_commit_sha": "a2183edf5e9022f26d410ee148b64da0b973e250", "status": "red" }, { - "age_days": 6, - "commits_since": 72, + "age_days": 7, + "commits_since": 83, "file": "scripts/bump_version.py", - "last_commit": "2026-04-02T19:00:55Z", + "last_commit": "2026-04-02T19:00:55+00:00", "last_commit_sha": "033f2c34e9e83c565b000a9115c827f8b49587f6", "status": "red" }, { - "age_days": 6, - "commits_since": 71, + "age_days": 7, + "commits_since": 82, "file": "template/src/{{ package_name }}/common/__init__.py.jinja", - "last_commit": "2026-04-02T19:04:46Z", + "last_commit": "2026-04-02T19:04:46+00:00", "last_commit_sha": "04438478666a70a4ccd21b1f5228ad4be8e0e89e", "status": "red" }, { - "age_days": 6, - "commits_since": 71, + "age_days": 7, + "commits_since": 82, "file": "template/src/{{ package_name }}/common/decorators.py.jinja", - "last_commit": "2026-04-02T19:04:46Z", + "last_commit": "2026-04-02T19:04:46+00:00", "last_commit_sha": "04438478666a70a4ccd21b1f5228ad4be8e0e89e", "status": "red" }, { - "age_days": 6, - "commits_since": 71, + "age_days": 7, + "commits_since": 82, "file": "template/src/{{ package_name }}/common/file_manager.py.jinja", - "last_commit": "2026-04-02T19:04:46Z", + "last_commit": "2026-04-02T19:04:46+00:00", "last_commit_sha": "04438478666a70a4ccd21b1f5228ad4be8e0e89e", "status": "red" }, { - "age_days": 6, - "commits_since": 64, + "age_days": 7, + "commits_since": 75, "file": "template/src/{{ package_name }}/common/utils.py.jinja", - "last_commit": "2026-04-02T20:19:59Z", + "last_commit": "2026-04-02T20:19:59+00:00", "last_commit_sha": "afc1839bcbf4b05953d5c59e314975c54b5e8cb6", "status": "red" }, { - "age_days": 5, - "commits_since": 56, + "age_days": 6, + "commits_since": 67, "file": "README.md", "last_commit": "2026-04-03T12:43:10+02:00", "last_commit_sha": "a5176a3a6a6f77ea581421750fe07cdfb8704947", "status": "red" }, { - "age_days": 5, - "commits_since": 54, + "age_days": 6, + "commits_since": 65, "file": ".claude/commands/coverage.md", "last_commit": "2026-04-03T16:37:11+02:00", "last_commit_sha": "a53a5c638b09732a7d3b9babd61eaf5535a1a6c1", "status": "red" }, { - "age_days": 5, - "commits_since": 54, + "age_days": 6, + "commits_since": 65, "file": ".claude/commands/docs-check.md", "last_commit": "2026-04-03T16:37:11+02:00", "last_commit_sha": "a53a5c638b09732a7d3b9babd61eaf5535a1a6c1", "status": "red" }, { - "age_days": 5, - "commits_since": 54, + "age_days": 6, + "commits_since": 65, "file": ".claude/commands/release.md", "last_commit": "2026-04-03T16:55:34+02:00", "last_commit_sha": "159de120871d253449198344b42a76c7eef8baf4", "status": "red" }, { - "age_days": 5, - "commits_since": 54, + "age_days": 6, + "commits_since": 65, "file": ".claude/commands/review.md", "last_commit": "2026-04-03T16:37:11+02:00", "last_commit_sha": "a53a5c638b09732a7d3b9babd61eaf5535a1a6c1", "status": "red" }, { - "age_days": 5, - "commits_since": 54, + "age_days": 6, + "commits_since": 65, "file": ".claude/commands/standards.md", "last_commit": "2026-04-03T16:37:11+02:00", "last_commit_sha": "a53a5c638b09732a7d3b9babd61eaf5535a1a6c1", "status": "red" }, { - "age_days": 5, - "commits_since": 54, + "age_days": 6, + "commits_since": 65, "file": ".claude/commands/update-claude-md.md", "last_commit": "2026-04-03T16:37:11+02:00", "last_commit_sha": "a53a5c638b09732a7d3b9babd61eaf5535a1a6c1", "status": "red" }, { - "age_days": 5, - "commits_since": 54, + "age_days": 6, + "commits_since": 65, "file": "template/.claude/commands/coverage.md.jinja", "last_commit": "2026-04-03T16:37:11+02:00", "last_commit_sha": "a53a5c638b09732a7d3b9babd61eaf5535a1a6c1", "status": "red" }, { - "age_days": 5, - "commits_since": 54, + "age_days": 6, + "commits_since": 65, "file": "template/.claude/commands/docs-check.md.jinja", "last_commit": "2026-04-03T16:37:11+02:00", "last_commit_sha": "a53a5c638b09732a7d3b9babd61eaf5535a1a6c1", "status": "red" }, { - "age_days": 5, - "commits_since": 54, + "age_days": 6, + "commits_since": 65, "file": "template/.claude/commands/release.md.jinja", "last_commit": "2026-04-03T16:55:34+02:00", "last_commit_sha": "159de120871d253449198344b42a76c7eef8baf4", "status": "red" }, { - "age_days": 5, - "commits_since": 54, + "age_days": 6, + "commits_since": 65, "file": "template/.claude/commands/review.md.jinja", "last_commit": "2026-04-03T16:37:11+02:00", "last_commit_sha": "a53a5c638b09732a7d3b9babd61eaf5535a1a6c1", "status": "red" }, { - "age_days": 5, - "commits_since": 54, + "age_days": 6, + "commits_since": 65, "file": "template/.claude/commands/standards.md.jinja", "last_commit": "2026-04-03T16:37:11+02:00", "last_commit_sha": "a53a5c638b09732a7d3b9babd61eaf5535a1a6c1", "status": "red" }, { - "age_days": 5, - "commits_since": 53, + "age_days": 6, + "commits_since": 64, "file": ".claude/commands/dependency-check.md", "last_commit": "2026-04-03T17:52:15+02:00", "last_commit_sha": "fff01e48c4d8b222ce3c35be5dcb633171a3ba93", "status": "red" }, { - "age_days": 5, - "commits_since": 53, + "age_days": 6, + "commits_since": 64, "file": ".claude/commands/validate-release.md", "last_commit": "2026-04-03T17:52:15+02:00", "last_commit_sha": "fff01e48c4d8b222ce3c35be5dcb633171a3ba93", "status": "red" }, { - "age_days": 5, - "commits_since": 53, + "age_days": 6, + "commits_since": 64, "file": "template/.claude/commands/guided-template-update.md.jinja", "last_commit": "2026-04-03T17:52:15+02:00", "last_commit_sha": "fff01e48c4d8b222ce3c35be5dcb633171a3ba93", "status": "red" }, { - "age_days": 5, - "commits_since": 52, + "age_days": 6, + "commits_since": 63, "file": "template/src/{{ package_name }}/core.py.jinja", "last_commit": "2026-04-04T00:09:05+02:00", "last_commit_sha": "cd5e96f84b194696e521e5460f06e7d7083657f8", "status": "red" }, { - "age_days": 3, - "commits_since": 42, + "age_days": 4, + "commits_since": 53, "file": ".github/dependabot.yml", "last_commit": "2026-04-05T15:07:34+02:00", "last_commit_sha": "a7c06b5409aefeb5dfbc76473746cd1bc5e999c1", "status": "red" }, { - "age_days": 3, - "commits_since": 41, + "age_days": 4, + "commits_since": 52, "file": ".github/workflows/dependency-review.yml", "last_commit": "2026-04-05T18:30:54+02:00", "last_commit_sha": "4fb273b770cef7ff03c78d3dc22e50066d03a54e", "status": "red" }, { - "age_days": 3, - "commits_since": 41, + "age_days": 4, + "commits_since": 52, "file": ".github/workflows/lint.yml", "last_commit": "2026-04-05T18:30:54+02:00", "last_commit_sha": "4fb273b770cef7ff03c78d3dc22e50066d03a54e", "status": "red" }, { - "age_days": 3, - "commits_since": 41, + "age_days": 4, + "commits_since": 52, "file": ".github/workflows/release.yml", "last_commit": "2026-04-05T18:30:54+02:00", "last_commit_sha": "4fb273b770cef7ff03c78d3dc22e50066d03a54e", "status": "red" }, { - "age_days": 3, - "commits_since": 41, + "age_days": 4, + "commits_since": 52, "file": ".github/workflows/stale.yml", "last_commit": "2026-04-05T18:30:54+02:00", "last_commit_sha": "4fb273b770cef7ff03c78d3dc22e50066d03a54e", "status": "red" }, { - "age_days": 3, - "commits_since": 41, + "age_days": 4, + "commits_since": 52, "file": "template/.github/workflows/ci.yml.jinja", "last_commit": "2026-04-05T18:30:54+02:00", "last_commit_sha": "4fb273b770cef7ff03c78d3dc22e50066d03a54e", "status": "red" }, { - "age_days": 3, - "commits_since": 41, + "age_days": 4, + "commits_since": 52, "file": "template/.github/workflows/dependency-review.yml.jinja", "last_commit": "2026-04-05T18:30:54+02:00", "last_commit_sha": "4fb273b770cef7ff03c78d3dc22e50066d03a54e", "status": "red" }, { - "age_days": 3, - "commits_since": 41, + "age_days": 4, + "commits_since": 52, "file": "template/.github/workflows/docs.yml.jinja", "last_commit": "2026-04-05T18:30:54+02:00", "last_commit_sha": "4fb273b770cef7ff03c78d3dc22e50066d03a54e", "status": "red" }, { - "age_days": 3, - "commits_since": 41, + "age_days": 4, + "commits_since": 52, "file": "template/.github/workflows/lint.yml.jinja", "last_commit": "2026-04-05T18:30:54+02:00", "last_commit_sha": "4fb273b770cef7ff03c78d3dc22e50066d03a54e", "status": "red" }, { - "age_days": 3, - "commits_since": 41, + "age_days": 4, + "commits_since": 52, "file": "template/.github/workflows/pre-commit-update.yml.jinja", "last_commit": "2026-04-05T18:30:54+02:00", "last_commit_sha": "4fb273b770cef7ff03c78d3dc22e50066d03a54e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/post-bash-pr-created.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/post-edit-copier-migration.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/post-edit-jinja.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/post-edit-markdown.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/post-edit-python.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/post-edit-template-mirror.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/pre-bash-block-no-verify.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/pre-bash-commit-quality.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/pre-bash-git-push-reminder.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/pre-compact-save-state.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/pre-protect-uv-lock.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/pre-suggest-compact.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/pre-write-doc-file-warning.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/pre-write-jinja-syntax.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/session-start-bootstrap.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/stop-cost-tracker.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/stop-desktop-notify.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/stop-evaluate-session.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/hooks/stop-session-end.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/README.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/bash/coding-style.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/bash/security.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/common/code-review.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/common/coding-style.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/common/development-workflow.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/common/git-workflow.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/common/security.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/common/testing.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/jinja/coding-style.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/jinja/testing.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/markdown/conventions.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/python/coding-style.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/python/hooks.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/python/patterns.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/python/security.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/python/testing.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": ".claude/rules/yaml/conventions.md", - "last_commit": "2026-04-06T10:56:27Z", - "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", - "status": "red" - }, - { - "age_days": 2, - "commits_since": 40, - "file": "CLAUDE.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/hooks/post-edit-markdown.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/hooks/post-edit-python.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/hooks/pre-bash-block-no-verify.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/hooks/pre-bash-commit-quality.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/hooks/pre-bash-git-push-reminder.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/hooks/pre-protect-uv-lock.sh", "last_commit": "2026-04-06T12:48:12+02:00", "last_commit_sha": "f8e2999109d6a6803c25de0779004247f5e0677e", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/rules/README.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/rules/bash/coding-style.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/rules/bash/security.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/rules/common/code-review.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/rules/common/coding-style.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/rules/common/development-workflow.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/rules/common/git-workflow.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/rules/common/security.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/rules/common/testing.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/rules/markdown/conventions.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/rules/python/coding-style.md.jinja", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/rules/python/patterns.md.jinja", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/rules/python/security.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 40, + "age_days": 3, + "commits_since": 51, "file": "template/.claude/rules/python/testing.md", - "last_commit": "2026-04-06T10:56:27Z", + "last_commit": "2026-04-06T10:56:27+00:00", "last_commit_sha": "cd27f9ccd509495d408dc8d95dc633d40488e99c", "status": "red" }, { - "age_days": 2, - "commits_since": 34, + "age_days": 3, + "commits_since": 45, "file": "template/.github/workflows/security.yml.jinja", "last_commit": "2026-04-06T17:19:49+02:00", "last_commit_sha": "60c84b65ba676c5bc241f50f090530f18453a419", "status": "red" }, { - "age_days": 1, - "commits_since": 33, + "age_days": 2, + "commits_since": 44, "file": ".github/renovate.json", "last_commit": "2026-04-07T13:26:04+02:00", "last_commit_sha": "94b645b111f6a054d82eba17e44aaec3ec86bcac", "status": "red" }, { - "age_days": 1, - "commits_since": 33, + "age_days": 2, + "commits_since": 44, "file": ".secrets.baseline", "last_commit": "2026-04-07T13:26:04+02:00", "last_commit_sha": "94b645b111f6a054d82eba17e44aaec3ec86bcac", "status": "red" }, { - "age_days": 1, - "commits_since": 33, + "age_days": 2, + "commits_since": 44, "file": "template/.github/renovate.json.jinja", "last_commit": "2026-04-07T13:26:04+02:00", "last_commit_sha": "94b645b111f6a054d82eba17e44aaec3ec86bcac", "status": "red" }, { - "age_days": 1, - "commits_since": 33, + "age_days": 2, + "commits_since": 44, "file": "template/.pre-commit-config.yaml.jinja", "last_commit": "2026-04-07T13:26:04+02:00", "last_commit_sha": "94b645b111f6a054d82eba17e44aaec3ec86bcac", "status": "red" }, { - "age_days": 1, - "commits_since": 33, + "age_days": 2, + "commits_since": 44, "file": "template/.secrets.baseline", "last_commit": "2026-04-07T13:26:04+02:00", "last_commit_sha": "94b645b111f6a054d82eba17e44aaec3ec86bcac", "status": "red" }, { - "age_days": 1, - "commits_since": 33, - "file": "template/CLAUDE.md.jinja", - "last_commit": "2026-04-07T13:26:04+02:00", - "last_commit_sha": "94b645b111f6a054d82eba17e44aaec3ec86bcac", - "status": "red" - }, - { - "age_days": 1, - "commits_since": 33, + "age_days": 2, + "commits_since": 44, "file": "template/CONTRIBUTING.md.jinja", "last_commit": "2026-04-07T13:26:04+02:00", "last_commit_sha": "94b645b111f6a054d82eba17e44aaec3ec86bcac", "status": "red" }, { - "age_days": 1, - "commits_since": 33, + "age_days": 2, + "commits_since": 44, "file": "template/SECURITY.md.jinja", "last_commit": "2026-04-07T13:26:04+02:00", "last_commit_sha": "94b645b111f6a054d82eba17e44aaec3ec86bcac", "status": "red" }, { - "age_days": 1, - "commits_since": 33, + "age_days": 2, + "commits_since": 44, "file": "template/src/{{ package_name }}/__init__.py.jinja", "last_commit": "2026-04-07T13:26:04+02:00", "last_commit_sha": "94b645b111f6a054d82eba17e44aaec3ec86bcac", "status": "red" }, { - "age_days": 1, - "commits_since": 33, + "age_days": 2, + "commits_since": 44, "file": "template/tests/test_imports.py.jinja", "last_commit": "2026-04-07T13:26:04+02:00", "last_commit_sha": "94b645b111f6a054d82eba17e44aaec3ec86bcac", "status": "red" }, { - "age_days": 1, - "commits_since": 31, + "age_days": 2, + "commits_since": 42, "file": "template/README.md.jinja", "last_commit": "2026-04-07T13:37:48+02:00", "last_commit_sha": "c0b84317a9d442b31ce628c6ca2d58d0e14d3f7a", @@ -1281,7 +1529,7 @@ }, { "age_days": 1, - "commits_since": 29, + "commits_since": 40, "file": "env.example", "last_commit": "2026-04-08T08:22:29+02:00", "last_commit_sha": "6aa1e567a2d473cafaec1c46299258251684c8a6", @@ -1289,7 +1537,7 @@ }, { "age_days": 1, - "commits_since": 29, + "commits_since": 40, "file": "template/.gitignore.jinja", "last_commit": "2026-04-08T08:22:29+02:00", "last_commit_sha": "6aa1e567a2d473cafaec1c46299258251684c8a6", @@ -1297,170 +1545,266 @@ }, { "age_days": 1, - "commits_since": 29, + "commits_since": 40, "file": "template/env.example.jinja", "last_commit": "2026-04-08T08:22:29+02:00", "last_commit_sha": "6aa1e567a2d473cafaec1c46299258251684c8a6", "status": "red" }, { - "age_days": 0, - "commits_since": 28, + "age_days": 1, + "commits_since": 39, "file": ".github/workflows/labeler.yml", - "last_commit": "2026-04-08T10:27:54Z", + "last_commit": "2026-04-08T10:27:54+00:00", "last_commit_sha": "153d40916dd0b4e6c8c038597032bffa291ede2d", "status": "red" }, { - "age_days": 0, - "commits_since": 28, + "age_days": 1, + "commits_since": 39, "file": ".github/workflows/pre-commit-update.yml", - "last_commit": "2026-04-08T10:27:54Z", + "last_commit": "2026-04-08T10:27:54+00:00", "last_commit_sha": "153d40916dd0b4e6c8c038597032bffa291ede2d", "status": "red" }, { - "age_days": 0, - "commits_since": 28, + "age_days": 1, + "commits_since": 39, "file": ".github/workflows/security.yml", - "last_commit": "2026-04-08T10:27:54Z", + "last_commit": "2026-04-08T10:27:54+00:00", "last_commit_sha": "153d40916dd0b4e6c8c038597032bffa291ede2d", "status": "red" }, { - "age_days": 0, - "commits_since": 28, + "age_days": 1, + "commits_since": 39, "file": ".github/workflows/sync-skip-if-exists.yml", - "last_commit": "2026-04-08T10:27:54Z", + "last_commit": "2026-04-08T10:27:54+00:00", "last_commit_sha": "153d40916dd0b4e6c8c038597032bffa291ede2d", "status": "red" }, { - "age_days": 0, - "commits_since": 28, + "age_days": 1, + "commits_since": 39, "file": ".github/workflows/tests.yml", - "last_commit": "2026-04-08T10:27:54Z", + "last_commit": "2026-04-08T10:27:54+00:00", "last_commit_sha": "153d40916dd0b4e6c8c038597032bffa291ede2d", "status": "red" }, { - "age_days": 0, - "commits_since": 21, + "age_days": 1, + "commits_since": 32, "file": ".claude/rules/copier/template-conventions.md", "last_commit": "2026-04-08T18:35:21+02:00", "last_commit_sha": "b08135a3b1e6e6266d746902a50d946e5c2abca9", "status": "red" }, { - "age_days": 0, - "commits_since": 21, + "age_days": 1, + "commits_since": 32, "file": "scripts/sync_skip_if_exists.py", - "last_commit": "2026-04-08T16:34:44Z", + "last_commit": "2026-04-08T16:34:44+00:00", "last_commit_sha": "375611bbdd1c405ebbcc1bd1dfcc7583e6cb93ca", "status": "red" }, { - "age_days": 0, - "commits_since": 21, + "age_days": 1, + "commits_since": 32, "file": "template/.github/workflows/release.yml.jinja", "last_commit": "2026-04-08T18:35:21+02:00", "last_commit_sha": "b08135a3b1e6e6266d746902a50d946e5c2abca9", "status": "red" }, { - "age_days": 0, - "commits_since": 21, + "age_days": 1, + "commits_since": 32, "file": "template/docs/{% if include_docs %}ci.md{% endif %}.jinja", - "last_commit": "2026-04-08T16:34:44Z", + "last_commit": "2026-04-08T16:34:44+00:00", "last_commit_sha": "375611bbdd1c405ebbcc1bd1dfcc7583e6cb93ca", "status": "red" }, { - "age_days": 0, - "commits_since": 21, + "age_days": 1, + "commits_since": 32, "file": "template/docs/{% if include_docs %}index.md{% endif %}.jinja", - "last_commit": "2026-04-08T16:34:44Z", + "last_commit": "2026-04-08T16:34:44+00:00", "last_commit_sha": "375611bbdd1c405ebbcc1bd1dfcc7583e6cb93ca", "status": "red" }, { - "age_days": 0, - "commits_since": 21, + "age_days": 1, + "commits_since": 32, "file": "template/justfile.jinja", "last_commit": "2026-04-08T18:35:21+02:00", "last_commit_sha": "b08135a3b1e6e6266d746902a50d946e5c2abca9", "status": "red" }, { - "age_days": 0, - "commits_since": 21, + "age_days": 1, + "commits_since": 32, "file": "template/src/{{ package_name }}/common/bump_version.py.jinja", "last_commit": "2026-04-08T18:35:21+02:00", "last_commit_sha": "b08135a3b1e6e6266d746902a50d946e5c2abca9", "status": "red" }, { - "age_days": 0, - "commits_since": 21, + "age_days": 1, + "commits_since": 32, "file": "template/src/{{ package_name }}/common/logging_manager.py.jinja", "last_commit": "2026-04-08T18:35:21+02:00", "last_commit_sha": "b08135a3b1e6e6266d746902a50d946e5c2abca9", "status": "red" }, { - "age_days": 0, - "commits_since": 21, + "age_days": 1, + "commits_since": 32, "file": "template/src/{{ package_name }}/{% if include_cli %}cli.py{% endif %}.jinja", - "last_commit": "2026-04-08T16:34:44Z", + "last_commit": "2026-04-08T16:34:44+00:00", "last_commit_sha": "375611bbdd1c405ebbcc1bd1dfcc7583e6cb93ca", "status": "red" }, { - "age_days": 0, - "commits_since": 21, + "age_days": 1, + "commits_since": 32, "file": "template/tests/conftest.py.jinja", "last_commit": "2026-04-08T18:35:21+02:00", "last_commit_sha": "b08135a3b1e6e6266d746902a50d946e5c2abca9", "status": "red" }, { - "age_days": 0, - "commits_since": 21, + "age_days": 1, + "commits_since": 32, "file": "template/tests/{{ package_name }}/test_support.py.jinja", "last_commit": "2026-04-08T18:35:21+02:00", "last_commit_sha": "b08135a3b1e6e6266d746902a50d946e5c2abca9", "status": "red" }, { - "age_days": 0, - "commits_since": 21, + "age_days": 1, + "commits_since": 32, "file": "template/{% if include_docs %}mkdocs.yml{% endif %}.jinja", - "last_commit": "2026-04-08T16:34:44Z", + "last_commit": "2026-04-08T16:34:44+00:00", "last_commit_sha": "375611bbdd1c405ebbcc1bd1dfcc7583e6cb93ca", "status": "red" }, { - "age_days": 0, - "commits_since": 21, + "age_days": 1, + "commits_since": 32, "file": "template/{% if include_git_cliff %}cliff.toml{% endif %}.jinja", - "last_commit": "2026-04-08T16:34:44Z", + "last_commit": "2026-04-08T16:34:44+00:00", "last_commit_sha": "375611bbdd1c405ebbcc1bd1dfcc7583e6cb93ca", "status": "red" }, + { + "age_days": 1, + "commits_since": 25, + "file": "copier.yml", + "last_commit": "2026-04-08T16:55:38+00:00", + "last_commit_sha": "134674da19840f482d60ebe507c50958a19d3500", + "status": "red" + }, + { + "age_days": 1, + "commits_since": 23, + "file": ".github/labeler.yml", + "last_commit": "2026-04-08T19:10:47+02:00", + "last_commit_sha": "d0f268c5bdab2179b014c99ca7de2bdc7b151606", + "status": "red" + }, + { + "age_days": 1, + "commits_since": 22, + "file": ".claude/hooks/README.md", + "last_commit": "2026-04-08T19:49:04+02:00", + "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "status": "red" + }, + { + "age_days": 1, + "commits_since": 22, + "file": ".claude/hooks/pre-config-protection.sh", + "last_commit": "2026-04-08T19:49:04+02:00", + "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "status": "red" + }, + { + "age_days": 1, + "commits_since": 22, + "file": ".claude/hooks/pre-write-src-test-reminder.sh", + "last_commit": "2026-04-08T19:49:04+02:00", + "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "status": "red" + }, + { + "age_days": 1, + "commits_since": 22, + "file": ".claude/settings.json", + "last_commit": "2026-04-08T19:49:04+02:00", + "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "status": "red" + }, + { + "age_days": 1, + "commits_since": 22, + "file": "template/.claude/hooks/README.md", + "last_commit": "2026-04-08T19:49:04+02:00", + "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "status": "red" + }, + { + "age_days": 1, + "commits_since": 22, + "file": "template/.claude/hooks/pre-config-protection.sh", + "last_commit": "2026-04-08T19:49:04+02:00", + "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "status": "red" + }, + { + "age_days": 1, + "commits_since": 22, + "file": "template/.claude/hooks/pre-write-src-test-reminder.sh", + "last_commit": "2026-04-08T19:49:04+02:00", + "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "status": "red" + }, + { + "age_days": 1, + "commits_since": 22, + "file": "template/.claude/rules/python/hooks.md", + "last_commit": "2026-04-08T19:49:04+02:00", + "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "status": "red" + }, + { + "age_days": 1, + "commits_since": 22, + "file": "template/.claude/settings.json", + "last_commit": "2026-04-08T19:49:04+02:00", + "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "status": "red" + }, + { + "age_days": 1, + "commits_since": 22, + "file": "template/pyproject.toml.jinja", + "last_commit": "2026-04-08T19:49:04+02:00", + "last_commit_sha": "83cd2e2f6a272636f16bd57f1546a62f7347f9f3", + "status": "red" + }, { "age_days": 0, - "commits_since": 1, + "commits_since": 10, "file": "assets/file_freshness.json", - "last_commit": "2026-04-08T23:14:04+02:00", - "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", + "last_commit": "2026-04-09T08:07:43+00:00", + "last_commit_sha": "88a3177e6cc0539f79df0eabe582e4b670b938b0", "status": "blue" }, { "age_days": 0, - "commits_since": 1, + "commits_since": 10, "file": "assets/freshness_summary.json", - "last_commit": "2026-04-08T23:14:04+02:00", - "last_commit_sha": "99de9d9f0aff001ee1f7e7c512f293caabcd7ee3", + "last_commit": "2026-04-09T08:07:43+00:00", + "last_commit_sha": "88a3177e6cc0539f79df0eabe582e4b670b938b0", "status": "blue" } ] diff --git a/assets/freshness_summary.json b/assets/freshness_summary.json index 485c937..02ad5aa 100644 --- a/assets/freshness_summary.json +++ b/assets/freshness_summary.json @@ -1,10 +1,10 @@ { "blue": 2, "color": "red", - "green": 12, + "green": 28, "label": "freshness", - "message": "147 stale", + "message": "155 stale", "metric": "commits", - "red": 147, - "yellow": 22 + "red": 155, + "yellow": 41 } diff --git a/docs/repo_file_status_report.md b/docs/repo_file_status_report.md index 13c342a..f8aaebc 100644 --- a/docs/repo_file_status_report.md +++ b/docs/repo_file_status_report.md @@ -1,205 +1,248 @@ # Repository File Status Report -Last updated: **2026-04-09 08:07:42 UTC** +Last updated: **2026-04-10 00:07:57 UTC** _Metric: **commits**._ ## Summary -- 🟢 Green: **12** -- 🟡 Yellow: **22** -- 🔴 Red: **147** +- 🟢 Green: **28** +- 🟡 Yellow: **41** +- 🔴 Red: **155** - 🔵 Blue: **2** ## 🟢 Green (recent) -- `.gitignore` — **2** commits since last change -- `.github/workflows/file-freshness.yml` — **1** commits since last change -- `.pre-commit-config.yaml` — **1** commits since last change -- `assets/freshness_ignore.json` — **1** commits since last change -- `docs/repo_file_status_report.md` — **1** commits since last change -- `justfile` — **1** commits since last change -- `scripts/repo_file_freshness.py` — **1** commits since last change -- `temp/justfile` — **1** commits since last change -- `template/.claude/skills/pytest/references/fixtures.md` — **1** commits since last change -- `tests/test_repo_file_freshness.py` — **1** commits since last change -- `tests/test_template.py` — **1** commits since last change -- `uv.lock` — **1** commits since last change +- `pyproject.toml` — **5** commits since last change +- `.gitignore` — **4** commits since last change +- `template/.claude/skills/python-docstrings/SKILL.md` — **4** commits since last change +- `template/.claude/skills/python-docstrings/references/auditing.md` — **4** commits since last change +- `template/.claude/skills/python-docstrings/references/classes.md` — **4** commits since last change +- `template/.claude/skills/python-docstrings/references/examples.md` — **4** commits since last change +- `template/.claude/skills/python-docstrings/references/functions.md` — **4** commits since last change +- `template/.claude/skills/python-docstrings/references/generators.md` — **4** commits since last change +- `template/.claude/skills/python-docstrings/references/modules.md` — **4** commits since last change +- `template/.claude/skills/python-docstrings/references/overrides.md` — **4** commits since last change +- `template/.claude/skills/python-docstrings/references/properties.md` — **4** commits since last change +- `template/.claude/skills/python-docstrings/references/sections.md` — **4** commits since last change +- `template/.claude/skills/skill-maintainer/SKILL.md` — **4** commits since last change +- `uv.lock` — **4** commits since last change +- `template/.claude/skills/cron-scheduling/references/environments.md` — **3** commits since last change +- `template/.claude/skills/cron-scheduling/references/managing-jobs.md` — **3** commits since last change +- `template/.claude/skills/cron-scheduling/references/monitoring.md` — **3** commits since last change +- `template/.claude/skills/cron-scheduling/references/syntax-reference.md` — **3** commits since last change +- `.claude/CLAUDE.md` — **2** commits since last change +- `.claude/commands/ci.md` — **2** commits since last change +- `.github/CLAUDE.md` — **2** commits since last change +- `CLAUDE.md` — **2** commits since last change +- `scripts/CLAUDE.md` — **2** commits since last change +- `template/CLAUDE.md` — **2** commits since last change +- `template/CLAUDE.md.jinja` — **2** commits since last change +- `tests/CLAUDE.md` — **2** commits since last change +- `template/.vscode/settings.json.jinja` — **1** commits since last change +- `template/.claude/skills/cron-scheduling/SKILL.md` — **0** commits since last change ## 🟡 Yellow (moderate) -- `copier.yml` — **14** commits since last change -- `.github/labeler.yml` — **12** commits since last change -- `.claude/hooks/README.md` — **11** commits since last change -- `.claude/hooks/pre-config-protection.sh` — **11** commits since last change -- `.claude/hooks/pre-write-src-test-reminder.sh` — **11** commits since last change -- `.claude/settings.json` — **11** commits since last change -- `pyproject.toml` — **11** commits since last change -- `template/.claude/hooks/README.md` — **11** commits since last change -- `template/.claude/hooks/pre-config-protection.sh` — **11** commits since last change -- `template/.claude/hooks/pre-write-src-test-reminder.sh` — **11** commits since last change -- `template/.claude/rules/python/hooks.md` — **11** commits since last change -- `template/.claude/settings.json` — **11** commits since last change -- `template/pyproject.toml.jinja` — **11** commits since last change -- `temp/pyproject.toml` — **9** commits since last change -- `template/.claude/skills/pytest/SKILL.md` — **9** commits since last change -- `template/.claude/skills/pytest/references/anti-patterns.md` — **9** commits since last change -- `template/.claude/skills/pytest/references/assertions.md` — **9** commits since last change -- `template/.claude/skills/pytest/references/ci-and-plugins.md` — **9** commits since last change -- `template/.claude/skills/pytest/references/mocking.md` — **9** commits since last change -- `template/.claude/skills/pytest/references/parametrize-and-markers.md` — **9** commits since last change -- `template/.claude/skills/pytest/references/test-organization.md` — **9** commits since last change -- `template/.claude/skills/pytest/references/test-types.md` — **9** commits since last change +- `template/.claude/skills/pytest/references/anti-patterns.md` — **20** commits since last change +- `template/.claude/skills/pytest/references/assertions.md` — **20** commits since last change +- `template/.claude/skills/pytest/references/mocking.md` — **20** commits since last change +- `template/.claude/skills/pytest/references/parametrize-and-markers.md` — **20** commits since last change +- `template/.claude/skills/pytest/references/test-organization.md` — **20** commits since last change +- `template/.claude/skills/pytest/references/test-types.md` — **20** commits since last change +- `.github/workflows/file-freshness.yml` — **12** commits since last change +- `.pre-commit-config.yaml` — **12** commits since last change +- `assets/freshness_ignore.json` — **12** commits since last change +- `justfile` — **12** commits since last change +- `scripts/repo_file_freshness.py` — **12** commits since last change +- `template/.claude/skills/pytest/references/fixtures.md` — **12** commits since last change +- `tests/test_repo_file_freshness.py` — **12** commits since last change +- `tests/test_template.py` — **12** commits since last change +- `template/.claude/skills/markdown/SKILL.md` — **10** commits since last change +- `template/.claude/skills/markdown/references/anti-patterns-cheatsheet.md` — **10** commits since last change +- `template/.claude/skills/markdown/references/code-and-links.md` — **10** commits since last change +- `template/.claude/skills/markdown/references/document-structure.md` — **10** commits since last change +- `template/.claude/skills/markdown/references/extended-syntax.md` — **10** commits since last change +- `template/.claude/skills/markdown/references/file-management.md` — **10** commits since last change +- `template/.claude/skills/markdown/references/formatting-syntax.md` — **10** commits since last change +- `template/.claude/skills/markdown/references/tables-images-html.md` — **10** commits since last change +- `template/.claude/skills/pytest/references/ci-and-plugins.md` — **10** commits since last change +- `template/.claude/skills/python-code-quality/SKILL.md` — **10** commits since last change +- `template/.claude/skills/python-code-quality/references/bandit.md` — **10** commits since last change +- `template/.claude/skills/python-code-quality/references/basedpyright.md` — **10** commits since last change +- `template/.claude/skills/python-code-quality/references/complete-configs.md` — **10** commits since last change +- `template/.claude/skills/python-code-quality/references/pre-commit.md` — **10** commits since last change +- `template/.claude/skills/python-code-quality/references/ruff.md` — **10** commits since last change +- `template/.claude/skills/python-code-quality/references/semgrep.md` — **10** commits since last change +- `template/.claude/skills/python-code-reviewer/SKILL.md` — **10** commits since last change +- `template/.claude/skills/python-code-reviewer/references/checklist.md` — **10** commits since last change +- `template/.claude/skills/python-code-reviewer/references/output-format.md` — **10** commits since last change +- `template/.claude/skills/python-code-reviewer/references/python-patterns.md` — **10** commits since last change +- `template/.claude/skills/skill-maintainer/references/audit-checklist.md` — **10** commits since last change +- `template/.claude/skills/skill-maintainer/references/audit-examples.md` — **10** commits since last change +- `template/.claude/skills/skill-maintainer/references/maintenance-log.md` — **10** commits since last change +- `template/.claude/skills/pytest/SKILL.md` — **7** commits since last change +- `docs/repo_file_status_report.md` — **6** commits since last change +- `template/.claude/skills/pytest/scripts/find_slow_tests.py` — **6** commits since last change +- `template/.claude/skills/pytest/scripts/mark_slow_tests.py` — **6** commits since last change ## 🔴 Red (stale) -- `.vscode/extensions.json` — **105** commits since last change -- `.vscode/launch.json` — **105** commits since last change -- `.vscode/settings.json` — **105** commits since last change -- `LICENSE` — **105** commits since last change -- `template/.github/CODE_OF_CONDUCT.md.jinja` — **105** commits since last change -- `template/.github/PULL_REQUEST_TEMPLATE.md.jinja` — **105** commits since last change -- `template/.vscode/extensions.json.jinja` — **105** commits since last change -- `template/.vscode/launch.json.jinja` — **105** commits since last change -- `template/.vscode/settings.json.jinja` — **105** commits since last change -- `template/LICENSE.jinja` — **105** commits since last change -- `template/.github/ISSUE_TEMPLATE/bug_report.md.jinja` — **103** commits since last change -- `template/.github/ISSUE_TEMPLATE/config.yml.jinja` — **103** commits since last change -- `template/.github/ISSUE_TEMPLATE/feature_request.md.jinja` — **103** commits since last change -- `.claude/commands/generate.md` — **102** commits since last change -- `.claude/commands/test.md` — **102** commits since last change -- `template/tests/{{ package_name }}/test_core.py.jinja` — **101** commits since last change -- `.claude/commands/ci.md` — **100** commits since last change -- `template/.claude/commands/ci.md` — **79** commits since last change -- `template/.claude/commands/generate.md` — **79** commits since last change -- `template/.claude/commands/test.md` — **79** commits since last change -- `template/{{_copier_conf.answers_file}}.jinja` — **79** commits since last change -- `scripts/update_files.sh` — **73** commits since last change -- `template/.github/CODEOWNERS.jinja` — **73** commits since last change -- `template/tests/__init__.py.jinja` — **73** commits since last change -- `template/tests/{{ package_name }}/__init__.py.jinja` — **73** commits since last change -- `scripts/bump_version.py` — **72** commits since last change -- `template/src/{{ package_name }}/common/__init__.py.jinja` — **71** commits since last change -- `template/src/{{ package_name }}/common/decorators.py.jinja` — **71** commits since last change -- `template/src/{{ package_name }}/common/file_manager.py.jinja` — **71** commits since last change -- `template/src/{{ package_name }}/common/utils.py.jinja` — **64** commits since last change -- `README.md` — **56** commits since last change -- `.claude/commands/coverage.md` — **54** commits since last change -- `.claude/commands/docs-check.md` — **54** commits since last change -- `.claude/commands/release.md` — **54** commits since last change -- `.claude/commands/review.md` — **54** commits since last change -- `.claude/commands/standards.md` — **54** commits since last change -- `.claude/commands/update-claude-md.md` — **54** commits since last change -- `template/.claude/commands/coverage.md.jinja` — **54** commits since last change -- `template/.claude/commands/docs-check.md.jinja` — **54** commits since last change -- `template/.claude/commands/release.md.jinja` — **54** commits since last change -- `template/.claude/commands/review.md.jinja` — **54** commits since last change -- `template/.claude/commands/standards.md.jinja` — **54** commits since last change -- `.claude/commands/dependency-check.md` — **53** commits since last change -- `.claude/commands/validate-release.md` — **53** commits since last change -- `template/.claude/commands/guided-template-update.md.jinja` — **53** commits since last change -- `template/src/{{ package_name }}/core.py.jinja` — **52** commits since last change -- `.github/dependabot.yml` — **42** commits since last change -- `.github/workflows/dependency-review.yml` — **41** commits since last change -- `.github/workflows/lint.yml` — **41** commits since last change -- `.github/workflows/release.yml` — **41** commits since last change -- `.github/workflows/stale.yml` — **41** commits since last change -- `template/.github/workflows/ci.yml.jinja` — **41** commits since last change -- `template/.github/workflows/dependency-review.yml.jinja` — **41** commits since last change -- `template/.github/workflows/docs.yml.jinja` — **41** commits since last change -- `template/.github/workflows/lint.yml.jinja` — **41** commits since last change -- `template/.github/workflows/pre-commit-update.yml.jinja` — **41** commits since last change -- `.claude/hooks/post-bash-pr-created.sh` — **40** commits since last change -- `.claude/hooks/post-edit-copier-migration.sh` — **40** commits since last change -- `.claude/hooks/post-edit-jinja.sh` — **40** commits since last change -- `.claude/hooks/post-edit-markdown.sh` — **40** commits since last change -- `.claude/hooks/post-edit-python.sh` — **40** commits since last change -- `.claude/hooks/post-edit-template-mirror.sh` — **40** commits since last change -- `.claude/hooks/pre-bash-block-no-verify.sh` — **40** commits since last change -- `.claude/hooks/pre-bash-commit-quality.sh` — **40** commits since last change -- `.claude/hooks/pre-bash-git-push-reminder.sh` — **40** commits since last change -- `.claude/hooks/pre-compact-save-state.sh` — **40** commits since last change -- `.claude/hooks/pre-protect-uv-lock.sh` — **40** commits since last change -- `.claude/hooks/pre-suggest-compact.sh` — **40** commits since last change -- `.claude/hooks/pre-write-doc-file-warning.sh` — **40** commits since last change -- `.claude/hooks/pre-write-jinja-syntax.sh` — **40** commits since last change -- `.claude/hooks/session-start-bootstrap.sh` — **40** commits since last change -- `.claude/hooks/stop-cost-tracker.sh` — **40** commits since last change -- `.claude/hooks/stop-desktop-notify.sh` — **40** commits since last change -- `.claude/hooks/stop-evaluate-session.sh` — **40** commits since last change -- `.claude/hooks/stop-session-end.sh` — **40** commits since last change -- `.claude/rules/README.md` — **40** commits since last change -- `.claude/rules/bash/coding-style.md` — **40** commits since last change -- `.claude/rules/bash/security.md` — **40** commits since last change -- `.claude/rules/common/code-review.md` — **40** commits since last change -- `.claude/rules/common/coding-style.md` — **40** commits since last change -- `.claude/rules/common/development-workflow.md` — **40** commits since last change -- `.claude/rules/common/git-workflow.md` — **40** commits since last change -- `.claude/rules/common/security.md` — **40** commits since last change -- `.claude/rules/common/testing.md` — **40** commits since last change -- `.claude/rules/jinja/coding-style.md` — **40** commits since last change -- `.claude/rules/jinja/testing.md` — **40** commits since last change -- `.claude/rules/markdown/conventions.md` — **40** commits since last change -- `.claude/rules/python/coding-style.md` — **40** commits since last change -- `.claude/rules/python/hooks.md` — **40** commits since last change -- `.claude/rules/python/patterns.md` — **40** commits since last change -- `.claude/rules/python/security.md` — **40** commits since last change -- `.claude/rules/python/testing.md` — **40** commits since last change -- `.claude/rules/yaml/conventions.md` — **40** commits since last change -- `CLAUDE.md` — **40** commits since last change -- `template/.claude/hooks/post-edit-markdown.sh` — **40** commits since last change -- `template/.claude/hooks/post-edit-python.sh` — **40** commits since last change -- `template/.claude/hooks/pre-bash-block-no-verify.sh` — **40** commits since last change -- `template/.claude/hooks/pre-bash-commit-quality.sh` — **40** commits since last change -- `template/.claude/hooks/pre-bash-git-push-reminder.sh` — **40** commits since last change -- `template/.claude/hooks/pre-protect-uv-lock.sh` — **40** commits since last change -- `template/.claude/rules/README.md` — **40** commits since last change -- `template/.claude/rules/bash/coding-style.md` — **40** commits since last change -- `template/.claude/rules/bash/security.md` — **40** commits since last change -- `template/.claude/rules/common/code-review.md` — **40** commits since last change -- `template/.claude/rules/common/coding-style.md` — **40** commits since last change -- `template/.claude/rules/common/development-workflow.md` — **40** commits since last change -- `template/.claude/rules/common/git-workflow.md` — **40** commits since last change -- `template/.claude/rules/common/security.md` — **40** commits since last change -- `template/.claude/rules/common/testing.md` — **40** commits since last change -- `template/.claude/rules/markdown/conventions.md` — **40** commits since last change -- `template/.claude/rules/python/coding-style.md.jinja` — **40** commits since last change -- `template/.claude/rules/python/patterns.md.jinja` — **40** commits since last change -- `template/.claude/rules/python/security.md` — **40** commits since last change -- `template/.claude/rules/python/testing.md` — **40** commits since last change -- `template/.github/workflows/security.yml.jinja` — **34** commits since last change -- `.github/renovate.json` — **33** commits since last change -- `.secrets.baseline` — **33** commits since last change -- `template/.github/renovate.json.jinja` — **33** commits since last change -- `template/.pre-commit-config.yaml.jinja` — **33** commits since last change -- `template/.secrets.baseline` — **33** commits since last change -- `template/CLAUDE.md.jinja` — **33** commits since last change -- `template/CONTRIBUTING.md.jinja` — **33** commits since last change -- `template/SECURITY.md.jinja` — **33** commits since last change -- `template/src/{{ package_name }}/__init__.py.jinja` — **33** commits since last change -- `template/tests/test_imports.py.jinja` — **33** commits since last change -- `template/README.md.jinja` — **31** commits since last change -- `env.example` — **29** commits since last change -- `template/.gitignore.jinja` — **29** commits since last change -- `template/env.example.jinja` — **29** commits since last change -- `.github/workflows/labeler.yml` — **28** commits since last change -- `.github/workflows/pre-commit-update.yml` — **28** commits since last change -- `.github/workflows/security.yml` — **28** commits since last change -- `.github/workflows/sync-skip-if-exists.yml` — **28** commits since last change -- `.github/workflows/tests.yml` — **28** commits since last change -- `.claude/rules/copier/template-conventions.md` — **21** commits since last change -- `scripts/sync_skip_if_exists.py` — **21** commits since last change -- `template/.github/workflows/release.yml.jinja` — **21** commits since last change -- `template/docs/{% if include_docs %}ci.md{% endif %}.jinja` — **21** commits since last change -- `template/docs/{% if include_docs %}index.md{% endif %}.jinja` — **21** commits since last change -- `template/justfile.jinja` — **21** commits since last change -- `template/src/{{ package_name }}/common/bump_version.py.jinja` — **21** commits since last change -- `template/src/{{ package_name }}/common/logging_manager.py.jinja` — **21** commits since last change -- `template/src/{{ package_name }}/{% if include_cli %}cli.py{% endif %}.jinja` — **21** commits since last change -- `template/tests/conftest.py.jinja` — **21** commits since last change -- `template/tests/{{ package_name }}/test_support.py.jinja` — **21** commits since last change -- `template/{% if include_docs %}mkdocs.yml{% endif %}.jinja` — **21** commits since last change -- `template/{% if include_git_cliff %}cliff.toml{% endif %}.jinja` — **21** commits since last change +- `.vscode/extensions.json` — **116** commits since last change +- `.vscode/launch.json` — **116** commits since last change +- `.vscode/settings.json` — **116** commits since last change +- `LICENSE` — **116** commits since last change +- `template/.github/CODE_OF_CONDUCT.md.jinja` — **116** commits since last change +- `template/.github/PULL_REQUEST_TEMPLATE.md.jinja` — **116** commits since last change +- `template/.vscode/extensions.json.jinja` — **116** commits since last change +- `template/.vscode/launch.json.jinja` — **116** commits since last change +- `template/LICENSE.jinja` — **116** commits since last change +- `template/.github/ISSUE_TEMPLATE/bug_report.md.jinja` — **114** commits since last change +- `template/.github/ISSUE_TEMPLATE/config.yml.jinja` — **114** commits since last change +- `template/.github/ISSUE_TEMPLATE/feature_request.md.jinja` — **114** commits since last change +- `.claude/commands/generate.md` — **113** commits since last change +- `.claude/commands/test.md` — **113** commits since last change +- `template/tests/{{ package_name }}/test_core.py.jinja` — **112** commits since last change +- `template/.claude/commands/ci.md` — **90** commits since last change +- `template/.claude/commands/generate.md` — **90** commits since last change +- `template/.claude/commands/test.md` — **90** commits since last change +- `template/{{_copier_conf.answers_file}}.jinja` — **90** commits since last change +- `scripts/update_files.sh` — **84** commits since last change +- `template/.github/CODEOWNERS.jinja` — **84** commits since last change +- `template/tests/__init__.py.jinja` — **84** commits since last change +- `template/tests/{{ package_name }}/__init__.py.jinja` — **84** commits since last change +- `scripts/bump_version.py` — **83** commits since last change +- `template/src/{{ package_name }}/common/__init__.py.jinja` — **82** commits since last change +- `template/src/{{ package_name }}/common/decorators.py.jinja` — **82** commits since last change +- `template/src/{{ package_name }}/common/file_manager.py.jinja` — **82** commits since last change +- `template/src/{{ package_name }}/common/utils.py.jinja` — **75** commits since last change +- `README.md` — **67** commits since last change +- `.claude/commands/coverage.md` — **65** commits since last change +- `.claude/commands/docs-check.md` — **65** commits since last change +- `.claude/commands/release.md` — **65** commits since last change +- `.claude/commands/review.md` — **65** commits since last change +- `.claude/commands/standards.md` — **65** commits since last change +- `.claude/commands/update-claude-md.md` — **65** commits since last change +- `template/.claude/commands/coverage.md.jinja` — **65** commits since last change +- `template/.claude/commands/docs-check.md.jinja` — **65** commits since last change +- `template/.claude/commands/release.md.jinja` — **65** commits since last change +- `template/.claude/commands/review.md.jinja` — **65** commits since last change +- `template/.claude/commands/standards.md.jinja` — **65** commits since last change +- `.claude/commands/dependency-check.md` — **64** commits since last change +- `.claude/commands/validate-release.md` — **64** commits since last change +- `template/.claude/commands/guided-template-update.md.jinja` — **64** commits since last change +- `template/src/{{ package_name }}/core.py.jinja` — **63** commits since last change +- `.github/dependabot.yml` — **53** commits since last change +- `.github/workflows/dependency-review.yml` — **52** commits since last change +- `.github/workflows/lint.yml` — **52** commits since last change +- `.github/workflows/release.yml` — **52** commits since last change +- `.github/workflows/stale.yml` — **52** commits since last change +- `template/.github/workflows/ci.yml.jinja` — **52** commits since last change +- `template/.github/workflows/dependency-review.yml.jinja` — **52** commits since last change +- `template/.github/workflows/docs.yml.jinja` — **52** commits since last change +- `template/.github/workflows/lint.yml.jinja` — **52** commits since last change +- `template/.github/workflows/pre-commit-update.yml.jinja` — **52** commits since last change +- `.claude/hooks/post-bash-pr-created.sh` — **51** commits since last change +- `.claude/hooks/post-edit-copier-migration.sh` — **51** commits since last change +- `.claude/hooks/post-edit-jinja.sh` — **51** commits since last change +- `.claude/hooks/post-edit-markdown.sh` — **51** commits since last change +- `.claude/hooks/post-edit-python.sh` — **51** commits since last change +- `.claude/hooks/post-edit-template-mirror.sh` — **51** commits since last change +- `.claude/hooks/pre-bash-block-no-verify.sh` — **51** commits since last change +- `.claude/hooks/pre-bash-commit-quality.sh` — **51** commits since last change +- `.claude/hooks/pre-bash-git-push-reminder.sh` — **51** commits since last change +- `.claude/hooks/pre-compact-save-state.sh` — **51** commits since last change +- `.claude/hooks/pre-protect-uv-lock.sh` — **51** commits since last change +- `.claude/hooks/pre-suggest-compact.sh` — **51** commits since last change +- `.claude/hooks/pre-write-doc-file-warning.sh` — **51** commits since last change +- `.claude/hooks/pre-write-jinja-syntax.sh` — **51** commits since last change +- `.claude/hooks/session-start-bootstrap.sh` — **51** commits since last change +- `.claude/hooks/stop-cost-tracker.sh` — **51** commits since last change +- `.claude/hooks/stop-desktop-notify.sh` — **51** commits since last change +- `.claude/hooks/stop-evaluate-session.sh` — **51** commits since last change +- `.claude/hooks/stop-session-end.sh` — **51** commits since last change +- `.claude/rules/README.md` — **51** commits since last change +- `.claude/rules/bash/coding-style.md` — **51** commits since last change +- `.claude/rules/bash/security.md` — **51** commits since last change +- `.claude/rules/common/code-review.md` — **51** commits since last change +- `.claude/rules/common/coding-style.md` — **51** commits since last change +- `.claude/rules/common/development-workflow.md` — **51** commits since last change +- `.claude/rules/common/git-workflow.md` — **51** commits since last change +- `.claude/rules/common/security.md` — **51** commits since last change +- `.claude/rules/common/testing.md` — **51** commits since last change +- `.claude/rules/jinja/coding-style.md` — **51** commits since last change +- `.claude/rules/jinja/testing.md` — **51** commits since last change +- `.claude/rules/markdown/conventions.md` — **51** commits since last change +- `.claude/rules/python/coding-style.md` — **51** commits since last change +- `.claude/rules/python/hooks.md` — **51** commits since last change +- `.claude/rules/python/patterns.md` — **51** commits since last change +- `.claude/rules/python/security.md` — **51** commits since last change +- `.claude/rules/python/testing.md` — **51** commits since last change +- `.claude/rules/yaml/conventions.md` — **51** commits since last change +- `template/.claude/hooks/post-edit-markdown.sh` — **51** commits since last change +- `template/.claude/hooks/post-edit-python.sh` — **51** commits since last change +- `template/.claude/hooks/pre-bash-block-no-verify.sh` — **51** commits since last change +- `template/.claude/hooks/pre-bash-commit-quality.sh` — **51** commits since last change +- `template/.claude/hooks/pre-bash-git-push-reminder.sh` — **51** commits since last change +- `template/.claude/hooks/pre-protect-uv-lock.sh` — **51** commits since last change +- `template/.claude/rules/README.md` — **51** commits since last change +- `template/.claude/rules/bash/coding-style.md` — **51** commits since last change +- `template/.claude/rules/bash/security.md` — **51** commits since last change +- `template/.claude/rules/common/code-review.md` — **51** commits since last change +- `template/.claude/rules/common/coding-style.md` — **51** commits since last change +- `template/.claude/rules/common/development-workflow.md` — **51** commits since last change +- `template/.claude/rules/common/git-workflow.md` — **51** commits since last change +- `template/.claude/rules/common/security.md` — **51** commits since last change +- `template/.claude/rules/common/testing.md` — **51** commits since last change +- `template/.claude/rules/markdown/conventions.md` — **51** commits since last change +- `template/.claude/rules/python/coding-style.md.jinja` — **51** commits since last change +- `template/.claude/rules/python/patterns.md.jinja` — **51** commits since last change +- `template/.claude/rules/python/security.md` — **51** commits since last change +- `template/.claude/rules/python/testing.md` — **51** commits since last change +- `template/.github/workflows/security.yml.jinja` — **45** commits since last change +- `.github/renovate.json` — **44** commits since last change +- `.secrets.baseline` — **44** commits since last change +- `template/.github/renovate.json.jinja` — **44** commits since last change +- `template/.pre-commit-config.yaml.jinja` — **44** commits since last change +- `template/.secrets.baseline` — **44** commits since last change +- `template/CONTRIBUTING.md.jinja` — **44** commits since last change +- `template/SECURITY.md.jinja` — **44** commits since last change +- `template/src/{{ package_name }}/__init__.py.jinja` — **44** commits since last change +- `template/tests/test_imports.py.jinja` — **44** commits since last change +- `template/README.md.jinja` — **42** commits since last change +- `env.example` — **40** commits since last change +- `template/.gitignore.jinja` — **40** commits since last change +- `template/env.example.jinja` — **40** commits since last change +- `.github/workflows/labeler.yml` — **39** commits since last change +- `.github/workflows/pre-commit-update.yml` — **39** commits since last change +- `.github/workflows/security.yml` — **39** commits since last change +- `.github/workflows/sync-skip-if-exists.yml` — **39** commits since last change +- `.github/workflows/tests.yml` — **39** commits since last change +- `.claude/rules/copier/template-conventions.md` — **32** commits since last change +- `scripts/sync_skip_if_exists.py` — **32** commits since last change +- `template/.github/workflows/release.yml.jinja` — **32** commits since last change +- `template/docs/{% if include_docs %}ci.md{% endif %}.jinja` — **32** commits since last change +- `template/docs/{% if include_docs %}index.md{% endif %}.jinja` — **32** commits since last change +- `template/justfile.jinja` — **32** commits since last change +- `template/src/{{ package_name }}/common/bump_version.py.jinja` — **32** commits since last change +- `template/src/{{ package_name }}/common/logging_manager.py.jinja` — **32** commits since last change +- `template/src/{{ package_name }}/{% if include_cli %}cli.py{% endif %}.jinja` — **32** commits since last change +- `template/tests/conftest.py.jinja` — **32** commits since last change +- `template/tests/{{ package_name }}/test_support.py.jinja` — **32** commits since last change +- `template/{% if include_docs %}mkdocs.yml{% endif %}.jinja` — **32** commits since last change +- `template/{% if include_git_cliff %}cliff.toml{% endif %}.jinja` — **32** commits since last change +- `copier.yml` — **25** commits since last change +- `.github/labeler.yml` — **23** commits since last change +- `.claude/hooks/README.md` — **22** commits since last change +- `.claude/hooks/pre-config-protection.sh` — **22** commits since last change +- `.claude/hooks/pre-write-src-test-reminder.sh` — **22** commits since last change +- `.claude/settings.json` — **22** commits since last change +- `template/.claude/hooks/README.md` — **22** commits since last change +- `template/.claude/hooks/pre-config-protection.sh` — **22** commits since last change +- `template/.claude/hooks/pre-write-src-test-reminder.sh` — **22** commits since last change +- `template/.claude/rules/python/hooks.md` — **22** commits since last change +- `template/.claude/settings.json` — **22** commits since last change +- `template/pyproject.toml.jinja` — **22** commits since last change ## 🔵 Blue (ignored) diff --git a/template/.claude/skills/cron-scheduling/SKILL.md b/template/.claude/skills/cron-scheduling/SKILL.md index 4772671..5fad82c 100644 --- a/template/.claude/skills/cron-scheduling/SKILL.md +++ b/template/.claude/skills/cron-scheduling/SKILL.md @@ -233,4 +233,3 @@ for u in $(cut -f1 -d: /etc/passwd); do [ -n "$jobs" ] && echo "=== $u ===" && echo "$jobs" done ``` - diff --git a/template/.vscode/settings.json.jinja b/template/.vscode/settings.json.jinja index 2e45654..f43b5b0 100644 --- a/template/.vscode/settings.json.jinja +++ b/template/.vscode/settings.json.jinja @@ -88,5 +88,7 @@ "source.fixAll": "never", "source.organizeImports": "never" } - } + }, + "python.languageServer": "None", + "python.analysis.typeCheckingMode": "off" }