Skip to content

Commit 786ab16

Browse files
committed
docs(planning): fix CONTEXT spec inaccuracies surfaced by code review
Three fixes from the post-merge spec audit on PR #27: 1. Phase 11 source discriminators: align with the actual v1 strings in src/mcp_server_python_docs/detection.py. v1 returns '.python-version file' / 'python3 in PATH' / 'server runtime' (not the simplified labels the original CONTEXT spec used). v2 preserves these verbatim below the new venv:* sources. 2. Phase 09 success criterion 1: use compare_versions('asyncio.TaskGroup', '3.10', '3.11') instead of '3.11'-'3.12' for the introduction example. The symbol was introduced in 3.11, so a 3.10->3.11 diff is the right surface to test 'newly introduced' detection. A 3.11->3.12 diff would show no change for TaskGroup and could pass vacuously. 3. ROADMAP.md Historical section: drop the misleading reference to '.git/info/exclude'. That file is local-only and contains gitignore syntax, not a policy narrative; readers checking it would not find the explanation. Rephrased to be self-contained.
1 parent d4d6270 commit 786ab16

3 files changed

Lines changed: 7 additions & 7 deletions

File tree

.planning/ROADMAP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ These are planned, not committed. Phase CONTEXTs at [`phases/09-compare-versions
1717

1818
## Historical
1919

20-
Pre-2026-05-14 GSD workflow artifacts (phases 1–8 for v0.1.0) live in maintainers' local worktrees and are intentionally not tracked in this repo. See the note in `.git/info/exclude` for the prior policy. With v0.1.5 the `.planning/` directory becomes a tracked, forward-facing surface for new phase CONTEXTs and roadmap entries.
20+
Pre-2026-05-14 GSD workflow artifacts (phases 1–8 for v0.1.0) live in maintainers' local worktrees and are intentionally not tracked in this repo — they remain accessible to those who ran the original GSD workflow locally but are not load-bearing for current implementation work. With v0.1.5 the `.planning/` directory becomes a tracked, forward-facing surface for new phase CONTEXTs and roadmap entries.

.planning/phases/09-compare-versions/09-CONTEXT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Add an MCP tool `compare_versions(symbol, v1, v2)` that returns a structured dif
2020

2121
## Success criteria
2222

23-
1. `compare_versions("asyncio.TaskGroup", "3.11", "3.12")` returns a clear, machine-readable diff highlighting the introduction in 3.11.
23+
1. `compare_versions("asyncio.TaskGroup", "3.10", "3.11")` returns a clear, machine-readable diff showing the symbol was newly introduced in 3.11 (e.g. an `added` or `new_in` marker, not just a delta of existing fields).
2424
2. Comparing identical versions returns an empty diff with an explicit "no change" marker.
2525
3. Missing-version cases return an actionable error with the indexed-version list.
2626
4. Token cost of a typical diff is under 300 tokens (vs ~1500 for fetching both full doc pages).

.planning/phases/11-detect-venv/11-CONTEXT.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ Make `detect_python_version` venv-aware: report the Python version of the *activ
1919
- DETV2-02: Detect `.venv/` or `venv/` directories in cwd or its ancestors (up to project root).
2020
- DETV2-03: Detect `uv`'s `.venv` and `poetry`'s `.venv` patterns.
2121
- DETV2-04: Preserve v1 fallback chain unchanged below the new venv checks.
22-
- DETV2-05: Return `(major_minor, source)` tuple where `source` discriminates `venv:VIRTUAL_ENV` / `venv:.venv` / `python-version` / `python3` / `sys.version_info`.
22+
- DETV2-05: Return `(major_minor, source)` tuple. **New v2 sources:** `"venv:VIRTUAL_ENV"`, `"venv:.venv"`. **Existing v1 sources (preserved unchanged, see `src/mcp_server_python_docs/detection.py`):** `".python-version file"`, `"python3 in PATH"`, `"server runtime"`. Total: 5 distinct source strings.
2323

2424
## Success criteria
2525

2626
1. Inside an activated venv (3.12) on a 3.13 host: returns `("3.12", "venv:VIRTUAL_ENV")`.
27-
2. With no venv but `.python-version` present: returns `("X.Y", "python-version")` — v1 behavior preserved.
28-
3. With nothing: returns `(sys-version, "sys.version_info")` — v1 fallback preserved.
29-
4. Backfill: `tests/test_detection.py` covers all five `source` cases.
30-
5. No regression in v1 callers (`server.py` MCP tool wrapper signature unchanged).
27+
2. With no venv but `.python-version` present: returns `("X.Y", ".python-version file")` — v1 behavior preserved verbatim.
28+
3. With nothing else available: returns `(sys-version, "server runtime")` — v1 fallback preserved verbatim.
29+
4. Backfill: `tests/test_detection.py` covers all five `source` cases (2 new + 3 preserved).
30+
5. No regression in v1 callers (`server.py` MCP tool wrapper signature unchanged; existing source strings unchanged).
3131

3232
## Plans
3333

0 commit comments

Comments
 (0)