aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/specs/2026-07-01-docs-lifecycle-spec.org6
1 files changed, 4 insertions, 2 deletions
diff --git a/docs/specs/2026-07-01-docs-lifecycle-spec.org b/docs/specs/2026-07-01-docs-lifecycle-spec.org
index 656df7f..16e1132 100644
--- a/docs/specs/2026-07-01-docs-lifecycle-spec.org
+++ b/docs/specs/2026-07-01-docs-lifecycle-spec.org
@@ -141,11 +141,13 @@ A synced helper, =spec-sort=, run once per project. *Canonical placement:* like
*The startup nudge — concrete contract.* Phase A's parallel batch gains one read-only probe:
#+begin_src bash
-{ [ -d docs/design ] || compgen -G 'docs/*-spec.org' >/dev/null; } \
+{ [ -d docs/design ] || [ -n "$(find docs -maxdepth 1 -name '*-spec.org' -print -quit 2>/dev/null)" ]; } \
&& ! grep -qs ':LAST_SPEC_SORT:' .ai/notes.org \
- && echo "spec-sort: unsorted docs present"
+ && echo "spec-sort: unsorted docs present" || true
#+end_src
+(Phase 4 refined the stray-root check from =compgen= to =find=: =compgen= is bash-only and zsh aborts on an unmatched glob, so the original snippet false-negatived on stray root specs under zsh.)
+
(The probe also fires on stray =docs/*-spec.org= root files, so a project whose only misfiled specs sit at the =docs/= root still gets nudged.)
Phase C surfaces one line when the probe printed ("this project's docs pile has never been spec-sorted — say 'run spec-sort' to sort it") and stays silent otherwise. Projects with nothing to sort — no =docs/design/= and no stray root specs — never see it; a stamped marker permanently clears it.