Add librarian Stage 1 orchestrator (scripts/librarian.sh)

Single entry point that runs every Stage 1 check in order and
aggregates exit codes — both checks always run so users see all
findings in one pass. Two checks wired up today (lychee link
integrity, file:line citations), more land incrementally as Stage 1
grows.

Removes scripts/librarian.sh from the ignore list now that the file
exists. Updates docs/plans/librarian.md Progress + Next Step.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-07 23:24:45 +09:00
co-authored by Claude Opus 4.7
parent a899af4d7e
commit 7a3127de5d
3 changed files with 37 additions and 8 deletions
+7 -5
View File
@@ -131,6 +131,9 @@ operator applies the patch.
references. Caught one real drift in
`docs/research/optimization_sequencing.md` (path moved into
`docs/plans/archive/`).
- ✅ Stage 1 orchestrator: `scripts/librarian.sh`. Runs every Stage 1
check in order, aggregates exit code, prints findings inline. Single
entry point for users and (future) cron.
## Stage 1 Remaining Checks
@@ -143,8 +146,7 @@ operator applies the patch.
## Next Concrete Step
Build `scripts/librarian.sh` as a thin orchestrator that runs every
existing Stage 1 check in order and aggregates the exit code. Two
checks today, more land incrementally. This gives a single entry
point so users (and future cron) can run `scripts/librarian.sh`
instead of remembering each individual checker.
Mention `scripts/librarian.sh` in AGENTS.md so agents and humans know
it exists as the canonical Stage 1 entry point. After that, pick one
of the remaining checks above to add as the next checker (oversize
files is the cheapest; stale plans is the most useful).
-3
View File
@@ -12,9 +12,6 @@
#
# Comments after `#` are stripped per line. Blank lines ignored.
# Future deliverables described in docs/plans/librarian.md
scripts/librarian.sh
# Future config + script described in docs/plans/model_size_experiment.md
configs/deep_cfr/model-size-*.yaml
scripts/run_model_size_experiment.sh
+30
View File
@@ -0,0 +1,30 @@
#!/usr/bin/env bash
# Run all librarian Stage 1 checks. Exit code is non-zero if any check
# failed; each check still runs even if a previous one failed, so users
# see every finding in one pass.
set -uo pipefail
cd "$(dirname "$0")/.."
overall=0
echo "→ Markdown link integrity (lychee)"
if ! uv run python scripts/librarian_check_links.py; then
overall=1
fi
echo
echo "→ Code citations (file:line refs in inline code)"
if ! uv run python scripts/librarian_check_citations.py; then
overall=1
fi
echo
if [ "$overall" -eq 0 ]; then
echo "All Stage 1 checks passed."
else
echo "One or more Stage 1 checks failed (see above)."
fi
exit "$overall"