File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -13,15 +13,27 @@ jobs:
1313 runs-on : ubuntu-latest
1414 steps :
1515 - name : Checkout
16- uses : actions/checkout@v4
16+ uses : actions/checkout@v6
1717 with :
1818 fetch-depth : 0
1919
2020 - name : Setup uv
21- uses : astral-sh/setup-uv@v5
21+ uses : astral-sh/setup-uv@v7
2222 with :
2323 python-version : " 3.12"
2424
25+ - name : Install dependencies
26+ run : uv sync
27+
28+ - name : Lint
29+ run : uv run ruff check .
30+
31+ - name : Type check
32+ run : uv run ty check src tests
33+
34+ - name : Test
35+ run : uv run pytest
36+
2537 - name : Get version from tag
2638 id : tag_version
2739 run : echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
Original file line number Diff line number Diff line change 11[build-system ]
2- requires = [" uv-build>=0.10.2,<0.11.2 " ]
2+ requires = [" uv-build>=0.10.2,<0.12 " ]
33build-backend = " uv_build"
44
55[project ]
66name = " pb-spec"
7- version = " 1.0.0 "
7+ version = " 1.0.1 "
88description = " Plan-Build Spec (pb-spec): A CLI tool for managing AI coding assistant skills"
99readme = " README.md"
1010license = " Apache-2.0"
Original file line number Diff line number Diff line change 22
33from __future__ import annotations
44
5- __version__ = "0.9.0"
5+ from importlib .metadata import version
6+
7+ __version__ = version ("pb-spec" )
Original file line number Diff line number Diff line change @@ -148,11 +148,27 @@ def validate_plan(spec_dir: Path) -> bool:
148148 # 2. Validate design.md required sections
149149 if design_file .exists ():
150150 content = design_file .read_text (encoding = "utf-8" )
151- required_sections = [
152- "Architecture Decisions" ,
153- "BDD/TDD Strategy" ,
154- "Verification" ,
155- ]
151+
152+ # Detect mode: full mode has "Executive Summary" or "Requirements & Goals"
153+ is_full_mode = "Executive Summary" in content or "Requirements & Goals" in content
154+
155+ if is_full_mode :
156+ required_sections = [
157+ "Executive Summary" ,
158+ "Requirements & Goals" ,
159+ "Architecture Overview" ,
160+ "Detailed Design" ,
161+ "Verification & Testing Strategy" ,
162+ "Implementation Plan" ,
163+ ]
164+ else :
165+ # Lightweight mode (per contract §6.4)
166+ required_sections = [
167+ "Architecture Decisions" ,
168+ "BDD/TDD Strategy" ,
169+ "Verification" ,
170+ ]
171+
156172 for sec in required_sections :
157173 if sec not in content :
158174 print_error (f"design.md is missing required section: '{ sec } '" )
You can’t perform that action at this time.
0 commit comments