fix(voice/consistency): vary stock formulas, vendor-balance orient.py, unify the loop

- Vary 11 instances of two boilerplate openers ("A generic X course…" /
  "Strip away X…") across 10 modules so they read as distinct, concrete prose;
  kept the few deliberate, voice-distinct uses; locked exemplars untouched.
- M23 orient.py: detect a vendor-balanced set of AI-instruction filenames
  (AGENTS.md/CLAUDE.md/GEMINI.md/.cursorrules/.cursor/rules/copilot-instructions)
  instead of singling out one vendor. Still runs.
- Render the collaboration loop consistently as seven stations
  (issue->branch->implementation->PR->review->merge->closed) in M25/M26 to match
  M11 and the syllabus.

Closes #48
Closes #49
Closes #51

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TfzV5QvtPDz8LJS3Pu5VLT
This commit is contained in:
2026-06-22 17:45:20 -04:00
parent f7011d4211
commit 7e8046a57f
12 changed files with 35 additions and 33 deletions
@@ -49,8 +49,14 @@ SIGNALS: dict[str, str] = {
"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)",
"GEMINI.md": "Has a committed AI instructions file (Module 5)",
".cursorrules": "Has a committed AI instructions file (Module 5)",
".cursor/rules": "Has a committed AI instructions file (Module 5)",
".github/copilot-instructions.md": "Has a committed AI instructions file (Module 5)",
}
# Common test-runner hints keyed off a present signal file.