mirror of
https://github.com/github/spec-kit.git
synced 2026-07-18 01:10:56 +08:00
fix: find plans in nested spec directories (#3405)
* fix: find plans in nested spec directories The agent-context mtime fallback used a one-level specs/*/plan.md glob, so scoped layouts (specs/<scope>/<feature>/plan.md via SPECIFY_FEATURE_DIRECTORY) never matched and the SPECKIT block was written without a plan path. Recurse in both script variants and update the command doc wording. Fixes #3024 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * refactor: pick newest plan with max(), align doc wording Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
#
|
||||
# When `plan_path` is omitted, the script derives it from `.specify/feature.json`
|
||||
# (written by /speckit-specify). Falls back to the most recently modified
|
||||
# `specs/*/plan.md` only when feature.json is absent or its plan does not exist yet.
|
||||
# `specs/**/plan.md` only when feature.json is absent or its plan does not exist yet.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
@@ -307,14 +307,14 @@ import sys
|
||||
from pathlib import Path
|
||||
root = Path(sys.argv[1]).resolve()
|
||||
specs = root / "specs"
|
||||
plans = sorted(
|
||||
specs.glob("*/plan.md"),
|
||||
plan = max(
|
||||
specs.glob("**/plan.md"),
|
||||
key=lambda p: p.stat().st_mtime,
|
||||
reverse=True,
|
||||
default=None,
|
||||
)
|
||||
if plans:
|
||||
if plan:
|
||||
try:
|
||||
print(plans[0].relative_to(root).as_posix())
|
||||
print(plan.relative_to(root).as_posix())
|
||||
except ValueError:
|
||||
print("")
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user