Skip to content

Readability refactor: article numbering, canonical terminology, referee aids (v2.0.0-draft) - #13

Open
kohutovic wants to merge 20 commits into
masterfrom
readability-refactor
Open

Readability refactor: article numbering, canonical terminology, referee aids (v2.0.0-draft)#13
kohutovic wants to merge 20 commits into
masterfrom
readability-refactor

Conversation

@kohutovic

@kohutovic kohutovic commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Zhrnutie

Kompletný refactor čitateľnosti rulebooku podľa auditu z 8. 8. 2026 — bez zámernej zmeny významu ktoréhokoľvek pravidla (obsahové otázky sú vyčlenené do docs/open-questions.md).

Štruktúra

  • Kapitoly premenované na kanonické poradie čítania (04 = right-of-way, 05 = longsword, 06 = rapier, 07 = sabre, 08 = sword & buckler, 09 = organisational, 10 = disciplinary); README, PDF aj čísla súborov už hovoria to isté.
  • Globálne číslovanie článkov — 292 pravidiel so stabilnými ID (E.1–80, G.1–50, RoW.1–29, LS.1–10, R.1–21, S.1–9, SB.1–8, O.1–41, D.1–44); krížové odkazy prevedené na presné citácie, rozbité FIE pozostatky (Article 29/44, Figure 2) odstránené.
  • 03-general reorganizovaný: podnadpisy, všeobecné zákazy vytiahnuté spod longsword-only sekcie, pravidlo dominancie rozložené na G.34–G.37.
  • Duplicitné pravidlá majú jeden kanonický domov (parametre bojov → O, kontrola výstroja → E, tri výzvy → D).

Jazyk

  • Konvencia normatívnych slovies (must/may/should/can) + klauzula „Use of Language"; nula shall.
  • Opravené rozbité definície (double hit), gramatické chyby a zavádzajúce negácie; rodovo neutrálne formulácie; jednotná terminológia (fencer, bout, priority, point vs hit, arena, cross-guard…); rozšírený glosár.

Pomôcky

  • Tabuľka trestov prepísaná z HTML na Markdown s vyplneným stĺpcom ART. a farebnými kartami v PDF.
  • Nové prílohy: A3 Weapon Overview, A4 Referee Quick Reference; 8 worked examples pre taktické situácie a prioritu; súhrnné tabuľky (parametre bojov, parametre zbraní, checklist výstroj × zbraň).
  • Verziovanie: VERSION 2.0.0-draft, kurátorovaný CHANGELOG.md, verzia na titulnej strane PDF; opravený TOC (named destinations namiesto text-matchingu).
  • CI-friendly kontroly: scripts/check_links.sh, scripts/check_conventions.sh (obe prechádzajú).

Na rozhodnutie federácie

docs/open-questions.md — 9 otvorených obsahových otázok (video review, hranica bedra v šabli, rukoväť ako cieľ v rapíri, nekotvené priestupky 1.1/1.13/1.2/1.9/4.2, flexibilita jednoručáku, nečíslovaný normatívny blok v RoW).

Poznámky

Známy drobný rest: „1 meter" (singulár) v 02-equipment.md:10.

kohutovic and others added 20 commits August 8, 2026 22:45
…ppendix numbering

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
…ctions, extract dominance

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
…, three-call procedure and flexibility measurement

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
…ng negations

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
…e clause

Add a Use of Language section to 01-intro.md establishing must/may/should/can
conventions, then sweep every shall and normative will/is going to in the
rulebook body to must (binding obligation) or present tense (procedure
description / conditional consequence), per that convention. Also normalises
2 * 2 minutes to 2 x 2 minutes in 09-organisational.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
…in disciplinary chapter

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
…, convention check script

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
… Task 7 sweep

Advisor review of the terminology-canonicalization pass caught one real gap
(03-general.md still said "hit limits" while its own cross-referenced
section and the same paragraph's "5/7 points" already used "points") and
two readability nits (a "fencer among the fencers" stutter in the intro,
and an over-long line from the fencing-time glossary-link replacement).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
…eferences, remove broken FIE references

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
… card colours in PDF

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
…ment checklist

Adds three informative (non-normative) summary tables per Task 10: bout
parameters at the top of 09-organisational.md's "Organisation of the
competitions and classification" section, a weapon-parameters table at the
start of 02-equipment.md's Weapons section, and an equipment checklist by
weapon category at the end of 02-equipment.md. All values cross-checked
against the E./O. articles; no discrepancies found. The glove/hilt exception
cites E.15.

Also fixes generate_pdf.py: table rows had no page-break-inside protection,
so the new 14-row checklist table (taller than any prior table) split
mid-row across a page boundary. Added `tr { page-break-inside: avoid }` to
the table CSS; re-verified existing penalty tables still render intact.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
…uick reference appendices

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
Extends check_conventions.sh's file list to appendices/03-weapon-overview.md
and appendices/04-referee-quick-reference.md, added in the previous commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
… questions

- VERSION + CHANGELOG.md (2.0.0-draft); README version line under the H1.
- generate_pdf.py: title page shows the version, Change Log page renders
  CHANGELOG.md instead of the raw git log, CHANGELOG.md excluded from the
  chapter sweep.
- Fixed the TOC page-number lookup to resolve anchors via the PDF's own
  named destinations instead of matching heading text, which collided on
  repeated titles across chapters (e.g. "Judging of hits", "Arena
  boundaries"). Also fixed a related dead-anchor bug where a heading
  containing a quote/apostrophe got a different id at HTML-generation time
  (post-smarty entities) than at TOC-generation time (raw markdown).
- docs/open-questions.md: open content questions for the federation
  (video review, sabre hip line, rapier hilt target, unanchored offences,
  one-handed flexibility) — no rule text changed.
- Deferred fixes: G.28 "calculation of ranking" typo, G.6 cross-ref range
  tightened to the bout-duration articles, O.19/O.33 deciding-hit
  cross-references point at G.20 directly.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
Code review found _extract_page_numbers_by_title (the fallback used when a
TOC anchor has no named destination) resolves matches incorrectly once more
than a couple of entries need it: a forced run resolved only 9/74 entries
and all 9 landed on the wrong page, because (a) its search-window cursor
only ever advances and never resets, so one bad match corrupts every later
lookup, and (b) it matches the title text anywhere on a page, including body
prose, not just headings.

The primary named-destination path already resolves 100% of TOC entries in
the real build, so this fallback was dead code that could only produce
confidently wrong page numbers if it were ever silently triggered. Removed
it; an anchor without a named destination is now reported with a single
loud warning and left with a blank TOC page number instead.

Verified: generate_pdf.py exits 0 with an unchanged 66-page build (74/74
entries still resolve via named destinations, zero page-order regressions,
same duplicate-title disambiguation as before); forced named_destinations
to fail and confirmed graceful degradation (one warning listing all 74
titles, 74 blank TOC page-number spans, zero wrong ones).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
… review polish

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant