Wire the repo up like Nestor: integrity gate, CI, cold-start docs, no orphans - #12
Open
rudi193-cmd wants to merge 2 commits into
Open
Wire the repo up like Nestor: integrity gate, CI, cold-start docs, no orphans#12rudi193-cmd wants to merge 2 commits into
rudi193-cmd wants to merge 2 commits into
Conversation
…ity targets The remaining 4 broken links from the link audit pointed at `../showcases/…` and `../research/emerging-rule-scribe-talkthrough.md` — paths that resolve in the Emerging-Rule/community tree (where lessons/, showcases/ and research/ sit side by side) but were never copied into this repo. The lesson files here are copies of files that live canonically in that community repo, so the relative links broke on the copy. Repointed all four to their real files on Emerging-Rule/community main, each verified to exist by cloning the (public) repo: - lessons/ai-calibration-6-10-index.md -> showcases/ai-calibration-6-10/README.md - lessons/ai-literacy-9-12-index.md -> showcases/ai-literacy-9-12/README.md - lessons/socialstudies-6-8-teacher-overview.md -> showcases/socialstudies-6-8/README.md - lessons/cs-k12-the-scribe-who-forgot-his-dreams.md -> research/emerging-rule-scribe-talkthrough.md Repo-wide relative-link audit now reports 0 broken. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NLUdsdbBJM5FSejZAmTHwf
… and no orphans This writing repo had no checks and no CI. Give it Nestor's discipline, sized for prose: - scripts/check_repo.py — one stdlib gate enforcing two invariants: every relative Markdown link resolves, and every Markdown file is reachable from README.md (the front door reaches everything), minus a documented ALLOWLIST. Proven to fail on both a broken link and a stray orphan, then green again. - .github/workflows/checks.yml — the repo's first CI; runs the gate on every push and pull request. - AGENTS.md — cold-start map and house conventions (draft+packet pairs keep identical figures; sources named inline, no URLs in research prose; the assumed/fitted/measured provenance ordering; no overclaiming). CLAUDE.md is a thin pointer to it, matching Nestor. - Adopted the four orphans the audit found: linked the Social Studies teacher overview from its series section, and added a Creative section indexing the three creative dispatches. drafts/ WIP and the internal HANDOFF are allowlisted with reasons; AGENTS.md/CLAUDE.md too (agent docs, not reader-facing). Gate now green: 60 markdown files, all links resolve, all reachable, 4 allowlisted. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NLUdsdbBJM5FSejZAmTHwf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This writing repo had no checks and no CI. This gives it Nestor's discipline, sized for prose: a gate that keeps the links honest and nothing stranded, the CI to run it, cold-start docs, and every file wired into the index.
What's in it
1. The gate —
scripts/check_repo.py(stdlib only, no install)Two invariants:
http/mailtolinks aren't checked).README.md— the front door reaches everything — minus a documentedALLOWLIST(each entry carries a reason).Proven to fail on both a broken link and a stray orphan, then green again — a gate that can't fail is a decoration.
2. CI —
.github/workflows/checks.ymlThe repo's first workflow; runs the gate on every push and pull request. (This PR is the first thing it runs on.)
3. Cold-start docs —
AGENTS.md(+ a thinCLAUDE.mdpointer, matching Nestor)The house conventions, written down: draft+packet pairs keep identical figures; sources named inline with no URLs in research prose; the
assumed/fitted/measuredprovenance ordering from Nobody Counts the Ad Breaks; no overclaiming.4. Adopted the four orphans the audit found
drafts/WIP, the internalHANDOFF, and the agent docs (AGENTS.md/CLAUDE.md) are allowlisted with reasons — not reader-facing.Evidence
python scripts/check_repo.py→ OK — 60 markdown files, all links resolve, all reachable from README (4 allowlisted)FAIL … broken link, a stray file →FAIL … orphan, exit 1 both times; green again after revertFollow-on (not blocking)
The house conventions in
AGENTS.md(draft-vs-packet figure parity, no-URL research prose, provenance honesty) are stated but not yet gate-enforced — they could become checks later if worth the machinery.Generated by Claude Code