De-slop: remove every em-dash + banned words across all modules + capstone (#94)
Sync course wiki / sync-wiki (push) Successful in 4s

Co-authored-by: claude <claude@jpaul.io>
Co-committed-by: claude <claude@jpaul.io>
This commit was merged in pull request #94.
This commit is contained in:
2026-06-22 23:21:22 -04:00
committed by Claude (agent)
parent 513d7e7ac8
commit c098933f25
99 changed files with 1324 additions and 1315 deletions
@@ -1,9 +1,9 @@
#!/usr/bin/env python3
"""orient.py build a factual orientation pack for a repo you didn't write.
"""orient.py: build a factual orientation pack for a repo you didn't write.
Run it from the root of a cloned repo. It prints a Markdown summary of *ground truth*
about the codebase size, languages, project signals, the biggest (often most central)
files, the top-level layout, and likely build/test commands that you can paste in as the
about the codebase (size, languages, project signals, the biggest (often most central)
files, the top-level layout, and likely build/test commands) that you can paste in as the
opening context for an AI session before asking it to map or change anything.
The point is NOT to replace the AI's own exploration. It's to anchor that exploration in
@@ -46,10 +46,10 @@ SIGNALS: dict[str, str] = {
".gitea": "Gitea Actions",
".gitlab-ci.yml": "GitLab CI",
"tox.ini": "Python test matrix",
"README.md": "Has a README read it first",
"CONTRIBUTING.md": "Has contributor guidance read before changing",
"ARCHITECTURE.md": "Has an architecture doc rare and valuable",
# Committed AI-instruction files. Name the real ones across vendors singling out one
"README.md": "Has a README; read it first",
"CONTRIBUTING.md": "Has contributor guidance; read before changing",
"ARCHITECTURE.md": "Has an architecture doc; rare and valuable",
# Committed AI-instruction files. Name the real ones across vendors; singling out one
# would both miss files and cut against the vendor-neutral point (Module 5).
"AGENTS.md": "Has a committed AI instructions file (Module 5)",
"CLAUDE.md": "Has a committed AI instructions file (Module 5)",
@@ -142,9 +142,9 @@ def main() -> int:
if present:
for name in SIGNALS:
if name in present:
w(f"- `{name}` {SIGNALS[name]}")
w(f"- `{name}`: {SIGNALS[name]}")
else:
w("- (none of the usual manifests/CI/docs at the root look one level down)")
w("- (none of the usual manifests/CI/docs at the root; look one level down)")
# --- likely test command ------------------------------------------------
hints = [TEST_HINTS[name] for name in TEST_HINTS if name in present]
@@ -175,7 +175,7 @@ def main() -> int:
w("\n## Top-level layout (entries by tracked-file count)\n")
for name, n in sorted(top_dirs.items(), key=lambda kv: (-kv[1], kv[0])):
kind = "dir" if "/" in next(p for p in files if p.split("/", 1)[0] == name) else "file"
w(f"- `{name}`{'/' if kind == 'dir' else ''} {n}")
w(f"- `{name}`{'/' if kind == 'dir' else ''}: {n}")
# --- recent activity ----------------------------------------------------
recent = git("log", "--oneline", "-10")