Skip to content

Commit 4ddb168

Browse files
committed
fix(ci): allowlist estimating tier vocab, utf-8 test reads, version bump + review fixes
1 parent 359428f commit 4ddb168

6 files changed

Lines changed: 18 additions & 18 deletions

File tree

.version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.76.0
1+
0.76.1

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12+
- **Project-standards discovery and enforcement in develop.** Add generic
13+
project-standards (governance-doc) discovery and enforcement to the develop
14+
skill.
15+
1216
- **Embarrassment sweep — codified pre-PR diff-hygiene gate.** The develop
1317
4.6.5 pre-PR gate (`commands/feature-implement.md`) previously validated only
1418
that claims were true; it now also runs the named "embarrassment sweep" over

docs/commands/feature-discover.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
## Workflow Diagram
44

5-
Now generating the diagrams. Reading is complete — producing Phase 3 (generation) and Phase 4 (verification) output now.
6-
75
---
86

97
## Diagram 1: Phase 1.5 Overview

docs/diagrams/commands/feature-discover.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
<!-- diagram-meta: {"source": "commands/feature-discover.md", "source_hash": "sha256:e574ba39a04ec1119b5cc30fdd3110bbb243171654d01962f8d43bf0707f2998", "generated_at": "2026-06-11T01:48:52Z", "generator": "generate_diagrams.py"} -->
22
# Diagram: feature-discover
33

4-
Now generating the diagrams. Reading is complete — producing Phase 3 (generation) and Phase 4 (verification) output now.
5-
64
---
75

86
## Diagram 1: Phase 1.5 Overview

scripts/check_removed_mode_tokens.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,11 @@ class AllowEntry:
8787
anchor=None,
8888
reason="archived sub-orchestrator body (historical), path-allowlisted",
8989
),
90+
AllowEntry(
91+
path_glob="skills/estimating-tickets/fleet-effort.md",
92+
anchor="NET-NEW COMPLEX",
93+
reason="estimating-tickets complexity speed-class vocabulary, not a develop tier-classifier",
94+
),
9095
)
9196

9297
# --- Allowlist (b): removed-mode vocabulary that legitimately survives --------

tests/test_develop_gates.py

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,43 +22,38 @@
2222

2323
_ROOT = Path(__file__).parent.parent
2424

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.
3227

3328

3429
@lru_cache(maxsize=None)
3530
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")
3732

3833

3934
@lru_cache(maxsize=None)
4035
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")
4237

4338

4439
@lru_cache(maxsize=None)
4540
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")
4742

4843

4944
@lru_cache(maxsize=None)
5045
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")
5247

5348

5449
@lru_cache(maxsize=None)
5550
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")
5752

5853

5954
@lru_cache(maxsize=None)
6055
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")
6257

6358

6459
def _flags(research=False, design=False, infrastructure=False):

0 commit comments

Comments
 (0)