claude-dev-env 1.44.0 → 1.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +9 -0
- package/_shared/pr-loop/scripts/code_rules_gate.py +426 -85
- package/_shared/pr-loop/scripts/pr_loop_shared_constants/code_rules_gate_constants.py +20 -0
- package/_shared/pr-loop/scripts/pr_loop_shared_constants/reviews_disabled_constants.py +1 -0
- package/_shared/pr-loop/scripts/reviews_disabled.py +82 -9
- package/_shared/pr-loop/scripts/tests/test_code_rules_gate.py +630 -21
- package/_shared/pr-loop/scripts/tests/test_code_rules_gate_constants.py +15 -0
- package/_shared/pr-loop/scripts/tests/test_reviews_disabled.py +57 -0
- package/agents/clean-coder.md +7 -1
- package/agents/code-quality-agent.md +8 -5
- package/hooks/blocking/code_rules_enforcer.py +1562 -37
- package/hooks/blocking/content_search_zoekt_redirect_guidance.py +19 -0
- package/hooks/blocking/open_questions_in_plans_blocker.py +249 -0
- package/hooks/blocking/test_code_rules_enforcer.py +1389 -0
- package/hooks/blocking/test_code_rules_enforcer_banned_noun_word.py +292 -0
- package/hooks/blocking/test_code_rules_enforcer_cap_meta.py +46 -8
- package/hooks/blocking/test_code_rules_enforcer_exempt_marker_chained.py +189 -0
- package/hooks/blocking/test_code_rules_enforcer_function_length.py +210 -0
- package/hooks/blocking/test_code_rules_enforcer_tests_isolate_home_temp.py +1512 -0
- package/hooks/blocking/test_code_rules_enforcer_unused_imports.py +9 -5
- package/hooks/blocking/test_content_search_to_zoekt_redirector_unit.py +30 -0
- package/hooks/blocking/test_open_questions_in_plans_blocker.py +790 -0
- package/hooks/hooks.json +10 -0
- package/hooks/hooks_constants/banned_identifiers_constants.py +19 -0
- package/hooks/hooks_constants/code_rules_enforcer_constants.py +129 -2
- package/hooks/hooks_constants/open_questions_in_plans_blocker_constants.py +35 -0
- package/hooks/hooks_constants/test_open_questions_in_plans_blocker_constants.py +125 -0
- package/package.json +1 -1
- package/skills/_shared/pr-loop/scripts/_path_resolver.py +34 -13
- package/skills/_shared/pr-loop/scripts/init_loop_state.py +1 -2
- package/skills/_shared/pr-loop/scripts/teardown_worktrees.py +1 -4
- package/skills/_shared/pr-loop/scripts/test__path_resolver.py +57 -0
- package/skills/_shared/pr-loop/scripts/test_init_loop_state.py +48 -0
- package/skills/_shared/pr-loop/scripts/test_teardown_worktrees.py +59 -0
- package/skills/bugteam/PROMPTS.md +48 -12
- package/skills/bugteam/reference/team-setup.md +4 -2
- package/skills/bugteam/scripts/bugteam_code_rules_gate.py +487 -76
- package/skills/bugteam/scripts/bugteam_scripts_constants/bugteam_code_rules_gate_constants.py +22 -1
- package/skills/bugteam/scripts/test_bugteam_code_rules_gate.py +602 -12
- package/skills/pr-converge/SKILL.md +5 -0
- package/skills/pr-converge/reference/per-tick.md +14 -5
- package/skills/pr-converge/reference/state-schema.md +7 -3
- package/skills/pr-converge/scripts/check_convergence.py +27 -1
- package/skills/pr-converge/scripts/test_check_convergence.py +28 -0
package/skills/bugteam/scripts/bugteam_scripts_constants/bugteam_code_rules_gate_constants.py
CHANGED
|
@@ -2,17 +2,38 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import re
|
|
6
|
+
|
|
5
7
|
BUGTEAM_CODE_RULES_GATE_PREFIX: str = "bugteam_code_rules_gate: "
|
|
6
8
|
EXIT_CODE_ENFORCER_MISSING: int = 2
|
|
7
9
|
HUNK_HEADER_RAW_PATTERN: str = r"^@@ -\d+(?:,\d+)? \+(\d+)(?:,(\d+))? @@"
|
|
8
10
|
MAXIMUM_ISSUES_TO_REPORT: int = 3
|
|
11
|
+
MAX_VIOLATIONS_PER_CHECK: int = 3
|
|
9
12
|
MAXIMUM_COLUMN_TUPLE_ELEMENT_COUNT: int = 2
|
|
13
|
+
PYTHON_FILE_EXTENSION: str = ".py"
|
|
10
14
|
VIOLATION_LINE_RAW_PATTERN: str = r"^Line (\d+):"
|
|
11
15
|
|
|
16
|
+
FUNCTION_LENGTH_VIOLATION_PATTERN: re.Pattern[str] = re.compile(
|
|
17
|
+
r"\(defined at line (\d+)\) is (\d+) lines"
|
|
18
|
+
)
|
|
19
|
+
FUNCTION_LENGTH_DEFINITION_LINE_GROUP_INDEX: int = 1
|
|
20
|
+
FUNCTION_LENGTH_SPAN_GROUP_INDEX: int = 2
|
|
21
|
+
|
|
22
|
+
ISOLATION_VIOLATION_PATTERN: re.Pattern[str] = re.compile(
|
|
23
|
+
r"\(defined at line (\d+), spanning (\d+) lines\)"
|
|
24
|
+
)
|
|
25
|
+
ISOLATION_DEFINITION_LINE_GROUP_INDEX: int = 1
|
|
26
|
+
ISOLATION_SPAN_GROUP_INDEX: int = 2
|
|
27
|
+
|
|
28
|
+
BANNED_NOUN_VIOLATION_PATTERN: re.Pattern[str] = re.compile(
|
|
29
|
+
r"\(binding span at line (\d+), spanning (\d+) lines\)"
|
|
30
|
+
)
|
|
31
|
+
BANNED_NOUN_DEFINITION_LINE_GROUP_INDEX: int = 1
|
|
32
|
+
BANNED_NOUN_SPAN_GROUP_INDEX: int = 2
|
|
33
|
+
|
|
12
34
|
ALL_CODE_FILE_EXTENSIONS: frozenset[str] = frozenset(
|
|
13
35
|
{".py", ".js", ".ts", ".tsx", ".jsx"}
|
|
14
36
|
)
|
|
15
|
-
ALL_JS_FILE_EXTENSIONS: tuple[str, ...] = (".js", ".ts", ".tsx", ".jsx")
|
|
16
37
|
ALL_COLUMN_MAGIC_FALSE_VALUES: frozenset[str] = frozenset(
|
|
17
38
|
{"true", "false", "none", "null"}
|
|
18
39
|
)
|