|
22 | 22 |
|
23 | 23 | _ROOT = Path(__file__).parent.parent |
24 | 24 |
|
25 | | -# Source fixtures are read lazily (not at import/collection time) so pytest |
26 | | -# collection performs no file I/O. Each reader is cached, so repeated access |
27 | | -# within a run reads the file at most once. Bare-name module-level constants |
28 | | -# would force collection-time reads — and a module-level __getattr__ would NOT |
29 | | -# help, because __getattr__ only fires for MISSING globals accessed via |
30 | | -# attribute lookup, never for bare-name references inside this same module |
31 | | -# (those raise NameError directly). Hence: explicit cached reader functions. |
| 25 | +# Source fixtures are read lazily via cached reader functions so pytest |
| 26 | +# collection performs no file I/O; each file is read at most once per run. |
32 | 27 |
|
33 | 28 |
|
34 | 29 | @lru_cache(maxsize=None) |
35 | 30 | def FEATURE_RESEARCH() -> str: |
36 | | - return (_ROOT / "commands" / "feature-research.md").read_text() |
| 31 | + return (_ROOT / "commands" / "feature-research.md").read_text(encoding="utf-8") |
37 | 32 |
|
38 | 33 |
|
39 | 34 | @lru_cache(maxsize=None) |
40 | 35 | def FEATURE_DISCOVER() -> str: |
41 | | - return (_ROOT / "commands" / "feature-discover.md").read_text() |
| 36 | + return (_ROOT / "commands" / "feature-discover.md").read_text(encoding="utf-8") |
42 | 37 |
|
43 | 38 |
|
44 | 39 | @lru_cache(maxsize=None) |
45 | 40 | def FEATURE_DESIGN() -> str: |
46 | | - return (_ROOT / "commands" / "feature-design.md").read_text() |
| 41 | + return (_ROOT / "commands" / "feature-design.md").read_text(encoding="utf-8") |
47 | 42 |
|
48 | 43 |
|
49 | 44 | @lru_cache(maxsize=None) |
50 | 45 | def FEATURE_IMPLEMENT() -> str: |
51 | | - return (_ROOT / "commands" / "feature-implement.md").read_text() |
| 46 | + return (_ROOT / "commands" / "feature-implement.md").read_text(encoding="utf-8") |
52 | 47 |
|
53 | 48 |
|
54 | 49 | @lru_cache(maxsize=None) |
55 | 50 | def DEVELOP_SKILL() -> str: |
56 | | - return (_ROOT / "skills" / "develop" / "SKILL.md").read_text() |
| 51 | + return (_ROOT / "skills" / "develop" / "SKILL.md").read_text(encoding="utf-8") |
57 | 52 |
|
58 | 53 |
|
59 | 54 | @lru_cache(maxsize=None) |
60 | 55 | def CODE_REVIEW_GIVE() -> str: |
61 | | - return (_ROOT / "commands" / "code-review-give.md").read_text() |
| 56 | + return (_ROOT / "commands" / "code-review-give.md").read_text(encoding="utf-8") |
62 | 57 |
|
63 | 58 |
|
64 | 59 | def _flags(research=False, design=False, infrastructure=False): |
|
0 commit comments