From 4ff7fb9031ff740eccbc56c08b2c6d064472fc94 Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sat, 8 Aug 2026 22:45:12 +0200 Subject: [PATCH 01/20] chore: consistency fixes, new chapters, PDF generator and refactor plan Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- .learnings/ERRORS.md | 38 + 02-equipment.md | 43 +- 03-general.md | 69 +- 04-longsword.md | 11 +- 05-rapier.md | 10 +- 06-organisational.md | 41 +- 08-sabre.md | 6 +- 10-sword-and-buckler.md | 37 + FEBUS_smernica_o_rozhodcoch_navrh.docx | Bin 0 -> 255051 bytes FEBUS_smernica_o_rozhodcoch_navrh.md | 249 ++++ README.md | 1 + appendices/01-glossary.md | 32 +- appendices/02-penalties.md | 70 +- ...026-08-08-rulebook-readability-refactor.md | 1224 +++++++++++++++++ febus_logo.jpg | Bin 0 -> 262832 bytes generate.sh | 95 ++ generate_pdf.py | 980 +++++++++++++ requirements.txt | 4 + 18 files changed, 2808 insertions(+), 102 deletions(-) create mode 100644 .learnings/ERRORS.md create mode 100644 10-sword-and-buckler.md create mode 100644 FEBUS_smernica_o_rozhodcoch_navrh.docx create mode 100644 FEBUS_smernica_o_rozhodcoch_navrh.md create mode 100644 docs/superpowers/plans/2026-08-08-rulebook-readability-refactor.md create mode 100644 febus_logo.jpg create mode 100755 generate.sh create mode 100644 generate_pdf.py create mode 100644 requirements.txt diff --git a/.learnings/ERRORS.md b/.learnings/ERRORS.md new file mode 100644 index 0000000..9f65920 --- /dev/null +++ b/.learnings/ERRORS.md @@ -0,0 +1,38 @@ +# Errors + +## [ERR-20260728-001] docx_xml_text_replacement + +**Logged**: 2026-07-28T00:00:00+02:00 +**Priority**: low +**Status**: resolved +**Area**: docs + +### Summary +Exact DOCX XML replacement failed because the closing quotation mark in the Word file differed from the Markdown source. + +### Error + +```text +RuntimeError: Expected one occurrence, found 0: Zriaďuje sa Rozhodcovská komisia (ďalej „Komisia") ako odborný orgán FEBUS pre rozhodcovskú agendu. +``` + +### Context + +- The updater validates every original passage before rewriting the DOCX archive. +- The failed validation prevented any modification of the Word file. + +### Suggested Fix + +Inspect the exact paragraph text extracted from `word/document.xml`, update the expected source string, and rerun the all-or-nothing replacement. + +### Metadata + +- Reproducible: yes +- Related Files: FEBUS_smernica_o_rozhodcoch_navrh.docx, .tmp_update_directive_docx.py + +### Resolution + +- **Resolved**: 2026-07-28T00:00:00+02:00 +- **Notes**: Matched the XML-escaped quotation mark and the separately formatted bold text run; all 20 replacements then completed atomically. + +--- diff --git a/02-equipment.md b/02-equipment.md index 8e3c1a6..7568ec7 100644 --- a/02-equipment.md +++ b/02-equipment.md @@ -14,7 +14,7 @@ 4. The starting position of the fencers must be marked in such a way that start-line is at least 2m away from the center of the arena in opposite directions, setting up at least 4m distance between - the fencers at the start of each assault. + the fencers at the start of each exchange. ## Equipment standards @@ -25,10 +25,11 @@ 2. The mandatory equipment is controlled by the designated tournament staff before the competition and an additional check must be done by the referee of each fencing arena. A referee may require - a contestant to change or adjust a part of his equipment in a time frame which won’t be longer - than 5 minutes. If it is not possible for the contestant to comply within the set time frame, the - contestant will be awarded a black card and won’t be able to continue in the respective - tournament. + a contestant to change or adjust a part of their equipment. Nonconforming clothing or equipment + is penalised according to the first group of offences (see penalty 1.6), and the contestant will + not be allowed to start or continue competing until the item(s) have been approved or replaced + with approved ones. For an equipment failure occurring in the course of a bout, a break of up to + 3 minutes may be allowed (see the General Rules). 3. In case of an accident caused by unfit or inadequate equipment approved negligently by the equipment check staff or the referee, the responsibility lies with the staff or referee, who @@ -59,9 +60,9 @@ sporting-historical fencing are allowed. It is forbidden to use pieces of metal on any place of the gloves. -2. Rapier: Fencer with bell guard rapier or sufficiently closed hilt does not need to wear a - massive glove with the primary weapon. However, additional hand protection is needed for the - protection of the wrist and forearm. +2. Rapier and Sabre: A fencer with a bell guard, basket, or sufficiently closed hilt does not need + to wear a massive glove with the primary weapon. However, additional hand protection is needed + for the protection of the wrist and forearm. 3. Rapier: If a fencer uses a side weapon, this hand needs to be protected with a glove with additional hand protection (e.g. padding...) @@ -69,10 +70,10 @@ 4. Gloves used in a tournament don’t need to have a thickened layer on the inside of the palm but the palm must be covered at least by a simple glove or textile. -5. The torso of the body must be protected with an undamaged fencing jacket or gambeson which is - made of special hardened or thick material which prevents blade penetration and eases the blade - impact. The jacket is subjected to control by the tournament staff and the arena referee. A - fencing jacket must cover the armpits as well. +5. The torso of the body must be protected with an undamaged fencing jacket or gambeson with at + least 350N FIE certification, made of special hardened or thick material which prevents blade + penetration and eases the blade impact. The jacket is subjected to control by the tournament + staff and the arena referee. A fencing jacket must cover the armpits as well. 6. Every female contestant must wear solid breast/chest protection. @@ -82,6 +83,10 @@ 8. Every part of the body must be covered. No open space must be left between the gloves and the jacket. +9. An 800N FIE-certified under-plastron is mandatory in the Rapier category. + +10. A rigid wrist guard is mandatory in the Longsword, Sabre, and Sword & Buckler categories. + #### Legs 1. A groin protector is mandatory for every male contestant in all weapon categories. @@ -124,7 +129,8 @@ 9. The point of balance of the sword cannot be more than 9cm away from the cross-guard. -10. The point of the sword must be covered by a red/white/orange tape for better visibility. +10. The point of the sword must be covered by contrasting high-visibility tape for better + visibility. 11. The overall length of the sword must be within 120-140cm. @@ -151,7 +157,8 @@ 7. The point of balance of the sword cannot be more than 9cm away from the cross-guard. -8. The point of the sword must be covered by a red/white tape for better visibility. +8. The point of the sword must be covered by contrasting high-visibility tape for better + visibility. 9. The overall length of the sword must be within 70-100cm. @@ -201,8 +208,8 @@ additionally secured by protection such as properly fitted plastic or cork end. Adequacy of protection will be judged by the main referee or tournament organizer. -8. The point of the primary and side weapon must be covered by reflexive tape for better - visibility. +8. The point of the primary and side weapon must be covered by contrasting high-visibility tape + for better visibility. 9. The minimum point surface area is 50mm². @@ -218,7 +225,7 @@ 4. The point of dagger must be blunt and rounded. If the tip is not rounded, it must be additionally secured by protection such as properly fitted plastic or cork end. The point of side weapon must - be covered by reflexive tape. + be covered by contrasting high-visibility tape. #### Cloak @@ -249,7 +256,7 @@ 5. The flexibility of the blade is measured by applying pressure on the blade point against scales, with one hand firmly placed on the pommel. The blade's flexibility is defined as the maximum number (in kg) displayed on the scales before the blade reaches full bend. For - longsword blades, the acceptable range is 10kg. + sabre blades, the acceptable flexibility is 10kg or less. 6. The minimum point surface area is 50mm². The blade will have a safe tip, this being defined as rolled, thickened or spatulated. The tip will be further built up at the event with contrasting diff --git a/03-general.md b/03-general.md index 655d070..41726d4 100644 --- a/03-general.md +++ b/03-general.md @@ -1,9 +1,9 @@ -### General rules +# General rules ## The Process of the Bouts 1. Each bout is performed for a set amount of time or until a set amount of hits. This is achieved - through a series of separate, independent assaults. + through a series of separate, independent exchanges. 2. The competitors present themselves in the arena when called by the referee before each pool or direct elimination bout, in appropriate gear conforming to the rules and be ready to fence. @@ -27,16 +27,18 @@ 6. Pool bouts last 2 minutes of effective fencing time; or until one of the fencers reaches 5 points. Direct Elimination bouts last 2 * 2 minutes of effective fencing time, with one minute resting period after the first 2 minutes period; or until one of the fencers reaches 7 points. - The 'End of Time' is going to be announced by a Timekeeper, but the match can be stopped only by - the referee. + The Organising Team may announce different bout durations or hit limits before the start of + the competition (see the Organisational Rules); unless announced otherwise, these defaults + apply. The 'End of Time' is going to be announced by a Timekeeper, but the match can be stopped + only by the referee. 7. Before the beginning of each bout, the two fencers called on the arena salute to their opponent, and the referee. Competitors come on guard when the referee gives the order ‘On guard!’, after which the referee asks, ‘Are you ready?’. On the affirmative, or in the absence of a negative reply, the command will be given for fencing to commence with the word ‘Fence!’. -8. The assault stops when the Referee commands ‘Halt!/Stop!’. The most common reasons for stopping - a bout: +8. The exchange stops when the Referee commands ‘Halt!/Stop!’. The most common reasons for stopping + an exchange: 1. a valid hit has been made 2. an invalid hit has been made, which may complicate the evaluation of any further actions 3. a fencer has left the arena with both feet @@ -44,10 +46,10 @@ 5. dangerous or confused fencing 6. equipment failure 7. injury - 8. a fencer has requested to break the assault + 8. a fencer has requested to break the exchange 9. Fencers may ask for a break by signaling with their arm raised. This may be done due to any - reason that proves to be valid (e.g. equipment failure, injury). However, the assault stops only + reason that proves to be valid (e.g. equipment failure, injury). However, the exchange stops only when the Referee gives the command to stop. 10. No actions that have started before the command to start or after the command to stop may be @@ -55,24 +57,25 @@ the command to stop belong to the first group of offences. 11. Invalid hits may be disregarded at the Referee's discretion as if never happened, when the - Referee is able to clearly follow the assault. + Referee is able to clearly follow the exchange. -12. However, if when the Referee stops the bout, a hit that the referee believed invalid and ignored - before the conclusion of the last assault proves to have been valid, the Referee shall, if +12. However, if when the Referee stops the exchange, a hit that the referee believed invalid and ignored + before the conclusion of the last exchange proves to have been valid, the Referee shall, if possible, make a decision in relation to the actual first hit, even if this results in the annulment of other valid hits that happened afterwards. 13. When a competitor crosses one of the boundaries of the arena with both feet completely off the - arena, the Referee must immediately stop the assault. + arena, the Referee must immediately stop the exchange. 14. If the fencer goes off the arena with both feet, the Referee must annul everything that has occurred after the boundary has been crossed. 15. A hit scored by the fencer who leaves the arena with one foot only is valid provided that the - action was started before the bout was stopped, even if the fencer leaves the arena afterwards. + action was started before the exchange was stopped, even if the fencer leaves the arena + afterwards. 16. Should a competitor cross the boundary of the arena completely — i.e. with both feet — without - having scored any valid hits before crossing the limit of the arena + having scored any valid hits before crossing the limit of the arena (see penalty 0.3) 1. upon the first occasion within a bout, the fencer receives a verbal warning 2. upon each subsequent cases within the bout, a hit will be scored against him (as if they had been hit). @@ -80,7 +83,7 @@ 17. A competitor who involuntarily crosses one of the boundaries of the arena as the result of any accidental cause (such as jostling/being pushed out by the opponent) incurs no penalty. -18. After each valid hit and in case the bout is stopped for other reasons (confused fencing, +18. After each valid hit and in case the exchange is stopped for other reasons (confused fencing, malfunction, unsuccessful grappling, etc.) the bout continues from the 'On guard' position, at the starting line. @@ -90,13 +93,13 @@ 20. In case the points of the fencers are equal at the time limit, an additional minute of time is given, during which the first valid hit wins the bout. Additionally, before overtime starts, the - referee flips a coin and randomly assigns one of the two fencers with priority. If the sudden + referee draws lots and randomly assigns one of the two fencers with priority. If the sudden death overtime runs out with neither fencer scoring, the fencer with priority wins the bout. This randomly assigned priority has no effect on the judgment of actions during the overtime. 21. At the end of the bout the referee will announce the winner and the final score. The opponents shall salute to the referees and the opponent and shake hands with the opponent (Refusal to - observe this rule by one or both of the opponents belongs to the third group of offences). + observe this rule by one or both of the opponents belongs to the fourth group of offences). 22. After the pool round and each direct elimination bout, the fencers shall check and sign the result sheet filled in by the referee during the bout, before leaving the arena. @@ -150,7 +153,7 @@ are defined in the rules. 1. A simultaneous hit is the result of a similar conception and execution of both fencers at the - same time. In these cases, both fencers are called a point against. + same time. The scoring of simultaneous hits is determined by weapon-specific rules. 2. A double hit occurs when both fencers get hit within a period of fencing time, but are not simultaneous actions, are evaluated according to the rules or each specific weapon. @@ -160,17 +163,19 @@ After-actions do not score, and do not nullify the hit received. 4. Hits can be made using the weapon in the following ways: - 1. Cut - carried out with the edge or the flat of the blade on any valid target. A cut must be - performed with a visually distinctive trajectory (preparation more than 45 degrees) and must - correspond with an action that would probably cause the target area to be wounded, e.g. - hitting head with the flat surface of the sword also counts + 1. Cut - carried out with the edge of the blade on any valid target. A cut must be performed + with a visually distinctive trajectory (preparation more than 45 degrees) and must correspond + with an action that would probably cause the target area to be wounded. Hits performed with + the flat may be counted at the Referee's discretion, if they bear the characteristics of a + coordinated and potent technique (e.g. hitting the head with the flat surface of the sword). 2. Thrust - carried out with the point of the weapon on any valid target. A valid thrust must be performed in such a way that it would be visually distinctive, e.g. the blade will be bent at the end of the action and the point will traverse at least 20cm. 3. Slice - carried out with the edge of the weapon on any valid target. A slice must be a movement which is defined by pushing or pulling of the blade against the valid area in a visually distinctive way. - 4. Strike - using the pommel of the weapon against any part of the opponent's mask. + 4. Strike - using the pommel of the weapon against the front mesh of the opponent's mask. + This action is valid only in the Longsword category. 5. The referee may call an action as a valid hit, when a weapon action results in a passively constraining position for the opponent, for a considerable time during which the opponent is unable to break free. This may be the result of of grappling, locks involving the weapon, or @@ -179,11 +184,13 @@ dominant position is upheld are not considered valid. However, dominance can not be applied to situations, when the opponent can practically break free and initiate valid actions, even if by some active measures, the weapon contact is not completely broken. It is up to the - referee’s discretion to judge the validity of dominance actions. + referee’s discretion to judge the validity of dominance actions. Dominance achieved by + grappling or close quarter combat can be applied only in the Longsword category. ## Close quarter combat -Close quarter combat and grappling are allowed with the following regulations: +Close quarter combat and grappling are allowed only where the weapon-specific rules permit them +(currently only in the Longsword category), with the following regulations: 1. The Referee may call 'Halt!' after an unsuccessful period of grappling. 2. Grappling on the opponent's blade is allowed, if the blade is controlled. Seizing of the blade @@ -215,7 +222,8 @@ Close quarter combat and grappling are allowed with the following regulations: 2. Excessive force, brutality or unnecessary violence are forbidden. -3. Hitting the back of the head the spine, the back of the knee or the foot is forbidden. +3. Hitting the back of the head, the spine, the groin, the back of the knee or the foot is + forbidden. 4. Turning the head or covering a valid target with a non-valid one belongs to the first group of offences. @@ -226,10 +234,5 @@ Close quarter combat and grappling are allowed with the following regulations: the Referee). 6. It is forbidden to hit with the cross-guard, where applicable, or with the basket or bell guard; - and in all circumstances, to hit the back of the head, spine and back of the knee, and the foot - of the opponent and will be penalised. - -7. Hitting the arena floor with any weapon due to bad measure in an action will be penalised - according to the first group of offences (cases resulting from the opponent's interactions, - accidental touches, and touching the floor after having hit the opponent, may be disregarded by - the Referee). + and in all circumstances, to hit the back of the head, spine, groin, back of the knee, and the + foot of the opponent and will be penalised. diff --git a/04-longsword.md b/04-longsword.md index fbe3a50..b863707 100644 --- a/04-longsword.md +++ b/04-longsword.md @@ -5,8 +5,9 @@ 1. All hits made with the true edge, the false edge, and the tip of the blade are valid if they are performed in such a way that it would have caused a wound to an unarmoured opponent, had the weapon been sharp. Hits performed with the flat may be counted, if they bear the characteristics - of a coordinated and potent technique. It is up to the referee’s discretion to judge the validity - of hits. + of a coordinated and potent technique. A strike with the pommel against the front mesh of the + opponent's mask is also a valid hit (see the General Rules, 'The methods of scoring hits'). It is + up to the referee’s discretion to judge the validity of hits. 2. Hits through the blade, that is to say those which bend over the opponent’s blade or cross-guard, are not considered to be valid. However, the referee may count a hit as valid, if the opponent’s @@ -14,11 +15,11 @@ the weapon of the opponent, whenever they arrive clearly on the target. 3. The target includes the whole of the fencer’s body, including the handle of the weapon, clothing, - and safety equipment, except for the back of the head, spine, the feet, and the back of the - knees. + and safety equipment, except for the back of the head, spine, groin, the feet, and the back of + the knees. -## *Vor* (priority) +## Vor/Priority Longsword uses the standard right-of-way system. See [Right of Way and Priority Rules](09-right-of-way.md) for detailed priority conventions and examples. diff --git a/05-rapier.md b/05-rapier.md index 165419a..b55e118 100644 --- a/05-rapier.md +++ b/05-rapier.md @@ -13,12 +13,18 @@ ## Judging of hits +Rapier and side weapons do not use priority (Right of Way) rules. Scoring follows combat rules: +only the first valid hit scores. In the case of hits arriving within one period of fencing time, +the rules below apply. + 1. A double hit occurs when two valid hits that land within one period of fencing time. 2. When a double hit consists of a thrust by one fencer and a cut or slice by the other, the thrust scores one point and the cut scores no point. -3. In all other double hits, each fencer scores one point. +3. In all other double hits, each fencer scores one point. Simultaneous hits (similar conception + and execution of both fencers at the same time) are treated the same way: each fencer scores one + point. 4. A hit that begins at or after the moment a fencer receives a valid hit (after-action) is not counted. @@ -33,7 +39,7 @@ discretion to judge the validity of hits, in accordance with the Rulebook’s regulations. 7. The target includes the whole of the fencer’s body, clothing, and safety equipment, except for - the back of the head, spine, the feet, the back of the knees, and if used, the cloak. + the back of the head, spine, groin, the feet, the back of the knees, and if used, the cloak. 8. It is allowed to parry using the unarmed hand, as long as the weapon is controlled (thrusts or static blade positions, where the parrying hand does not get a direct hit). diff --git a/06-organisational.md b/06-organisational.md index 4c1b293..13f7161 100644 --- a/06-organisational.md +++ b/06-organisational.md @@ -1,10 +1,34 @@ # Organisational Rules +## Eligibility + 1. The competition is open to athletes of 18 years and older. 2. It is prohibited to enter a competition under the influence of alcohol or performance-altering drugs (including recreational drugs and those prescribed by physicians). +## Fencer readiness and presence + +1. All fencers must be present at their assigned fencing area 10 minutes before the start of + bouts. This applies to both the pool round and the direct elimination stage. + +2. Fencers will be called by the staff of the given fencing area 10 minutes before the start of + bouts. If a fencer is not present when called, the call will be repeated two additional times, + each after 1 minute. After the third unanswered call, the fencer is disqualified from the + competition (they may still participate in other competitions/weapons of the tournament; see + penalty 0.1). + +3. During a competition, if a fencer does not present themselves on the arena ready to fence + when ordered to do so by the Referee, the procedure described in the disciplinary rules + applies (Yellow → Red → elimination, with 1-minute intervals between calls; see penalty 0.2 + and the Fencing etiquette section). + +4. The Refereeing Team will check the readiness of fencers (completeness of safety gear and + weapons) before the indicated start of bouts. The Referee may repeat this check at any time. + Fencers who appear in the fencing area with unapproved or incomplete equipment will be + penalised, and will not be allowed to start or continue competing without having the item(s) + approved or replaced (see Equipment Standards). + ## The Refereeing system ### Main Referee @@ -13,19 +37,20 @@ necessary, supported by an administrative crew). 2. The Referee gives the signals to start, stop, assigns points and describes what happened during - the entire assault or at least the last exchange. + the entire bout or at least the last exchange. -3. After stopping the bout, the Referee consults with the Assistant and proposes a result. If the +3. After stopping an exchange, the Referee consults with the Assistant and proposes a result. If the fencers accept the decision (they say nothing), the fight continues with the proposed score. If they don’t agree with the Referee, but they agree with each other, the Referee may make a decision according to their wishes. If any of the fencers protests and the fencers disagree with each other, the Referee will decide whether to assign a point (being completely sure) or repeat - the assault. + the exchange. 4. If the Referee is unable to interpret the fencing phrase for some reason, they can repeat the - exchange but will explain and apologise. + exchange but will explain and apologise. When an exchange is repeated, the time measured for + the bout is set back by 10 seconds. -5. The Referee's decisions can not be contested after the bout. +5. The Referee's decisions can not be contested after the start of the following bout. 6. Main referee must be able conduct and manage bouts in English. @@ -35,12 +60,16 @@ observe a match from a different angle than the main Referee. 2. The Assistant may signal hits made by the fencers to the Referee by raising their arm, even if - the Referee does not halt the assault immediately. + the Referee does not halt the exchange immediately. 3. An Assistant Referee is not responsible for point assignment nor for the overall match score. ## Organisation of the competitions and classification +The values stated below (pool sizes, hit limits, bout durations, and the share of fencers +eliminated after the pools) are the standard defaults. The Organising Team may announce different +values before the start of the competition; unless announced otherwise, the defaults apply. + ### The round of pools 1. In all competitions for which the formula includes a round of pools, these pools will consist of diff --git a/08-sabre.md b/08-sabre.md index 7266c9f..d46370f 100644 --- a/08-sabre.md +++ b/08-sabre.md @@ -4,7 +4,8 @@ 1. Targets are restricted from the hips up, including arms and head, but with legs being a non-scoring target. -2. Strikes to a non-scoring target will not score. +2. Strikes to a non-scoring target do not score, do not stop the exchange, and do not assign any + points. 3. Repeated, deliberate strikes to an off-target will be judged as strikes to an illegal target and dealt with accordingly. @@ -20,7 +21,8 @@ ## Forbidden actions -1. Grappling or close quarter combat is forbidden. +1. Grappling or close quarter combat is forbidden; it belongs to the first group of offences (see + penalty 1.5). 2. Engaging in grappling, close quarters combat, or corps-a-corps will immediately be stopped by the referee. diff --git a/10-sword-and-buckler.md b/10-sword-and-buckler.md new file mode 100644 index 0000000..8645b76 --- /dev/null +++ b/10-sword-and-buckler.md @@ -0,0 +1,37 @@ +# Sword and Buckler competitions + +## Judging of hits + +Sword and Buckler competitions do not use priority (Right of Way) rules. Scoring follows the same +combat rules as Rapier and side weapons competitions (see +[Rapier and side weapons](05-rapier.md)): only the first valid hit scores. + +1. Double hits, simultaneous hits, and after-actions are judged according to the rules of the + Rapier and side weapons competitions. + +2. All hits made with the point, and the edges of the blade, are valid. The action must be + performed in such a way that it would have caused a wound to an unarmoured opponent, had the + weapon been sharp. Hits performed with the flat may be counted at the Referee's discretion, if + they bear the characteristics of a coordinated and potent technique. + +3. The target includes the whole of the fencer’s body, clothing, and safety equipment, except for + the back of the head, spine, groin, the feet, and the back of the knees. + +4. Hits landing on the buckler are not valid and do not score. + +## Wrestling + +1. Wrestling actions (arm locks, throws, chokes) are forbidden, as in the Rapier and side weapons + competitions. Attempting wrestling actions during bouts of this category belongs to the first + group of offences. + +2. Body contact (including accidental jostling) in itself is not considered as wrestling and is + therefore allowed. + +## Actions involving the buckler + +1. The buckler serves a defensive purpose; covering, engaging and diverting of the opponent’s + weapon is allowed. + +2. It is forbidden to strike the opponent with the buckler; depending on the outcome, it belongs + to the first or the second group of offences. diff --git a/FEBUS_smernica_o_rozhodcoch_navrh.docx b/FEBUS_smernica_o_rozhodcoch_navrh.docx new file mode 100644 index 0000000000000000000000000000000000000000..5314db2866c0d86221ed41604bcbdfe5684265c4 GIT binary patch literal 255051 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

vW?bA1B805bUY(WQWx|$ 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
S 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 C+?4eI literal 0 HcmV?d00001 diff --git a/FEBUS_smernica_o_rozhodcoch_navrh.md b/FEBUS_smernica_o_rozhodcoch_navrh.md new file mode 100644 index 0000000..8e466e3 --- /dev/null +++ b/FEBUS_smernica_o_rozhodcoch_navrh.md @@ -0,0 +1,249 @@ +# Smernica FEBUS o certifikácii a činnosti rozhodcov + +**Stav:** návrh na pripomienkovanie (verzia 0.1, 24. júla 2026) +**Schvaľuje:** Prezídium FEBUS +**Predkladá:** Rozhodcovská pracovná skupina + +--- + +## Čl. 1 — Úvodné ustanovenia + +1. Táto smernica upravuje systém certifikácie rozhodcov FEBUS. Zriaďuje Rozhodcovskú komisiu, vymedzuje stupne rozhodcovských licencií, podmienky ich získania, obnovy, pozastavenia a odňatia a upravuje vedenie registra rozhodcov. +2. Smernica sa vzťahuje na všetky turnaje a podujatia konané pod záštitou FEBUS. +3. Smernicu a jej zmeny schvaľuje Prezídium FEBUS. +4. Pojmy *hlavný rozhodca* a *postranný rozhodca* zodpovedajú pojmom *Main Referee* a *Side Referee* podľa pravidiel FEBUS (Organisational Rules). Táto smernica pravidlá FEBUS nemení ani nedopĺňa. + +## Čl. 2 — Vymedzenie pojmov + +Na účely tejto smernice: + +1. **Rozhodca** je osoba zapísaná v registri rozhodcov s platnou licenciou podľa tejto smernice. +2. **Hlavný rozhodca** vedie zápas, riadi čas a protokol, prideľuje body a popisuje priebeh výmen. +3. **Postranný rozhodca** (asistent) pomáha hlavnému rozhodcovi pri hodnotení zásahov z iného uhla pohľadu. +4. **Koordinátor rozhodcov turnaja** je osoba zodpovedná za nasadenie a výkon rozhodcov na turnaji (v pravidlách FEBUS *head of the Refereeing Team*). +5. **Oficiálna rozhodcovská činnosť** je výkon funkcie hlavného alebo postranného rozhodcu na turnaji FEBUS, účasť na rozhodcovskom seminári FEBUS alebo výkon funkcie hodnotiteľa na rozhodcovských skúškach. +6. **Rozhodcovský seminár** je vzdelávacie podujatie organizované Rozhodcovskou komisiou, zamerané na výklad pravidiel, ich zmeny a rozbor sporných situácií. +7. **Školenie rozhodcov** je vzdelávacie podujatie organizované Rozhodcovskou komisiou pre uchádzačov o licenciu C, zamerané na výklad pravidiel FEBUS, metodiku rozhodovania, priestupky a tresty a kontrolu výstroja. +8. **Zbraň s právom útoku** je zbraň, pri ktorej sa podľa pravidiel FEBUS uplatňuje systém priority (right of way) — dlhý meč a šabľa. +9. **Register rozhodcov** je evidencia rozhodcov vedená Rozhodcovskou komisiou podľa čl. 10. + +## Čl. 3 — Rozhodcovská komisia + +1. Zriaďuje sa Rozhodcovská komisia (ďalej „Komisia“) ako odborný orgán FEBUS pre rozhodcovskú agendu. +2. Komisia má troch až piatich členov. Členov menuje a odvoláva Prezídium FEBUS spomedzi držiteľov platnej licencie A. Funkčné obdobie člena je tri roky; opätovné menovanie je možné. +3. Komisia si spomedzi svojich členov volí predsedu, ktorý zvoláva a vedie jej zasadnutia a zastupuje Komisiu navonok. +4. Komisia je uznášaniaschopná za prítomnosti nadpolovičnej väčšiny všetkých členov. Rozhoduje nadpolovičnou väčšinou prítomných členov, ak táto smernica neustanovuje inak. Člen Komisie nehlasuje vo veci vlastnej licencie ani vo veci sťažnosti, ktorá sa ho týka. +5. Úlohy Komisie: + 1. organizovať rozhodcovské skúšky a školenia rozhodcov najmenej raz ročne, + 2. organizovať rozhodcovské semináre, spravidla po každej zmene pravidiel FEBUS, + 3. viesť register rozhodcov a udeľovať, obnovovať, pozastavovať a odnímať licencie, + 4. sprístupňovať výpisy z registra organizátorom turnajov FEBUS, + 5. prijímať a prerokúvať sťažnosti na rozhodcov, + 6. predkladať Prezídiu návrhy na zmeny pravidiel FEBUS, tejto smernice a skúšobného poriadku, + 7. vydávať vzory hodnotiacich hárkov a metodické materiály pre rozhodcov, + 8. raz ročne predložiť Prezídiu súhrnnú správu o činnosti: počty rozhodcov podľa stupňov licencií, nasadenia na turnajoch, vykonané skúšky, školenia a semináre s výsledkami, prijaté sťažnosti a uložené opatrenia. +6. Komisia nemá právomoc meniť pravidlá FEBUS ani organizačné dokumenty FEBUS; voči Prezídiu má postavenie poradného orgánu. + +## Čl. 4 — Systém licencií, práva a povinnosti rozhodcov + +1. Zavádzajú sa tri stupne rozhodcovských licencií, vzostupne: **licencia C**, **licencia B** a **licencia A**. Popri nich existuje **hosťovská licencia H** podľa čl. 8. +2. Licencia je univerzálna — jej stupeň určuje rozsah oprávnení a platí pre všetky zbrane FEBUS. +3. Rozhodcovské skúšky sa vykonávajú v zbrani s právom útoku (čl. 2 ods. 8). Zložená skúška oprávňuje rozhodovať aj zbrane bez práva útoku; skúška len v zbrani bez práva útoku sa nevykonáva. +4. Vyšší stupeň licencie zahŕňa všetky oprávnenia nižších stupňov. +5. Licenciu udeľuje Komisia zápisom do registra. Ak táto smernica neustanovuje inak, na udelenie licencie sa vyžaduje súhlas najmenej dvoch hodnotiteľov, ktorí sa osobne zúčastnili skúšky žiadateľa. +6. Rozhodca je povinný: + 1. poznať a uplatňovať aktuálne pravidlá FEBUS, + 2. rozhodovať nestranne; zápas, v ktorom má rozhodca konflikt záujmov (najmä účasť člena vlastného klubu), vopred oznámi koordinátorovi rozhodcov turnaja; koordinátor takýto zápas podľa možností pridelí inému rozhodcovi, vo vyraďovacej fáze vždy, ak je iný rozhodca s potrebnou licenciou k dispozícii, + 3. pri výkone rozhodcovskej činnosti a v súvislosti s ňou vystupovať vecne a slušne. +7. Rozhodca nesmie na tom istom turnaji: + 1. rozhodovať v disciplíne, v ktorej sám súťaží, + 2. pôsobiť ako sekundant alebo tréner šermiara v disciplíne, ktorú rozhoduje. + +## Čl. 5 — Licencia C + +*Vstupný stupeň pre začínajúcich rozhodcov.* + +### Podmienky prístupu ku skúške + +1. Vek najmenej 18 rokov. +2. Podanie prihlášky na vyhlásený termín skúšky. +3. Absolvovanie školenia rozhodcov (čl. 2 ods. 7). + +### Skúška + +1. Teoretický test s úspešnosťou najmenej 80 % (Príloha 1, časť B). +2. Praktická skúška v simulovanej turnajovej skupine (Príloha 1, časť C). + +### Rozsah oprávnení + +1. Výkon funkcie postranného rozhodcu vo všetkých zbraniach a kategóriách. +2. Výkon funkcie hlavného rozhodcu pod dohľadom rozhodcu s licenciou B alebo A. Dohliadajúci rozhodca pri takom zápase vykonáva funkciu postranného rozhodcu a môže kedykoľvek zasiahnuť do vedenia zápasu a zmeniť rozhodnutie hlavného rozhodcu. + +## Čl. 6 — Licencia B + +*Stupeň pre samostatných hlavných rozhodcov.* + +### Podmienky prístupu ku skúške + +1. Platná licencia C. +2. Oficiálna rozhodcovská činnosť na najmenej dvoch turnajoch FEBUS. +3. Prax v najmenej dvoch zbraniach, z toho aspoň v jednej zbrani s právom útoku. + +### Skúška + +1. Praktická skúška: samostatné vedenie celej turnajovej skupiny vo funkcii hlavného rozhodcu, sčasti v anglickom jazyku (Príloha 1, časť D). Súčasťou je vysvetlenie sporných situácií a odôvodnenie rozhodnutí v slovenskom a anglickom jazyku. + +### Rozsah oprávnení + +1. Výkon funkcie hlavného rozhodcu vo všetkých zbraniach a kategóriách. +2. Výkon funkcie koordinátora rozhodcov turnaja, ak na turnaji nie je k dispozícii držiteľ platnej licencie A. + +## Čl. 7 — Licencia A + +*Najvyšší stupeň licencie.* + +### Podmienky prístupu + +1. Platná licencia B nepretržite najmenej tri roky. +2. Oficiálna rozhodcovská činnosť na najmenej desiatich turnajoch FEBUS. +3. Oficiálna rozhodcovská činnosť v najmenej dvoch zbraniach. + +### Udelenie + +1. Licenciu A udeľuje Komisia nadpolovičnou väčšinou všetkých svojich členov na základe žiadosti rozhodcu alebo na návrh člena Komisie, po posúdení praxe a výkonov žiadateľa. +2. Držba licencie A nezakladá členstvo v Komisii; je podmienkou menovania do nej (čl. 3 ods. 2). + +### Rozsah oprávnení + +1. Výkon funkcie hlavného rozhodcu vo všetkých zbraniach a kategóriách. +2. Výkon funkcie hodnotiteľa na rozhodcovských skúškach. +3. Výkon funkcie koordinátora rozhodcov turnaja. +4. Možnosť byť menovaný za člena Komisie. + +## Čl. 8 — Hosťovská licencia H + +1. Hosťovská licencia je určená rozhodcom bez licencie FEBUS, ktorí majú rozhodovať na turnaji FEBUS, spravidla zahraničným. +2. Podmienky udelenia: + 1. preukázateľná prax v rozhodovaní šermiarskych alebo HEMA súťaží, + 2. oboznámenie sa s pravidlami FEBUS; koordinátor rozhodcov turnaja pred turnajom vykoná s držiteľom inštruktáž o špecifikách pravidiel (najmä priorita a tresty), + 3. súhlas organizátora turnaja, + 4. súhlas koordinátora rozhodcov turnaja; ak koordinátor nie je držiteľom platnej licencie A, vyžaduje sa aj súhlas Komisie. +3. Rozsah oprávnení zodpovedá licencii C: + 1. výkon funkcie postranného rozhodcu, + 2. výkon funkcie hlavného rozhodcu pod dohľadom rozhodcu s licenciou B alebo A (čl. 5), v zbraniach určených koordinátorom rozhodcov. +4. Hosťovská licencia platí výlučne na jeden turnaj. Koordinátor rozhodcov oznámi jej udelenie Komisii, ktorá ho zaznamená v registri. +5. Osobe, ktorá je členom klubu združeného vo FEBUS, možno hosťovskú licenciu udeliť najviac raz; ďalšie pôsobenie ako rozhodca je podmienené získaním licencie podľa čl. 5 až 7. +6. Komisia môže odmietnuť udeliť hosťovskú licenciu osobe, ktorá pri predchádzajúcom výkone rozhodcovskej činnosti závažne alebo opakovane porušila pravidlá FEBUS alebo povinnosti rozhodcu. Rozhodnutie musí byť odôvodnené a je pre organizátora a koordinátora záväzné. + +## Čl. 9 — Platnosť, obnova a zánik licencie + +1. Licencie C, B a A platia do 31. decembra druhého kalendárneho roka nasledujúceho po roku udelenia alebo poslednej obnovy. +2. Licencia sa po skončení doby platnosti obnoví, ak jej držiteľ počas obdobia platnosti vykonával funkciu rozhodcu najmenej na jednom turnaji FEBUS, zúčastnil sa najmenej jedného rozhodcovského seminára alebo aspoň raz vykonával funkciu hodnotiteľa na rozhodcovských skúškach. Komisia obnovu zaznamená v registri. +3. Splnenie podmienok obnovy posudzuje Komisia ku dňu skončenia platnosti licencie. +4. Licencia zaniká: + 1. uplynutím platnosti, ak neboli splnené podmienky obnovy, + 2. písomným vzdaním sa licencie, + 3. odňatím podľa čl. 11. +5. Po zániku licencie podľa ods. 4 bodov 1 alebo 2: + 1. pri prvom zániku Komisia licenciu obnoví po praktickom pozorovaní — rozhodovaní najmenej šiestich zápasov pod dohľadom hodnotiteľa s licenciou A (na turnaji alebo na termíne skúšok), ktorý potvrdí spôsobilosť žiadateľa, + 2. pri opakovanom zániku sa vyžaduje opätovné zloženie skúšky príslušného stupňa. + +## Čl. 10 — Register rozhodcov + +1. Komisia vedie register rozhodcov, ktorý obsahuje: meno a priezvisko, klubovú príslušnosť, kontaktný údaj, stupeň licencie, dátum udelenia a poslednej obnovy, platnosť licencie, záznamy o oficiálnej rozhodcovskej činnosti a záznamy o pozastavení alebo odňatí licencie. +2. Organizátorovi turnaja FEBUS Komisia na požiadanie sprístupní výpis v rozsahu: meno, stupeň licencie, platnosť. +3. FEBUS môže zverejniť zoznam držiteľov platných licencií v rozsahu meno a stupeň. +4. Osobné údaje sa spracúvajú len v rozsahu nevyhnutnom na vedenie registra a plnenie úloh podľa tejto smernice. Podrobnosti o spracúvaní a uchovávaní údajov a o ich zverejnení podľa ods. 3 upraví FEBUS v samostatnej informácii o spracúvaní osobných údajov. + +## Čl. 11 — Sťažnosti, pozastavenie a odňatie licencie + +1. Sťažnosť na výkon činnosti rozhodcu môže podať účastník turnaja, organizátor turnaja alebo člen FEBUS, a to písomne Komisii do 14 dní od skončenia turnaja. +2. Sťažnosťou nemožno napadnúť výsledok zápasu ani jednotlivé rozhodnutia o pridelení bodov. Podľa pravidiel FEBUS výsledok ani tieto rozhodnutia po skončení zápasu nemožno zmeniť. Sťažnosť môže smerovať len proti porušeniu povinností rozhodcu podľa tejto smernice. +3. Komisia sťažnosť prerokuje do 30 dní od doručenia. Dotknutému rozhodcovi umožní vyjadriť sa. +4. Podľa závažnosti zistení Komisia: + 1. sťažnosť odloží ako nedôvodnú, + 2. udelí rozhodcovi písomné upozornenie, + 3. uloží rozhodcovi povinnosť absolvovať rozhodcovský seminár, + 4. pozastaví licenciu najviac na dvanásť mesiacov, + 5. licenciu odníme; na odňatie licencie sa vyžaduje dvojtretinová väčšina hlasov všetkých členov Komisie. +5. Proti pozastaveniu alebo odňatiu licencie sa rozhodca môže odvolať k Prezídiu FEBUS do 15 dní od doručenia rozhodnutia. Odvolanie nemá odkladný účinok. Rozhodnutie Prezídia je konečné. +6. Po odňatí licencie možno o novú licenciu C požiadať najskôr po uplynutí dvadsiatich štyroch mesiacov, postupom podľa čl. 5. + +## Čl. 12 — Prechodné ustanovenia + +1. Prvých členov Komisie vymenuje Prezídium FEBUS spomedzi skúsených rozhodcov do 60 dní od nadobudnutia účinnosti tejto smernice. Vymenovaním získavajú licenciu A; požiadavky čl. 7 sa na nich nevzťahujú. +2. Počas osemnástich mesiacov od nadobudnutia účinnosti tejto smernice môže Komisia uznať doterajšiu rozhodcovskú prax a udeliť licenciu zjednodušeným postupom podľa Prílohy 2. +3. Po uplynutí prechodného obdobia sa licencie udeľujú výlučne postupom podľa čl. 5 až 7. + +## Čl. 13 — Záverečné ustanovenia + +1. Prílohy 1 a 2 sú neoddeliteľnou súčasťou tejto smernice. Zmeny Prílohy 1 (skúšobný poriadok) schvaľuje Prezídium na návrh Komisie. +2. Táto smernica nadobúda účinnosť dňom schválenia Prezídiom FEBUS. + +--- + +# Príloha 1 — Skúšobný poriadok + +## A. Všeobecné ustanovenia + +1. Termíny skúšok vyhlasuje Komisia najmenej 30 dní vopred, najmenej raz ročne. +2. Skúšobnú komisiu tvoria najmenej dvaja hodnotitelia s platnou licenciou A; každého uchádzača hodnotia najmenej dvaja hodnotitelia. Počas prechodného obdobia podľa čl. 12 túto funkciu vykonávajú členovia Komisie. Pri zostavovaní skúšobnej komisie sa podľa možností dbá na to, aby uchádzača nehodnotil hodnotiteľ z rovnakého klubu. +3. Neúspešný uchádzač môže skúšku opakovať na najbližšom vyhlásenom termíne. +4. Úspešne zložený teoretický test platí 12 mesiacov na účely pripustenia k praktickej skúške. +5. Školenie rozhodcov pre uchádzačov o licenciu C sa spravidla organizuje spoločne so skúškou (v rovnaký deň alebo víkend); jeho teoretická časť môže prebiehať online. Absolvované školenie platí 12 mesiacov na účely pripustenia ku skúške. +6. Skúšobné otázky, videozáznamy a hárky so správnymi odpoveďami sú dôverné; prístup k nim má len skúšobná komisia. Sady otázok testu sa pre jednotlivých uchádzačov zostavujú z knižnice náhodným výberom. Uchádzač nesmie počas prebiehajúceho termínu skúšok sprístupniť obsah otázok iným uchádzačom; porušenie sa považuje za neúspešné absolvovanie skúšky. + +## B. Teoretický test + +1. Test prebieha online alebo prezenčne a skladá sa z dvoch častí: + 1. **pravidlová časť** — 10 otázok s výberom odpovede zo znalosti pravidiel FEBUS (priebeh a organizácia zápasu, priestupky a tresty, výstroj), + 2. **video časť** — 20 otázok zostavených z knižnice videozáznamov turnajových výmen; otázka je zodpovedaná správne, ak uchádzač správne určí výsledok výmeny; pri vybraných otázkach sa vyžaduje aj písomné odôvodnenie, ktoré posudzuje hodnotiteľ. Záznam si možno prehrať opakovane aj spomalene. +2. Na úspešné absolvovanie je potrebných najmenej 80 % bodov v každej časti samostatne (pravidlová časť: najmenej 8 z 10 bodov, video časť: najmenej 16 z 20 bodov). +3. Test sa skladá v zbrani s právom útoku; video časť sa zostavuje najmä zo záznamov výmen v tejto zbrani a môže obsahovať aj výmeny v ostatných zbraniach FEBUS. + +## C. Praktická skúška — licencia C + +1. Skúška prebieha v simulovanej turnajovej skupine. Skupinu uchádzačov tvorí spravidla päť osôb; pri menšom počte môže Komisia udeliť výnimku. +2. Zostaví sa turnajová skupina najmenej piatich šermiarov, ktorí bojujú systémom každý s každým (jedno kolo). Skupina šermuje v zbrani s právom útoku. +3. Uchádzači rotujú na stanovištiach: jeden ako hlavný rozhodca, dvaja ako postranní rozhodcovia, dvaja ako obsluha stolíka. Zápasy skupiny sa rozdelia tak, aby každý uchádzač viedol ako hlavný rozhodca rovnaký počet zápasov, najmenej dva, a na ostatných stanovištiach sa striedal rovnomerne. +4. Hodnotí sa: znalosť a správne uplatňovanie pravidiel FEBUS, posúdenie sporných situácií, zrozumiteľnosť komunikácie, schopnosť vysvetliť situáciu a odôvodniť rozhodnutie, vedenie času a protokolu. +5. Skúška je úspešná, ak udelenie licencie podporia najmenej dvaja hodnotitelia prítomní na skúške. + +## D. Praktická skúška — licencia B + +1. Praktickej skúške predchádza povinné prípravné stretnutie uchádzačov vedené skúšobnou komisiou, spravidla v deň skúšky. Jeho obsahom je vysvetlenie priebehu a hodnotenia skúšky, aktuálnych pravidiel a spôsobu ich uplatňovania. Účasť na prípravnom stretnutí je podmienkou pripustenia ku skúške. +2. Uchádzač samostatne vedie celú turnajovú skupinu najmenej piatich šermiarov vo funkcii hlavného rozhodcu; pridelený mu je tím na obsluhu stolíka. Skupina šermuje v zbrani s právom útoku. +3. Skúšobná komisia pred začatím skúšky určí jej časť, ktorá bude prebiehať v anglickom jazyku vrátane vedenia zápasu, vysvetlenia situácií a odôvodnenia rozhodnutí, a oznámi ju uchádzačovi. +4. Hodnotia sa kritériá podľa časti C ods. 4 a navyše samostatnosť, autorita pri vedení zápasu a jazyková spôsobilosť. +5. Skúška je úspešná, ak udelenie licencie podporia najmenej dvaja hodnotitelia prítomní na skúške. + +## E. Hodnotiace hárky + +1. Komisia vydá vzor hodnotiaceho hárku s kritériami podľa častí C a D. Vyplnené hárky sa archivujú spolu so záznamom o skúške. + +--- + +# Príloha 2 — Prechodné uznanie praxe + +1. Počas prechodného obdobia (čl. 12 ods. 2) môže Komisia na základe písomnej žiadosti udeliť licenciu zjednodušeným postupom: + +| Preukázaná prax za posledné 3 roky | Udelená licencia | Vyžaduje sa | +|---|---|---| +| Hlavný rozhodca na najmenej 5 turnajoch | B | teoretický test | +| Hlavný alebo postranný rozhodca na najmenej 2 turnajoch | C | teoretický test | + +2. Prax sa preukazuje výsledkovými listinami, potvrdením organizátora turnaja alebo čestným vyhlásením potvrdeným členom Komisie. +3. Na uznanie praxe nie je právny nárok; Komisia môže žiadateľa odkázať na skúšku podľa čl. 5 alebo 6. + +--- + +## Poznámka pre pripomienkovanie (nie je súčasťou normatívneho textu) + +Na pripomienkovanie sa predkladajú najmä tieto hodnoty: + +- počet členov Komisie: **3–5**, funkčné obdobie **3 roky** (čl. 3), +- platnosť licencie: **do 31. 12. druhého roka po udelení/obnove** (čl. 9 ods. 1), +- minimálna aktivita na obnovu: **1 turnaj, 1 seminár alebo výkon funkcie hodnotiteľa na skúškach** (čl. 9 ods. 2), +- prístup k licencii A: **3 roky s licenciou B, 10 turnajov, 2 zbrane** (čl. 7), +- lehoty pri sťažnostiach: **14 / 30 / 15 dní** (čl. 11), +- prechodné obdobie: **18 mesiacov**, prahy uznania praxe podľa Prílohy 2. diff --git a/README.md b/README.md index 2fb550d..5160679 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ - [Longsword specific rules](04-longsword.md) - [Rapier and side weapons specific rules (rapier, dagger, cloak)](05-rapier.md) - [Sabre specific rules](08-sabre.md) +- [Sword and Buckler specific rules](10-sword-and-buckler.md) ## Appendix diff --git a/appendices/01-glossary.md b/appendices/01-glossary.md index e5aba8d..ed3d213 100644 --- a/appendices/01-glossary.md +++ b/appendices/01-glossary.md @@ -1,22 +1,22 @@ -# Glossary - Explanation of some technical terms most commonly used in the judging of fencing +# Glossary ## General terms -1. *Assault* – a friendly fight between two fencers which is commenced and ended up by a qualified - referee. At the end of an assault the Referee either awards one or both fencers a point, or - awards none, and/or imposes penalties when necessary. -2. *Exchange* – an exchange or handwork is the basic unit of a fight. An exchange starts with the - first offensive action and ends up with a hit or with both contestants assuming a distance from - which it is impossible to continue in the previous offensive action. -3. *Bout* – a Bout is a series of assaults between two contestants where points awarded for the - individual exchanges determine the outcome of a Bout. Only one fencer is declared a winner of a - Bout. -4. *Competition* - is a series of multiple Bouts performed with a specific weapon, to declare an +1. *Exchange* (also: *phrase*, *fencing phrase*) – the basic unit of a bout, occurring between the + Referee's commands to start ('Fence!') and stop ('Halt!'). At the end of an exchange + the Referee either awards one or both fencers a point, awards none, and/or imposes penalties + when necessary. +2. *Bout* – the whole fight between two fencers, comprising a series of exchanges, where points + awarded for the individual exchanges determine the outcome. Only one fencer is declared a winner + of a bout. +3. *Competition* - is a series of multiple Bouts performed with a specific weapon, to declare an overall winner from the contestants. -5. *Tournament* – is a series of Competitions in the weapons announced by the Organising Team. -6. *Fencing time* – is the time required to perform one simple fencing action. -7. *In measure* – is a mutual distance between two fencers in which one or both of them can reach +4. *Tournament* – is a series of Competitions in the weapons announced by the Organising Team. +5. *Fencing time* – is the time required to perform one simple fencing action. +6. *In measure* – is a mutual distance between two fencers in which one or both of them can reach the opponent with an attack. +7. *Stercke* (forte) – the strong part of the blade, closest to the cross-guard, used mainly for + parrying and binding actions. ## Fencing actions @@ -89,5 +89,5 @@ 2. *Evasion* – it is an action of the body when a potential target avoids being hit by prolonging the distance or by another movement. -3. The Langort position - a specific position in which the fencer’s sword arm is kept straight and - the point of his weapon continually threatens his opponent’s valid target. +3. *Langort* (point in line) – a specific position in which the fencer’s sword arm is kept straight + and the point of their weapon continually threatens the opponent’s valid target. diff --git a/appendices/02-penalties.md b/appendices/02-penalties.md index b27890b..afe6363 100644 --- a/appendices/02-penalties.md +++ b/appendices/02-penalties.md @@ -39,11 +39,11 @@ concerned, which should be consulted in any case of doubt. 0.1 - Non presentation when called by the referee ten minutes before the time indicated for start of pool/bouts of direct elimination + Non presentation when called by the staff of the fencing area ten minutes before the time indicated for start of pool/bouts of direct elimination - Elimination from the tournament + Elimination from the competition @@ -63,6 +63,44 @@ concerned, which should be consulted in any case of doubt. + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Boundary crossing

+
+ +
0.3 + Leaving the arena with both feet without the opponent’s interaction and without having scored a valid hit (see the General Rules) + + Verbal warning + Hit against (each subsequent case) +
+ @@ -95,11 +133,11 @@ concerned, which should be consulted in any case of doubt. - - - @@ -129,7 +167,7 @@ concerned, which should be consulted in any case of doubt. - @@ -177,21 +215,13 @@ concerned, which should be consulted in any case of doubt. - - - - - - @@ -199,7 +229,7 @@ concerned, which should be consulted in any case of doubt. - @@ -207,7 +237,7 @@ concerned, which should be consulted in any case of doubt. - @@ -275,7 +305,7 @@ concerned, which should be consulted in any case of doubt. - @@ -340,7 +370,7 @@ concerned, which should be consulted in any case of doubt. - @@ -394,7 +424,7 @@ concerned, which should be consulted in any case of doubt. - diff --git a/docs/superpowers/plans/2026-08-08-rulebook-readability-refactor.md b/docs/superpowers/plans/2026-08-08-rulebook-readability-refactor.md new file mode 100644 index 0000000..2954c75 --- /dev/null +++ b/docs/superpowers/plans/2026-08-08-rulebook-readability-refactor.md @@ -0,0 +1,1224 @@ +# FEBUS Rulebook Readability Refactor — Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Prerobiť FEBUS rulebook tak, aby bol citovateľný (globálne číslovanie článkov s prefixmi), jazykovo konzistentný (must/may/should, jednotná terminológia) a použiteľný pre tri publiká (šermiar, rozhodca, organizátor) — bez zmeny významu pravidiel, pokiaľ úloha výslovne neoznačí zmenu ako **OBSAHOVÁ ZMENA**. + +**Architecture:** Dokumentačný refactor v 12 sekvenčných úlohách: najprv stabilizácia štruktúry (premenovanie súborov na kanonické poradie, reorganizácia 03-general, deduplikácia), potom jazykové vrstvy (kritické opravy, normatívne slovesá, zámená, terminológia), potom číslovanie článkov a od neho závislé artefakty (tabuľka trestov, prehľadové tabuľky, príklady, quick-reference), nakoniec verziovanie a QA. Poradie je záväzné — číslovanie (Úloha 8) sa smie robiť až keď sa už nemení počet a poradie pravidiel. + +**Tech Stack:** Markdown, git, bash (grep/sed na verifikáciu), Python 3 + WeasyPrint (generate_pdf.py). + +## Global Constraints + +- Text pravidiel je **anglický**; britský pravopis (`organise`, `penalise`, `offence`, `centre`). +- **Žiadna zmena významu pravidla** bez explicitného označenia kroku ako **OBSAHOVÁ ZMENA** — tie vyžadujú schválenie federácie a sú sústredené v Úlohe 11 a 12. +- Normatívne slovesá: **must / must not** = povinnosť/zákaz, **may** = dovolenie, **should** = odporúčanie, **can** = schopnosť. Slová `shall` a väzba `is going to` sa v pravidlách nesmú vyskytovať (deklarované v Úlohe 5). +- Kanonické termíny (zavádza Úloha 7): `fencer`, `bout`, `exchange`, `priority`, `point` (bod v skóre) vs `hit` (fyzický zásah), `arena`, `on-guard line`, `Assistant Referee`, `Organising Team`, `Head of the Refereeing Team`, `cross-guard`, `stop-hit`, `off-target` vs `forbidden target`. +- Formát ID článku: tučné na začiatku odseku — `**G.12** The exchange stops when…`; pod-body ako `a)`, `b)`; citácia `G.12(a)`. Prefixy: E, G, RoW, LS, R, S, SB, O, D (tabuľka v Úlohe 8). +- Informatívny text výhradne v blockquote `> **Note:** …` alebo `> **Example:** …` — nikdy vo vete pravidla. +- Čísla riadkov v tomto pláne platia pre stav repa k 2026-08-08 (commit c2478b2 + necommitnuté zmeny). Po Úlohe 1 sa menia názvy súborov a po každej úlohe sa čísla posúvajú — **vyhľadávaj podľa citovaného textu, nie podľa čísla riadku**. +- Súbory miešajú typografické (’ ‘ “ ”) a rovné (' ") úvodzovky. BEFORE citáty v pláne uvádzajú známy skutočný tvar; ak presný reťazec nenájdeš, skús variant s opačným typom úvodzoviek, než usúdiš, že text neexistuje. +- Po každej úlohe: PDF sa musí dať vygenerovať (postup vo Verifikácii Úlohy 1) a link-check (Úloha 1, krok 6) musí prejsť. +- Commituj po každej úlohe. Správy commitov v angličtine, ukončené `Co-Authored-By: Claude Fable 5 `. +- Pracuj na novej vetve `readability-refactor`. Repo má necommitnuté zmeny z konzistenčného auditu (kapitoly, appendices, README, smernica, netrackovaný generátor PDF) — **pred vytvorením vetvy ich commitni samostatne** na `master`, napr.: `git add -u && git add 10-sword-and-buckler.md FEBUS_smernica_o_rozhodcoch_navrh.md generate.sh generate_pdf.py requirements.txt febus_logo.jpg && git commit -m "chore: consistency fixes, new chapters and PDF generator"`. Predtým over `git status` a z prípravného commitu vyhoď (`git reset `), čo tam nepatrí. Binárne/generované súbory (.DS_Store, vygenerované PDF, staré logo) necommituj — Úloha 1 pridáva .gitignore. + +--- + +### Úloha 1: Kanonické poradie kapitol — premenovanie súborov, odkazy, README, generate_pdf.py + +**Files:** +- Rename: 7 súborov kapitol (git mv, pozri kroky) +- Modify: `README.md`, `CLAUDE.md`, `05-longsword.md`, `07-sabre.md`, `04-right-of-way.md`, `08-sword-and-buckler.md` (odkazy), `generate_pdf.py` +- Create: `scripts/check_links.sh` + +**Interfaces:** +- Produces: kanonické názvy súborov, na ktoré sa odkazujú všetky ďalšie úlohy: `01-intro.md`, `02-equipment.md`, `03-general.md`, `04-right-of-way.md`, `05-longsword.md`, `06-rapier.md`, `07-sabre.md`, `08-sword-and-buckler.md`, `09-organisational.md`, `10-disciplinary.md`; `scripts/check_links.sh` (exit 0 = žiadne rozbité odkazy); `generate_pdf.py` s `self.num_root_files`. + +- [ ] **Krok 1: Vytvor vetvu a premenuj súbory (dva permutačné cykly cez temp názvy)** + +```bash +git checkout -b readability-refactor +# Cyklus A: 04→05→06→09→04 +git mv 09-right-of-way.md tmp-row.md +git mv 06-organisational.md 09-organisational.md +git mv 05-rapier.md 06-rapier.md +git mv 04-longsword.md 05-longsword.md +git mv tmp-row.md 04-right-of-way.md +# Cyklus B: 07→10→08→07 (10-sword-and-buckler.md musí byť trackovaný — +# zabezpečuje prípravný commit z Global Constraints, inak git mv zlyhá) +git mv 10-sword-and-buckler.md tmp-snb.md +git mv 07-disciplinary.md 10-disciplinary.md +git mv 08-sabre.md 07-sabre.md +git mv tmp-snb.md 08-sword-and-buckler.md +``` + +- [ ] **Krok 2: Oprav medzisúborové odkazy v kapitolách** + +| Súbor (nový názov) | Nájsť | Nahradiť | +|---|---|---| +| `05-longsword.md` | `(09-right-of-way.md)` | `(04-right-of-way.md)` | +| `07-sabre.md` | `(09-right-of-way.md)` | `(04-right-of-way.md)` | +| `04-right-of-way.md` | `(04-longsword.md)` | `(05-longsword.md)` | +| `04-right-of-way.md` | `(08-sabre.md)` | `(07-sabre.md)` | +| `08-sword-and-buckler.md` | `(05-rapier.md)` | `(06-rapier.md)` | + +- [ ] **Krok 3: Prepíš README.md v kanonickom poradí** + +```markdown +# FEBUS Tournament Rulebook + +## Introduction + +- [Introduction](01-intro.md) + +## Equipment Regulations + +- [Technical & Equipment Standards](02-equipment.md) + +## The Principles of Scoring + +- [General rules for all weapons](03-general.md) +- [Right of Way and Priority Rules](04-right-of-way.md) +- [Longsword specific rules](05-longsword.md) +- [Rapier and side weapons specific rules (rapier, dagger, cloak)](06-rapier.md) +- [Sabre specific rules](07-sabre.md) +- [Sword and Buckler specific rules](08-sword-and-buckler.md) + +## Organisation and Bout Management + +- [Organisational Rules](09-organisational.md) +- [Fencing etiquette and disciplinary rules](10-disciplinary.md) + +## Appendix + +- [Glossary](appendices/01-glossary.md) +- [Table of Offences and Penalties](appendices/02-penalties.md) +``` + +(Názvy odkazov zámerne zodpovedajú H1 nadpisom cieľových súborov — `Technical & Equipment Standards`, `Organisational Rules` — aby prozaické odkazy v texte sedeli s názvami kapitol.) + +- [ ] **Krok 4: Aktualizuj CLAUDE.md** — v sekcii „Repository Structure" prepíš zoznam súborov podľa nového mapovania (04=right-of-way, 05=longsword, 06=rapier, 07=sabre, 08=sword-and-buckler, 09=organisational, 10=disciplinary). + +- [ ] **Krok 5: Oprav zber súborov a číslovanie príloh v generate_pdf.py.** Dve chyby: (a) glob zbiera aj `FEBUS_smernica_o_rozhodcoch_navrh.md` ako 11. kapitolu PDF (slovenský návrh smernice nie je súčasť rulebooku); (b) číslo prílohy je natvrdo `chapter_num - 9`, takže prílohy dnes vychádzajú A3/A4. + +V `collect_markdown_files` uprav filter root súborov: + +```python + if file.name not in ['README.md', 'CLAUDE.md'] \ + and not file.name.startswith('FEBUS_smernica'): +``` + +za `root_files.sort(key=lambda x: x[0])` pridaj: + +```python + self.num_root_files = len(root_files) +``` + +a v `__init__` inicializuj `self.num_root_files = 0`. Potom nahraď **všetkých 7 výskytov** `A{chapter_num - 9}` za `A{chapter_num - self.num_root_files}` — 3× v `extract_headers_for_toc` a 4× v `add_header_numbering` (vrátane vetvy `is_first_header`, ktorá čísluje H1 nadpis každej prílohy). Mechanicky: + +```bash +sed -i '' 's/chapter_num - 9/chapter_num - self.num_root_files/g' generate_pdf.py +``` + +- [ ] **Krok 6: Vytvor scripts/check_links.sh a .gitignore** + +```bash +#!/bin/bash +# Overí, že každý [text](*.md) odkaz smeruje na existujúci súbor. +set -u +fail=0 +for src in *.md appendices/*.md; do + dir=$(dirname "$src") + while IFS= read -r target; do + [ -z "$target" ] && continue + if [ ! -f "$dir/$target" ] && [ ! -f "$target" ]; then + echo "BROKEN: $src -> $target"; fail=1 + fi + done < <(grep -oE '\]\([^)#]+\.md' "$src" | sed 's/](\(.*\)/\1/') +done +exit $fail +``` + +```bash +chmod +x scripts/check_links.sh +printf '.DS_Store\nvenv/\nfebus_rulebook.pdf\n' > .gitignore +``` + +- [ ] **Krok 7: Verifikácia** + +```bash +ls *.md # očakávaný zoznam: 01-intro … 10-disciplinary, CLAUDE.md, README.md (+FEBUS_smernica*) +grep -rn "09-right-of-way.md\|04-longsword.md\|05-rapier.md\|08-sabre.md\|10-sword-and-buckler.md\|06-organisational.md\|07-disciplinary.md" *.md appendices/*.md + # očakávané: žiadny výskyt (0 riadkov) +scripts/check_links.sh # očakávané: exit 0, žiadne BROKEN +grep -c "chapter_num - 9" generate_pdf.py # očakávané: 0 +python3 -m venv venv 2>/dev/null; source venv/bin/activate; pip install -q -r requirements.txt; python generate_pdf.py + # očakávané: "PDF vygenerované: febus_rulebook.pdf"; + # TOC má presne 10 kapitol (žiadna kapitola "Smernica…"), + # prílohy A1/A2 v TOC AJ v tele dokumentu (nadpis "A1. Glossary") +``` + +- [ ] **Krok 8: Commit** + +```bash +git add .gitignore *.md appendices scripts generate_pdf.py +git commit -m "refactor: rename chapters to canonical reading order, fix links and appendix numbering" +``` + +(Nepoužívaj `git add -A` — v pracovnom strome sú nesúvisiace súbory: .DS_Store, staré PDF, logá.) + +--- + +### Úloha 2: Reorganizácia 03-general.md — podnadpisy, Forbidden actions, Dominance + +**Files:** +- Modify: `03-general.md`, `07-sabre.md` (odkaz na dominance sekciu) + +**Interfaces:** +- Consumes: kanonické názvy z Úlohy 1. +- Produces: štruktúru 03-general.md, na ktorú sa viaže číslovanie v Úlohe 8: H2 sekcie `The Process of the Bouts` (s H3 podsekciami), `The methods of scoring hits` (s H3 `Dominance`), `Forbidden actions (all weapons)`, `Close quarter combat`. + +- [ ] **Krok 1: Vlož H3 podnadpisy do „The Process of the Bouts"** — číslovaný zoznam 1–29 rozdeľ takto (položky identifikuj podľa textu; číslovanie zoznamov v podsekciách nechaj priebežné 1–29, markdown to zvládne cez pokračovanie, alebo reštartuj v každej podsekcii — reštart je v poriadku, definitívne ID dostanú pravidlá až v Úlohe 8): + - `### Starting the bout` — položky 1–7 (od „Each bout is performed" po „…with the word 'Fence!'.") + - `### Stopping the exchange` — položky 8–12 (od „The exchange stops when the Referee commands" po „…annulment of other valid hits that happened afterwards.") + - `### Arena boundaries` — položky 13–17 (od „When a competitor crosses one of the boundaries" po „…incurs no penalty.") + - `### Restarting, video review and end of the bout` — položky 18–22 (od „After each valid hit" po „…before leaving the arena.") + - `### Equipment failure and injury breaks` — položky 23–24 + - `### Forfeits and withdrawal` — položky 25–29 + +- [ ] **Krok 2: Vytiahni dominanciu do vlastnej H3 sekcie.** Z „The methods of scoring hits" odstráň pod-položku 4.5 („The referee may call an action as a valid hit, when a weapon action results in a passively constraining position…") a na koniec sekcie vlož: + +```markdown +### Dominance + +1. The Referee may award a hit when a weapon action results in a passively + constraining position for the opponent, held for a considerable time during + which the opponent is unable to break free. Dominance may be the result of + grappling, locks involving the weapon, or opposing actions that restrain the + opponent's weapon movement. + +2. The Referee awards the hit by calling 'Halt!' once they find all criteria of + dominance met. Hits received while the dominant position is upheld are not + valid. + +3. Dominance does not apply when the opponent can practically break free and + initiate valid actions, even if the weapon contact is not completely broken. + It is at the Referee's discretion to judge the validity of dominance actions. + +4. Dominance achieved by grappling or close quarter combat applies only in the + Longsword category. +``` + +(Znenie je rozklad pôvodného odseku bez zmeny významu; oprava `result of of grappling` je tu už zapracovaná.) + +- [ ] **Krok 3: Povýš všeobecné zákazy.** Súčasná H3 `### Forbidden actions` (vnorená pod `## Close quarter combat`) sa rozdelí: + +Pred `## Close quarter combat` vlož novú H2 sekciu: + +```markdown +## Forbidden actions (all weapons) + +1. Punching, kicking, violent jostling, and throwing the weapon are strictly + forbidden. + +2. Excessive force, brutality or unnecessary violence are forbidden. + +3. Hitting the back of the head, the spine, the groin, the back of the knee or + the foot is forbidden and will be penalised (see penalty 1.5). + +4. It is forbidden to hit with the cross-guard, where applicable, or with the + basket or bell guard (see penalty 1.5). + +5. Turning the head or covering a valid target with a non-valid one belongs to + the first group of offences. + +6. Hitting the arena floor with any weapon due to bad measure in an action will + be penalised according to the first group of offences (cases resulting from + the opponent's interactions, accidental touches, and touching the floor + after having hit the opponent, may be disregarded by the Referee). +``` + +a pôvodnú H3 `### Forbidden actions` pod Close quarter combat nahraď: + +```markdown +### Forbidden actions in close quarter combat + +1. Neck-wrenching, lifting the opponent off the ground, full application of + joint locks, small-joint manipulation, or other potentially dangerous + wrestling techniques are strictly forbidden. +``` + +(Pôvodné položky 3 a 6 hovorili to isté dvakrát — zlúčené do bodov 3+4 novej sekcie. Punching/kicking/throwing the weapon platia univerzálne — presunuté z CQC bodu 1. Významovo sa nič nemení.) + +- [ ] **Krok 4: Verifikácia** + +```bash +grep -n "^## " 03-general.md +# očakávané poradie: The Process of the Bouts / The methods of scoring hits / Forbidden actions (all weapons) / Close quarter combat +grep -c "Hitting the back of the head" 03-general.md # očakávané: 1 (duplicita zlúčená) +grep -n "result of of" 03-general.md # očakávané: 0 riadkov +scripts/check_links.sh +``` + +- [ ] **Krok 5: Commit** — `git commit -am "refactor(general): subsection headings, promote universal forbidden actions, extract dominance"` + +--- + +### Úloha 3: Deduplikácia — jedno kanonické miesto pre každé pravidlo + +**Files:** +- Modify: `03-general.md`, `09-organisational.md`, `02-equipment.md` + +**Interfaces:** +- Produces: kanonické domovy — parametre bojov v `09-organisational.md`, kontrola výstroja v `02-equipment.md`, tri výzvy v `10-disciplinary.md`. Ostatné výskyty = jednovetné odkazy. + +- [ ] **Krok 1: Parametre bojov → kanonicky v 09-organisational.** V `03-general.md` nahraď položku 6 („Pool bouts last 2 minutes… The Organising Team may announce different bout durations…") za: + +```markdown +6. Bout durations, hit limits and tie-break procedures are set out in the + [Organisational Rules](09-organisational.md). Unless the Organising Team + announces otherwise, the defaults are: pool bouts 2 minutes or 5 points; + direct elimination bouts 2 × 2 minutes (with a one-minute rest) or 7 + points. The Timekeeper announces the end of time. Only the Referee may + stop the bout. +``` + +Zároveň v `03-general.md` položke 20 (overtime — „In case the points of the fencers are equal…") nechaj plné znenie: je to jediné miesto s pravidlom o žrebovanej priorite; `09-organisational.md` body o deciding hit (pools bod 4, DE bod 7) doplň o odkaz `…as described in the [General Rules](03-general.md).` na konci vety „…if scores are still equal at the end of the extra minute." + +- [ ] **Krok 2: Kontrola výstroja → kanonicky v 02-equipment.** V `03-general.md` nahraď položku 3 („An additional equipment check will be performed by the referee…") za: + +```markdown +3. Equipment checks before and during the competition, and the penalties for + nonconforming equipment, are set out in the + [Technical & Equipment Standards](02-equipment.md). +``` + +V `09-organisational.md` sekcii „Fencer readiness and presence" nahraď položku 4 („The Refereeing Team will check the readiness of fencers…") za: + +```markdown +4. The Refereeing Team checks the readiness of fencers (completeness of safety + gear and weapons) before the indicated start of bouts, as set out in the + [Technical & Equipment Standards](02-equipment.md). The Referee may repeat + this check at any time. +``` + +- [ ] **Krok 3: Tri výzvy → kanonicky v 10-disciplinary.** V `09-organisational.md` položke 3 tej istej sekcie over, že text len odkazuje (už áno — „the procedure described in the disciplinary rules applies"), a oprav chybný názov cieľa: `see penalty 0.2 and the Fencing etiquette section` → `see penalty 0.2 and [Fencing etiquette and disciplinary rules](10-disciplinary.md), section 'The Fencers'`. (Dopredný odkaz: sekciu 'The Competitors' premenuje na 'The Fencers' Úloha 7, Krok 1 — odkaz na súbor je platný už teraz a `check_links.sh` kontroluje len existenciu súboru, nie sekcie.) + +- [ ] **Krok 4: Postup merania flexibility → jeden článok.** V `02-equipment.md` je identický odsek o meraní flexibility 3× (longsword bod 6, rapier bod 4, sabre bod 5). Na začiatok sekcie `### Weapons` vlož všeobecný odsek: + +```markdown +The flexibility of a blade is measured by applying pressure on the blade point +against scales, with one hand firmly placed on the pommel. The blade's +flexibility is the maximum value (in kg) displayed on the scales before the +blade reaches full bend. +``` + +a pri zbraniach ponechaj len limity: longsword bod 6 → `The acceptable flexibility range for longsword blades is 9–16 kg.`; rapier bod 4 → ponechaj prvé dve vety (`The maximum length of the blade including *ricasso* is 110cm. The blade must be flexible, especially from the middle of the rapier to the point in order not to pose a risk in thrust attacks.`) a zakonči `For rapier blades, the acceptable flexibility is 10 kg or less.`; sabre bod 5 → `For sabre blades, the acceptable flexibility is 10 kg or less.` + +(Robí sa teraz — pred číslovaním v Úlohe 8 — aby sa počet článkov v 02-equipment.md už nemenil a pridelené E-čísla zostali stabilné.) + +- [ ] **Krok 5: Verifikácia** + +```bash +grep -c "2 minutes of effective fencing time" 03-general.md # očakávané: 0 (parametre už len v 09) +grep -c "additional equipment check will be performed" 03-general.md # očakávané: 0 +grep -n "Fencing etiquette section" 09-organisational.md # očakávané: 0 riadkov +grep -c "The flexibility of the blade is measured" 02-equipment.md # očakávané: 0 +grep -c "flexibility of a blade is measured" 02-equipment.md # očakávané: 1 +scripts/check_links.sh +``` + +- [ ] **Krok 6: Commit** — `git commit -am "refactor: single canonical home for bout parameters, equipment checks, three-call procedure and flexibility measurement"` + +--- + +### Úloha 4: Kritické jazykové opravy — rozbité definície, gramatika, negácie + +**Files:** +- Modify: `03-general.md`, `06-rapier.md`, `05-longsword.md`, `09-organisational.md`, `10-disciplinary.md`, `02-equipment.md` + +Každý bod nižšie je nahradenie presného znenia (nájdi podľa BEFORE, nahraď AFTER). Význam sa nemení. + +- [ ] **Krok 1: Definície double hitu** + +`03-general.md` — BEFORE: `A double hit occurs when both fencers get hit within a period of fencing time, but are not simultaneous actions, are evaluated according to the rules or each specific weapon.` +AFTER: `A double hit occurs when both fencers are hit within one period of fencing time but the actions are not simultaneous. Double hits are evaluated according to the weapon-specific rules.` + +`06-rapier.md` — BEFORE: `A double hit occurs when two valid hits that land within one period of fencing time.` +AFTER: `A double hit occurs when two valid hits land within one period of fencing time.` + +`05-longsword.md` — BEFORE: `The double hit on the other hand, is the result of a clearly faulty action on the part of one of the fencers, according to the rules. Therefore, when there is not an interval of fencing time between the hits.` +AFTER: `A double hit, on the other hand, occurs when there is no interval of fencing time between the hits and it is the result of a clearly faulty action on the part of one of the fencers, as defined by these rules.` + +- [ ] **Krok 2: Gramatické chyby** + +| Súbor | BEFORE | AFTER | +|---|---|---| +| `09-organisational.md` | `Main referee must be able conduct and manage bouts in English.` | `The Referee must be able to conduct and manage bouts in English.` | +| `10-disciplinary.md` (2×: 3. aj 4. skupina) | `keeps the position in the ranking s obtained` | `keeps the position in the ranking obtained` | +| `10-disciplinary.md` | `exclusion from the competition, suspension from the remainder of the tournament. The fencer keeps` | `exclusion from the competition and suspension from the remainder of the tournament). The fencer keeps` (uzavri zátvorku otvorenú pred „exclusion") | +| `10-disciplinary.md` | `penalised by a BLACK CARD (exclusion from the competition.` | `penalised by a BLACK CARD (exclusion from the competition).` | +| `03-general.md` | `upon each subsequent cases within the bout, a hit will be scored against him (as if they had been hit).` | `on each subsequent occasion within the bout, a point is scored against the fencer (as if they had been hit).` | +| `03-general.md` | `Should a competitor cross the boundary of the arena completely — i.e. with both feet — without having scored any valid hits before crossing the limit of the arena (see penalty 0.3)` | `If a fencer crosses the boundary of the arena with both feet without having scored a valid hit before crossing (see penalty 0.3):` | +| `10-disciplinary.md` | `he can also propose to the the expulsion` | `they can also propose the expulsion` | + +- [ ] **Krok 3: Zavádzajúce negácie („no … must")** + +`02-equipment.md` — BEFORE: `If a contestant leans their head in any standard angle, no unprotected part or skin must be visible.` +AFTER: `The head protection must leave no skin or unprotected area visible when the fencer tilts their head at any normal angle.` + +`02-equipment.md` — BEFORE: `Every part of the body must be covered. No open space must be left between the gloves and the jacket.` +AFTER: `Every part of the body must be covered. The gloves must overlap the jacket sleeves, leaving no gap.` + +`07-sabre.md` — BEFORE: `Hits landed with blade contact (through a parry or over the cross/guard) are only valid if the strength of the hit is not meaningfully decreased.` +AFTER: `Hits landed with blade contact (through a parry or over the cross-guard) are valid only if the hit retains meaningful force.` + +- [ ] **Krok 4: Najhoršie súvetia (FIE legalese) — rozklad bez zmeny významu** + +`03-general.md` — BEFORE: `However, if when the Referee stops the exchange, a hit that the referee believed invalid and ignored before the conclusion of the last exchange proves to have been valid, the Referee shall, if possible, make a decision in relation to the actual first hit, even if this results in the annulment of other valid hits that happened afterwards.` +AFTER: `If a hit that the Referee ignored as invalid proves, when the exchange is stopped, to have been valid, the Referee must, if possible, re-judge the exchange from that actual first hit. Later hits are annulled, even if they were valid.` + +`10-disciplinary.md` — BEFORE: `In his capacity as director of the bout and arbiter of hits, he can, in accordance with the rules, penalise the competitors, either by refusing to award a hit which they have in fact made on the opponent, or by awarding against them a hit which they have not in fact received, or by excluding them from the competition which he is refereeing, all, according to the circumstances, with or without prior warning. In these circumstances, and if he has judged on a matter of fact, his decisions are irrevocable` +AFTER: `As director of the bout and arbiter of hits, the Referee may, in accordance with the rules and — according to the circumstances — with or without prior warning: a) refuse to award a hit actually made; b) award a point against a fencer for a hit not actually received; c) exclude a fencer from the competition. When the Referee has judged on a matter of fact, the decision is irrevocable.` + +`09-organisational.md` (protokol po výmene) — BEFORE: `After stopping an exchange, the Referee consults with the Assistant and proposes a result. If the fencers accept the decision (they say nothing), the fight continues with the proposed score. If they don’t agree with the Referee, but they agree with each other, the Referee may make a decision according to their wishes. If any of the fencers protests and the fencers disagree with each other, the Referee will decide whether to assign a point (being completely sure) or repeat the exchange.` (pozor: `don’t` s typografickým apostrofom) +AFTER: + +```markdown +3. After stopping an exchange, the Referee consults the Assistant and proposes + a result. Then: + a) if both fencers accept the decision (they say nothing), the bout + continues with the proposed score; + b) if the fencers disagree with the Referee but agree with each other, the + Referee may decide according to their shared account; + c) if a fencer protests and the fencers disagree with each other, the + Referee either assigns the point (only when completely sure) or repeats + the exchange. +``` + +- [ ] **Krok 5: Verifikácia** + +```bash +grep -rn "get hit within a period\|two valid hits that land\|able conduct\|ranking s obtained\|of of \|subsequent cases\|no unprotected part or skin must\|No open space must" *.md +# očakávané: 0 riadkov +scripts/check_links.sh +``` + +- [ ] **Krok 6: Commit** — `git commit -am "fix(language): repair broken definitions, grammar errors and misleading negations"` + +--- + +### Úloha 5: „Use of Language" + normatívne slovesá (shall/will → must/may) + +**Files:** +- Modify: `01-intro.md` (nová sekcia), všetky kapitoly (sweep) + +**Interfaces:** +- Produces: konvenciu, na ktorú sa odkazuje check skript (Úloha 7) a všetky ďalšie texty. + +- [ ] **Krok 1: Pridaj do 01-intro.md na koniec novú sekciu** + +```markdown +## Use of Language + +1. This Rulebook uses the following verb conventions: + - **must** / **must not** — a binding requirement or prohibition; + - **may** — a permission; + - **should** — a recommendation: not binding, but expected as good practice; + - **can** — a statement of ability or possibility, not a norm. + +2. Terms in *italics* are technical terms defined in the + [Glossary](appendices/01-glossary.md). + +3. Blocks introduced with **Note:** or **Example:** are informative only; they + illustrate the rules but contain no requirements. +``` + +(4. bod o číslovaní článkov doplní Úloha 8, Krok 5.) + +- [ ] **Krok 2: Sweep `shall`.** Nájdi všetky výskyty: `grep -rn "\bshall\b" *.md appendices/*.md`. Každý prepíš podľa významu: povinnosť → `must`, opis budúceho deja → prítomný čas. Známe výskyty a ich prepisy: + +| Miesto | BEFORE → AFTER | +|---|---| +| `02-equipment.md` (sabre) | `The total weight of a sabre shall fall between the range of 650-800 grams, counting both blade and basket.` → `The sabre, including blade and basket, must weigh between 650 and 800 g.` | +| `02-equipment.md` (cloak) | `The Organizing Team shall announce in advance, whether they allow` → `The Organising Team must announce in advance whether they allow` | +| `03-general.md` | `The opponents shall salute to the referees and the opponent` → `The opponents must salute the Referees and the opponent` | +| `03-general.md` | `the fencers shall check and sign the result sheet` → `the fencers must check and sign the result sheet` | +| `03-general.md` | `their results shall be scratched, and their opponents shall be declared` → `their results are scratched, and their opponents are declared` | +| `03-general.md` | `the score shall be recorded as if` → `the score is recorded as if` | +| `03-general.md` (CQC — Ground action) | `the Referee shall call “Halt!”` (typografické úvodzovky) → `the Referee must call 'Halt!'` | +| `03-general.md` (CQC — pád/strata zbrane) | `the Referee shall call 'Halt!'` (rovné úvodzovky) → `the Referee must call 'Halt!'` | +| `09-organisational.md` | `A summary classification table shall then be made` → `A summary classification table is then made` | +| `09-organisational.md` | `a second index will be established` → ponechaj opisné, zmeň na prítomný čas: `a second index is established` | +| `01-intro.md` | `we shall regard each individual point as a separate "duel"` → `each individual point is regarded as a separate "duel"` | + +- [ ] **Krok 3: Sweep `will` a `is going to` v normatívnych vetách.** `grep -rn "is going to\|will be penalised\|will be penalized\|will be judged\|will be scored\|will have\|will be defined\|will consist\|will decide\|will announce\|will be called\|will be made\|will call\|will be counted" *.md`. Pravidlo: ak veta ukladá povinnosť/normu → `must` alebo prítomný čas; ak opisuje procedúru → prítomný čas. Známe kľúčové prepisy: + +| Miesto | BEFORE → AFTER | +|---|---| +| `02-equipment.md` | `The blade will have a safe tip, this being defined as rolled, thickened or spatulated. The tip will be further built up at the event with contrasting high-visibility tape.` → `The blade must have a safe tip: rolled, thickened or spatulated. The tip must be further built up at the event with contrasting high-visibility tape.` | +| `02-equipment.md` | `A sabre will be defined as` → `A sabre is a` | +| `02-equipment.md` | `no aluminium, plastic or wooden swords will be accepted` → `aluminium, plastic or wooden swords are not accepted` | +| `07-sabre.md` | `Repeated, deliberate strikes to an off-target will be judged as` → `Repeated, deliberate strikes to an off-target area are judged as` | +| `04-right-of-way.md` | `Priority will not be given for pure footwork` → `Priority is not given for pure footwork` | +| `09-organisational.md` | `Fencers will be called by the staff of the given fencing area` → `The staff of the given fencing area call the fencers` | +| `09-organisational.md` | `these pools will consist of 7 fencers` → `the pools consist of 7 fencers` | +| `09-organisational.md` | `Medical/paramedic staff will assess` → `Medical/paramedic staff assess` | +| `03-general.md` | `the referee will announce the winner` → `the Referee announces the winner` | + +Ostatné výskyty rieš rovnakým pravidlom (rozhodovací postup je deterministický; ak veta vyjadruje podmienený následok v pravidle — „a point will be scored against" — použi prítomný čas „a point is scored against"). + +- [ ] **Krok 4: Verifikácia** + +```bash +grep -rn "\bshall\b\|is going to" *.md appendices/*.md | grep -v "^docs/" # očakávané: 0 riadkov +grep -c "## Use of Language" 01-intro.md # očakávané: 1 +``` + +- [ ] **Krok 5: Commit** — `git commit -am "style: normative verb convention (must/may/should) and Use of Language clause"` + +--- + +### Úloha 6: Zámená a register — singular they, opakovanie roly, archaizmy + +**Files:** +- Modify: `03-general.md`, `04-right-of-way.md`, `09-organisational.md`, `10-disciplinary.md`, `02-equipment.md` + +- [ ] **Krok 1: Sweep rodových zámen.** `grep -rn "\bhe\b\|\bshe\b\|\bhis\b\|\bher\b\|\bhim\b\|he/she\|she/he\|his/her\|him/her\|him/them\|His/her" *.md`. Pravidlá prepisu: (a) tam, kde vystupuje jedna osoba → singular `they/their/them`; (b) tam, kde vystupujú dvaja aktéri (útočník/obranca, šermiar/rozhodca) → opakuj rolu (`the attacker`, `the defender`, `the fencer`, `the Referee`) namiesto zámena. Kľúčové miesta: + - `10-disciplinary.md`: `they must remain still while the referee is making her decision; when she has given her decision` → `they must remain still while the Referee is making the decision; when the Referee has given the decision` + - `10-disciplinary.md`: `must keep his mask on until the Referee calls ‘Halt!’. He may under no circumstances address the Referee until the Referee has made his decision.` (typografické úvodzovky okolo Halt!) → `must keep their mask on until the Referee calls 'Halt!'. They must not address the Referee until the Referee has announced the decision.` + - `10-disciplinary.md`: `if the play becomes confused, dangerous or she/he is unable` → `if the play becomes confused or dangerous, or the Referee is unable` + - `10-disciplinary.md`: `the Referee will penalise him/them as specified` → `the Referee penalises them as specified` + - `04-right-of-way.md` (celé zoznamy „The fencer who is attacked/attacks is alone counted as hit"): `if he makes a counter-attack on his opponent's simple attack` → `if they make a counter-attack against the opponent's simple attack` — analogicky všetkých 11 položiek (`he` → `they`, `his opponent` → `the opponent`, `his point` → `their point`, `his final movement` → `the final movement of the attack`). + - `09-organisational.md`: `His/her results are recorded` → `Their results are recorded` + - `10-disciplinary.md`: `by his/her gestures, attitude or language` → `by their gestures, attitude or language`; `pledges his/her honour` → pozri Krok 2. +- Pozor na legitímne výskyty mimo pravidiel (napr. slovenské texty smernice `FEBUS_smernica*` — tie nechaj bez zmeny; sweep obmedz na kapitoly 01–10 a appendices). + +- [ ] **Krok 2: Archaizmy a právnický register v 10-disciplinary.md** + +| BEFORE | AFTER | +|---|---| +| `By the mere fact of entering a fencing competition, the fencers pledge their honour to observe the Rules, and the decisions and instructions of the officials, to be respectful towards the Referees (Referee and Assistant) and to scrupulously obey their orders and injunctions.` | `By entering a fencing competition, fencers agree to observe the Rules and the decisions and instructions of the officials, to be respectful towards the Referees (Referee and Assistant), and to follow their orders.` | +| `By accepting a position as referee or assistant, the person so designated pledges his/her honour to respect the rules` | `By accepting a position as Referee or Assistant, the person so designated agrees to respect the rules` | +| `All bouts must preserve the character of a courteous and frank encounter.` | `All bouts must remain courteous and fair.` | +| `In no circumstances can the imposition of this penalty give cause for redress to anyone.` | `The imposition of this penalty gives no one a right to compensation.` | + +- [ ] **Krok 3: Pasíva zakrývajúce aktéra (02-equipment.md)** — BEFORE: `The mandatory equipment is controlled by the designated tournament staff before the competition and an additional check must be done by the referee of each fencing arena.` AFTER: `The designated tournament staff inspect the mandatory equipment before the competition; the referee of each fencing arena performs an additional check.` (Pozn.: `controlled` je kalk — správne `inspected`.) + +- [ ] **Krok 4: Verifikácia** + +```bash +grep -rn "he/she\|she/he\|his/her\|him/her\|him/them\|His/her" 0*.md 10-disciplinary.md # očakávané: 0 +grep -rnE '\b(he|she|his|her|him)\b' 0*.md 10-disciplinary.md # posúď ručne — cieľ: žiadne rodové zámená v texte pravidiel +grep -n "injunctions\|frank encounter\|redress\|pledge" 10-disciplinary.md # očakávané: 0 +``` + +- [ ] **Krok 5: Commit** — `git commit -am "style: singular they, role nouns instead of pronouns, plain register in disciplinary chapter"` + +--- + +### Úloha 7: Terminologická kanonizácia + glosár + check skript + +**Files:** +- Modify: všetky kapitoly, `appendices/01-glossary.md` +- Create: `scripts/check_conventions.sh` + +- [ ] **Krok 1: Hromadné náhrady kanonických termínov** (grep → cielené úpravy; `sed -i` len ak si istý kontextom): + +| Kanonický termín | Nahrádza | Poznámky/výnimky | +|---|---|---| +| `fencer` | `competitor`, `contestant`, `athlete` | `participant` nechaj pre širší okruh osôb (diváci, tréneri); v 10-disciplinary premenuj sekciu `## The Competitors` → `## The Fencers`; „non-competitors" v texte o vylúčení → `non-fencers` alebo preformuluj `other persons present` | +| `bout` | `match`, `fight` (podstatné mená) | `the match can be stopped` → `the bout`; `a break in the fight` → `a break in the bout`; pozor: „matches" v `10-disciplinary.md` score-sheet vete → `bout` | +| `priority` | `right of way`, `right-of-way`, `Vor`, `right of initiative` v bežnom texte | Prvý výskyt v každej kapitole: `priority (right of way, historically *Vor*)`; nadpis v `05-longsword.md` `## Vor/Priority` → `## Priority`; názov kapitoly 04 a jej H1 nechaj `Right of Way and Priority Rules` (vžitý názov), ale v texte kapitoly používaj `priority` | +| `point` (bod v skóre) | `hit` tam, kde ide o skóre | `reaches 5 points` zostáva; `has scored 5 hits`/`7 hits` v 09-organisational → `5 points`/`7 points`; `penalty hit` v 10-disciplinary → `penalty point`; FYZICKÝ zásah zostáva `hit` (definície zásahov, valid hit…); indexy `HS – HR` nechaj, ale rozpíš `(points scored – points received)` | +| `arena` | `fencing area` | V 09-organisational a v tabuľke trestov; `fencing area staff` → `arena staff`; ak `fencing area` označuje širší priestor než arénu, ponechaj a over kontext | +| `on-guard line` | `start-line`, `starting line`, `on guard line` | `02-equipment.md` bod 4 a `03-general.md` | +| `Assistant Referee` | `Assistant (side Referee)`, `Side Referee` | Nadpis `### Side Referee (Assistant Referee)` → `### Assistant Referee`; prvá zmienka: `an Assistant Referee (observing from a different angle)` | +| `Organising Team` | `Organizing Team`, `organizer(s)`, `organisers` | Britský pravopis všade; `The organisers of a competition publish` → `The Organising Team publishes` | +| `Head of the Refereeing Team` | `Head of the Refereeing Committee`, `Refereeing committee` | `The Refereeing committee can be approached` → `The Head of the Refereeing Team can be approached` | +| `cross-guard` | `crossguard`, `cross/guard` | vrátane tabuľky trestov (1.5) | +| `stop-hit` | `stop hit` | glosár má kanonické heslo `*Stop-hit*`, ale v hesle *Counter-time* oprav `stop hit` → `stop-hit` (a `his opponent` → `the opponent`) | +| `Referee` (veľké R) | `referee` v texte pravidiel | Len tam, kde ide o rolu v tomto rulebooku; `referee` ako všeobecné slovo v úvode môže zostať malé — rozhodni jednotne: v kapitolách 02–10 vždy veľké `Referee`, `Timekeeper`, `Assistant Referee` | +| `off-target` / `forbidden target` | `non-scoring target`, `illegal target`, `non-valid target` | `07-sabre.md`: `legs being a non-scoring target` → `legs being off-target`; `strikes to an illegal target` → `strikes to a forbidden target`; `03-general.md` `covering a valid target with a non-valid one` → `covering a valid target with an off-target part` — POZOR: over význam každého výskytu (off-target = neskóruje; forbidden = trestá sa) | + +- [ ] **Krok 2: Glosár — nové heslá a opravy.** V `appendices/01-glossary.md`: + +(a) Oprav `Bout`: `the whole fight between two fencers` → `the whole contest between two fencers`. +(b) Otoč `Langort`: `*Langort* (point in line) – a specific position…` → `*Point in line* (*Langort*) – a specific position…`. +(c) Do sekcie **General terms** doplň: + +```markdown +8. *Priority* (right of way; historically *Vor*) – the convention that + determines which fencer's hit scores when both fencers are hit within one + period of fencing time. Used in the Longsword and Sabre categories (see + [Right of Way and Priority Rules](../04-right-of-way.md)). +9. *Simultaneous hit* – both fencers are hit as the result of a similar + conception and execution of an action at the same time. +10. *Double hit* – both fencers are hit within one period of fencing time, + without the actions being simultaneous. +11. *After-action* – a counter action (or the finishing move of a compound + action) started at or after the moment of receiving a hit. After-actions + never score and do not annul the hit received. +12. *Off-target* – a part of the body that does not score when hit and does not + stop the exchange (e.g. the legs in the Sabre category). +13. *Forbidden target* – the back of the head, the spine, the groin, the feet + and the back of the knees. Hitting a forbidden target is penalised (see + penalty 1.5). +14. *Arena* (fencing arena) – the marked area in which bouts take place. +15. *On-guard line* – the marked line on which each fencer takes the on-guard + position, at least 2 m from the centre of the arena. +``` + +(d) `03-general.md`: definíciu fencing time („Fencing time is the time required to perform one simple fencing action.") nahraď odkazom: `*Fencing time* (see [Glossary](appendices/01-glossary.md)) is counted as follows: in judging hits, referees count immediate actions that start up to the moment of the first hit as relevant actions.` + +- [ ] **Krok 3: Vytvor scripts/check_conventions.sh** + +```bash +#!/bin/bash +# Konvenčné kontroly rulebooku. Exit 0 = OK. Kontroluje kapitoly a appendices, +# nie docs/ ani slovenské súbory. +set -u +FILES="01-intro.md 02-equipment.md 03-general.md 04-right-of-way.md \ +05-longsword.md 06-rapier.md 07-sabre.md 08-sword-and-buckler.md \ +09-organisational.md 10-disciplinary.md README.md appendices/01-glossary.md" +fail=0 +check_zero() { # $1 = popis, $2 = pattern + hits=$(grep -nE "$2" $FILES 2>/dev/null) + if [ -n "$hits" ]; then echo "FAIL: $1"; echo "$hits"; fail=1; fi +} +check_zero "zakázané modálne tvary" '\bshall\b|is going to' +check_zero "nekanonické osoby" '\bcontestants?\b|\bcompetitors?\b|\bathletes?\b' +check_zero "nekanonický súboj" '\bthe match\b|\bthe fight\b' +check_zero "rodové zámená" 'he/she|she/he|his/her|him/her|him/them' +check_zero "nekanonická priorita" 'right of initiative' +check_zero "nekanonická čiara" 'start-line|\bstarting line\b' +check_zero "nekanonický asistent" 'Side Referee' +check_zero "americký pravopis organizácie" 'Organizing Team|organizer' +check_zero "nekanonický cross-guard" '\bcrossguard\b|cross/guard' +check_zero "nekanonický stop hit" '\bstop hit\b' +check_zero "rozbité FIE odkazy" 'Article [0-9]|in Article\.|Figure 2' +check_zero "staré HTML atribúty" 'bgcolor' +exit $fail +``` + +```bash +chmod +x scripts/check_conventions.sh +``` + +> **Poznámka:** `appendices/02-penalties.md` zámerne vo FILES nie je — starý HTML súbor obsahuje `he/she`, `competitor` aj `bgcolor`; do FILES ho vráti Úloha 9 po prepise. Kontrola `Article [0-9]` začne prechádzať až po Úlohe 8 — dovtedy je to jediné akceptované zlyhanie (všetko ostatné musí prejsť už teraz). + +- [ ] **Krok 4: Verifikácia** + +```bash +scripts/check_conventions.sh # očakávané: FAIL len na "rozbité FIE odkazy" (opraví Úloha 8) +scripts/check_links.sh # exit 0 +``` + +- [ ] **Krok 5: Commit** — `git commit -am "style: canonical terminology, glossary entries for core scoring terms, convention check script"` + +--- + +### Úloha 8: Globálne číslovanie článkov + krížové odkazy + FIE pozostatky + +**Files:** +- Modify: `02-equipment.md`, `03-general.md`, `04-right-of-way.md`, `05-longsword.md`, `06-rapier.md`, `07-sabre.md`, `08-sword-and-buckler.md`, `09-organisational.md`, `10-disciplinary.md`, `01-intro.md` (bod 4 Use of Language) + +**Interfaces:** +- Produces: stabilné ID článkov `.`, ktoré používa Úloha 9 (stĺpec ART.) a Úloha 11 (quick-reference). Po dokončení vygeneruj zoznam ID: `grep -hoE '\*\*[A-Za-z]+\.[0-9]+\*\*' *.md | sort -u > /tmp/article-ids.txt`. + +- [ ] **Krok 1: Prefixy a postup číslovania.** + +| Súbor | Prefix | +|---|---| +| `02-equipment.md` | `E` | +| `03-general.md` | `G` | +| `04-right-of-way.md` | `RoW` | +| `05-longsword.md` | `LS` | +| `06-rapier.md` | `R` | +| `07-sabre.md` | `S` | +| `08-sword-and-buckler.md` | `SB` | +| `09-organisational.md` | `O` | +| `10-disciplinary.md` | `D` | + +`01-intro.md` a glosár sa nečíslujú (filozofia a definície sa citujú menom). + +Postup pre každý súbor: prechádzaj zhora nadol; každú položku číslovaného zoznamu, ktorá je pravidlom, preveď na odsek začínajúci `**.**` s priebežným `n` cez celý súbor (žiadny reštart na sekciách). Vnorené pod-body preveď na `a)`, `b)`, `c)`… Úvodné nečíslované odseky sekcií (napr. úvod „Rapier and side weapons do not use priority…") nechaj bez ID — normu z nich presuň do prvého očíslovaného pravidla, ak ju obsahujú (v 06-rapier: veta `only the first valid hit scores` patrí do R.4, úvod nechaj informatívny). + +Vzor (03-general, začiatok): + +```markdown +## The Process of the Bouts + +### Starting the bout + +**G.1** Each bout is performed for a set amount of time or until a set amount +of points. This is achieved through a series of separate, independent +exchanges. + +**G.2** The fencers present themselves in the arena when called by the Referee +before each pool or direct elimination bout, in appropriate gear conforming to +the rules, ready to fence. +``` + +- [ ] **Krok 2: Skontroluj markdown rendering.** Odseky `**G.1** …` nesmú byť súčasťou `1.` zoznamov (odstráň pôvodné čísla zoznamu). Pod-body píš **záväzne** ako markdown zoznam s pomlčkou: `- a) …`, `- b) …` — samostatný blok odsadený 4 medzerami by python-markdown vykreslil ako code block (sivý monospace rámik v PDF). Vygeneruj PDF po očíslovaní prvej kapitoly a over rendering skôr, než očísluješ zvyšok. + +- [ ] **Krok 3: Preveď prozaické krížové odkazy na presné.** Zoznam konverzií (po pridelení čísel doplň skutočné `n`): + +| Miesto | Teraz | Nahradiť | +|---|---|---| +| `03-general.md` + `09-organisational.md` | odkaz `[Technical & Equipment Standards](02-equipment.md)` vložený Úlohou 3 (pôvodné `(see the Equipment Standards)` už neexistuje) | doplň číslo článku o kontrole výstroja: `…are set out in the [Technical & Equipment Standards](02-equipment.md), E..` | +| `02-equipment.md` | `a break of up to 3 minutes may be allowed (see the General Rules).` | `…(see [G.](03-general.md) — equipment failure breaks).` | +| `03-general.md` (dedup z Úlohy 3) | odkaz na Organisational Rules | doplň `, O.–O.` | +| `06-rapier.md` | `the regulations for these side weapons are set out elsewhere in this Rulebook.` | `the regulations for these side weapons are set out in the [Technical & Equipment Standards](02-equipment.md), E.–E. (dagger) and E.–E. (cloak).` | +| `09-organisational.md` | `(See Figure 2.)` | zmaž — žiadna Figure 2 neexistuje | +| `10-disciplinary.md` | `the same as those described in the Article 29. above` | `the same as those described in D. (Exclusion) above` (odkaz na článok „Exclusion. A fencer who, while fencing…" — znenie po sweepe Úlohy 7) | +| `10-disciplinary.md` | `to be applied in the cases indicated in the table in Article.` | `to be applied in the cases indicated in the [Table of Offences and Penalties](appendices/02-penalties.md).` | +| `10-disciplinary.md` | `are summarised in the table that follows in Article 44.); they are divided` | `are summarised in the [Table of Offences and Penalties](appendices/02-penalties.md); they are divided` | +| `10-disciplinary.md` | `(see the table of offences, also attached to this summary)` | `(see the [Table of Offences and Penalties](appendices/02-penalties.md))` | +| `05-longsword.md` | `(see the General Rules, 'The methods of scoring hits')` | `(see [G.](03-general.md) — pommel strike)` | +| `07-sabre.md` | `the general dominance rule (see [General Rules](03-general.md))` | `the general dominance rule (see [G.–G.](03-general.md))` | + +Existujúce odkazy `(see penalty 0.3)`, `(see penalty 1.5)`, `(see penalty 1.6)` atď. nechaj — tabuľka trestov si drží vlastné číslovanie 0.1–4.5. + +- [ ] **Krok 4: Doplň do 01-intro.md „Use of Language" bod 4** + +```markdown +4. Rules are numbered with a chapter prefix: E = Equipment, G = General rules, + RoW = Right of Way, LS = Longsword, R = Rapier, S = Sabre, SB = Sword & + Buckler, O = Organisational, D = Disciplinary. Cite rules by these + identifiers (e.g. "G.16", "RoW.12(a)"). Identifiers are stable: new rules + receive new numbers and existing numbers are not reused. +``` + +- [ ] **Krok 5: Verifikácia** + +```bash +grep -c '^\*\*E\.' 02-equipment.md # > 60 (odhad ~80 článkov) +grep -c '^\*\*G\.' 03-general.md # > 40 +grep -rn "Article [0-9]\|in Article\.\|Figure 2" *.md # 0 riadkov +scripts/check_links.sh && scripts/check_conventions.sh # očakávané: exit 0 (02-penalties.md pribudne do kontrol až v Úlohe 9) +# každé ID unikátne: +grep -hoE '\*\*[A-Za-z]+\.[0-9]+\*\*' *.md | sort | uniq -d # 0 riadkov +source venv/bin/activate && python generate_pdf.py # PDF sa vygeneruje, skontroluj rendering G.1 odsekov +``` + +- [ ] **Krok 6: Commit** — `git commit -am "feat: global article numbering with chapter prefixes, precise cross-references, remove broken FIE references"` + +--- + +### Úloha 9: Tabuľka trestov → čisté Markdown + ART. stĺpec + farby kariet v PDF + +**Files:** +- Modify: `appendices/02-penalties.md` (kompletný prepis), `generate_pdf.py` (colorize + CSS) + +**Interfaces:** +- Consumes: ID článkov z Úlohy 8 (`/tmp/article-ids.txt` alebo grep). +- Produces: markdown tabuľky; `colorize_cards()` v generate_pdf.py. + +- [ ] **Krok 1: Prepíš appendices/02-penalties.md.** Nahraď **všetkých 7 HTML tabuliek** (Non-presentation, Boundary crossing, skupiny 1–4 a záverečná EXPLANATIONS, ktorú nahrádza sekcia „Cards and footnotes") markdown tabuľkami. Predloha (ART. hodnoty `<…>` doplň podľa pridelených ID; kde pravidlo v texte neexistuje, daj `—`): + +```markdown +# Table of Offences and Penalties + +This table is a summary; it is not a substitute for the full text of the +articles concerned (ART. column), which must be consulted in any case of doubt. + +An asterisk (*) means: any hit scored by the fencer at fault is annulled. + +## Non-presentation + +| No. | Offence | Art. | Penalty | +|-----|---------|------|---------| +| 0.1 | Non-presentation when called by the staff of the arena ten minutes before the time indicated for the start of pool / direct elimination bouts | O. | **BLACK** — elimination from the competition | +| 0.2 | Non-presentation on the arena ready to fence when ordered by the Referee (three calls, one-minute intervals) | D. | 1st call **YELLOW** · 2nd call **RED** · 3rd call elimination | + +## Boundary crossing + +| No. | Offence | Art. | 1st occasion | Subsequent | +|-----|---------|------|--------------|------------| +| 0.3 | Leaving the arena with both feet without the opponent's interaction and without having scored a valid hit | G. | Verbal warning | Point against | + +## First group + +Penalty ladder: 1st offence **YELLOW**, 2nd and subsequent offences **RED**. +A fencer already holding a RED card receives a further **RED** for a first +offence of this group. + +| No. | Offence | Art. | +|-----|---------|------| +| 1.1 | Leaving the arena without permission | — | +| 1.2 | Turning the back on the opponent | G. | +| 1.3 | Covering/substitution of valid target | G. | +| 1.4 | Interruption of the bout without valid reason | G. | +| 1.5 | Attacking forbidden targets (back of the head, spine, groin, foot, back of the knee). Hit with the cross-guard. Attack with the dagger in Rapier. Strike with the buckler. Wrestling or grappling in Rapier, Sword & Buckler, or Sabre. | G., R., SB., S. | +| 1.6 | Clothing/equipment nonconforming; absence of regulation weapon | E. | +| 1.7 | Hitting the arena floor with an uncontrolled action | G. | +| 1.8 | Refusal to obey the Referee (including actions before 'Fence!' or after 'Halt!') | G. | +| 1.9 | Disorderly fencing *; taking off the mask before the Referee calls 'Halt!'; dressing or undressing in the arena | D. | +| 1.10 | Irregular movements in the arena *; throwing the opponent by lifting both of their feet off the ground * | D., G. | +| 1.11 | Unjustified appeal | D. | +| 1.12 | Hitting with the fists, kicking * | G. | +| 1.13 | Removing the opponent's mask or any other protective equipment * | — | +| 1.14 | Losing or dropping the cloak during a Rapier bout | R. | + +## Second group + +Penalty: **RED** for every offence, including the first. + +| No. | Offence | Art. | +|-----|---------|------| +| 2.1 | Throwing the weapon * | G. | +| 2.2 | Demanding a break for a claimed injury/cramp not confirmed by the medical staff | G. | +| 2.3 | Absence of equipment control marks * | O. | +| 2.4 | Dangerous, violent or vindictive action *; attack with the dagger in Rapier bouts *; strike with the buckler * | D., R., SB. | + +## Third group + +| No. | Offence | Art. | 1st offence | 2nd offence | +|-----|---------|------|-------------|-------------| +| 3.1 | Fencer disturbing order when in the arena (in the most serious cases the Referee may award a black card immediately) | D. | **RED**⁴ (even if already holding a RED from groups 1 or 2) | **BLACK**¹ | +| 3.2 | Dishonest fencing * | D. | **RED** | **BLACK**¹ | +| 3.3 | Any person not in the arena disturbing order (in the most serious cases: immediate black card) | D. | **YELLOW**⁴ (valid for the whole competition) | **BLACK**³ | +| 3.4 | Offence against sportsmanship * (in the most serious cases: immediate black card) | D. | **YELLOW** | **BLACK**¹ or ² | + +## Fourth group + +Penalty: **BLACK** for the first offence. + +| No. | Offence | Art. | +|-----|---------|------| +| 4.1 | Deliberate brutality; throwing the opponent onto their head *; neck-wrenching and small-joint manipulation *; failing to stop dangerous submission holds before full application (both fencers may be penalised, the victim as well if they did not submit) *; throwing the dagger at the opponent in Rapier bouts * | G., R. | +| 4.2 | Causing injury or threat of injury with equipment non-conforming to the Rules, or with imitated/transferred weapon control marks | E. | +| 4.3 | Offence against sportsmanship (e.g. refusal to salute or shake hands after the bout) | G., D. | +| 4.4 | Refusal of a fencer to fence another fencer properly entered | D. | +| 4.5 | Profiting from collusion, favouring an opponent | D. | + +## Cards and footnotes + +| Card | Meaning | +|------|---------| +| **YELLOW** | Warning, valid for the bout. A fencer who commits a 1st-group offence after having been penalised with a RED card (for whatever reason) receives a further **RED**. | +| **RED** | Penalty point for the opponent. | +| **BLACK** | Exclusion from the competition and suspension from the remainder of the tournament; possible suspension from future events organised by the Federation or the Organiser. In the 3rd group, a BLACK card is awarded only after a previous offence in that group (demonstrated by a RED card). | + +¹ exclusion from the competition · ² exclusion from the tournament · +³ expulsion from the venue · ⁴ in serious cases the Referee may exclude/expel +immediately +``` + +Mapovanie ART. (pravidlá identifikuj podľa obsahu): 0.1 → O (tri výzvy 10 min pred štartom); 0.2 → D (tri výzvy rozhodcu, sekcia The Fencers); 0.3 → G (hranica bez zásahu); 1.2, 1.3 → G (Forbidden actions: turning/covering); 1.4 → G (prestávka len cez rozhodcu); 1.5 → G (forbidden targets + cross-guard) + R (útok dýkou) + SB (úder bucklerom) + S (zákaz grapplingu); 1.6 → E (kontrola výstroja); 1.7 → G (arena floor); 1.8 → G (akcie pred/po povele); 1.9 → D (Etiquette: disorderly; The Fencers: maska); 1.10 → D (Etiquette) + G (CQC forbidden); 1.11 → D (Referee: appeals); 1.12 → G (punching/kicking); 1.14 → R (cloak, bod 5); 2.1 → G (throwing weapon); 2.2 → G (injury break); 2.3 → O (Tournament Staff: stamps); 2.4 → D (Etiquette) + R + SB; 3.1 → D (Order 2); 3.2 → D (utmost ability); 3.3 → D (3rd group osoby mimo arény); 3.4 → D (Etiquette); 4.1 → G (CQC forbidden) + R (hod dýkou); 4.2 → E (zodpovednosť za výstroj); 4.3 → G (salute) + D (Etiquette 2); 4.4 → D (refusal to fence); 4.5 → D (collusion). Pre 1.1 a 1.13 v texte pravidiel niet kotvy → `—` (kandidáti na doplnenie textu pravidla, zaznamenaj do CHANGELOG poznámky v Úlohe 12). + +- [ ] **Krok 2: Farby kariet v PDF.** Do `generate_pdf.py` pridaj metódu a volanie na konci `convert_markdown_to_html` (pred `return html_content`): + +```python + def colorize_cards(self, html: str) -> str: + """Zafarbí YELLOW/RED/BLACK karty v tabuľkách trestov.""" + html = html.replace('YELLOW', 'YELLOW') + html = html.replace('RED', 'RED') + html = html.replace('BLACK', 'BLACK') + return html +``` + +```python + html_content = self.colorize_cards(html_content) + return html_content +``` + +Do `css_styles` pridaj: + +```css + .card-yellow { background-color: #E3D059; padding: 0 4px; } + .card-red { background-color: #E36159; color: #fff; padding: 0 4px; } + .card-black { background-color: #787878; color: #fff; padding: 0 4px; } +``` + +- [ ] **Krok 3: Vráť tabuľku trestov do konvenčných kontrol.** V `scripts/check_conventions.sh` doplň `appendices/02-penalties.md` na koniec zoznamu FILES. + +- [ ] **Krok 4: Verifikácia** + +```bash +grep -c "
YELLOW + YELLOW RED + RED RED + RED
1.5 Attacking forbidden targets (back of the head, spine, foot, back of the knee). Hit with crossguard. Attack with the dagger in rapier. Wrestling in rapier. + Attacking forbidden targets (back of the head, spine, groin, foot, back of the knee). Hit with crossguard. Attack with the dagger in rapier. Strike with the buckler. Wrestling or grappling in rapier, sword & buckler, or sabre.
1.11 Leaving the arena with both feet without the opponent’s interaction - -
1.12 - Unjustified appeal
1.13 + 1.12 Hitting with the fists and kicking *
1.14 + 1.13 Removing the opponent‘s mask or any other protective equipment. *
1.15 + 1.14 Losing or dropping the cloak during a rapier bout
2.4 Dangerous, violent or vindictive action. * Attack with the dagger in rapier bouts. * + Dangerous, violent or vindictive action. * Attack with the dagger in rapier bouts. * Strike with the buckler. *
+ 3.4 Offence against sportsmanship * - In the most serious cases the Referee may award a black card immediately.
4.3 Offence against sportsmanship + Offence against sportsmanship (e.g. refusal to salute or shake hands after the bout)
\|bgcolor\| **Note:** These are the default values; the Organising Team may announce +> different values before the start of the competition (see the articles +> below). +``` + +- [ ] **Krok 2: Tabuľka parametrov zbraní.** Do `02-equipment.md` na začiatok sekcie `### Weapons` vlož: + +```markdown +| Parameter | Longsword | One-handed sword | Rapier | Dagger | Sabre | +|---|---|---|---|---|---| +| Overall length | 120–140 cm | 70–100 cm | ≤ 130 cm | ≤ 60 cm | ≤ 105 cm | +| Blade length | — | — | ≤ 110 cm (incl. *ricasso*) | ≤ 45 cm | ≤ 90 cm | +| Weight | 1400–1700 g (men), 1250–1600 g (women) | 900–1200 g | 900–1300 g | not specified | 650–800 g | +| Flexibility | 9–16 kg | not specified | ≤ 10 kg | not specified | ≤ 10 kg | +| Minimum point area | 70 mm² | 50 mm² | 50 mm² | blunt + rounded/secured | 50 mm² | +| Point of balance | ≤ 9 cm from cross-guard | ≤ 9 cm from cross-guard | — | — | — | + +> **Note:** This table is a summary of the detailed requirements below, which +> prevail in case of doubt. Buckler: circular, diameter ≤ 40 cm, wooden or +> metallic, no studs or sharp edges. +``` + +(Postup merania flexibility bol zjednotený už v Úlohe 3, Krok 4 — tu len over, že hodnoty v tabuľke sedia s limitmi v texte. Nový článok sa v tejto úlohe do 02-equipment.md **nepridáva**, aby zostali E-čísla z Úlohy 8 stabilné; tabuľky sú informatívne a ID nemajú.) + +- [ ] **Krok 3: Checklist výstroj × zbraň.** Na koniec `02-equipment.md` (za sekciu Weapons) pridaj: + +```markdown +## Equipment checklist by weapon category + +| Equipment | Longsword | Rapier | Sabre | Sword & Buckler | +|---|---|---|---|---| +| FIE mask (CE level 2, 1600 N), undamaged | required | required | required | required | +| Back-of-head + cervical spine protection | required | required | required | required | +| Throat/larynx protector | required | required | required | required | +| HEMA fencing gloves | required | not required with a sufficiently closed hilt (E.) | not required with a sufficiently closed hilt (E.) | required | +| Additional wrist/forearm protection | — | required when fencing without a massive glove | required when fencing without a massive glove | — | +| Rigid wrist guard | required | — | required | required | +| Fencing jacket/gambeson ≥ 350 N, covering armpits | required | required | required | required | +| Under-plastron 800 N (FIE) | — | required | — | — | +| Breast/chest protection (women) | required | required | required | required | +| Groin protector (men) | required | required | required | required | +| Knee + shin protection (front and sides) | required | required | required | required | +| Thigh protection ≥ 350 N (CE level 1) | required | required | required | required | +| Hip protection (jacket or padded trousers) | required | required | required | required | +| Side-weapon hand: glove with additional protection | — | required if a side weapon is used | — | — | + +> **Note:** Summary only — the detailed articles above prevail. `required` +> means mandatory for entering the category. +``` + +(`E.` doplň podľa ID pravidla o bell guard/basket z Úlohy 8.) + +- [ ] **Krok 4: Verifikácia** + +```bash +grep -c '^| Parameter' 02-equipment.md # očakávané: 1 (tabuľka parametrov zbraní) +grep -c '^## Equipment checklist by weapon category' 02-equipment.md # očakávané: 1 +scripts/check_links.sh && scripts/check_conventions.sh +source venv/bin/activate && python generate_pdf.py # tabuľky sa zmestia na A4 (font 10pt, over vizuálne) +``` + +- [ ] **Krok 5: Commit** — `git commit -am "feat: summary tables for bout parameters, weapon parameters and equipment checklist"` + +--- + +### Úloha 11: Príklady, Note konvencia, prehľad zbraní a quick-reference + +**Files:** +- Modify: `03-general.md`, `04-right-of-way.md`, `05-longsword.md`, `appendices/01-glossary.md`, `README.md` +- Create: `appendices/03-weapon-overview.md`, `appendices/04-referee-quick-reference.md` + +- [ ] **Krok 1: Note konvencia pre existujúce vysvetlivky.** Presuň do blockquote `> **Note:** …`: + - `05-longsword.md`: `(The fault of the attacker consists of indecision, slowness of execution or the making of feints which are not sufficiently effective. The fault of the defender lies in delay or slowness in making the stop-hit.)` (znenie po sweepe Úlohy 7 — `stop-hit` už so spojovníkom) → `> **Note:** The fault of the attacker typically consists of indecision, slow execution, or insufficiently effective feints; the fault of the defender lies in a delayed or slow stop-hit.` + - `03-general.md` (CQC, pád/strata zbrane): veta `…but in the spirit of sportsmanship, no intentional new attack should be initiated if the opponent has fallen or lost the weapon.` — ponechaj v pravidle (je normatívna, `should`), ale over, že po Úlohe 8 je to vlastný pod-bod, nie vsuvka. + - `appendices/01-glossary.md`: úvodný bod 1 sekcie Fencing actions („This section of the rules defines basic fencing actions… It is stressed that this section in no way replaces a treatise on fencing…") preformátuj z položky zoznamu na `> **Note:** …` blok. + +- [ ] **Krok 2: Príklady k trom taktickým situáciám (03-general.md).** Za definície simultaneous/double/after-action vlož: + +```markdown +> **Example (simultaneous hit):** Both fencers decide to attack at the same +> moment and both cuts land together; neither action began meaningfully +> earlier. → Simultaneous hit, scored according to the weapon-specific rules +> (no score change in Longsword and Sabre; both fencers score in Rapier and +> Sword & Buckler). + +> **Example (double hit):** Fencer A launches a correct attack. Fencer B, +> instead of parrying, counterattacks; both hits arrive within one period of +> fencing time. → Double hit, evaluated by the weapon-specific rules (in +> priority weapons the point goes to A). + +> **Example (after-action):** Fencer A lands a clean valid hit. Only after +> being hit does Fencer B start a counter-cut, which also lands. → B's hit is +> an after-action: it does not score and does not annul A's point. +``` + +- [ ] **Krok 3: Príklady k priorite (04-right-of-way.md).** Za zoznam „The fencer who is attacked is alone counted as hit" vlož: + +```markdown +> **Example:** A attacks with a straight thrust, the arm extending before the +> lunge. B counterattacks to the arm without parrying; both hits land within +> one fencing time. → A alone scores: a counterattack into a simple attack +> loses. + +> **Example:** A makes a compound attack (feint, then disengage). B stop-hits, +> but the stop-hit lands only as A starts the final movement. → The stop-hit +> is not in time; A alone scores. +``` + +Za zoznam „The fencer who attacks is alone counted as hit" vlož: + +```markdown +> **Example:** B stands with the point in line before A starts attacking. A +> attacks without deflecting B's blade and both fencers are hit. → B alone +> scores: A had to take the blade first. + +> **Example:** A attacks; B parries and ripostes immediately with a simple +> direct riposte. A renews the attack (remise) and both hits land. → B alone +> scores: a remise against an immediate simple riposte loses. +``` + +Za sekciu „Parry and Riposte" vlož: + +```markdown +> **Example:** A attacks; B parries successfully but pauses before riposting. +> A immediately renews the attack and hits while B's delayed riposte also +> lands. → A scores: the delayed riposte lost priority. +``` + +- [ ] **Krok 4: Vytvor appendices/03-weapon-overview.md** + +```markdown +# Weapon Overview + +Summary of the key differences between weapon categories. The weapon-specific +chapters prevail in case of doubt. + +| | Longsword | Rapier & side weapons | Sabre | Sword & Buckler | +|---|---|---|---|---| +| Valid target | whole body incl. weapon handle, except forbidden targets | whole body except forbidden targets and the cloak | hips up (incl. arms and head); legs are off-target | whole body except forbidden targets; hits on the buckler are not valid | +| Priority (right of way) | yes ([RoW](../04-right-of-way.md)) | no — combat rules | yes ([RoW](../04-right-of-way.md)) | no — combat rules (as Rapier) | +| Simultaneous hits | no points | both score a point | no score change | both score a point | +| Double hits | priority rules decide | both score; a thrust beats a cut or slice | priority rules decide | as Rapier | +| After-actions | never score | never score | never score | never score | +| Grappling / close quarter combat | allowed | forbidden | forbidden | forbidden | +| Special rules | pommel strike to the mask scores; dominance incl. grappling | dagger and cloak defensive only; parrying with the unarmed hand allowed | hits through blade contact must retain force; point-in-line exception; dominance without grappling | buckler defensive only; striking with the buckler forbidden | + +Forbidden targets in all categories: back of the head, spine, groin, feet, +back of the knees (see [Forbidden actions](../03-general.md)). +``` + +- [ ] **Krok 5: Vytvor appendices/04-referee-quick-reference.md** + +```markdown +# Referee Quick Reference + +> **Note:** Informative summary for referees. The full rules prevail. + +## Commands + +'On guard!' → 'Are you ready?' → 'Fence!' → … → 'Halt!' + +## Stop the exchange ('Halt!') when + +a valid hit lands · an invalid hit complicates further evaluation · a fencer +leaves the arena with both feet · end of time · dangerous or confused fencing · +equipment failure · injury · a fencer requests a break (raised arm) + +## Arena boundaries + +- Both feet out → stop immediately; annul everything after the crossing. +- One foot out → a hit still scores if the action started before 'Halt!'. +- Both feet out without a prior valid hit (penalty 0.3): first time a verbal + warning, then a point against. +- Pushed out accidentally by the opponent → no penalty. + +## Bout parameters (defaults) + +Pools: 2 min or 5 points. Direct elimination: 2 × 2 min (1 min rest) or 7 +points. Tie → 1 min sudden death; before it starts, the Referee draws lots for +priority in case nobody scores. + +## Breaks + +Equipment failure: up to 3 min. Injury/cramp: up to 10 min (confirmed by +medical staff; once per injury per bout). + +## Cards + +Group 1: **YELLOW** → **RED** → **RED** · Group 2: **RED** every time · +Group 3: **RED** → **BLACK** (3.1, 3.2) / **YELLOW** → **BLACK** (3.3, 3.4) · +Group 4: **BLACK** immediately. +Full table: [Table of Offences and Penalties](02-penalties.md). + +## Verdicts per weapon + +See [Weapon Overview](03-weapon-overview.md). +``` + +(Do ART. odkazov quick-reference doplň konkrétne `G.`/`O.` ID podľa Úlohy 8, ak chceš — minimálne pri boundaries a breaks.) + +- [ ] **Krok 6: Zaregistruj nové prílohy do README.md** — do sekcie Appendix doplň: + +```markdown +- [Weapon Overview](appendices/03-weapon-overview.md) +- [Referee Quick Reference](appendices/04-referee-quick-reference.md) +``` + +- [ ] **Krok 7: Naplň sľub „examples" v 05-longsword.md** — veta `See [Right of Way and Priority Rules](04-right-of-way.md) for detailed priority conventions and examples.` teraz zodpovedá realite (04 obsahuje príklady) — nechaj; over. + +- [ ] **Krok 8: Verifikácia** + +```bash +grep -c "> \*\*Example" 04-right-of-way.md # očakávané: 5 +grep -c "> \*\*Example" 03-general.md # očakávané: 3 +ls appendices/ # 01-glossary, 02-penalties, 03-weapon-overview, 04-referee-quick-reference +scripts/check_links.sh # pozor na relatívne cesty ../ z appendices — musí prejsť +source venv/bin/activate && python generate_pdf.py # nové prílohy = A3, A4 v TOC +``` + +- [ ] **Krok 9: Commit** — `git commit -am "feat: worked examples, Note convention, weapon overview and referee quick reference appendices"` + +--- + +### Úloha 12: Verzia, changelog, titulná strana + finálna QA + +**Files:** +- Create: `VERSION`, `CHANGELOG.md` +- Modify: `README.md`, `generate_pdf.py` + +- [ ] **Krok 1: Vytvor VERSION** — obsah: `2.0.0-draft` + +- [ ] **Krok 2: Vytvor CHANGELOG.md** + +```markdown +# Changelog + +## 2.0.0-draft (2026) + +Readability refactor — no intended changes to the meaning of the rules: + +- Chapters renamed to the canonical reading order; README, PDF and file + numbering unified. +- Global article numbering with chapter prefixes (E, G, RoW, LS, R, S, SB, O, + D); ART. column of the penalty table filled in; broken references inherited + from the FIE rules removed. +- Normative verb convention (must/may/should) and a "Use of Language" clause. +- Terminology unified (fencer, bout, priority, point vs hit, arena, on-guard + line, Assistant Referee, off-target vs forbidden target); new glossary + entries. +- General rules reorganised: subsection headings, universal forbidden actions + promoted out of the longsword-only close-quarter section, dominance rules + restructured. +- Summary tables (bout parameters, weapon parameters, equipment checklist), + worked examples for tactical situations and priority, weapon overview and + referee quick-reference appendices. +- Known gaps flagged for the federation: no rule text exists for offences 1.1 + (leaving the arena without permission) and 1.13 (removing the opponent's + mask); video-review procedure is unspecified; the sabre hip boundary and the + rapier hilt-as-target question are open. + +## 1.x + +Original rulebook (see git history). +``` + +- [ ] **Krok 3: Verzia v README.md** — pod H1 pridaj: + +```markdown +**Version 2.0.0-draft** — under review, not yet in force. See the +[Changelog](CHANGELOG.md). +``` + +- [ ] **Krok 4: generate_pdf.py — verzia na titulnej strane, CHANGELOG.md namiesto git logu, vylúčenie nových root súborov** + +(a) V `collect_markdown_files` doplň do výnimiek `CHANGELOG.md` (filter na `FEBUS_smernica*` je tam už z Úlohy 1, Krok 5): + +```python + if file.name not in ['README.md', 'CLAUDE.md', 'CHANGELOG.md'] \ + and not file.name.startswith('FEBUS_smernica'): +``` + +(b) Pridaj metódu: + +```python + def get_version(self) -> str: + p = Path('VERSION') + return p.read_text(encoding='utf-8').strip() if p.exists() else '' +``` + +(c) V `generate_pdf` v bloku titulnej strany nahraď `
Official Edition
` za: + +```python + version = self.get_version() + edition = f'Official Edition — Version {version}' if version else 'Official Edition' +``` + +a v f-stringu `
{edition}
`. + +(d) V `generate_changelog` uprednostni kurátorovaný changelog: + +```python + def generate_changelog(self) -> str: + """Vygeneruje changelog: preferuje CHANGELOG.md, fallback git história.""" + changelog_md = Path('CHANGELOG.md') + if changelog_md.exists(): + md = markdown.Markdown(extensions=['extra', 'sane_lists']) + body = md.convert(changelog_md.read_text(encoding='utf-8')) + return f'
{body}
' + # …pôvodné telo s git log ako fallback… +``` + +- [ ] **Krok 5: OBSAHOVÁ ZMENA — otvorené otázky pre federáciu.** Nezapracúvaj do pravidiel; vytvor `docs/open-questions.md` so zoznamom návrhov na rozhodnutie federácie (každý s navrhovaným znením): + +```markdown +# Otvorené obsahové otázky (vyžadujú rozhodnutie federácie) + +1. **Video review** — G-pravidlo dnes dáva právo na jeden appeal, ale chýba + procedúra. Návrh: nový článok v Organisational Rules — o review rozhoduje + Referee po vzhliadnutí záznamu s Assistantom; review môže zmeniť len + posúdenie faktov poslednej výmeny; ak záznam nie je presvedčivý, pôvodný + verdikt platí a fencer stráca ďalší appeal. +2. **Sabre — hranica bedra**: "from the hips up" nedefinuje, či zásah presne na + bedrový kĺb platí. Návrh: "hits on the hip line count as valid". +3. **Rapier — rukoväť/koš ako cieľ**: longsword rukoväť explicitne zahŕňa, + rapier mlčí. Návrh: doplniť do R článku o cieli "including the hilt of the + weapon" alebo explicitne vylúčiť. +4. **Priestupky 1.1 a 1.13** nemajú kotvu v texte pravidiel — doplniť články + (opustenie arény bez povolenia; strhnutie masky súpera) do G/D. +5. **One-handed sword** nemá v equipment kapitole limit flexibility — doplniť? +``` + +- [ ] **Krok 6: Finálna QA** + +```bash +scripts/check_conventions.sh # exit 0 +scripts/check_links.sh # exit 0 +grep -hoE '\*\*[A-Za-z]+\.[0-9]+\*\*' *.md | sort | uniq -d # 0 duplicitných ID +source venv/bin/activate && python generate_pdf.py +# Manuálna kontrola PDF (otvor febus_rulebook.pdf): +# - titulná strana: "Official Edition — Version 2.0.0-draft" +# - TOC: kapitoly 1–10 v kanonickom poradí, prílohy A1–A4 +# - tabuľka trestov: farebné karty, vyplnený stĺpec Art. +# - kapitola General rules: G.1 … články, H3 podsekcie +# - Change Log strana: obsah CHANGELOG.md, nie git log +``` + +- [ ] **Krok 7: Commit + záverečné porovnanie** + +```bash +git add -A +git commit -m "feat: version, curated changelog, title page version and open content questions" +git diff master --stat # rekapitulácia rozsahu pre PR/review +``` + +--- + +## Self-Review (vykonané pri písaní plánu) + +1. **Pokrytie auditu:** všetkých 6 optík auditu má zodpovedajúce úlohy — jazyk (4, 5, 6), štruktúra/navigácia (1, 2, 3, 8), terminológia (7), formát/vizuál (9, 10, 11 + farby kariet), publiká (10, 11), best practices (5 — ISO konvencia, 8 — FIE číslovanie, 12 — verzia/changelog, 11 — Longpoint examples/quick-ref). Bug generate_pdf.py príloh — Úloha 1, Krok 5. +2. **Bez placeholderov:** všetky nové texty (Use of Language, dominancia, Forbidden actions, glosárové heslá, príklady, tabuľky, quick-reference, CHANGELOG) sú v pláne v plnom znení. Jediné odložené hodnoty sú `` v ID článkov — tie vzniknú deterministicky až v Úlohe 8 a plán definuje presný postup ich pridelenia aj dosadenia. +3. **Konzistencia názvov:** názvy súborov po premenovaní (Úloha 1) sa používajú vo všetkých nasledujúcich úlohách; `scripts/check_links.sh` a `scripts/check_conventions.sh` sa vytvárajú skôr, než ich verifikácie vyžadujú; sekcia `The Fencers` (premenovaná v Úlohe 7) je zohľadnená v Úlohe 3, Krok 3. +4. **Adverzariálna verifikácia (2026-08-08):** plán prešiel kontrolou troch nezávislých recenzentov (fakty vs. repo, sémantika pravidiel, konzistencia poradia úloh). Zapracovaných 29 nálezov, o. i.: netrackovaný `10-sword-and-buckler.md` pri `git mv`; 7 (nie 6) výskytov `chapter_num - 9` v generate_pdf.py vrátane vetvy `is_first_header`; smernica zbieraná do PDF ako 11. kapitola; presun zjednotenia flexibility pred číslovanie článkov; nesplniteľné brány check_conventions (02-penalties.md vo FILES pred prepisom, `starting line` v novom glosárovom hesle); typografické úvodzovky v BEFORE citátoch; zlý kartový rebríček 3. skupiny v quick-reference; pod-body cez 4-medzerové odsadenie by renderovali ako code block. diff --git a/febus_logo.jpg b/febus_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..63a177f2717b67edb5cfc89e45dd3b2a21b1c4c6 GIT binary patch literal 262832 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 literal 0 HcmV?d00001 diff --git a/generate.sh b/generate.sh new file mode 100755 index 0000000..c004e78 --- /dev/null +++ b/generate.sh @@ -0,0 +1,95 @@ +#!/bin/bash + +# FEBUS Rulebook PDF Generator +# Automatický skript pre generovanie PDF dokumentu z Markdown súborov + +set -e # Zastaviť pri chybe + +# Farby pre výpis +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +# Banner +echo "==================================================" +echo " FEBUS Rulebook - PDF Generator" +echo "==================================================" +echo "" + +# Kontrola Python3 +echo -e "${YELLOW}🔍 Kontrolujem Python3...${NC}" +if ! command -v python3 &> /dev/null; then + echo -e "${RED}❌ Python3 nie je nainštalovaný!${NC}" + echo "Prosím nainštalujte Python3: brew install python3" + exit 1 +fi +echo -e "${GREEN}✓ Python3 nájdený${NC}" + +# Kontrola a vytvorenie virtuálneho prostredia +if [ ! -d "venv" ]; then + echo -e "${YELLOW}📦 Vytváram virtuálne prostredie...${NC}" + python3 -m venv venv + echo -e "${GREEN}✓ Virtuálne prostredie vytvorené${NC}" +else + echo -e "${GREEN}✓ Virtuálne prostredie existuje${NC}" +fi + +# Aktivácia virtuálneho prostredia +echo -e "${YELLOW}🚀 Aktivujem virtuálne prostredie...${NC}" +source venv/bin/activate + +# Kontrola a inštalácia závislostí +echo -e "${YELLOW}📚 Kontrolujem závislosti...${NC}" +if ! pip show markdown &> /dev/null || ! pip show weasyprint &> /dev/null; then + echo -e "${YELLOW}📥 Inštalujem závislosti...${NC}" + pip install --quiet -r requirements.txt + echo -e "${GREEN}✓ Závislosti nainštalované${NC}" +else + echo -e "${GREEN}✓ Závislosti sú už nainštalované${NC}" +fi + +# Spustenie generovania PDF +echo "" +echo -e "${YELLOW}📄 Generujem PDF dokument...${NC}" +echo "==================================================" + +python generate_pdf.py + +# Kontrola výsledku +if [ -f "febus_rulebook.pdf" ]; then + echo "" + echo -e "${GREEN}✅ PDF dokument bol úspešne vygenerovaný!${NC}" + + # Zobrazenie informácií o súbore + FILE_SIZE=$(ls -lh febus_rulebook.pdf | awk '{print $5}') + echo -e "${GREEN}📊 Veľkosť súboru: ${FILE_SIZE}${NC}" + + # Ponuka na otvorenie + echo "" + echo -e "${YELLOW}Chcete otvoriť PDF dokument? (a/n)${NC}" + read -n 1 -r + echo + if [[ $REPLY =~ ^[Aa]$ ]]; then + if [[ "$OSTYPE" == "darwin"* ]]; then + # macOS + open febus_rulebook.pdf + elif [[ "$OSTYPE" == "linux-gnu"* ]]; then + # Linux + xdg-open febus_rulebook.pdf 2>/dev/null || echo "Prosím otvorte súbor manuálne: febus_rulebook.pdf" + else + echo "PDF dokument: febus_rulebook.pdf" + fi + fi +else + echo -e "${RED}❌ Chyba pri generovaní PDF!${NC}" + exit 1 +fi + +# Deaktivácia virtuálneho prostredia +deactivate + +echo "" +echo "==================================================" +echo -e "${GREEN}✨ Hotovo!${NC}" +echo "==================================================" \ No newline at end of file diff --git a/generate_pdf.py b/generate_pdf.py new file mode 100644 index 0000000..7e12637 --- /dev/null +++ b/generate_pdf.py @@ -0,0 +1,980 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +""" +FEBUS Rulebook - Markdown to PDF Converter +Spojí všetky MD súbory do jedného PDF dokumentu so zachovaním pôvodného textu a formátovania +""" + +import os +import re +import base64 +import subprocess +from pathlib import Path +from typing import List, Tuple, Dict +import markdown +import warnings +# Suppress the deprecation warning from WeasyPrint +warnings.filterwarnings('ignore', message='.*instantiateVariableFont.*') +from weasyprint import HTML, CSS +from weasyprint.text.fonts import FontConfiguration +import datetime +import PyPDF2 +import tempfile + +class MarkdownToPDFConverter: + def __init__(self): + self.md_files = [] + self.toc_entries = [] + self.chapter_counter = 0 + self.section_counters = {} + self.page_numbers = {} # Store page numbers for anchors + + def collect_markdown_files(self) -> List[Tuple[str, Path]]: + """Zozbiera všetky .md súbory a zoradí ich podľa číslovania""" + root_files = [] + appendix_files = [] + + # Hlavné súbory v root adresári + for file in Path('.').glob('*.md'): + if file.name not in ['README.md', 'CLAUDE.md']: + root_files.append((file.name, file)) + + # Súbory v appendices + appendices_dir = Path('appendices') + if appendices_dir.exists(): + for file in appendices_dir.glob('*.md'): + appendix_files.append((f"appendices/{file.name}", file)) + + # Zoradiť podľa číslovania (01-, 02-, atď.) + root_files.sort(key=lambda x: x[0]) + appendix_files.sort(key=lambda x: x[0]) + + self.md_files = root_files + appendix_files + return self.md_files + + def extract_headers_for_toc(self, content: str, file_name: str, chapter_num: int): + """Extrahuje hlavičky pre obsah s číslovaním""" + chapter_id = file_name.replace('.md', '').replace('/', '-') + is_appendix = 'appendices' in file_name + + lines = content.split('\n') + h2_counter = 0 + h3_counter = 0 + + for line in lines: + if line.startswith('#'): + # Počet # určuje úroveň + header_level = len(line) - len(line.lstrip('#')) + header_text = line.lstrip('#').strip() + + if header_text and header_level <= 2: # Len h1, h2 do obsahu + # Generovať číslovanie pre TOC + if header_level == 1: + h2_counter = 0 + h3_counter = 0 + if is_appendix: + number = f"A{chapter_num - 9}" + else: + number = f"{chapter_num}" + elif header_level == 2: + h2_counter += 1 + h3_counter = 0 + if is_appendix: + number = f"A{chapter_num - 9}.{h2_counter}" + else: + number = f"{chapter_num}.{h2_counter}" + elif header_level == 3: + h3_counter += 1 + if is_appendix: + number = f"A{chapter_num - 9}.{h2_counter}.{h3_counter}" + else: + number = f"{chapter_num}.{h2_counter}.{h3_counter}" + else: + number = "" + + # Vytvoriť ID pre navigáciu + header_id = re.sub(r'[^\w\s-]', '', header_text.lower()) + header_id = re.sub(r'[-\s]+', '-', header_id) + anchor = f"{chapter_id}-{header_id}" + + # Pridať číslovanie do TOC + numbered_text = f"{number}. {header_text}" if number else header_text + self.toc_entries.append((header_level, numbered_text, anchor)) + + def generate_table_of_contents(self, with_page_numbers=False) -> str: + """Vygeneruje HTML pre obsah""" + toc_html = ['

') + toc_html.append('
') + + return '\n'.join(toc_html) + + def convert_md_links_to_anchors(self, content: str) -> str: + """Konvertuje odkazy na .md súbory na interné HTML kotvy""" + # Pattern pre markdown odkazy: [text](path/file.md) alebo [text](path/file.md#anchor) + def replace_link(match): + link_text = match.group(1) + link_path = match.group(2) + + # Ak link nie je na .md súbor, nechaj ho tak + if not '.md' in link_path: + return match.group(0) + + # Rozdeliť cestu a kotvu ak existuje + if '#' in link_path: + file_part, anchor_part = link_path.split('#', 1) + # Odstráň .md a nahraď / za - + chapter_id = file_part.replace('.md', '').replace('/', '-') + # Vytvoriť internú kotvu + internal_anchor = f"#{chapter_id}-{anchor_part}" + else: + # Len súbor bez kotvy - odkazuj na začiatok kapitoly + chapter_id = link_path.replace('.md', '').replace('/', '-') + internal_anchor = f"#{chapter_id}" + + return f"[{link_text}]({internal_anchor})" + + # Regex pre markdown odkazy + pattern = r'\[([^\]]+)\]\(([^)]+)\)' + return re.sub(pattern, replace_link, content) + + def convert_markdown_to_html(self, content: str, file_name: str, chapter_num: int) -> str: + """Konvertuje markdown na HTML s pridaním ID a číslovania pre navigáciu""" + # Najprv konvertuj .md odkazy na interné kotvy + content = self.convert_md_links_to_anchors(content) + + # Inicializovať markdown konvertor + md = markdown.Markdown(extensions=[ + 'extra', # tables, attr_list, def_list, footnotes, abbr, fenced_code + 'sane_lists', # lepšie spracovanie zoznamov + 'smarty', # inteligentné úvodzovky + 'toc' # table of contents + # Removed nl2br to avoid excessive line breaks + ]) + + # Konvertovať markdown na HTML + html_content = md.convert(content) + + # Pridať ID a číslovanie k hlavičkám + chapter_id = file_name.replace('.md', '').replace('/', '-') + + # Použiť poskytnuté číslo kapitoly + self.section_counters = {'h1': 0, 'h2': 0, 'h3': 0} + is_appendix = 'appendices' in file_name + + # Flag to track if this is the first header in the file + is_first_header = [True] + + def add_header_numbering(match): + level = int(match.group(1)) + text = match.group(2) + header_id = re.sub(r'[^\w\s-]', '', text.lower()) + header_id = re.sub(r'[-\s]+', '-', header_id) + + # Generovať číslovanie + # First header in each file should be treated as chapter title (H1 level numbering) + if is_first_header[0]: + is_first_header[0] = False + self.section_counters['h2'] = 0 + self.section_counters['h3'] = 0 + if is_appendix: + number = f"A{chapter_num - 9}." + else: + number = f"{chapter_num}." + # Force H1 styling for first header + return f'

{number} {text}

' + elif level == 1: + self.section_counters['h1'] += 1 + self.section_counters['h2'] = 0 + self.section_counters['h3'] = 0 + if is_appendix: + number = f"A{chapter_num - 9}." + else: + number = f"{chapter_num}." + elif level == 2: + self.section_counters['h2'] += 1 + self.section_counters['h3'] = 0 + if is_appendix: + number = f"A{chapter_num - 9}.{self.section_counters['h2']}." + else: + number = f"{chapter_num}.{self.section_counters['h2']}." + elif level == 3: + self.section_counters['h3'] += 1 + if is_appendix: + number = f"A{chapter_num - 9}.{self.section_counters['h2']}.{self.section_counters['h3']}." + else: + number = f"{chapter_num}.{self.section_counters['h2']}.{self.section_counters['h3']}." + else: + number = "" + + return f'{number} {text}' + + # Nahradiť všetky h1, h2, h3 s ID a číslovaním (vrátane tých s atribútmi) + html_content = re.sub(r']*>(.*?)', add_header_numbering, html_content) + + return html_content + + def get_logo_base64(self) -> str: + """Načíta logo a konvertuje na base64""" + # Try JPG first, then PNG + logo_jpg = Path('febus_logo.jpg') + logo_png = Path('febus_logo.png') + + if logo_jpg.exists(): + with open(logo_jpg, 'rb') as f: + logo_data = f.read() + return 'data:image/jpeg;base64,' + base64.b64encode(logo_data).decode('utf-8') + elif logo_png.exists(): + with open(logo_png, 'rb') as f: + logo_data = f.read() + return 'data:image/png;base64,' + base64.b64encode(logo_data).decode('utf-8') + return "" + + def get_last_commit_date(self) -> str: + """Získa dátum posledného commitu""" + try: + result = subprocess.run( + ['git', 'log', '-1', '--format=%cd', '--date=format:%d. %B %Y'], + capture_output=True, + text=True, + check=True + ) + return result.stdout.strip() + except: + return datetime.datetime.now().strftime('%d. %B %Y') + + def get_commit_hash(self) -> str: + """Získa hash posledného commitu""" + try: + result = subprocess.run( + ['git', 'rev-parse', 'HEAD'], + capture_output=True, + text=True, + check=True + ) + return result.stdout.strip() + except: + return "unknown" + + def get_repository_url(self) -> str: + """Získa URL git repozitára""" + try: + result = subprocess.run( + ['git', 'config', '--get', 'remote.origin.url'], + capture_output=True, + text=True, + check=True + ) + url = result.stdout.strip() + # Convert SSH to HTTPS format if needed + if url.startswith('git@'): + url = url.replace(':', '/').replace('git@', 'https://') + if url.endswith('.git'): + url = url[:-4] + return url + except: + return "https://github.com/FEBUS/rulebook" + + def generate_changelog(self) -> str: + """Vygeneruje changelog z git histórie""" + try: + result = subprocess.run( + ['git', 'log', '--pretty=format:%h | %ad | %s', '--date=short', '-20'], + capture_output=True, + text=True, + check=True + ) + commits = result.stdout.strip().split('\n') + + changelog_html = '
' + changelog_html += '

Change Log

' + changelog_html += '

Recent changes to the rulebook:

' + changelog_html += '
' + changelog_html += '' + changelog_html += '' + + for commit in commits[:10]: # Posledných 10 commitov + if commit: + parts = commit.split(' | ') + if len(parts) == 3: + commit_hash, date, message = parts + changelog_html += f'' + + changelog_html += '
CommitDateDescription
{commit_hash}{date}{message}
' + changelog_html += '' + + return changelog_html + except: + return '

Change Log

No git history available.

' + + def extract_page_numbers_from_pdf(self, pdf_path: str) -> Dict[str, int]: + """Extrahuje čísla strán pre kotvy z PDF""" + page_numbers = {} + try: + with open(pdf_path, 'rb') as pdf_file: + pdf_reader = PyPDF2.PdfReader(pdf_file) + + # Create mapping of expected titles to anchors + title_to_anchor = {} + for level, title, anchor in self.toc_entries: + # Get just the title without numbering + clean_title = title.split('. ', 1)[-1] if '. ' in title else title + title_to_anchor[clean_title] = anchor + # Also try with just first few words for better matching + short_title = ' '.join(clean_title.split()[:3]) + if short_title not in title_to_anchor: + title_to_anchor[short_title] = anchor + + # TOC starts on page 2 (after title page), actual content starts on page 3 + # So we need to account for this offset + toc_pages = 2 # Title page + TOC page + + # For each page, extract text and look for titles + for page_num, page in enumerate(pdf_reader.pages, start=1): + text = page.extract_text() + if not text: + continue + + # Clean up text for better matching + text = ' '.join(text.split()) # Normalize whitespace + + # Check each title + for title, anchor in title_to_anchor.items(): + if anchor not in page_numbers: + # Look for title at the beginning of a line or after numbering + if title in text: + # Additional check - ensure it's not in the middle of text + idx = text.find(title) + if idx != -1: + # Check if it's preceded by a number (chapter number) or at start + before = text[max(0, idx-10):idx] + if idx == 0 or any(c.isdigit() or c == '.' for c in before[-3:]): + page_numbers[anchor] = page_num + break + + except Exception as e: + print(f"Varovanie: Nepodarilo sa extrahovať čísla strán: {e}") + + return page_numbers + + def generate_pdf(self, output_filename: str = 'febus_rulebook.pdf'): + """Vygeneruje PDF dokument""" + print("Generujem PDF...") + + # Zbierať všetky HTML časti + html_parts = [] + + # Získať logo + logo_data = self.get_logo_base64() + logo_html = "" + if logo_data: + logo_html = f'' + + # Získať informácie o git + last_commit_date = self.get_last_commit_date() + commit_hash = self.get_commit_hash() + repo_url = self.get_repository_url() + + # Titulná strana + html_parts.append(f''' +
+
+
+ {logo_html} +
+
+
+
+ Tournament + Rulebook +
+
FEBUS
+
+
+
+
Official Edition
+
{last_commit_date}
+
Federácia Európskych Bojových Umení Slovenska
+
+
+ {repo_url} +
+
+ ''') + + # Spracovať každý markdown súbor + chapter_num = 0 + for file_name, file_path in self.md_files: + print(f"Spracovávam: {file_name}") + chapter_num += 1 + + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + + # Extrahovať hlavičky pre obsah s číslovaním + self.extract_headers_for_toc(content, file_name, chapter_num) + + # Konvertovať na HTML s číslom kapitoly + html_content = self.convert_markdown_to_html(content, file_name, chapter_num) + + # Pridať do výsledku + chapter_id = file_name.replace('.md', '').replace('/', '-') + html_parts.append(f'
') + html_parts.append(html_content) + html_parts.append('
') + html_parts.append('
') + + # Pridať changelog na koniec + changelog_html = self.generate_changelog() + html_parts.append(changelog_html) + + # Vygenerovať obsah (najprv bez čísel strán) + toc_html = self.generate_table_of_contents(with_page_numbers=False) + + # CSS štýly + css_styles = ''' + @page { + size: A4; + margin: 3cm 2.5cm 3cm 2.5cm; + + @top-center { + content: "FEBUS TOURNAMENT RULEBOOK"; + font-family: 'Times New Roman', Times, serif; + font-size: 9pt; + color: #999; + font-variant: small-caps; + letter-spacing: 0.05em; + } + + @bottom-center { + content: counter(page); + font-family: 'Times New Roman', Times, serif; + font-size: 10pt; + } + } + + @page:first { + @top-center { content: ""; } + @bottom-center { content: ""; } + @bottom-right { content: ""; } + } + + body { + font-family: 'Times New Roman', Times, serif; + font-size: 11pt; + line-height: 1.6; + color: #111; + text-align: justify; + hyphens: auto; + word-spacing: 0.05em; + letter-spacing: 0.01em; + } + + /* Nadpisy - Book Style */ + h1 { + font-size: 20pt; + font-weight: normal; + margin: 2em 0 1em 0; + page-break-after: avoid; + page-break-inside: avoid; + color: #000; + text-align: center; + border: none; + font-variant: small-caps; + letter-spacing: 0.1em; + } + + h2 { + font-size: 16pt; + font-weight: bold; + margin: 1.2em 0 0.6em 0; + page-break-after: avoid; + page-break-inside: avoid; + color: #111; + text-align: left; + } + + h3 { + font-size: 13pt; + font-weight: bold; + margin: 1em 0 0.5em 0; + page-break-after: avoid; + page-break-inside: avoid; + color: #222; + text-align: left; + font-style: italic; + } + + h4 { + font-size: 11pt; + font-weight: bold; + font-style: italic; + margin: 0.8em 0 0.4em 0; + page-break-after: avoid; + page-break-inside: avoid; + color: #333; + } + + /* Číslovanie nadpisov */ + .heading-number { + font-weight: bold; + margin-right: 0.5em; + color: #000; + } + + /* Odstavce */ + p { + margin: 0 0 0.8em 0; + text-indent: 0; + orphans: 3; + widows: 3; + text-align: justify; + hyphens: none; + } + + /* Prvý odstavec po nadpise */ + h1 + p, h2 + p, h3 + p, h4 + p, + .chapter > p:first-of-type { + text-indent: 0; + margin-top: 0.5em; + } + + /* Zoznamy */ + ul, ol { + margin: 0.8em 0 0.8em 1.5em; + padding-left: 0.5em; + } + + li { + margin-bottom: 0.3em; + text-align: justify; + } + + li p { + margin-bottom: 0.3em; + display: inline; + } + + /* Tables - Book Style */ + table { + border-collapse: collapse; + width: 100%; + margin: 2em 0; + page-break-inside: avoid; + font-size: 10pt; + } + + th, td { + border: none; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + padding: 0.5em 1em; + text-align: left; + } + + th { + background: none; + font-weight: bold; + font-variant: small-caps; + letter-spacing: 0.05em; + border-top: 2px solid #333; + border-bottom: 1px solid #333; + } + + tbody tr:last-child td { + border-bottom: 2px solid #333; + } + + /* Citácie */ + blockquote { + margin: 1em 2em; + padding-left: 1em; + border-left: 3px solid #999; + font-style: italic; + color: #555; + } + + /* Kód */ + code { + font-family: 'Courier New', Courier, monospace; + font-size: 10pt; + background-color: #f5f5f5; + padding: 2px 4px; + border-radius: 2px; + } + + pre { + background-color: #f5f5f5; + padding: 10px; + border-radius: 4px; + overflow-x: auto; + font-size: 10pt; + line-height: 1.4; + } + + /* Stránkovanie */ + .page-break { + page-break-after: always; + } + + .chapter { + page-break-before: always; + } + + .chapter:first-of-type { + page-break-before: avoid; + } + + /* Professional Book Title Page */ + .title-page { + page-break-after: always; + position: relative; + height: 100vh; + display: flex; + flex-direction: column; + font-family: 'Times New Roman', Times, serif; + text-align: center; + } + + /* Top section with logo */ + .title-top { + flex: 0 0 auto; + padding-top: 3cm; + } + + .logo-container { + margin: 0 auto; + } + + .title-page .logo { + width: 180px; + height: auto; + margin: 0 auto; + display: block; + } + + /* Middle section with title */ + .title-middle { + flex: 1 1 auto; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 2cm 0; + } + + .main-title { + margin-bottom: 0.8em; + color: #000; + font-variant: small-caps; + line-height: 0.9; + } + + .title-line1, .title-line2 { + display: block; + font-weight: normal; + } + + .title-line1 { + font-size: 48pt; + letter-spacing: 0.12em; + } + + .title-line2 { + font-size: 48pt; + letter-spacing: 0.08em; + } + + .subtitle { + font-size: 28pt; + font-weight: normal; + letter-spacing: 0.15em; + margin-bottom: 1em; + color: #333; + font-variant: small-caps; + } + + .divider { + font-size: 18pt; + color: #666; + margin: 1em 0; + } + + /* Bottom section with publication info */ + .title-bottom { + flex: 0 0 auto; + padding-bottom: 3cm; + } + + .edition { + font-size: 12pt; + font-variant: small-caps; + letter-spacing: 0.1em; + margin-bottom: 0.5em; + color: #555; + } + + .version-date { + font-size: 11pt; + margin-bottom: 1em; + color: #666; + } + + .publisher { + font-size: 10pt; + font-style: italic; + color: #777; + margin-bottom: 2em; + } + + /* Colophon at very bottom */ + .colophon { + position: absolute; + bottom: 1cm; + left: 0; + right: 0; + text-align: center; + } + + .repo-link { + font-size: 7pt; + color: #ccc; + font-family: 'Courier New', Courier, monospace; + } + + /* Clean Table of Contents */ + .toc { + page-break-after: always; + font-family: 'Times New Roman', Times, serif; + } + + .toc-title { + font-size: 18pt; + font-weight: bold; + text-align: center; + margin: 1.5em 0 2em 0; + letter-spacing: 0.1em; + border: none; + } + + .toc-content { + margin: 0 3em; + line-height: 1.8; + } + + .toc-line { + display: flex; + align-items: baseline; + width: 100%; + position: relative; + page-break-inside: avoid; + } + + .toc-text { + flex: 0 0 auto; + padding-right: 0.3em; + } + + .toc-text a { + text-decoration: none; + color: #000; + } + + .toc-text a:hover { + text-decoration: underline; + } + + .toc-dots { + flex: 1 1 auto; + border-bottom: 1px dotted #666; + margin: 0 0.5em; + height: 0.7em; + } + + .toc-page { + flex: 0 0 auto; + min-width: 3em; + text-align: right; + } + + /* Level 1 - Main chapters */ + .toc-level-1 { + margin: 0.8em 0 0.4em 0; + font-weight: bold; + font-size: 11pt; + } + + .toc-level-1 .toc-text { + text-transform: uppercase; + } + + /* Level 2 - Sections */ + .toc-level-2 { + margin: 0.3em 0 0.2em 2em; + font-size: 10pt; + font-weight: normal; + } + + /* Level 3 - Subsections - hide from TOC */ + .toc-level-3 { + display: none; + } + + /* Page marker for finding positions */ + .page-marker { + display: block; + height: 0; + width: 0; + overflow: hidden; + page-break-after: avoid; + } + + /* Changelog */ + .changelog { + page-break-before: always; + margin-top: 2em; + } + + .changelog h1 { + font-size: 24pt; + border-bottom: 2px solid #000; + padding-bottom: 0.3em; + } + + .changelog-table { + width: 100%; + margin-top: 1em; + border-collapse: collapse; + font-size: 10pt; + } + + .changelog-table th, + .changelog-table td { + border: 1px solid #ddd; + padding: 8px; + text-align: left; + } + + .changelog-table th { + background-color: #f5f5f5; + font-weight: bold; + } + + .commit-hash { + font-family: 'Courier New', Courier, monospace; + font-size: 9pt; + color: #666; + } + ''' + + # Vytvoriť kompletný HTML dokument + html_document = f''' + + + + + FEBUS Tournament Rulebook + + + + {html_parts[0]} + {toc_html} + {''.join(html_parts[1:])} + + + ''' + + # Vygenerovať dočasné PDF pre získanie čísel strán + font_config = FontConfiguration() + with tempfile.NamedTemporaryFile(suffix='.pdf', delete=False) as temp_pdf: + temp_pdf_path = temp_pdf.name + html = HTML(string=html_document) + html.write_pdf(temp_pdf_path, font_config=font_config) + + # Extrahovať čísla strán + print("Extraktujem čísla strán...") + self.page_numbers = self.extract_page_numbers_from_pdf(temp_pdf_path) + + if self.page_numbers: + # Znovu vygenerovať obsah s číslami strán + print("Aktualizácia obsahu s číslami strán...") + toc_html = self.generate_table_of_contents(with_page_numbers=True) + + # Znovu vytvor HTML dokument s aktualizýam obsahom + html_document = f''' + + + + + FEBUS Tournament Rulebook + + + + {html_parts[0]} + {toc_html} + {''.join(html_parts[1:])} + + + ''' + + # Vygenerovať finálne PDF + html = HTML(string=html_document) + html.write_pdf(output_filename, font_config=font_config) + else: + # Ak sa nepodarilo získať čísla strán, použiť dočasné PDF + import shutil + shutil.move(temp_pdf_path, output_filename) + + # Vymazať dočasný súbor + try: + os.unlink(temp_pdf_path) + except: + pass + + print(f"PDF vygenerované: {output_filename}") + +def main(): + """Hlavná funkcia""" + print("FEBUS Rulebook - Markdown to PDF Converter") + print("=" * 50) + + converter = MarkdownToPDFConverter() + + # Zozbierať súbory + files = converter.collect_markdown_files() + print(f"Nájdených {len(files)} markdown súborov") + + # Vygenerovať PDF + output_file = 'febus_rulebook.pdf' + converter.generate_pdf(output_file) + + print("=" * 50) + print(f"Hotovo! PDF dokument bol vytvorený: {output_file}") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..f295f23 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +markdown>=3.4.0 +weasyprint>=60.0 +Pygments>=2.15.0 +PyPDF2>=3.0.0 \ No newline at end of file From e215dffc3b7ddd6a83f9d664314e9d1fed424211 Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sat, 8 Aug 2026 22:51:28 +0200 Subject: [PATCH 02/20] refactor: rename chapters to canonical reading order, fix links and appendix numbering Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- .gitignore | 3 +++ 09-right-of-way.md => 04-right-of-way.md | 4 +-- 04-longsword.md => 05-longsword.md | 2 +- 05-rapier.md => 06-rapier.md | 0 08-sabre.md => 07-sabre.md | 2 +- ...-and-buckler.md => 08-sword-and-buckler.md | 2 +- 06-organisational.md => 09-organisational.md | 0 07-disciplinary.md => 10-disciplinary.md | 0 README.md | 25 +++++++++---------- generate_pdf.py | 21 +++++++++------- scripts/check_links.sh | 14 +++++++++++ 11 files changed, 46 insertions(+), 27 deletions(-) rename 09-right-of-way.md => 04-right-of-way.md (98%) rename 04-longsword.md => 05-longsword.md (98%) rename 05-rapier.md => 06-rapier.md (100%) rename 08-sabre.md => 07-sabre.md (95%) rename 10-sword-and-buckler.md => 08-sword-and-buckler.md (96%) rename 06-organisational.md => 09-organisational.md (100%) rename 07-disciplinary.md => 10-disciplinary.md (100%) create mode 100755 scripts/check_links.sh diff --git a/.gitignore b/.gitignore index 3244cf4..6526bd7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ **/.idea **/.idea/** CLAUDE.md +.DS_Store +venv/ +febus_rulebook.pdf diff --git a/09-right-of-way.md b/04-right-of-way.md similarity index 98% rename from 09-right-of-way.md rename to 04-right-of-way.md index 01bcb11..29f1aa1 100644 --- a/09-right-of-way.md +++ b/04-right-of-way.md @@ -82,5 +82,5 @@ Priority assignment for specific actions: ## Weapon-Specific Variations See individual weapon rules for specific applications and variations of these priority principles: -- [Longsword specific applications](04-longsword.md) -- [Sabre specific applications](08-sabre.md) \ No newline at end of file +- [Longsword specific applications](05-longsword.md) +- [Sabre specific applications](07-sabre.md) \ No newline at end of file diff --git a/04-longsword.md b/05-longsword.md similarity index 98% rename from 04-longsword.md rename to 05-longsword.md index b863707..f7e2751 100644 --- a/04-longsword.md +++ b/05-longsword.md @@ -21,7 +21,7 @@ ## Vor/Priority -Longsword uses the standard right-of-way system. See [Right of Way and Priority Rules](09-right-of-way.md) for detailed priority conventions and examples. +Longsword uses the standard right-of-way system. See [Right of Way and Priority Rules](04-right-of-way.md) for detailed priority conventions and examples. ## Close quarter combat diff --git a/05-rapier.md b/06-rapier.md similarity index 100% rename from 05-rapier.md rename to 06-rapier.md diff --git a/08-sabre.md b/07-sabre.md similarity index 95% rename from 08-sabre.md rename to 07-sabre.md index d46370f..0f2734b 100644 --- a/08-sabre.md +++ b/07-sabre.md @@ -28,4 +28,4 @@ ## Priority System -Sabre uses the standard right-of-way system. See [Right of Way and Priority Rules](09-right-of-way.md) for detailed priority conventions. +Sabre uses the standard right-of-way system. See [Right of Way and Priority Rules](04-right-of-way.md) for detailed priority conventions. diff --git a/10-sword-and-buckler.md b/08-sword-and-buckler.md similarity index 96% rename from 10-sword-and-buckler.md rename to 08-sword-and-buckler.md index 8645b76..6534493 100644 --- a/10-sword-and-buckler.md +++ b/08-sword-and-buckler.md @@ -4,7 +4,7 @@ Sword and Buckler competitions do not use priority (Right of Way) rules. Scoring follows the same combat rules as Rapier and side weapons competitions (see -[Rapier and side weapons](05-rapier.md)): only the first valid hit scores. +[Rapier and side weapons](06-rapier.md)): only the first valid hit scores. 1. Double hits, simultaneous hits, and after-actions are judged according to the rules of the Rapier and side weapons competitions. diff --git a/06-organisational.md b/09-organisational.md similarity index 100% rename from 06-organisational.md rename to 09-organisational.md diff --git a/07-disciplinary.md b/10-disciplinary.md similarity index 100% rename from 07-disciplinary.md rename to 10-disciplinary.md diff --git a/README.md b/README.md index 5160679..dc2c7ad 100644 --- a/README.md +++ b/README.md @@ -6,24 +6,23 @@ ## Equipment Regulations -- [Equipment Standards](02-equipment.md) - -## Organisation and bout management - -- [Organisation](06-organisational.md) -- [Fencing etiquette and disciplinary rules](07-disciplinary.md) +- [Technical & Equipment Standards](02-equipment.md) ## The Principles of Scoring - [General rules for all weapons](03-general.md) -- [Right of Way and Priority Rules](09-right-of-way.md) -- [Longsword specific rules](04-longsword.md) -- [Rapier and side weapons specific rules (rapier, dagger, cloak)](05-rapier.md) -- [Sabre specific rules](08-sabre.md) -- [Sword and Buckler specific rules](10-sword-and-buckler.md) +- [Right of Way and Priority Rules](04-right-of-way.md) +- [Longsword specific rules](05-longsword.md) +- [Rapier and side weapons specific rules (rapier, dagger, cloak)](06-rapier.md) +- [Sabre specific rules](07-sabre.md) +- [Sword and Buckler specific rules](08-sword-and-buckler.md) + +## Organisation and Bout Management + +- [Organisational Rules](09-organisational.md) +- [Fencing etiquette and disciplinary rules](10-disciplinary.md) ## Appendix - [Glossary](appendices/01-glossary.md) -- [Tables of offence and penalties](appendices/02-penalties.md) - +- [Table of Offences and Penalties](appendices/02-penalties.md) diff --git a/generate_pdf.py b/generate_pdf.py index 7e12637..e76bf0f 100644 --- a/generate_pdf.py +++ b/generate_pdf.py @@ -29,6 +29,7 @@ def __init__(self): self.chapter_counter = 0 self.section_counters = {} self.page_numbers = {} # Store page numbers for anchors + self.num_root_files = 0 def collect_markdown_files(self) -> List[Tuple[str, Path]]: """Zozbiera všetky .md súbory a zoradí ich podľa číslovania""" @@ -37,7 +38,8 @@ def collect_markdown_files(self) -> List[Tuple[str, Path]]: # Hlavné súbory v root adresári for file in Path('.').glob('*.md'): - if file.name not in ['README.md', 'CLAUDE.md']: + if file.name not in ['README.md', 'CLAUDE.md'] \ + and not file.name.startswith('FEBUS_smernica'): root_files.append((file.name, file)) # Súbory v appendices @@ -48,8 +50,9 @@ def collect_markdown_files(self) -> List[Tuple[str, Path]]: # Zoradiť podľa číslovania (01-, 02-, atď.) root_files.sort(key=lambda x: x[0]) + self.num_root_files = len(root_files) appendix_files.sort(key=lambda x: x[0]) - + self.md_files = root_files + appendix_files return self.md_files @@ -74,20 +77,20 @@ def extract_headers_for_toc(self, content: str, file_name: str, chapter_num: int h2_counter = 0 h3_counter = 0 if is_appendix: - number = f"A{chapter_num - 9}" + number = f"A{chapter_num - self.num_root_files}" else: number = f"{chapter_num}" elif header_level == 2: h2_counter += 1 h3_counter = 0 if is_appendix: - number = f"A{chapter_num - 9}.{h2_counter}" + number = f"A{chapter_num - self.num_root_files}.{h2_counter}" else: number = f"{chapter_num}.{h2_counter}" elif header_level == 3: h3_counter += 1 if is_appendix: - number = f"A{chapter_num - 9}.{h2_counter}.{h3_counter}" + number = f"A{chapter_num - self.num_root_files}.{h2_counter}.{h3_counter}" else: number = f"{chapter_num}.{h2_counter}.{h3_counter}" else: @@ -203,7 +206,7 @@ def add_header_numbering(match): self.section_counters['h2'] = 0 self.section_counters['h3'] = 0 if is_appendix: - number = f"A{chapter_num - 9}." + number = f"A{chapter_num - self.num_root_files}." else: number = f"{chapter_num}." # Force H1 styling for first header @@ -213,20 +216,20 @@ def add_header_numbering(match): self.section_counters['h2'] = 0 self.section_counters['h3'] = 0 if is_appendix: - number = f"A{chapter_num - 9}." + number = f"A{chapter_num - self.num_root_files}." else: number = f"{chapter_num}." elif level == 2: self.section_counters['h2'] += 1 self.section_counters['h3'] = 0 if is_appendix: - number = f"A{chapter_num - 9}.{self.section_counters['h2']}." + number = f"A{chapter_num - self.num_root_files}.{self.section_counters['h2']}." else: number = f"{chapter_num}.{self.section_counters['h2']}." elif level == 3: self.section_counters['h3'] += 1 if is_appendix: - number = f"A{chapter_num - 9}.{self.section_counters['h2']}.{self.section_counters['h3']}." + number = f"A{chapter_num - self.num_root_files}.{self.section_counters['h2']}.{self.section_counters['h3']}." else: number = f"{chapter_num}.{self.section_counters['h2']}.{self.section_counters['h3']}." else: diff --git a/scripts/check_links.sh b/scripts/check_links.sh new file mode 100755 index 0000000..d79279a --- /dev/null +++ b/scripts/check_links.sh @@ -0,0 +1,14 @@ +#!/bin/bash +# Overí, že každý [text](*.md) odkaz smeruje na existujúci súbor. +set -u +fail=0 +for src in *.md appendices/*.md; do + dir=$(dirname "$src") + while IFS= read -r target; do + [ -z "$target" ] && continue + if [ ! -f "$dir/$target" ] && [ ! -f "$target" ]; then + echo "BROKEN: $src -> $target"; fail=1 + fi + done < <(grep -oE '\]\([^)#]+\.md' "$src" | sed 's/](\(.*\)/\1/') +done +exit $fail From 5b5e40c0fb56fe2eb945f98724e0b0c1d7aeb9b3 Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sat, 8 Aug 2026 23:08:30 +0200 Subject: [PATCH 03/20] refactor(general): subsection headings, promote universal forbidden actions, extract dominance Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- 03-general.md | 87 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 56 insertions(+), 31 deletions(-) diff --git a/03-general.md b/03-general.md index 41726d4..9ca8e9f 100644 --- a/03-general.md +++ b/03-general.md @@ -2,6 +2,8 @@ ## The Process of the Bouts +### Starting the bout + 1. Each bout is performed for a set amount of time or until a set amount of hits. This is achieved through a series of separate, independent exchanges. @@ -37,6 +39,8 @@ which the referee asks, ‘Are you ready?’. On the affirmative, or in the absence of a negative reply, the command will be given for fencing to commence with the word ‘Fence!’. +### Stopping the exchange + 8. The exchange stops when the Referee commands ‘Halt!/Stop!’. The most common reasons for stopping an exchange: 1. a valid hit has been made @@ -64,6 +68,8 @@ possible, make a decision in relation to the actual first hit, even if this results in the annulment of other valid hits that happened afterwards. +### Arena boundaries + 13. When a competitor crosses one of the boundaries of the arena with both feet completely off the arena, the Referee must immediately stop the exchange. @@ -83,6 +89,8 @@ 17. A competitor who involuntarily crosses one of the boundaries of the arena as the result of any accidental cause (such as jostling/being pushed out by the opponent) incurs no penalty. +### Restarting, video review and end of the bout + 18. After each valid hit and in case the exchange is stopped for other reasons (confused fencing, malfunction, unsuccessful grappling, etc.) the bout continues from the 'On guard' position, at the starting line. @@ -104,6 +112,8 @@ 22. After the pool round and each direct elimination bout, the fencers shall check and sign the result sheet filled in by the referee during the bout, before leaving the arena. +### Equipment failure and injury breaks + 23. For an equipment failure which occurs in the course of a bout, the referee may allow a break in the fight lasting up to 3 minutes (measured from the point when the failure has been acknowledged by the referee). This time interval can be used to mend or replace, and check the @@ -118,6 +128,8 @@ 10-minute break, they have the authority to withdraw the fencer from the bout, or the competition. +### Forfeits and withdrawal + 25. In case the fencer forfeits one bout due to an equipment malfunction or injury, during the pool phase, the other contestant is declared as winning, but the score is not annulled (it is possible to win a bout while having less points than the opponent, in this case). In the direct @@ -176,16 +188,46 @@ visually distinctive way. 4. Strike - using the pommel of the weapon against the front mesh of the opponent's mask. This action is valid only in the Longsword category. - 5. The referee may call an action as a valid hit, when a weapon action results in a passively - constraining position for the opponent, for a considerable time during which the opponent is - unable to break free. This may be the result of of grappling, locks involving the weapon, or - opposing actions that restrain the opponent’s weapon movement for a considerable time, until - the referee finds all criteria of dominance met, and calls “Halt!”. Hits received while this - dominant position is upheld are not considered valid. However, dominance can not be applied to - situations, when the opponent can practically break free and initiate valid actions, even if - by some active measures, the weapon contact is not completely broken. It is up to the - referee’s discretion to judge the validity of dominance actions. Dominance achieved by - grappling or close quarter combat can be applied only in the Longsword category. + +### Dominance + +1. The Referee may award a hit when a weapon action results in a passively + constraining position for the opponent, held for a considerable time during + which the opponent is unable to break free. Dominance may be the result of + grappling, locks involving the weapon, or opposing actions that restrain the + opponent's weapon movement. + +2. The Referee awards the hit by calling 'Halt!' once they find all criteria of + dominance met. Hits received while the dominant position is upheld are not + valid. + +3. Dominance does not apply when the opponent can practically break free and + initiate valid actions, even if the weapon contact is not completely broken. + It is at the Referee's discretion to judge the validity of dominance actions. + +4. Dominance achieved by grappling or close quarter combat applies only in the + Longsword category. + +## Forbidden actions (all weapons) + +1. Punching, kicking, violent jostling, and throwing the weapon are strictly + forbidden. + +2. Excessive force, brutality or unnecessary violence are forbidden. + +3. Hitting the back of the head, the spine, the groin, the back of the knee or + the foot is forbidden and will be penalised (see penalty 1.5). + +4. It is forbidden to hit with the cross-guard, where applicable, or with the + basket or bell guard (see penalty 1.5). + +5. Turning the head or covering a valid target with a non-valid one belongs to + the first group of offences. + +6. Hitting the arena floor with any weapon due to bad measure in an action will + be penalised according to the first group of offences (cases resulting from + the opponent's interactions, accidental touches, and touching the floor + after having hit the opponent, may be disregarded by the Referee). ## Close quarter combat @@ -214,25 +256,8 @@ Close quarter combat and grappling are allowed only where the weapon-specific ru be counted as valid even if it arrives afterwards, but in the spirit of sportsmanship, no intentional new attack should be initiated if the opponent has fallen or lost the weapon. -### Forbidden actions - -1. Neck-wrenching, lifting the opponent off the ground, full application of joint locks, - small-joint manipulation, or other potentially dangerous wrestling techniques, punching, - kicking, violent jostling, and throwing the weapon are strictly forbidden. - -2. Excessive force, brutality or unnecessary violence are forbidden. - -3. Hitting the back of the head, the spine, the groin, the back of the knee or the foot is - forbidden. - -4. Turning the head or covering a valid target with a non-valid one belongs to the first group of - offences. - -5. Hitting the arena floor with any weapon due to bad measure in an action will be penalised - according to the first group of offences (cases resulting from the opponent’s interactions, - accidental touches, and touching the floor after having hit the opponent, may be disregarded by - the Referee). +### Forbidden actions in close quarter combat -6. It is forbidden to hit with the cross-guard, where applicable, or with the basket or bell guard; - and in all circumstances, to hit the back of the head, spine, groin, back of the knee, and the - foot of the opponent and will be penalised. +1. Neck-wrenching, lifting the opponent off the ground, full application of + joint locks, small-joint manipulation, or other potentially dangerous + wrestling techniques are strictly forbidden. From ece6762e52ae49a3959bcce94cfc706252918255 Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sat, 8 Aug 2026 23:17:03 +0200 Subject: [PATCH 04/20] refactor: single canonical home for bout parameters, equipment checks, three-call procedure and flexibility measurement Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- 02-equipment.md | 20 ++++++++------------ 03-general.md | 22 +++++++++------------- 09-organisational.md | 19 ++++++++++--------- 3 files changed, 27 insertions(+), 34 deletions(-) diff --git a/02-equipment.md b/02-equipment.md index 7568ec7..0160853 100644 --- a/02-equipment.md +++ b/02-equipment.md @@ -100,6 +100,11 @@ ### Weapons +The flexibility of a blade is measured by applying pressure on the blade point +against scales, with one hand firmly placed on the pommel. The blade's +flexibility is the maximum value (in kg) displayed on the scales before the +blade reaches full bend. + #### Longsword 1. Only straight-bladed, European-type simulators are allowed in the tournament. A longsword must @@ -118,10 +123,7 @@ 5. The pommel must be smooth and have no studs. -6. The flexibility of the blade is measured by applying pressure on the blade point against - scales, with one hand firmly placed on the pommel. The blade's flexibility is defined as the - maximum number (in kg) displayed on the scales before the blade reaches full bend. For - longsword blades, the acceptable range is 9-16kg. +6. The acceptable flexibility range for longsword blades is 9–16 kg. 7. The minimum point surface area is 70mm². @@ -194,10 +196,7 @@ 4. The maximum length of the blade including *ricasso* is 110cm. The blade must be flexible, especially from the middle of the rapier to the point in order not to pose a risk in thrust - attacks. The flexibility of the blade is measured by applying pressure on the blade point against - scales, with one hand firmly placed on the pommel. The blade's flexibility is defined as the - maximum number (in kg) displayed on the scales before the blade reaches full bend. For - rapier blades, the acceptable flexibility is 10kg or less. + attacks. For rapier blades, the acceptable flexibility is 10 kg or less. 5. The weight of the sword must be between 900 to 1300g. @@ -253,10 +252,7 @@ 4. The blade must not have any significant bends or signs of damage. -5. The flexibility of the blade is measured by applying pressure on the blade point against - scales, with one hand firmly placed on the pommel. The blade's flexibility is defined as the - maximum number (in kg) displayed on the scales before the blade reaches full bend. For - sabre blades, the acceptable flexibility is 10kg or less. +5. For sabre blades, the acceptable flexibility is 10 kg or less. 6. The minimum point surface area is 50mm². The blade will have a safe tip, this being defined as rolled, thickened or spatulated. The tip will be further built up at the event with contrasting diff --git a/03-general.md b/03-general.md index 9ca8e9f..407640a 100644 --- a/03-general.md +++ b/03-general.md @@ -10,12 +10,9 @@ 2. The competitors present themselves in the arena when called by the referee before each pool or direct elimination bout, in appropriate gear conforming to the rules and be ready to fence. -3. An additional equipment check will be performed by the referee directly before each round to - confirm completeness of safety gear and weapons. The Referee has the right to repeat this check - any time they find it necessary. Fencers who appear in the arena wearing or using unapproved or - incomplete equipment will be penalised according to the Rulebook's regulations, and will not be - allowed to start or continue competing without having the item(s) approved or replaced with - approved ones (see the Equipment Standards). +3. Equipment checks before and during the competition, and the penalties for + nonconforming equipment, are set out in the + [Technical & Equipment Standards](02-equipment.md). 4. Each fencer is allowed one coach/second who is allowed to be near the arena during bouts. This person may speak to their fencer during breaks but may not disturb the bout with verbal or @@ -26,13 +23,12 @@ 5. The competitors called first place themselves to the right of the referee behind the on guard line. -6. Pool bouts last 2 minutes of effective fencing time; or until one of the fencers reaches 5 - points. Direct Elimination bouts last 2 * 2 minutes of effective fencing time, with one minute - resting period after the first 2 minutes period; or until one of the fencers reaches 7 points. - The Organising Team may announce different bout durations or hit limits before the start of - the competition (see the Organisational Rules); unless announced otherwise, these defaults - apply. The 'End of Time' is going to be announced by a Timekeeper, but the match can be stopped - only by the referee. +6. Bout durations, hit limits and tie-break procedures are set out in the + [Organisational Rules](09-organisational.md). Unless the Organising Team + announces otherwise, the defaults are: pool bouts 2 minutes or 5 points; + direct elimination bouts 2 × 2 minutes (with a one-minute rest) or 7 + points. The Timekeeper announces the end of time. Only the Referee may + stop the bout. 7. Before the beginning of each bout, the two fencers called on the arena salute to their opponent, and the referee. Competitors come on guard when the referee gives the order ‘On guard!’, after diff --git a/09-organisational.md b/09-organisational.md index 13f7161..75c0b17 100644 --- a/09-organisational.md +++ b/09-organisational.md @@ -21,13 +21,12 @@ 3. During a competition, if a fencer does not present themselves on the arena ready to fence when ordered to do so by the Referee, the procedure described in the disciplinary rules applies (Yellow → Red → elimination, with 1-minute intervals between calls; see penalty 0.2 - and the Fencing etiquette section). + and [Fencing etiquette and disciplinary rules](10-disciplinary.md), section 'The Fencers'). -4. The Refereeing Team will check the readiness of fencers (completeness of safety gear and - weapons) before the indicated start of bouts. The Referee may repeat this check at any time. - Fencers who appear in the fencing area with unapproved or incomplete equipment will be - penalised, and will not be allowed to start or continue competing without having the item(s) - approved or replaced (see Equipment Standards). +4. The Refereeing Team checks the readiness of fencers (completeness of safety + gear and weapons) before the indicated start of bouts, as set out in the + [Technical & Equipment Standards](02-equipment.md). The Referee may repeat + this check at any time. ## The Refereeing system @@ -91,7 +90,8 @@ values before the start of the competition; unless announced otherwise, the defa 4. If at the end of regulation time the scores are equal, the fencers fence for a deciding hit, with a maximum time limit of one minute. Before the fencing recommences, the Referee draws lots - to decide who will be the winner if scores are still equal at the end of the extra minute. + to decide who will be the winner if scores are still equal at the end of the extra minute, as + described in the [General Rules](03-general.md). 5. In this case the score registered on the score-sheet is always the actual score achieved in the bout: @@ -161,8 +161,9 @@ values before the start of the competition; unless announced otherwise, the defa 7. If at the end of regulation time the scores are equal, the fencers fence for a deciding hit, with a maximum time limit of one minute. Before the fencing recommences the Referee draws lots - to decide who will be the winner if scores are still equal at the end of the extra minute. In - this case the score recorded on the score-sheet is the real score achieved in the bout. + to decide who will be the winner if scores are still equal at the end of the extra minute, as + described in the [General Rules](03-general.md). In this case the score recorded on the + score-sheet is the real score achieved in the bout. 8. Withdrawal: When, for whatever reason, a fencer cannot fence, or cannot complete their bout, their opponent is declared winner of that bout. A fencer who withdraws does not lose their place From 08229d5f7abd0ec174d376110a98dce983db9aaf Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sat, 8 Aug 2026 23:31:34 +0200 Subject: [PATCH 05/20] fix(language): repair broken definitions, grammar errors and misleading negations Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- 02-equipment.md | 8 ++++---- 03-general.md | 20 ++++++++++---------- 05-longsword.md | 6 +++--- 06-rapier.md | 2 +- 07-sabre.md | 2 +- 09-organisational.md | 17 ++++++++++------- 10-disciplinary.md | 21 ++++++++++----------- 7 files changed, 39 insertions(+), 37 deletions(-) diff --git a/02-equipment.md b/02-equipment.md index 0160853..e3b72d4 100644 --- a/02-equipment.md +++ b/02-equipment.md @@ -51,8 +51,8 @@ 4. The bib of the mask must not roll up. -5. If a contestant leans their head in any standard angle, no unprotected part or skin must be - visible. +5. The head protection must leave no skin or unprotected area visible when the fencer tilts their + head at any normal angle. #### Hands, arms and torso protection @@ -80,8 +80,8 @@ 7. Additional protection of the arms or elbows is required if the jacket does not provide sufficient protection itself. -8. Every part of the body must be covered. No open space must be left between the gloves and the - jacket. +8. Every part of the body must be covered. The gloves must overlap the jacket sleeves, leaving no + gap. 9. An 800N FIE-certified under-plastron is mandatory in the Rapier category. diff --git a/03-general.md b/03-general.md index 407640a..c9f0ac2 100644 --- a/03-general.md +++ b/03-general.md @@ -59,10 +59,9 @@ 11. Invalid hits may be disregarded at the Referee's discretion as if never happened, when the Referee is able to clearly follow the exchange. -12. However, if when the Referee stops the exchange, a hit that the referee believed invalid and ignored - before the conclusion of the last exchange proves to have been valid, the Referee shall, if - possible, make a decision in relation to the actual first hit, even if this results in the - annulment of other valid hits that happened afterwards. +12. If a hit that the Referee ignored as invalid proves, when the exchange is stopped, to have been + valid, the Referee must, if possible, re-judge the exchange from that actual first hit. Later + hits are annulled, even if they were valid. ### Arena boundaries @@ -76,11 +75,11 @@ action was started before the exchange was stopped, even if the fencer leaves the arena afterwards. -16. Should a competitor cross the boundary of the arena completely — i.e. with both feet — without - having scored any valid hits before crossing the limit of the arena (see penalty 0.3) +16. If a fencer crosses the boundary of the arena with both feet without having scored a valid hit + before crossing (see penalty 0.3): 1. upon the first occasion within a bout, the fencer receives a verbal warning - 2. upon each subsequent cases within the bout, a hit will be scored against him (as if they had - been hit). + 2. on each subsequent occasion within the bout, a point is scored against the fencer (as if + they had been hit). 17. A competitor who involuntarily crosses one of the boundaries of the arena as the result of any accidental cause (such as jostling/being pushed out by the opponent) incurs no penalty. @@ -163,8 +162,9 @@ 1. A simultaneous hit is the result of a similar conception and execution of both fencers at the same time. The scoring of simultaneous hits is determined by weapon-specific rules. - 2. A double hit occurs when both fencers get hit within a period of fencing time, but are not - simultaneous actions, are evaluated according to the rules or each specific weapon. + 2. A double hit occurs when both fencers are hit within one period of fencing time but the + actions are not simultaneous. Double hits are evaluated according to the weapon-specific + rules. 3. An after-action is a double hit situation, where the fencer at fault starts a counter action (or the finishing move of a compound action) at or after the moment of receiving a hit. diff --git a/05-longsword.md b/05-longsword.md index f7e2751..2528e0e 100644 --- a/05-longsword.md +++ b/05-longsword.md @@ -37,9 +37,9 @@ Longsword uses the standard right-of-way system. See [Right of Way and Priority simultaneous action or a double hit: 1. The simultaneous action is due to simultaneous conception and execution of an attack by both fencers; in this case no points are awarded. - 2. The double hit on the other hand, is the result of a clearly faulty action on the part of one - of the fencers, according to the rules. Therefore, when there is not an interval of fencing - time between the hits. + 2. A double hit, on the other hand, occurs when there is no interval of fencing time between the + hits and it is the result of a clearly faulty action on the part of one of the fencers, as + defined by these rules. 2. When there is a double hit, and if the Referee is unable clearly to judge from which side the fault has come, the referee must not assign any points. diff --git a/06-rapier.md b/06-rapier.md index b55e118..fc8054c 100644 --- a/06-rapier.md +++ b/06-rapier.md @@ -17,7 +17,7 @@ Rapier and side weapons do not use priority (Right of Way) rules. Scoring follow only the first valid hit scores. In the case of hits arriving within one period of fencing time, the rules below apply. -1. A double hit occurs when two valid hits that land within one period of fencing time. +1. A double hit occurs when two valid hits land within one period of fencing time. 2. When a double hit consists of a thrust by one fencer and a cut or slice by the other, the thrust scores one point and the cut scores no point. diff --git a/07-sabre.md b/07-sabre.md index 0f2734b..80b47e9 100644 --- a/07-sabre.md +++ b/07-sabre.md @@ -13,7 +13,7 @@ 1. **Simultaneous hits** - When both fencers hit simultaneously, the score does not change. -2. **Hits through blade contact** - Hits landed with blade contact (through a parry or over the cross/guard) are only valid if the strength of the hit is not meaningfully decreased. +2. **Hits through blade contact** - Hits landed with blade contact (through a parry or over the cross-guard) are valid only if the hit retains meaningful force. 3. **Point-in-line exception** - If the defender holds their point outstretched and the opponent runs into the point, the distance traversed ceases to play a role in judging validity. diff --git a/09-organisational.md b/09-organisational.md index 75c0b17..455575d 100644 --- a/09-organisational.md +++ b/09-organisational.md @@ -38,12 +38,15 @@ 2. The Referee gives the signals to start, stop, assigns points and describes what happened during the entire bout or at least the last exchange. -3. After stopping an exchange, the Referee consults with the Assistant and proposes a result. If the - fencers accept the decision (they say nothing), the fight continues with the proposed score. If - they don’t agree with the Referee, but they agree with each other, the Referee may make a - decision according to their wishes. If any of the fencers protests and the fencers disagree with - each other, the Referee will decide whether to assign a point (being completely sure) or repeat - the exchange. +3. After stopping an exchange, the Referee consults the Assistant and proposes + a result. Then: + a) if both fencers accept the decision (they say nothing), the bout + continues with the proposed score; + b) if the fencers disagree with the Referee but agree with each other, the + Referee may decide according to their shared account; + c) if a fencer protests and the fencers disagree with each other, the + Referee either assigns the point (only when completely sure) or repeats + the exchange. 4. If the Referee is unable to interpret the fencing phrase for some reason, they can repeat the exchange but will explain and apologise. When an exchange is repeated, the time measured for @@ -51,7 +54,7 @@ 5. The Referee's decisions can not be contested after the start of the following bout. -6. Main referee must be able conduct and manage bouts in English. +6. The Referee must be able to conduct and manage bouts in English. ### Side Referee (Assistant Referee) diff --git a/10-disciplinary.md b/10-disciplinary.md index 499d393..1d38cc0 100644 --- a/10-disciplinary.md +++ b/10-disciplinary.md @@ -106,15 +106,14 @@ final decision is made, the referee's judgment regarding facts is not to be questioned in retrospect. -4. In his capacity as director of the bout and arbiter of hits, he can, in accordance with the - rules, penalise the competitors, either by refusing to award a hit which they have in fact made - on the opponent, or by awarding against them a hit which they have not in fact received, or by - excluding them from the competition which he is refereeing, all, according to the circumstances, - with or without prior warning. In these circumstances, and if he has judged on a matter of fact, - his decisions are irrevocable +4. As director of the bout and arbiter of hits, the Referee may, in accordance with the rules and — + according to the circumstances — with or without prior warning: a) refuse to award a hit + actually made; b) award a point against a fencer for a hit not actually received; c) exclude a + fencer from the competition. When the Referee has judged on a matter of fact, the decision is + irrevocable. 5. By reason of the right of jurisdiction which he has over all the fencers who participate in, or - are present at a competition which he is refereeing, he can also propose to the the expulsion + are present at a competition which he is refereeing, they can also propose the expulsion from the venue of the competition of the spectators, trainers, instructors and other persons who accompany the competitors. @@ -244,8 +243,8 @@ Groups. 2. If during the same bout the fencer commits the same or a different offence in this group, he is - penalised with a BLACK CARD (exclusion from the competition, suspension from the remainder of the - tournament. The fencer keeps the position in the ranking s obtained up to the moment of the + penalised with a BLACK CARD (exclusion from the competition and suspension from the remainder of + the tournament). The fencer keeps the position in the ranking obtained up to the moment of the disqualification (unless the ranking has not yet been established via the pools). 3. Any person not on the arena who disturbs the good order of the competition receives: @@ -258,7 +257,7 @@ ### The Fourth Group of Offences 1. The first infringement in the Fourth Group, is penalised by a BLACK CARD (exclusion from the - competition. -2. The penalized fencer keeps the position in the ranking s obtained up to the moment of the + competition). +2. The penalized fencer keeps the position in the ranking obtained up to the moment of the disqualification (unless the ranking has not yet been established via the pools). From 44cbaae423fe4e8442c16293c6ae411ffc7e8a4b Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sat, 8 Aug 2026 23:49:31 +0200 Subject: [PATCH 06/20] style: normative verb convention (must/may/should) and Use of Language 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 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- 01-intro.md | 16 ++++++++++++++- 02-equipment.md | 25 ++++++++++------------- 03-general.md | 38 +++++++++++++++++------------------ 04-right-of-way.md | 2 +- 06-rapier.md | 2 +- 07-sabre.md | 4 ++-- 09-organisational.md | 48 ++++++++++++++++++++++---------------------- 10-disciplinary.md | 18 ++++++++--------- 8 files changed, 82 insertions(+), 71 deletions(-) diff --git a/01-intro.md b/01-intro.md index 83a612a..67cc132 100644 --- a/01-intro.md +++ b/01-intro.md @@ -3,10 +3,24 @@ The goal of this event is to assess fencing in a safe and friendly manner on the principle of 'to touch without being touched'. In common with historical rule-sets, competitions are explicitly an abstracted test of skill, and not a simulation of an unregulated combat “to the finish” – in this -sense, we shall regard each individual point as a separate "duel" within the framework of the +sense, each individual point is regarded as a separate "duel" within the framework of the following rules, the loss of which is indicated by having a point called against the losing fencer. Our intention is to determine the relative ranking, and the best fencer among the competitors present on the days of the competitions, in terms of tactical, technical, and athletic skills. One of the principles which stand above all others is the principle of fair play. Every functional ruleset should be efficient in providing equal opportunities for every tournament contestant. + +## Use of Language + +1. This Rulebook uses the following verb conventions: + - **must** / **must not** — a binding requirement or prohibition; + - **may** — a permission; + - **should** — a recommendation: not binding, but expected as good practice; + - **can** — a statement of ability or possibility, not a norm. + +2. Terms in *italics* are technical terms defined in the + [Glossary](appendices/01-glossary.md). + +3. Blocks introduced with **Note:** or **Example:** are informative only; they + illustrate the rules but contain no requirements. diff --git a/02-equipment.md b/02-equipment.md index e3b72d4..c4f1813 100644 --- a/02-equipment.md +++ b/02-equipment.md @@ -20,20 +20,20 @@ 1. Every contestant is responsible for their equipment, and must use each element of the mandatory equipment, when entering a tournament. If a piece of equipment is declared unsuitable or unfit - and the contestant is unable to get a suitable substitute they will be prohibited from entering + and the contestant is unable to get a suitable substitute they are prohibited from entering the tournament. 2. The mandatory equipment is controlled by the designated tournament staff before the competition and an additional check must be done by the referee of each fencing arena. A referee may require a contestant to change or adjust a part of their equipment. Nonconforming clothing or equipment - is penalised according to the first group of offences (see penalty 1.6), and the contestant will - not be allowed to start or continue competing until the item(s) have been approved or replaced + is penalised according to the first group of offences (see penalty 1.6), and the contestant is + not allowed to start or continue competing until the item(s) have been approved or replaced with approved ones. For an equipment failure occurring in the course of a bout, a break of up to 3 minutes may be allowed (see the General Rules). 3. In case of an accident caused by unfit or inadequate equipment approved negligently by the equipment check staff or the referee, the responsibility lies with the staff or referee, who - approved the contestant’s entry. The staff or the referee will be subjected to disciplinary + approved the contestant’s entry. The staff or the referee is subjected to disciplinary proceedings and their license may be revoked. 4. A referee has the right to forbid a piece or a set of equipment which does not comply with the @@ -109,7 +109,7 @@ blade reaches full bend. 1. Only straight-bladed, European-type simulators are allowed in the tournament. A longsword must consist of a blade with two edges, a cross-guard, a handle, and a pommel. Longswords must be - made of proper steel (no aluminium, plastic or wooden swords will be accepted) and comply with + made of proper steel (aluminium, plastic or wooden swords are not accepted) and comply with certain qualities, see below. 2. The blade must not bear signs of heavy damage, must not be bent, broken or ruptured. The edges @@ -205,7 +205,7 @@ blade reaches full bend. 7. The point of the primary weapon must be blunt and rounded. If the tip is not rounded, it must be additionally secured by protection such as properly fitted plastic or cork end. Adequacy of - protection will be judged by the main referee or tournament organizer. + protection is judged by the main referee or tournament organizer. 8. The point of the primary and side weapon must be covered by contrasting high-visibility tape for better visibility. @@ -229,7 +229,7 @@ blade reaches full bend. #### Cloak 1. In the rapier category, it is possible to use a cloak, which serves defensive purposes. The - Organizing Team shall announce in advance, whether they allow the usage of cloaks in their + Organising Team must announce in advance whether they allow the usage of cloaks in their competitions. 2. The term cloak refers to a semi-circular or circular piece of cloth. @@ -242,11 +242,9 @@ blade reaches full bend. #### Sabre -1. A sabre will be defined as a one-handed light cut and thrust blade, either straight or lightly - curved. +1. A sabre is a one-handed light cut and thrust blade, either straight or lightly curved. -2. The total weight of a sabre shall fall between the range of 650-800 grams, counting both blade - and basket. +2. The sabre, including blade and basket, must weigh between 650 and 800 g. 3. The maximal blade length is 90cm. The maximal total sabre length is 105cm. @@ -254,9 +252,8 @@ blade reaches full bend. 5. For sabre blades, the acceptable flexibility is 10 kg or less. -6. The minimum point surface area is 50mm². The blade will have a safe tip, this being defined as - rolled, thickened or spatulated. The tip will be further built up at the event with contrasting - high-visibility tape. +6. The minimum point surface area is 50mm². The blade must have a safe tip: rolled, thickened or + spatulated. The tip must be further built up at the event with contrasting high-visibility tape. 7. The organizers reserve the right to disallow weapons they feel are unsafe or against the spirit of the rules. diff --git a/03-general.md b/03-general.md index c9f0ac2..d04e381 100644 --- a/03-general.md +++ b/03-general.md @@ -33,7 +33,7 @@ 7. Before the beginning of each bout, the two fencers called on the arena salute to their opponent, and the referee. Competitors come on guard when the referee gives the order ‘On guard!’, after which the referee asks, ‘Are you ready?’. On the affirmative, or in the absence of a negative - reply, the command will be given for fencing to commence with the word ‘Fence!’. + reply, the command is given for fencing to commence with the word ‘Fence!’. ### Stopping the exchange @@ -100,11 +100,11 @@ death overtime runs out with neither fencer scoring, the fencer with priority wins the bout. This randomly assigned priority has no effect on the judgment of actions during the overtime. -21. At the end of the bout the referee will announce the winner and the final score. The opponents - shall salute to the referees and the opponent and shake hands with the opponent (Refusal to +21. At the end of the bout the Referee announces the winner and the final score. The opponents + must salute the Referees and the opponent and shake hands with the opponent (Refusal to observe this rule by one or both of the opponents belongs to the fourth group of offences). -22. After the pool round and each direct elimination bout, the fencers shall check and sign the +22. After the pool round and each direct elimination bout, the fencers must check and sign the result sheet filled in by the referee during the bout, before leaving the arena. ### Equipment failure and injury breaks @@ -135,14 +135,14 @@ a second time, they must withdraw from the competition. (They may still participate in other competitions/weapons in the tournament) -27. In case the fencer is withdrawn from the competition during the pool bouts, their results shall - be scratched, and their opponents shall be declared as winning V0-D0 in each of their past or +27. In case the fencer is withdrawn from the competition during the pool bouts, their results are + scratched, and their opponents are declared as winning V0-D0 in each of their past or future pool bouts, regardless of the previously achieved results. The withdrawn fencer does not participate in the calculation of ranking for the direct elimination table. -28. If the fencer withdraws from the competition during the last pool bout, the score shall be - recorded as if they had forfeited only one pool bout (see previous paragraph), but they will not - be included in the calculation if ranking for the direct elimination table. +28. If the fencer withdraws from the competition during the last pool bout, the score is + recorded as if they had forfeited only one pool bout (see previous paragraph), but they are not + included in the calculation if ranking for the direct elimination table. 29. If the fencer withdraws during the direct elimination phase, the opponent is declared as winning, and the fencer does not lose their place in the overall classification of the @@ -151,7 +151,7 @@ ## The methods of scoring hits 1. Fencing time is the time required to perform one simple fencing action. In judging hits, referees - will count immediate actions that start up to the moment of the first hit, as relevant actions. + count immediate actions that start up to the moment of the first hit, as relevant actions. 2. When only one of the fencers receives a hit within one period of fencing time, the fencer who was hit is called one point against. @@ -177,8 +177,8 @@ the flat may be counted at the Referee's discretion, if they bear the characteristics of a coordinated and potent technique (e.g. hitting the head with the flat surface of the sword). 2. Thrust - carried out with the point of the weapon on any valid target. A valid thrust must be - performed in such a way that it would be visually distinctive, e.g. the blade will be bent at - the end of the action and the point will traverse at least 20cm. + performed in such a way that it would be visually distinctive, e.g. the blade bends at + the end of the action and the point traverses at least 20cm. 3. Slice - carried out with the edge of the weapon on any valid target. A slice must be a movement which is defined by pushing or pulling of the blade against the valid area in a visually distinctive way. @@ -212,7 +212,7 @@ 2. Excessive force, brutality or unnecessary violence are forbidden. 3. Hitting the back of the head, the spine, the groin, the back of the knee or - the foot is forbidden and will be penalised (see penalty 1.5). + the foot is forbidden and is penalised (see penalty 1.5). 4. It is forbidden to hit with the cross-guard, where applicable, or with the basket or bell guard (see penalty 1.5). @@ -220,8 +220,8 @@ 5. Turning the head or covering a valid target with a non-valid one belongs to the first group of offences. -6. Hitting the arena floor with any weapon due to bad measure in an action will - be penalised according to the first group of offences (cases resulting from +6. Hitting the arena floor with any weapon due to bad measure in an action is + penalised according to the first group of offences (cases resulting from the opponent's interactions, accidental touches, and touching the floor after having hit the opponent, may be disregarded by the Referee). @@ -233,22 +233,22 @@ Close quarter combat and grappling are allowed only where the weapon-specific ru 1. The Referee may call 'Halt!' after an unsuccessful period of grappling. 2. Grappling on the opponent's blade is allowed, if the blade is controlled. Seizing of the blade needs to be momentary, and followed by an immediate 'clean' hit to score a point. If the - competitor can not achieve a hit consequently to seizing the blade, the Referee will call 'Halt!' - and award no points. Failing to control the blade will be counted as a point against the + competitor can not achieve a hit consequently to seizing the blade, the Referee calls 'Halt!' + and awards no points. Failing to control the blade is counted as a point against the competitor who attempted to enter grappling. 3. Grappling actions that score a point are: 1. take-downs and throws followed/accompanied by a simple and immediate hit with the weapon (within a period of fencing time) 2. controlling the opponent via grappling with or without the weapon, until the Referee calls 'Halt!' -4. Ground action is not allowed, the Referee shall call “Halt!” when one of the fencers falls to the +4. Ground action is not allowed, the Referee must call 'Halt!' when one of the fencers falls to the ground, or whenever the referee is unable to judge the action any more, or when a reasonable time has passed for dominance to apply. 5. Disarming is allowed and scores a point, unless the disarmed fencer immediately (before the referee calls 'Halt!') controls the opponent's weapon and enters grappling. 6. If a fencer accidentally drops the weapon, or falls without the opponent's interaction, the - Referee shall call 'Halt!'. A hit that started before the fencer obviously lost the weapon should + Referee must call 'Halt!'. A hit that started before the fencer obviously lost the weapon should be counted as valid even if it arrives afterwards, but in the spirit of sportsmanship, no intentional new attack should be initiated if the opponent has fallen or lost the weapon. diff --git a/04-right-of-way.md b/04-right-of-way.md index 29f1aa1..248327d 100644 --- a/04-right-of-way.md +++ b/04-right-of-way.md @@ -26,7 +26,7 @@ For definitions of fencing actions (attack, feint, compound attack, counterattac Priority assignment for specific actions: - **Attacks** gain priority when properly executed with blade commitment -- **Blade commitment requirement** - Priority will not be given for pure footwork without blade commitment or actions not demonstrating forward commitment of blade +- **Blade commitment requirement** - Priority is not given for pure footwork without blade commitment or actions not demonstrating forward commitment of blade - **Ripostes** gain priority when immediate and simple after a parry - **Counterattacks** cannot be assigned priority - **Remise** can only gain priority if the defender's riposte was clearly and significantly delayed diff --git a/06-rapier.md b/06-rapier.md index fc8054c..7e9cd97 100644 --- a/06-rapier.md +++ b/06-rapier.md @@ -58,7 +58,7 @@ the rules below apply. first or the second group of offences. 4. It is forbidden to throw the dagger at the opponent, it belongs to the fourth group of offences, - and will be penalized with elimination from the tournament. + and is penalised with elimination from the tournament. ## Actions involving a cloak as a side weapon diff --git a/07-sabre.md b/07-sabre.md index 80b47e9..5b0249e 100644 --- a/07-sabre.md +++ b/07-sabre.md @@ -7,7 +7,7 @@ 2. Strikes to a non-scoring target do not score, do not stop the exchange, and do not assign any points. -3. Repeated, deliberate strikes to an off-target will be judged as strikes to an illegal target and dealt with accordingly. +3. Repeated, deliberate strikes to an off-target area are judged as strikes to an illegal target and dealt with accordingly. ## Sabre-specific scoring considerations @@ -24,7 +24,7 @@ 1. Grappling or close quarter combat is forbidden; it belongs to the first group of offences (see penalty 1.5). -2. Engaging in grappling, close quarters combat, or corps-a-corps will immediately be stopped by the referee. +2. Engaging in grappling, close quarters combat, or corps-a-corps is immediately stopped by the referee. ## Priority System diff --git a/09-organisational.md b/09-organisational.md index 455575d..9b13369 100644 --- a/09-organisational.md +++ b/09-organisational.md @@ -12,8 +12,8 @@ 1. All fencers must be present at their assigned fencing area 10 minutes before the start of bouts. This applies to both the pool round and the direct elimination stage. -2. Fencers will be called by the staff of the given fencing area 10 minutes before the start of - bouts. If a fencer is not present when called, the call will be repeated two additional times, +2. The staff of the given fencing area call the fencers 10 minutes before the start of + bouts. If a fencer is not present when called, the call is repeated two additional times, each after 1 minute. After the third unanswered call, the fencer is disqualified from the competition (they may still participate in other competitions/weapons of the tournament; see penalty 0.1). @@ -49,7 +49,7 @@ the exchange. 4. If the Referee is unable to interpret the fencing phrase for some reason, they can repeat the - exchange but will explain and apologise. When an exchange is repeated, the time measured for + exchange but must explain and apologise. When an exchange is repeated, the time measured for the bout is set back by 10 seconds. 5. The Referee's decisions can not be contested after the start of the following bout. @@ -74,8 +74,8 @@ values before the start of the competition; unless announced otherwise, the defa ### The round of pools -1. In all competitions for which the formula includes a round of pools, these pools will consist of - 7 fencers if the number of participants is divisible by 7. Otherwise the pools will be of 7 and +1. In all competitions for which the formula includes a round of pools, the pools consist of + 7 fencers if the number of participants is divisible by 7. Otherwise the pools are of 7 and 6 fencers. 2. In the pools a bout ends when: @@ -93,7 +93,7 @@ values before the start of the competition; unless announced otherwise, the defa 4. If at the end of regulation time the scores are equal, the fencers fence for a deciding hit, with a maximum time limit of one minute. Before the fencing recommences, the Referee draws lots - to decide who will be the winner if scores are still equal at the end of the extra minute, as + to decide who is the winner if scores are still equal at the end of the extra minute, as described in the [General Rules](03-general.md). 5. In this case the score registered on the score-sheet is always the actual score achieved in the @@ -107,34 +107,34 @@ values before the start of the competition; unless announced otherwise, the defa 4. V0-D0 in case a fencer is withdrawn or removed from the competition, marking the opponent as the winner, but not registering any scores, for all of the fencer’s bouts in the pool.. -6. Before the competition starts, the Organising Team will decide on and announce the number of - fencers who will be eliminated based on the ranking established by the pools (0-40%). +6. Before the competition starts, the Organising Team decides on and announces the number of + fencers to be eliminated based on the ranking established by the pools (0-40%). -7. After the pools, a single general ranking will be established of all the fencers who have taken +7. After the pools, a single general ranking is established of all the fencers who have taken part in the pools, taking account, successively, of the indices V/M, HS – HR, HS. (V = victories; M = bouts; HS = hits scored; HR = hits received.) -8. A summary classification table shall then be made in the following way: - 1. The results written up on the summary table will be added up to ascertain the two indices +8. A summary classification table is then made in the following way: + 1. The results written up on the summary table are added up to ascertain the two indices required. - 2. The first index, for the initial classification, shall be obtained by dividing the number of + 2. The first index, for the initial classification, is obtained by dividing the number of victories by the number of bouts fought, using the formula V/M. - 3. The fencer with the highest index (maximum 1) will be seeded first. + 3. The fencer with the highest index (maximum 1) is seeded first. 4. In cases of equality in this first index, and to separate fencers with equal first indices, a - second index will be established, using the formula HS – HR, the difference between the total + second index is established, using the formula HS – HR, the difference between the total number of hits scored and hits received. 5. In cases of equality of the two indices V/M and HS – HR, the fencer who has scored most hits - will be seeded highest. - 6. In cases of absolute equality between two or more fencers, their seeding order will be + is seeded highest. + 6. In cases of absolute equality between two or more fencers, their seeding order is decided by drawing lots. -9. Should there be absolute equality among the last to qualify there will not be a barrage, and the - fencers with equal indicators will all qualify, even if they are in excess of the number decided +9. Should there be absolute equality among the last to qualify there is no barrage, and the + fencers with equal indicators all qualify, even if they are in excess of the number decided on. 10. A fencer who withdraws, or who is excluded, is scratched from the pool, His/her results are - recorded as if all of their opponents had won against the fencer, but no score will be - registered (V0-D0). The fencer who is withdrawn or excluded during the pool, will not be + recorded as if all of their opponents had won against the fencer, but no score is + registered (V0-D0). The fencer who is withdrawn or excluded during the pool, is not included in the calculation of the ranking for the direct elimination table. 11. When a fencer withdraws from one pool bout only, they are declared as having lost the bout, but @@ -158,13 +158,13 @@ values before the start of the competition; unless announced otherwise, the defa 5. The bout ends when: 1. One of the fencers has scored 7 hits; or - 2. 2 * 2 minutes of effective fencing time have passed. + 2. 2 × 2 minutes of effective fencing time have passed. 6. The fencer who has scored the greater number of hits is declared the winner. 7. If at the end of regulation time the scores are equal, the fencers fence for a deciding hit, with a maximum time limit of one minute. Before the fencing recommences the Referee draws lots - to decide who will be the winner if scores are still equal at the end of the extra minute, as + to decide who is the winner if scores are still equal at the end of the extra minute, as described in the [General Rules](03-general.md). In this case the score recorded on the score-sheet is the real score achieved in the bout. @@ -182,14 +182,14 @@ values before the start of the competition; unless announced otherwise, the defa 1. The general classification is obtained as follows: 1. First: the winner of the bout for the first place 2. Second: the loser of the bout for the first place - 3. A bout for third and fourth places will be fought between the two losers of the semi-final + 3. A bout for third and fourth places is fought between the two losers of the semi-final matches. 4. The remainder are placed, within each round of the direct elimination, in accordance with their classification for the composition of the direct elimination table. ## Tournament Staff -1. Medical/paramedic staff will assess possible injury/illness of the participants during/after +1. Medical/paramedic staff assess possible injury/illness of the participants during/after bouts and advise on immediate management. 2. The head of the Organising Team is responsible for the overall smooth running of the tournament. diff --git a/10-disciplinary.md b/10-disciplinary.md index 1d38cc0..b9d5a26 100644 --- a/10-disciplinary.md +++ b/10-disciplinary.md @@ -5,7 +5,7 @@ 1. Everyone taking part in or attending a fencing competition, including the spectators, must observe strictly and faithfully the particular rules for the competition in which they are engaged, the traditional customs of courtesy and integrity and the instructions of the officials. - In particular they will subscribe, in an orderly, disciplined and sporting manner, to the + In particular they must subscribe, in an orderly, disciplined and sporting manner, to the following provisions; all breaches of these rules may entail punishments by the disciplinary authorities after, or even without prior warning, according to the facts and circumstances. @@ -31,7 +31,7 @@ 2. No fencer may take part in the competition if he/she refuses to fence against any other fencer whatsoever correctly entered in the event. Should this rule be broken, the penalties specified - for offences of the 4th group will be applied. + for offences of the 4th group are applied. 3. The fencers, completely equipped, with all equipment conforming with the regulations and ready to fence, must be present at the time and place appointed for the beginning of the pool, match, @@ -43,15 +43,15 @@ 5. During a competition, if a fencer does not present himself on the arena, ready to fence, when ordered to do so by the Referee: - 1. The fencer not present will be penalised with a Yellow Card; - 2. A second call will be made, one minute after the first call, followed by a Red Card for the + 1. The fencer not present is penalised with a Yellow Card; + 2. A second call is made, one minute after the first call, followed by a Red Card for the fencer or team member not present; - 3. A third and last call will be made, one minute after the second call, followed by elimination + 3. A third and last call is made, one minute after the second call, followed by elimination from the competition for the fencer not present. 6. During or after a bout, even if the fencer has already left the arena, any act against the spirit of sportsmanship such as violently or dangerously throwing one’s mask (or any other piece - of equipment) will be penalised. + of equipment) is penalised. 7. The fencer, whether on or off the arena, must keep his mask on until the Referee calls ‘Halt!’. He may under no circumstances address the Referee until the Referee has made his decision. @@ -75,7 +75,7 @@ the spectators). To this end, they must remain still while the referee is making her decision; when she has given her decision, they must return to their on-guard line, perform a fencer’s salute and shake hands with their opponent. If either or both of the two fencers refuse to comply - with these rules, the Referee will penalise him/them as specified for offences of the 4th group. + with these rules, the Referee penalises him/them as specified for offences of the 4th group. 3. Punishable actions are acted on by verbal warnings, warnings (yellow card), point awarded to the opponent (red card) or disqualification and expulsion from the venue (black card), according to @@ -182,7 +182,7 @@ 2. Expulsion from the venue of the competition or the tournament. - 1. A competitor who is excluded from a tournament will no longer be allowed to participate in any + 1. A competitor who is excluded from a tournament is no longer allowed to participate in any competition during that tournament, either at the same weapon or another. 2. All participants or non-competitors who participate in or are present at a competition (instructors, trainers, technicians, supporters, officials, spectators) may be expelled. Such @@ -205,7 +205,7 @@ 4. The penalties are as follows: 1. a warning, indicated by a YELLOW CARD with which the Referee identifies the fencer at fault. - The fencer then knows that any further offence on his part will result in a penalty hit. + The fencer then knows that any further offence on his part results in a penalty hit. 2. a penalty hit, indicated by a RED CARD with which the Referee identifies the fencer at fault. A hit is added to the score of his opponent and may, if the last hit is at stake, lead to the loss of the bout. Furthermore, a RED CARD can only be followed by another RED CARD or by a From 3cca1fdac7f917df4128ebfe8a6fec1e3c7acedc Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sun, 9 Aug 2026 00:07:06 +0200 Subject: [PATCH 07/20] style: singular they, role nouns instead of pronouns, plain register in disciplinary chapter Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- 02-equipment.md | 14 +++--- 04-right-of-way.md | 22 ++++---- 09-organisational.md | 2 +- 10-disciplinary.md | 103 +++++++++++++++++++------------------- appendices/01-glossary.md | 2 +- 5 files changed, 72 insertions(+), 71 deletions(-) diff --git a/02-equipment.md b/02-equipment.md index c4f1813..80711f7 100644 --- a/02-equipment.md +++ b/02-equipment.md @@ -23,13 +23,13 @@ and the contestant is unable to get a suitable substitute they are prohibited from entering the tournament. -2. The mandatory equipment is controlled by the designated tournament staff before the competition - and an additional check must be done by the referee of each fencing arena. A referee may require - a contestant to change or adjust a part of their equipment. Nonconforming clothing or equipment - is penalised according to the first group of offences (see penalty 1.6), and the contestant is - not allowed to start or continue competing until the item(s) have been approved or replaced - with approved ones. For an equipment failure occurring in the course of a bout, a break of up to - 3 minutes may be allowed (see the General Rules). +2. The designated tournament staff inspect the mandatory equipment before the competition; the + referee of each fencing arena performs an additional check. A referee may require a contestant to + change or adjust a part of their equipment. Nonconforming clothing or equipment is penalised + according to the first group of offences (see penalty 1.6), and the contestant is not allowed to + start or continue competing until the item(s) have been approved or replaced with approved ones. + For an equipment failure occurring in the course of a bout, a break of up to 3 minutes may be + allowed (see the General Rules). 3. In case of an accident caused by unfit or inadequate equipment approved negligently by the equipment check staff or the referee, the responsibility lies with the staff or referee, who diff --git a/04-right-of-way.md b/04-right-of-way.md index 248327d..67528c9 100644 --- a/04-right-of-way.md +++ b/04-right-of-way.md @@ -57,20 +57,20 @@ Priority assignment for specific actions: ### The fencer who is attacked is alone counted as hit: -1. if he makes a counter-attack on his opponent's simple attack -2. if, instead of parrying, he attempts to avoid the hit and does not succeed in doing so -3. if, after making a successful parry, he makes a momentary pause (delayed riposte) which gives his opponent the right to renew the attack (redoublement, or remise, or reprise) -4. if, during a compound attack, he makes a stop hit without being in time -5. if, having his point 'in line' and being subjected to a beat or a taking of the blade which deflects his blade, he attacks or places his point in line again instead of parrying a direct hit made by his opponent +1. if they make a counter-attack against the opponent's simple attack +2. if, instead of parrying, they attempt to avoid the hit and do not succeed in doing so +3. if, after making a successful parry, they make a momentary pause (delayed riposte) which gives the opponent the right to renew the attack (redoublement, or remise, or reprise) +4. if, during a compound attack, they make a stop hit without being in time +5. if, having their point 'in line' and being subjected to a beat or a taking of the blade which deflects their blade, they attack or place their point in line again instead of parrying a direct hit made by the opponent ### The fencer who attacks is alone counted as hit: -1. If he initiated his attack when his opponent had his point 'in line', without deflecting the opponent's weapon. Referees must ensure that a mere contact of the blades is not considered as sufficient to deflect the opponent's blade. -2. If he attempts to find the blade, does not succeed (due to the opponent's avoiding reaction) and continues the attack. -3. If, during a compound attack, he allows his opponent to find the blade, and continues the attack while his opponent ripostes immediately. -4. If, during a compound attack, he bends his arm or makes a momentary pause, during which time the opponent makes a stop hit or an attack while the attacker continues his own attack. -5. If, during a compound attack, he is stop-hit one period of fencing time before he makes his final movement. -6. If he makes a hit by a renewed attack following a parry by his opponent which has been followed by a riposte which is immediate, simple and executed in one period of fencing time without withdrawing the arm. +1. If they initiated their attack when the opponent's point was 'in line', without deflecting the opponent's weapon. Referees must ensure that a mere contact of the blades is not considered as sufficient to deflect the opponent's blade. +2. If they attempt to find the blade, do not succeed (due to the opponent's avoiding reaction) and continue the attack. +3. If, during a compound attack, they allow the opponent to find the blade, and continue the attack while the opponent ripostes immediately. +4. If, during a compound attack, they bend their arm or make a momentary pause, during which time the opponent makes a stop hit or an attack while the attacker continues their own attack. +5. If, during a compound attack, they are stop-hit one period of fencing time before they make the final movement of the attack. +6. If they make a hit by a renewed attack following a parry by the opponent which has been followed by a riposte which is immediate, simple and executed in one period of fencing time without withdrawing the arm. ### Both fencers are at fault (no points awarded) diff --git a/09-organisational.md b/09-organisational.md index 9b13369..e7ea5d1 100644 --- a/09-organisational.md +++ b/09-organisational.md @@ -132,7 +132,7 @@ values before the start of the competition; unless announced otherwise, the defa fencers with equal indicators all qualify, even if they are in excess of the number decided on. -10. A fencer who withdraws, or who is excluded, is scratched from the pool, His/her results are +10. A fencer who withdraws, or who is excluded, is scratched from the pool. Their results are recorded as if all of their opponents had won against the fencer, but no score is registered (V0-D0). The fencer who is withdrawn or excluded during the pool, is not included in the calculation of the ranking for the direct elimination table. diff --git a/10-disciplinary.md b/10-disciplinary.md index b9d5a26..23760d7 100644 --- a/10-disciplinary.md +++ b/10-disciplinary.md @@ -13,23 +13,23 @@ disturb the smooth running of the competition. During bouts no one is allowed to approach the arenas to give advice to the fencers, to criticise the Referee or the Assistant, to insult them or to attempt to influence them in any way. The second must remain in the space assigned to - him/her. The referee must stop immediately any activity which disturbs the smooth running of the - bout which he/she is refereeing + them. The referee must stop immediately any activity which disturbs the smooth running of the + bout which they are refereeing 3. Any person who, for any reason, threatens or insults an official is eligible for immediate disqualification/expulsion from the premises. 4. The referee, and/or the organising team, on their own authority, can decide to expel from the - competition venue, with or without a warning, any person who by his/her gestures, attitude or + competition venue, with or without a warning, any person who by their gestures, attitude or language disturbs the good order or smooth running of the event. ## The Competitors -1. By the mere fact of entering a fencing competition, the fencers pledge their honour to observe - the Rules, and the decisions and instructions of the officials, to be respectful towards the - Referees (Referee and Assistant) and to scrupulously obey their orders and injunctions. +1. By entering a fencing competition, fencers agree to observe the Rules and the decisions and + instructions of the officials, to be respectful towards the Referees (Referee and Assistant), + and to follow their orders. -2. No fencer may take part in the competition if he/she refuses to fence against any other fencer +2. No fencer may take part in the competition if they refuse to fence against any other fencer whatsoever correctly entered in the event. Should this rule be broken, the penalties specified for offences of the 4th group are applied. @@ -41,8 +41,8 @@ 4. When presenting themselves to fence a bout, the fencers must arrive on the arena completely ready to fence — regulation clothing, jacket fastened, hands gloved and holding the weapon. -5. During a competition, if a fencer does not present himself on the arena, ready to fence, when - ordered to do so by the Referee: +5. During a competition, if a fencer does not present themselves on the arena, ready to fence, + when ordered to do so by the Referee: 1. The fencer not present is penalised with a Yellow Card; 2. A second call is made, one minute after the first call, followed by a Red Card for the fencer or team member not present; @@ -53,8 +53,8 @@ spirit of sportsmanship such as violently or dangerously throwing one’s mask (or any other piece of equipment) is penalised. -7. The fencer, whether on or off the arena, must keep his mask on until the Referee calls ‘Halt!’. - He may under no circumstances address the Referee until the Referee has made his decision. +7. The fencer, whether on or off the arena, must keep their mask on until the Referee calls + ‘Halt!’. They must not address the Referee until the Referee has announced the decision. 8. Competitors must fence to their utmost ability in a sportsmanlike manner until the end of the competition in order to obtain the best possible classification, without giving away hits or @@ -62,20 +62,21 @@ ## Fencing Etiquette -1. All bouts must preserve the character of a courteous and frank encounter. All irregular actions - (e.g. violently jostling the opponent; disorderly fencing; irregular movements in the arena; hits - achieved with violence; blows struck with the cross-guard; hits made during or after an - accidental fall; failing to stop dangerous techniques short of full application, taking out fury - on the furniture or equipment of the venue) or anti-sporting behaviour are strictly forbidden. - Should such an offence occur, any hit scored by the fencer at fault is annulled. +1. All bouts must remain courteous and fair. All irregular actions (e.g. violently jostling the + opponent; disorderly fencing; irregular movements in the arena; hits achieved with violence; + blows struck with the cross-guard; hits made during or after an accidental fall; failing to stop + dangerous techniques short of full application, taking out fury on the furniture or equipment of + the venue) or anti-sporting behaviour are strictly forbidden. Should such an offence occur, any + hit scored by the fencer at fault is annulled. 2. Before the beginning of each bout, the two fencers must perform a fencer’s salute to their opponent, the referee, and preferably to the spectators. Equally, when the final hit has been scored, the bout has not ended until the two fencers have saluted each other, the referee (and - the spectators). To this end, they must remain still while the referee is making her decision; - when she has given her decision, they must return to their on-guard line, perform a fencer’s - salute and shake hands with their opponent. If either or both of the two fencers refuse to comply - with these rules, the Referee penalises him/them as specified for offences of the 4th group. + the spectators). To this end, they must remain still while the Referee is making the decision; + when the Referee has given the decision, they must return to their on-guard line, perform a + fencer’s salute and shake hands with their opponent. If either or both of the two fencers refuse + to comply with these rules, the Referee penalises them as specified for offences of the 4th + group. 3. Punishable actions are acted on by verbal warnings, warnings (yellow card), point awarded to the opponent (red card) or disqualification and expulsion from the venue (black card), according to @@ -91,19 +92,19 @@ ### The Referee -1. By accepting a position as referee or assistant, the person so designated pledges his/her honour - to respect the rules and to cause them to be respected, and to carry out his/her duties with the - strictest impartiality and absolute concentration. +1. By accepting a position as Referee or Assistant, the person so designated agrees to respect the + rules and to cause them to be respected, and to carry out their duties with the strictest + impartiality and absolute concentration. 2. The Referee is responsible not only for the direction of the bout, the judging of hits and the - checking of equipment, but equally for the maintenance of order in the bouts which he is + checking of equipment, but equally for the maintenance of order in the bouts which they are refereeing. -3. The referee has the right to interrupt a bout if the play becomes confused, dangerous or she/he - is unable to clearly judge the action any more. In the absence of an objective scoring device, - the fencing phrases are judged according to the referee and assistant's observation of the - action. While fencers are welcome to address the referee for clarification or appeals before the - final decision is made, the referee's judgment regarding facts is not to be questioned in +3. The Referee has the right to interrupt a bout if the play becomes confused or dangerous, or the + Referee is unable to clearly judge the action any more. In the absence of an objective scoring + device, the fencing phrases are judged according to the referee and assistant's observation of + the action. While fencers are welcome to address the referee for clarification or appeals before + the final decision is made, the referee's judgment regarding facts is not to be questioned in retrospect. 4. As director of the bout and arbiter of hits, the Referee may, in accordance with the rules and — @@ -112,12 +113,12 @@ fencer from the competition. When the Referee has judged on a matter of fact, the decision is irrevocable. -5. By reason of the right of jurisdiction which he has over all the fencers who participate in, or - are present at a competition which he is refereeing, they can also propose the expulsion +5. By reason of the right of jurisdiction which they have over all the fencers who participate in, + or are present at a competition which they are refereeing, they can also propose the expulsion from the venue of the competition of the spectators, trainers, instructors and other persons who accompany the competitors. -6. Finally, he may recommend to the Organising Team all other penalties which he considers +6. Finally, they may recommend to the Organising Team all other penalties which they consider appropriate (exclusion from the whole competition, suspension or disqualification). The Head of the Refereeing Team is the authority competent to deal with appeals against the decisions of the Referee. @@ -155,21 +156,21 @@ ### Penalties Related to Fencing -1. Refusal to award a hit actually made. Although a competitor may in fact have hit his opponent on +1. Refusal to award a hit actually made. Although a competitor may in fact have hit the opponent on the target, this hit may be disallowed, either because it did not arrive during the period of time during which fencing is allowed, or because the competitor had crossed the boundaries of the arena, or because violence was involved in the making of the hit, or because of other reasons as laid down in the Rules. 2. Award of a hit which has not in fact been received. A competitor may have a hit awarded against - him which he has not in fact received, either because he has crossed the limit of the arena, or - because he has committed an offence which has prevented his opponent fencing. + them which they have not in fact received, either because they have crossed the limit of the + arena, or because they have committed an offence which has prevented the opponent fencing. 3. Exclusion. A competitor who, while fencing, commits certain violent or vindictive actions against - his opponent, or who does not fence to his utmost ability, or who profits from a fraudulent - agreement with his opponent, may be excluded from the competition. A competitor who is excluded - from a competition may not continue to take part in that competition, even if he is already - qualified for promotion to the next round. He loses the right to his individual classification + the opponent, or who does not fence to their utmost ability, or who profits from a fraudulent + agreement with the opponent, may be excluded from the competition. A competitor who is excluded + from a competition may not continue to take part in that competition, even if they are already + qualified for promotion to the next round. They lose the right to their individual classification and all the fencers ranked after the disqualified fencer move up one place in the results of the competition. @@ -187,13 +188,13 @@ 2. All participants or non-competitors who participate in or are present at a competition (instructors, trainers, technicians, supporters, officials, spectators) may be expelled. Such expulsion has the effect of forbidding them access to the venue for the duration of the - competition or tournament. In no circumstances can the imposition of this penalty give cause - for redress to anyone. + competition or tournament. The imposition of this penalty gives no one a right to + compensation. ### The types (groups) of penalty 1. There are three types of penalty to be applied in the cases indicated in the table in Article. - If a referee has to penalise a fencer who has committed several faults at the same time, he + If a referee has to penalise a fencer who has committed several faults at the same time, they should penalise the least serious fault first. 2. Penalties are cumulative and they are valid for the bout with the exception of those indicated @@ -205,9 +206,9 @@ 4. The penalties are as follows: 1. a warning, indicated by a YELLOW CARD with which the Referee identifies the fencer at fault. - The fencer then knows that any further offence on his part results in a penalty hit. + The fencer then knows that any further offence on their part results in a penalty hit. 2. a penalty hit, indicated by a RED CARD with which the Referee identifies the fencer at fault. - A hit is added to the score of his opponent and may, if the last hit is at stake, lead to the + A hit is added to the score of the opponent and may, if the last hit is at stake, lead to the loss of the bout. Furthermore, a RED CARD can only be followed by another RED CARD or by a BLACK CARD, depending on the nature of the second offence. 3. Exclusion from the competition, suspension from the remainder of the tournament, indicated by @@ -227,9 +228,9 @@ 1. The first infringement in this First Group is penalised by a YELLOW CARD (warning). If during the same bout the fencer commits the same or a different offence in this group the Referee penalises - him on each occasion, with a RED CARD (penalty hit). If the fencer at fault has already been - penalised by a RED CARD because of an offence listed in the Second or Third Group, he receives a - further RED CARD for his first infringement relating to the First Group. + them on each occasion, with a RED CARD (penalty hit). If the fencer at fault has already been + penalised by a RED CARD because of an offence listed in the Second or Third Group, they receive a + further RED CARD for their first infringement relating to the First Group. ### The Second Group of offences @@ -242,9 +243,9 @@ fencer at fault has already received a RED CARD as a result of offences in the First or Second Groups. -2. If during the same bout the fencer commits the same or a different offence in this group, he is - penalised with a BLACK CARD (exclusion from the competition and suspension from the remainder of - the tournament). The fencer keeps the position in the ranking obtained up to the moment of the +2. If during the same bout the fencer commits the same or a different offence in this group, they + are penalised with a BLACK CARD (exclusion from the competition and suspension from the remainder + of the tournament). The fencer keeps the position in the ranking obtained up to the moment of the disqualification (unless the ranking has not yet been established via the pools). 3. Any person not on the arena who disturbs the good order of the competition receives: diff --git a/appendices/01-glossary.md b/appendices/01-glossary.md index ed3d213..add2a3e 100644 --- a/appendices/01-glossary.md +++ b/appendices/01-glossary.md @@ -78,7 +78,7 @@ 3. The reprise of the attack - A new attack executed immediately after a return to the on-guard position. -7. *Counter-time* - Any action made by the attacker against a stop hit made by his opponent. +7. *Counter-time* - Any action made by the attacker against a stop hit made by the opponent. ### Defensive actions From 925cb5dd656ed3348e284e0598c6bf4a12a3014e Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sun, 9 Aug 2026 00:32:41 +0200 Subject: [PATCH 08/20] style: canonical terminology, glossary entries for core scoring terms, convention check script Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- 01-intro.md | 4 +-- 02-equipment.md | 30 ++++++++--------- 03-general.md | 53 +++++++++++++++-------------- 04-right-of-way.md | 8 ++--- 05-longsword.md | 20 +++++------ 06-rapier.md | 4 +-- 07-sabre.md | 10 +++--- 08-sword-and-buckler.md | 2 +- 09-organisational.md | 46 +++++++++++++------------- 10-disciplinary.md | 64 ++++++++++++++++++------------------ appendices/01-glossary.md | 29 +++++++++++++--- scripts/check_conventions.sh | 25 ++++++++++++++ 12 files changed, 169 insertions(+), 126 deletions(-) create mode 100755 scripts/check_conventions.sh diff --git a/01-intro.md b/01-intro.md index 67cc132..9481cd0 100644 --- a/01-intro.md +++ b/01-intro.md @@ -5,11 +5,11 @@ touch without being touched'. In common with historical rule-sets, competitions abstracted test of skill, and not a simulation of an unregulated combat “to the finish” – in this sense, each individual point is regarded as a separate "duel" within the framework of the following rules, the loss of which is indicated by having a point called against the losing fencer. -Our intention is to determine the relative ranking, and the best fencer among the competitors +Our intention is to determine the relative ranking, and the best fencer among the fencers present on the days of the competitions, in terms of tactical, technical, and athletic skills. One of the principles which stand above all others is the principle of fair play. Every functional -ruleset should be efficient in providing equal opportunities for every tournament contestant. +ruleset should be efficient in providing equal opportunities for every tournament fencer. ## Use of Language diff --git a/02-equipment.md b/02-equipment.md index 80711f7..37ce3bc 100644 --- a/02-equipment.md +++ b/02-equipment.md @@ -2,7 +2,7 @@ ## Fencing Arena -1. A fencing arena must provide similar conditions to both contestants. This applies mainly to +1. A fencing arena must provide similar conditions to both fencers. This applies mainly to angles of the light and the ground slipperiness. 2. The fencing arena is a square or rectangular shape, its dimensions must be between a minimum of @@ -12,31 +12,31 @@ 3. The center point of a fencing arena may be marked. -4. The starting position of the fencers must be marked in such a way that start-line is at least 2m +4. The starting position of the fencers must be marked in such a way that the on-guard line is at least 2m away from the center of the arena in opposite directions, setting up at least 4m distance between the fencers at the start of each exchange. ## Equipment standards -1. Every contestant is responsible for their equipment, and must use each element of the mandatory +1. Every fencer is responsible for their equipment, and must use each element of the mandatory equipment, when entering a tournament. If a piece of equipment is declared unsuitable or unfit - and the contestant is unable to get a suitable substitute they are prohibited from entering + and the fencer is unable to get a suitable substitute they are prohibited from entering the tournament. 2. The designated tournament staff inspect the mandatory equipment before the competition; the - referee of each fencing arena performs an additional check. A referee may require a contestant to + Referee of each fencing arena performs an additional check. A Referee may require a fencer to change or adjust a part of their equipment. Nonconforming clothing or equipment is penalised - according to the first group of offences (see penalty 1.6), and the contestant is not allowed to + according to the first group of offences (see penalty 1.6), and the fencer is not allowed to start or continue competing until the item(s) have been approved or replaced with approved ones. For an equipment failure occurring in the course of a bout, a break of up to 3 minutes may be allowed (see the General Rules). 3. In case of an accident caused by unfit or inadequate equipment approved negligently by the - equipment check staff or the referee, the responsibility lies with the staff or referee, who - approved the contestant’s entry. The staff or the referee is subjected to disciplinary + equipment check staff or the Referee, the responsibility lies with the staff or Referee, who + approved the fencer’s entry. The staff or the Referee is subjected to disciplinary proceedings and their license may be revoked. -4. A referee has the right to forbid a piece or a set of equipment which does not comply with the +4. A Referee has the right to forbid a piece or a set of equipment which does not comply with the prescribed norm. ### Protection Gear @@ -73,9 +73,9 @@ 5. The torso of the body must be protected with an undamaged fencing jacket or gambeson with at least 350N FIE certification, made of special hardened or thick material which prevents blade penetration and eases the blade impact. The jacket is subjected to control by the tournament - staff and the arena referee. A fencing jacket must cover the armpits as well. + staff and the arena Referee. A fencing jacket must cover the armpits as well. -6. Every female contestant must wear solid breast/chest protection. +6. Every female fencer must wear solid breast/chest protection. 7. Additional protection of the arms or elbows is required if the jacket does not provide sufficient protection itself. @@ -89,7 +89,7 @@ #### Legs -1. A groin protector is mandatory for every male contestant in all weapon categories. +1. A groin protector is mandatory for every male fencer in all weapon categories. 2. The knees and shins must be protected at the front and the sides as well. @@ -205,7 +205,7 @@ blade reaches full bend. 7. The point of the primary weapon must be blunt and rounded. If the tip is not rounded, it must be additionally secured by protection such as properly fitted plastic or cork end. Adequacy of - protection is judged by the main referee or tournament organizer. + protection is judged by the main Referee or the Organising Team. 8. The point of the primary and side weapon must be covered by contrasting high-visibility tape for better visibility. @@ -215,7 +215,7 @@ blade reaches full bend. #### Side weapon - dagger 1. In the rapier category, it is possible to use a side weapon, which serves defensive purposes. The - organizer states the usage of the side weapon. + Organising Team states the usage of the side weapon. 2. The dagger blade must be straight; daggers with more blades or with a special *ricasso* meant for intercepting a weapon or curved daggers are not allowed in the tournament. @@ -255,5 +255,5 @@ blade reaches full bend. 6. The minimum point surface area is 50mm². The blade must have a safe tip: rolled, thickened or spatulated. The tip must be further built up at the event with contrasting high-visibility tape. -7. The organizers reserve the right to disallow weapons they feel are unsafe or against the spirit +7. The Organising Team reserves the right to disallow weapons they feel are unsafe or against the spirit of the rules. diff --git a/03-general.md b/03-general.md index d04e381..fc8b31a 100644 --- a/03-general.md +++ b/03-general.md @@ -4,10 +4,10 @@ ### Starting the bout -1. Each bout is performed for a set amount of time or until a set amount of hits. This is achieved +1. Each bout is performed for a set amount of time or until a set amount of points. This is achieved through a series of separate, independent exchanges. -2. The competitors present themselves in the arena when called by the referee before each pool or +2. The fencers present themselves in the arena when called by the Referee before each pool or direct elimination bout, in appropriate gear conforming to the rules and be ready to fence. 3. Equipment checks before and during the competition, and the penalties for @@ -16,11 +16,11 @@ 4. Each fencer is allowed one coach/second who is allowed to be near the arena during bouts. This person may speak to their fencer during breaks but may not disturb the bout with verbal or - physical gestures. Generally, it is the fencer who should address the referee for help, + physical gestures. Generally, it is the fencer who should address the Referee for help, clarification or appeals, the seconds should not interfere with the bout in any other way than advising their fencers during breaks. -5. The competitors called first place themselves to the right of the referee behind the on guard +5. The fencers called first place themselves to the right of the Referee behind the on-guard line. 6. Bout durations, hit limits and tie-break procedures are set out in the @@ -31,8 +31,8 @@ stop the bout. 7. Before the beginning of each bout, the two fencers called on the arena salute to their opponent, - and the referee. Competitors come on guard when the referee gives the order ‘On guard!’, after - which the referee asks, ‘Are you ready?’. On the affirmative, or in the absence of a negative + and the Referee. Fencers come on guard when the Referee gives the order ‘On guard!’, after + which the Referee asks, ‘Are you ready?’. On the affirmative, or in the absence of a negative reply, the command is given for fencing to commence with the word ‘Fence!’. ### Stopping the exchange @@ -65,7 +65,7 @@ ### Arena boundaries -13. When a competitor crosses one of the boundaries of the arena with both feet completely off the +13. When a fencer crosses one of the boundaries of the arena with both feet completely off the arena, the Referee must immediately stop the exchange. 14. If the fencer goes off the arena with both feet, the Referee must annul everything that has @@ -81,22 +81,22 @@ 2. on each subsequent occasion within the bout, a point is scored against the fencer (as if they had been hit). -17. A competitor who involuntarily crosses one of the boundaries of the arena as the result of any +17. A fencer who involuntarily crosses one of the boundaries of the arena as the result of any accidental cause (such as jostling/being pushed out by the opponent) incurs no penalty. ### Restarting, video review and end of the bout 18. After each valid hit and in case the exchange is stopped for other reasons (confused fencing, malfunction, unsuccessful grappling, etc.) the bout continues from the 'On guard' position, at - the starting line. + the on-guard line. 19. When available, fencers have the right to appeal for video review once during bout. If the video - review alters the referee's verdict in their favour, they retain the right to appeal for video + review alters the Referee's verdict in their favour, they retain the right to appeal for video review during that bout. 20. In case the points of the fencers are equal at the time limit, an additional minute of time is given, during which the first valid hit wins the bout. Additionally, before overtime starts, the - referee draws lots and randomly assigns one of the two fencers with priority. If the sudden + Referee draws lots and randomly assigns one of the two fencers with priority. If the sudden death overtime runs out with neither fencer scoring, the fencer with priority wins the bout. This randomly assigned priority has no effect on the judgment of actions during the overtime. @@ -105,18 +105,18 @@ observe this rule by one or both of the opponents belongs to the fourth group of offences). 22. After the pool round and each direct elimination bout, the fencers must check and sign the - result sheet filled in by the referee during the bout, before leaving the arena. + result sheet filled in by the Referee during the bout, before leaving the arena. ### Equipment failure and injury breaks -23. For an equipment failure which occurs in the course of a bout, the referee may allow a break in - the fight lasting up to 3 minutes (measured from the point when the failure has been - acknowledged by the referee). This time interval can be used to mend or replace, and check the +23. For an equipment failure which occurs in the course of a bout, the Referee may allow a break in + the bout lasting up to 3 minutes (measured from the point when the failure has been + acknowledged by the Referee). This time interval can be used to mend or replace, and check the equipment in question. If a fencer is not able to continue fencing before or at the end of the - break, the referee has the authority to disqualify the fencer from that bout. + break, the Referee has the authority to disqualify the fencer from that bout. -24. For an injury or cramp which occurs in the course of a bout the referee may allow a break in the - fight lasting up to 10 minutes (measured from the point when the qualified staff give their +24. For an injury or cramp which occurs in the course of a bout the Referee may allow a break in the + bout lasting up to 10 minutes (measured from the point when the qualified staff give their opinion). This time interval is reserved for the treatment of the injury or cramp which brought it about. No further interruption can be allowed in the same bout for the same injury. If the professional attendant deems the fencer unsafe/incapable to fence before or at the end of the @@ -126,9 +126,9 @@ ### Forfeits and withdrawal 25. In case the fencer forfeits one bout due to an equipment malfunction or injury, during the pool - phase, the other contestant is declared as winning, but the score is not annulled (it is + phase, the other fencer is declared as winning, but the score is not annulled (it is possible to win a bout while having less points than the opponent, in this case). In the direct - elimination phase, the other contestant is declared as winning, and the fencer does not lose + elimination phase, the other fencer is declared as winning, and the fencer does not lose their place in the overall classification of the competition. 26. Only one bout can be forfeited in the pool, should the fencer be unable to fence through a bout @@ -150,8 +150,7 @@ ## The methods of scoring hits -1. Fencing time is the time required to perform one simple fencing action. In judging hits, referees - count immediate actions that start up to the moment of the first hit, as relevant actions. +1. *Fencing time* (see [Glossary](appendices/01-glossary.md)) is counted as follows: in judging hits, Referees count immediate actions that start up to the moment of the first hit as relevant actions. 2. When only one of the fencers receives a hit within one period of fencing time, the fencer who was hit is called one point against. @@ -217,7 +216,7 @@ 4. It is forbidden to hit with the cross-guard, where applicable, or with the basket or bell guard (see penalty 1.5). -5. Turning the head or covering a valid target with a non-valid one belongs to +5. Turning the head or covering a valid target with an off-target part belongs to the first group of offences. 6. Hitting the arena floor with any weapon due to bad measure in an action is @@ -233,19 +232,19 @@ Close quarter combat and grappling are allowed only where the weapon-specific ru 1. The Referee may call 'Halt!' after an unsuccessful period of grappling. 2. Grappling on the opponent's blade is allowed, if the blade is controlled. Seizing of the blade needs to be momentary, and followed by an immediate 'clean' hit to score a point. If the - competitor can not achieve a hit consequently to seizing the blade, the Referee calls 'Halt!' + fencer can not achieve a hit consequently to seizing the blade, the Referee calls 'Halt!' and awards no points. Failing to control the blade is counted as a point against the - competitor who attempted to enter grappling. + fencer who attempted to enter grappling. 3. Grappling actions that score a point are: 1. take-downs and throws followed/accompanied by a simple and immediate hit with the weapon (within a period of fencing time) 2. controlling the opponent via grappling with or without the weapon, until the Referee calls 'Halt!' 4. Ground action is not allowed, the Referee must call 'Halt!' when one of the fencers falls to the - ground, or whenever the referee is unable to judge the action any more, or when a reasonable time + ground, or whenever the Referee is unable to judge the action any more, or when a reasonable time has passed for dominance to apply. 5. Disarming is allowed and scores a point, unless the disarmed fencer immediately (before the - referee calls 'Halt!') controls the opponent's weapon and enters grappling. + Referee calls 'Halt!') controls the opponent's weapon and enters grappling. 6. If a fencer accidentally drops the weapon, or falls without the opponent's interaction, the Referee must call 'Halt!'. A hit that started before the fencer obviously lost the weapon should diff --git a/04-right-of-way.md b/04-right-of-way.md index 67528c9..ecd11f8 100644 --- a/04-right-of-way.md +++ b/04-right-of-way.md @@ -2,7 +2,7 @@ ## General Principles -1. The Referee alone decides as to the validity or the priority (*Vor*/right of way) of the hit by applying the following basic rules which are the conventions applicable to priority-based weapons (longsword and sabre). +1. The Referee alone decides as to the validity or the priority (right of way, historically *Vor*) of the hit by applying the following basic rules which are the conventions applicable to priority-based weapons (longsword and sabre). 2. Any attack properly executed must be parried, or completely avoided, and the phrase must be continuous. @@ -39,7 +39,7 @@ Priority assignment for specific actions: 3. **Attack completion**: If the attack is commenced when the opponent's blade is not in line, the attack may be completed either direct, or by a disengagement or by a cutover, or else be preceded by feints which oblige the opponent to parry. -4. **Stop hits in compound attacks**: In a compound attack the opponent has the right to stop-hit; but, in order to be valid, the stop hit must precede the last movement of the attack by one period of fencing time, i.e. the stop hit must arrive before the attacker has started the last movement of the attack itself. +4. **Stop-hits in compound attacks**: In a compound attack the opponent has the right to stop-hit; but, in order to be valid, the stop-hit must precede the last movement of the attack by one period of fencing time, i.e. the stop-hit must arrive before the attacker has started the last movement of the attack itself. ## Parry and Riposte @@ -60,7 +60,7 @@ Priority assignment for specific actions: 1. if they make a counter-attack against the opponent's simple attack 2. if, instead of parrying, they attempt to avoid the hit and do not succeed in doing so 3. if, after making a successful parry, they make a momentary pause (delayed riposte) which gives the opponent the right to renew the attack (redoublement, or remise, or reprise) -4. if, during a compound attack, they make a stop hit without being in time +4. if, during a compound attack, they make a stop-hit without being in time 5. if, having their point 'in line' and being subjected to a beat or a taking of the blade which deflects their blade, they attack or place their point in line again instead of parrying a direct hit made by the opponent ### The fencer who attacks is alone counted as hit: @@ -68,7 +68,7 @@ Priority assignment for specific actions: 1. If they initiated their attack when the opponent's point was 'in line', without deflecting the opponent's weapon. Referees must ensure that a mere contact of the blades is not considered as sufficient to deflect the opponent's blade. 2. If they attempt to find the blade, do not succeed (due to the opponent's avoiding reaction) and continue the attack. 3. If, during a compound attack, they allow the opponent to find the blade, and continue the attack while the opponent ripostes immediately. -4. If, during a compound attack, they bend their arm or make a momentary pause, during which time the opponent makes a stop hit or an attack while the attacker continues their own attack. +4. If, during a compound attack, they bend their arm or make a momentary pause, during which time the opponent makes a stop-hit or an attack while the attacker continues their own attack. 5. If, during a compound attack, they are stop-hit one period of fencing time before they make the final movement of the attack. 6. If they make a hit by a renewed attack following a parry by the opponent which has been followed by a riposte which is immediate, simple and executed in one period of fencing time without withdrawing the arm. diff --git a/05-longsword.md b/05-longsword.md index 2528e0e..110a6a3 100644 --- a/05-longsword.md +++ b/05-longsword.md @@ -7,10 +7,10 @@ weapon been sharp. Hits performed with the flat may be counted, if they bear the characteristics of a coordinated and potent technique. A strike with the pommel against the front mesh of the opponent's mask is also a valid hit (see the General Rules, 'The methods of scoring hits'). It is - up to the referee’s discretion to judge the validity of hits. + up to the Referee’s discretion to judge the validity of hits. 2. Hits through the blade, that is to say those which bend over the opponent’s blade or cross-guard, - are not considered to be valid. However, the referee may count a hit as valid, if the opponent’s + are not considered to be valid. However, the Referee may count a hit as valid, if the opponent’s blade has not closed the line of the attack, and it touches at the same time the valid target and the weapon of the opponent, whenever they arrive clearly on the target. @@ -19,14 +19,14 @@ the knees. -## Vor/Priority +## Priority -Longsword uses the standard right-of-way system. See [Right of Way and Priority Rules](04-right-of-way.md) for detailed priority conventions and examples. +Longsword uses the standard priority (right of way, historically *Vor*) system. See [Right of Way and Priority Rules](04-right-of-way.md) for detailed priority conventions and examples. ## Close quarter combat 1. Priority ceases to exist when the weapons of the opponents come together at *Stercke* on - *Stercke* (including the crossguard), and/or in case of grappling actions. In case the weapons + *Stercke* (including the cross-guard), and/or in case of grappling actions. In case the weapons touch *Stercke* on *Stercke*, and a double hit follows immediately, no points are awarded. Otherwise, they may disengage and continue fencing (with priority rules), or enter grappling (with grappling rules). @@ -42,21 +42,21 @@ Longsword uses the standard right-of-way system. See [Right of Way and Priority defined by these rules. 2. When there is a double hit, and if the Referee is unable clearly to judge from which side the - fault has come, the referee must not assign any points. + fault has come, the Referee must not assign any points. -3. In cases when a stop hit is made and there is doubt as to whether it was made sufficiently in +3. In cases when a stop-hit is made and there is doubt as to whether it was made sufficiently in time in relation to the final movement of a compound attack, the double hit often occurs through the fault of both fencers concerned. Since this is clearly not a tactically symmetrical case, - the referee should assign no points. (The fault of the attacker consists of indecision, slowness + the Referee should assign no points. (The fault of the attacker consists of indecision, slowness of execution or the making of feints which are not sufficiently effective. The fault of the - defender lies in delay or slowness in making the stop hit.) + defender lies in delay or slowness in making the stop-hit.) 4. Any actions executed while holding the weapon with one hand only, can only score if the fencer does not receive any attack or counterattack with a weapon held with two hands, within one period of fencing time. 5. However if the opponent reacts to the attack with a weapon held in one hand with an attempt to - parry, an unsuccessful parry returns the right of initiative to the one-handed hit. + parry, an unsuccessful parry returns the priority to the one-handed hit. 6. In cases when both fencers get hit with a weapon held in one hand within time, the judgment of the action follows the regular priority rules. diff --git a/06-rapier.md b/06-rapier.md index 7e9cd97..fc06421 100644 --- a/06-rapier.md +++ b/06-rapier.md @@ -13,7 +13,7 @@ ## Judging of hits -Rapier and side weapons do not use priority (Right of Way) rules. Scoring follows combat rules: +Rapier and side weapons do not use priority (right of way) rules. Scoring follows combat rules: only the first valid hit scores. In the case of hits arriving within one period of fencing time, the rules below apply. @@ -35,7 +35,7 @@ the rules below apply. 6. All hits made with the point, and the edges of the blade, are valid. The action must be performed in such a way that it would have caused a wound to an unarmoured opponent, had the weapon been sharp. Hits performed with the flat may be counted, if they are aimed at the head, - and bear the characteristics of a coordinated and potent technique. It is up to the referee’s + and bear the characteristics of a coordinated and potent technique. It is up to the Referee’s discretion to judge the validity of hits, in accordance with the Rulebook’s regulations. 7. The target includes the whole of the fencer’s body, clothing, and safety equipment, except for diff --git a/07-sabre.md b/07-sabre.md index 5b0249e..7107986 100644 --- a/07-sabre.md +++ b/07-sabre.md @@ -2,12 +2,12 @@ ## Target Area -1. Targets are restricted from the hips up, including arms and head, but with legs being a non-scoring target. +1. Targets are restricted from the hips up, including arms and head, but with legs being off-target. -2. Strikes to a non-scoring target do not score, do not stop the exchange, and do not assign any +2. Strikes to an off-target area do not score, do not stop the exchange, and do not assign any points. -3. Repeated, deliberate strikes to an off-target area are judged as strikes to an illegal target and dealt with accordingly. +3. Repeated, deliberate strikes to an off-target area are judged as strikes to a forbidden target and dealt with accordingly. ## Sabre-specific scoring considerations @@ -24,8 +24,8 @@ 1. Grappling or close quarter combat is forbidden; it belongs to the first group of offences (see penalty 1.5). -2. Engaging in grappling, close quarters combat, or corps-a-corps is immediately stopped by the referee. +2. Engaging in grappling, close quarters combat, or corps-a-corps is immediately stopped by the Referee. ## Priority System -Sabre uses the standard right-of-way system. See [Right of Way and Priority Rules](04-right-of-way.md) for detailed priority conventions. +Sabre uses the standard priority (right of way, historically *Vor*) system. See [Right of Way and Priority Rules](04-right-of-way.md) for detailed priority conventions. diff --git a/08-sword-and-buckler.md b/08-sword-and-buckler.md index 6534493..1dcada1 100644 --- a/08-sword-and-buckler.md +++ b/08-sword-and-buckler.md @@ -2,7 +2,7 @@ ## Judging of hits -Sword and Buckler competitions do not use priority (Right of Way) rules. Scoring follows the same +Sword and Buckler competitions do not use priority (right of way) rules. Scoring follows the same combat rules as Rapier and side weapons competitions (see [Rapier and side weapons](06-rapier.md)): only the first valid hit scores. diff --git a/09-organisational.md b/09-organisational.md index e7ea5d1..9d624d2 100644 --- a/09-organisational.md +++ b/09-organisational.md @@ -2,17 +2,17 @@ ## Eligibility -1. The competition is open to athletes of 18 years and older. +1. The competition is open to fencers of 18 years and older. 2. It is prohibited to enter a competition under the influence of alcohol or performance-altering drugs (including recreational drugs and those prescribed by physicians). ## Fencer readiness and presence -1. All fencers must be present at their assigned fencing area 10 minutes before the start of +1. All fencers must be present at their assigned arena 10 minutes before the start of bouts. This applies to both the pool round and the direct elimination stage. -2. The staff of the given fencing area call the fencers 10 minutes before the start of +2. The staff of the given arena call the fencers 10 minutes before the start of bouts. If a fencer is not present when called, the call is repeated two additional times, each after 1 minute. After the third unanswered call, the fencer is disqualified from the competition (they may still participate in other competitions/weapons of the tournament; see @@ -32,8 +32,8 @@ ### Main Referee -1. The Referee works with an Assistant (side Referee) and manages the time and protocol (when - necessary, supported by an administrative crew). +1. The Referee works with an Assistant Referee (observing from a different angle) and manages the + time and protocol (when necessary, supported by an administrative crew). 2. The Referee gives the signals to start, stop, assigns points and describes what happened during the entire bout or at least the last exchange. @@ -56,19 +56,19 @@ 6. The Referee must be able to conduct and manage bouts in English. -### Side Referee (Assistant Referee) +### Assistant Referee 1. An Assistant Referee helps the main Referee in scoring and hit evaluation. Their task is to - observe a match from a different angle than the main Referee. + observe a bout from a different angle than the main Referee. 2. The Assistant may signal hits made by the fencers to the Referee by raising their arm, even if the Referee does not halt the exchange immediately. -3. An Assistant Referee is not responsible for point assignment nor for the overall match score. +3. An Assistant Referee is not responsible for point assignment nor for the overall bout score. ## Organisation of the competitions and classification -The values stated below (pool sizes, hit limits, bout durations, and the share of fencers +The values stated below (pool sizes, point limits, bout durations, and the share of fencers eliminated after the pools) are the standard defaults. The Organising Team may announce different values before the start of the competition; unless announced otherwise, the defaults apply. @@ -79,16 +79,16 @@ values before the start of the competition; unless announced otherwise, the defa 6 fencers. 2. In the pools a bout ends when: - 1. One of the fencers has scored 5 hits. In this case the score registered on the score- sheet - is the final score of the bout (V5 – Dn, where n = the number of hits scored by the losing + 1. One of the fencers has scored 5 points. In this case the score registered on the score- sheet + is the final score of the bout (V5 – Dn, where n = the number of points scored by the losing fencer). 2. Two minutes of effective fencing time have passed. (There is no warning for the last minute.) 3. If when the time limit expires there is a difference of at least one point between the scores of - the two fencers, the fencer who has scored the greater number of hits is declared winner. The + the two fencers, the fencer who has scored the greater number of points is declared winner. The score registered on the score-sheet is the actual score achieved in the bout (VN – Dn, where N = - the number of hits scored by the winning fencer and n = the number of hits scored by the losing + the number of points scored by the winning fencer and n = the number of points scored by the losing fencer). 4. If at the end of regulation time the scores are equal, the fencers fence for a deciding hit, @@ -112,7 +112,7 @@ values before the start of the competition; unless announced otherwise, the defa 7. After the pools, a single general ranking is established of all the fencers who have taken part in the pools, taking account, successively, of the indices V/M, HS – HR, HS. (V = - victories; M = bouts; HS = hits scored; HR = hits received.) + victories; M = bouts; HS = points scored; HR = points received.) 8. A summary classification table is then made in the following way: 1. The results written up on the summary table are added up to ascertain the two indices @@ -122,8 +122,8 @@ values before the start of the competition; unless announced otherwise, the defa 3. The fencer with the highest index (maximum 1) is seeded first. 4. In cases of equality in this first index, and to separate fencers with equal first indices, a second index is established, using the formula HS – HR, the difference between the total - number of hits scored and hits received. - 5. In cases of equality of the two indices V/M and HS – HR, the fencer who has scored most hits + number of points scored and points received. + 5. In cases of equality of the two indices V/M and HS – HR, the fencer who has scored most points is seeded highest. 6. In cases of absolute equality between two or more fencers, their seeding order is decided by drawing lots. @@ -145,22 +145,22 @@ values before the start of the competition; unless announced otherwise, the defa 1. The direct elimination table (bout plan) – complete or incomplete – is established taking account of the classification table and the special rules for each competition (See Figure 2.) -2. The organisers of a competition publish the direct elimination bout plan. The direct elimination - bouts are for 7 hits or end when the two periods of two minutes, with a one-minute rest +2. The Organising Team publishes the direct elimination bout plan. The direct elimination + bouts are for 7 points or end when the two periods of two minutes, with a one-minute rest between the two periods, have passed. 3. For the gold-medal bout (1st place) and the bronze-medal bout (3rd place), the Organising Team may - raise the hit limit above the standard seven (e.g. 10 or 15). The chosen limit (and any + raise the point limit above the standard seven (e.g. 10 or 15). The chosen limit (and any corresponding time structure) must be published in the official schedule before the start of the competition day. 4. During the one-minute rest a second/coach, named before the bout, may have access to the fencer. 5. The bout ends when: - 1. One of the fencers has scored 7 hits; or + 1. One of the fencers has scored 7 points; or 2. 2 × 2 minutes of effective fencing time have passed. -6. The fencer who has scored the greater number of hits is declared the winner. +6. The fencer who has scored the greater number of points is declared the winner. 7. If at the end of regulation time the scores are equal, the fencers fence for a deciding hit, with a maximum time limit of one minute. Before the fencing recommences the Referee draws lots @@ -183,7 +183,7 @@ values before the start of the competition; unless announced otherwise, the defa 1. First: the winner of the bout for the first place 2. Second: the loser of the bout for the first place 3. A bout for third and fourth places is fought between the two losers of the semi-final - matches. + bouts. 4. The remainder are placed, within each round of the direct elimination, in accordance with their classification for the composition of the direct elimination table. @@ -197,7 +197,7 @@ values before the start of the competition; unless announced otherwise, the defa during and after the event. 3. The head of the Refereeing Team oversees the allocation and performance of the Referees and - Assistants. The Refereeing committee can be approached directly by the participants or their + Assistants. The Head of the Refereeing Team can be approached directly by the participants or their representatives, if questions regarding the performance of any of the Referees are raised. 4. The head of Equipment Inspection performs pre-tournament checks of safety equipment and weapons, diff --git a/10-disciplinary.md b/10-disciplinary.md index 23760d7..92393c5 100644 --- a/10-disciplinary.md +++ b/10-disciplinary.md @@ -13,17 +13,17 @@ disturb the smooth running of the competition. During bouts no one is allowed to approach the arenas to give advice to the fencers, to criticise the Referee or the Assistant, to insult them or to attempt to influence them in any way. The second must remain in the space assigned to - them. The referee must stop immediately any activity which disturbs the smooth running of the + them. The Referee must stop immediately any activity which disturbs the smooth running of the bout which they are refereeing 3. Any person who, for any reason, threatens or insults an official is eligible for immediate disqualification/expulsion from the premises. -4. The referee, and/or the organising team, on their own authority, can decide to expel from the +4. The Referee, and/or the Organising Team, on their own authority, can decide to expel from the competition venue, with or without a warning, any person who by their gestures, attitude or language disturbs the good order or smooth running of the event. -## The Competitors +## The Fencers 1. By entering a fencing competition, fencers agree to observe the Rules and the decisions and instructions of the officials, to be respectful towards the Referees (Referee and Assistant), @@ -34,8 +34,8 @@ for offences of the 4th group are applied. 3. The fencers, completely equipped, with all equipment conforming with the regulations and ready - to fence, must be present at the time and place appointed for the beginning of the pool, match, - or bout of direct elimination, or at the time appointed for the checking of their equipment + to fence, must be present at the time and place appointed for the beginning of the pool or + direct elimination bout, or at the time appointed for the checking of their equipment before their bout, as well as during the competition, whenever the Referee requires it. 4. When presenting themselves to fence a bout, the fencers must arrive on the arena completely @@ -56,7 +56,7 @@ 7. The fencer, whether on or off the arena, must keep their mask on until the Referee calls ‘Halt!’. They must not address the Referee until the Referee has announced the decision. -8. Competitors must fence to their utmost ability in a sportsmanlike manner until the end of the +8. Fencers must fence to their utmost ability in a sportsmanlike manner until the end of the competition in order to obtain the best possible classification, without giving away hits or seeking to be favoured by being given hits by anyone. @@ -70,8 +70,8 @@ hit scored by the fencer at fault is annulled. 2. Before the beginning of each bout, the two fencers must perform a fencer’s salute to their - opponent, the referee, and preferably to the spectators. Equally, when the final hit has been - scored, the bout has not ended until the two fencers have saluted each other, the referee (and + opponent, the Referee, and preferably to the spectators. Equally, when the final hit has been + scored, the bout has not ended until the two fencers have saluted each other, the Referee (and the spectators). To this end, they must remain still while the Referee is making the decision; when the Referee has given the decision, they must return to their on-guard line, perform a fencer’s salute and shake hands with their opponent. If either or both of the two fencers refuse @@ -102,9 +102,9 @@ 3. The Referee has the right to interrupt a bout if the play becomes confused or dangerous, or the Referee is unable to clearly judge the action any more. In the absence of an objective scoring - device, the fencing phrases are judged according to the referee and assistant's observation of - the action. While fencers are welcome to address the referee for clarification or appeals before - the final decision is made, the referee's judgment regarding facts is not to be questioned in + device, the fencing phrases are judged according to the Referee and Assistant's observation of + the action. While fencers are welcome to address the Referee for clarification or appeals before + the final decision is made, the Referee's judgment regarding facts is not to be questioned in retrospect. 4. As director of the bout and arbiter of hits, the Referee may, in accordance with the rules and — @@ -116,7 +116,7 @@ 5. By reason of the right of jurisdiction which they have over all the fencers who participate in, or are present at a competition which they are refereeing, they can also propose the expulsion from the venue of the competition of the spectators, trainers, instructors and other persons who - accompany the competitors. + accompany the fencers. 6. Finally, they may recommend to the Organising Team all other penalties which they consider appropriate (exclusion from the whole competition, suspension or disqualification). The Head of @@ -125,12 +125,12 @@ ## The Organising Team and the Head of the Refereeing Team -1. The organising team and the head of the Refereeing Team have jurisdiction over all the fencers +1. The Organising Team and the head of the Refereeing Team have jurisdiction over all the fencers who take part in or are present at a competition which they are running. When necessary, they can intervene on their own initiative in all disputes. They are also responsible for maintaining order and discipline during competitions, and may use the penalties specified in the Rules. -2. All the decisions of the Organising team or the Head of the Refereeing Team are immediately +2. All the decisions of the Organising Team or the Head of the Refereeing Team are immediately enforceable. No appeal against a decision can suspend that decision during the competition. ## Penalties @@ -152,23 +152,23 @@ period of time. 2. All these penalties can be applied by the competent authorities at a competition — the Referee, - the Head of the Refereeing Committee, and the Organising Team. + the Head of the Refereeing Team, and the Organising Team. ### Penalties Related to Fencing -1. Refusal to award a hit actually made. Although a competitor may in fact have hit the opponent on +1. Refusal to award a hit actually made. Although a fencer may in fact have hit the opponent on the target, this hit may be disallowed, either because it did not arrive during the period of - time during which fencing is allowed, or because the competitor had crossed the boundaries of the + time during which fencing is allowed, or because the fencer had crossed the boundaries of the arena, or because violence was involved in the making of the hit, or because of other reasons as laid down in the Rules. -2. Award of a hit which has not in fact been received. A competitor may have a hit awarded against +2. Award of a hit which has not in fact been received. A fencer may have a hit awarded against them which they have not in fact received, either because they have crossed the limit of the arena, or because they have committed an offence which has prevented the opponent fencing. -3. Exclusion. A competitor who, while fencing, commits certain violent or vindictive actions against +3. Exclusion. A fencer who, while fencing, commits certain violent or vindictive actions against the opponent, or who does not fence to their utmost ability, or who profits from a fraudulent - agreement with the opponent, may be excluded from the competition. A competitor who is excluded + agreement with the opponent, may be excluded from the competition. A fencer who is excluded from a competition may not continue to take part in that competition, even if they are already qualified for promotion to the next round. They lose the right to their individual classification and all the fencers ranked after the disqualified fencer move up one place in the results of the @@ -178,14 +178,14 @@ 1. Exclusion from the Competition. It may also be imposed for a disciplinary offence (failure to appear on the arena as required, weapons not in accordance with the rules, reprehensible attitude - towards an official, etc.). The consequences of such exclusion for the competitor are the same as + towards an official, etc.). The consequences of such exclusion for the fencer are the same as those described in the Article 29. above. 2. Expulsion from the venue of the competition or the tournament. - 1. A competitor who is excluded from a tournament is no longer allowed to participate in any + 1. A fencer who is excluded from a tournament is no longer allowed to participate in any competition during that tournament, either at the same weapon or another. - 2. All participants or non-competitors who participate in or are present at a competition + 2. All participants or non-fencers who participate in or are present at a competition (instructors, trainers, technicians, supporters, officials, spectators) may be expelled. Such expulsion has the effect of forbidding them access to the venue for the duration of the competition or tournament. The imposition of this penalty gives no one a right to @@ -194,7 +194,7 @@ ### The types (groups) of penalty 1. There are three types of penalty to be applied in the cases indicated in the table in Article. - If a referee has to penalise a fencer who has committed several faults at the same time, they + If a Referee has to penalise a fencer who has committed several faults at the same time, they should penalise the least serious fault first. 2. Penalties are cumulative and they are valid for the bout with the exception of those indicated @@ -206,8 +206,8 @@ 4. The penalties are as follows: 1. a warning, indicated by a YELLOW CARD with which the Referee identifies the fencer at fault. - The fencer then knows that any further offence on their part results in a penalty hit. - 2. a penalty hit, indicated by a RED CARD with which the Referee identifies the fencer at fault. + The fencer then knows that any further offence on their part results in a penalty point. + 2. a penalty point, indicated by a RED CARD with which the Referee identifies the fencer at fault. A hit is added to the score of the opponent and may, if the last hit is at stake, lead to the loss of the bout. Furthermore, a RED CARD can only be followed by another RED CARD or by a BLACK CARD, depending on the nature of the second offence. @@ -215,9 +215,9 @@ a BLACK CARD with which the Referee identifies the person at fault. 4. Expulsion from the competition venue (any person disturbing the order of the competition). -5. All warnings (YELLOW CARDS), penalty hits (RED CARDS) and exclusions (BLACK CARDS) must be noted - on the score-sheet of the bout, the pool or the match, together with the group to which they - belong. +5. All warnings (YELLOW CARDS), penalty points (RED CARDS) and exclusions (BLACK CARDS) must be noted + on the score-sheet of the bout, the pool or the direct-elimination bout, together with the group + to which they belong. 6. The offences and their penalties which appear in different articles of the Rules are summarised in the table that follows in Article 44.); they are divided into four groups. All these @@ -228,18 +228,18 @@ 1. The first infringement in this First Group is penalised by a YELLOW CARD (warning). If during the same bout the fencer commits the same or a different offence in this group the Referee penalises - them on each occasion, with a RED CARD (penalty hit). If the fencer at fault has already been + them on each occasion, with a RED CARD (penalty point). If the fencer at fault has already been penalised by a RED CARD because of an offence listed in the Second or Third Group, they receive a further RED CARD for their first infringement relating to the First Group. ### The Second Group of offences 1. Every offence in the Second Group, including the first infringement, is penalised by a RED CARD - (penalty hit). + (penalty point). ### The Third Group of Offences -1. The first infringement in the Third Group is penalised by a RED CARD (penalty hit), even if the +1. The first infringement in the Third Group is penalised by a RED CARD (penalty point), even if the fencer at fault has already received a RED CARD as a result of offences in the First or Second Groups. diff --git a/appendices/01-glossary.md b/appendices/01-glossary.md index add2a3e..aef6c10 100644 --- a/appendices/01-glossary.md +++ b/appendices/01-glossary.md @@ -6,22 +6,41 @@ Referee's commands to start ('Fence!') and stop ('Halt!'). At the end of an exchange the Referee either awards one or both fencers a point, awards none, and/or imposes penalties when necessary. -2. *Bout* – the whole fight between two fencers, comprising a series of exchanges, where points +2. *Bout* – the whole contest between two fencers, comprising a series of exchanges, where points awarded for the individual exchanges determine the outcome. Only one fencer is declared a winner of a bout. 3. *Competition* - is a series of multiple Bouts performed with a specific weapon, to declare an - overall winner from the contestants. + overall winner from the fencers. 4. *Tournament* – is a series of Competitions in the weapons announced by the Organising Team. 5. *Fencing time* – is the time required to perform one simple fencing action. 6. *In measure* – is a mutual distance between two fencers in which one or both of them can reach the opponent with an attack. 7. *Stercke* (forte) – the strong part of the blade, closest to the cross-guard, used mainly for parrying and binding actions. +8. *Priority* (right of way; historically *Vor*) – the convention that + determines which fencer's hit scores when both fencers are hit within one + period of fencing time. Used in the Longsword and Sabre categories (see + [Right of Way and Priority Rules](../04-right-of-way.md)). +9. *Simultaneous hit* – both fencers are hit as the result of a similar + conception and execution of an action at the same time. +10. *Double hit* – both fencers are hit within one period of fencing time, + without the actions being simultaneous. +11. *After-action* – a counter action (or the finishing move of a compound + action) started at or after the moment of receiving a hit. After-actions + never score and do not annul the hit received. +12. *Off-target* – a part of the body that does not score when hit and does not + stop the exchange (e.g. the legs in the Sabre category). +13. *Forbidden target* – the back of the head, the spine, the groin, the feet + and the back of the knees. Hitting a forbidden target is penalised (see + penalty 1.5). +14. *Arena* (fencing arena) – the marked area in which bouts take place. +15. *On-guard line* – the marked line on which each fencer takes the on-guard + position, at least 2 m from the centre of the arena. ## Fencing actions 1. This section of the rules defines basic fencing actions in terms which are easy to understand for - every contestant even though they might practice different schools of fencing and thus use + every fencer even though they might practice different schools of fencing and thus use various terminologies. It is stressed that this section in no way replaces a treatise on fencing and is only included in order to help the reader understand the rules. @@ -78,7 +97,7 @@ 3. The reprise of the attack - A new attack executed immediately after a return to the on-guard position. -7. *Counter-time* - Any action made by the attacker against a stop hit made by the opponent. +7. *Counter-time* - Any action made by the attacker against a stop-hit made by the opponent. ### Defensive actions @@ -89,5 +108,5 @@ 2. *Evasion* – it is an action of the body when a potential target avoids being hit by prolonging the distance or by another movement. -3. *Langort* (point in line) – a specific position in which the fencer’s sword arm is kept straight +3. *Point in line* (*Langort*) – a specific position in which the fencer’s sword arm is kept straight and the point of their weapon continually threatens the opponent’s valid target. diff --git a/scripts/check_conventions.sh b/scripts/check_conventions.sh new file mode 100755 index 0000000..e6c2a6a --- /dev/null +++ b/scripts/check_conventions.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# Konvenčné kontroly rulebooku. Exit 0 = OK. Kontroluje kapitoly a appendices, +# nie docs/ ani slovenské súbory. +set -u +FILES="01-intro.md 02-equipment.md 03-general.md 04-right-of-way.md \ +05-longsword.md 06-rapier.md 07-sabre.md 08-sword-and-buckler.md \ +09-organisational.md 10-disciplinary.md README.md appendices/01-glossary.md" +fail=0 +check_zero() { # $1 = popis, $2 = pattern + hits=$(grep -nE "$2" $FILES 2>/dev/null) + if [ -n "$hits" ]; then echo "FAIL: $1"; echo "$hits"; fail=1; fi +} +check_zero "zakázané modálne tvary" '\bshall\b|is going to' +check_zero "nekanonické osoby" '\bcontestants?\b|\bcompetitors?\b|\bathletes?\b' +check_zero "nekanonický súboj" '\bthe match\b|\bthe fight\b' +check_zero "rodové zámená" 'he/she|she/he|his/her|him/her|him/them' +check_zero "nekanonická priorita" 'right of initiative' +check_zero "nekanonická čiara" 'start-line|\bstarting line\b' +check_zero "nekanonický asistent" 'Side Referee' +check_zero "americký pravopis organizácie" 'Organizing Team|organizer' +check_zero "nekanonický cross-guard" '\bcrossguard\b|cross/guard' +check_zero "nekanonický stop hit" '\bstop hit\b' +check_zero "rozbité FIE odkazy" 'Article [0-9]|in Article\.|Figure 2' +check_zero "staré HTML atribúty" 'bgcolor' +exit $fail From 3a449bc5752fe403cdc6bc308e4245af8779386a Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sun, 9 Aug 2026 00:36:52 +0200 Subject: [PATCH 09/20] style: fix hit-limit/point-limit inconsistency and intro stutter from 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 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- 01-intro.md | 4 ++-- 03-general.md | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/01-intro.md b/01-intro.md index 9481cd0..9dbb548 100644 --- a/01-intro.md +++ b/01-intro.md @@ -5,8 +5,8 @@ touch without being touched'. In common with historical rule-sets, competitions abstracted test of skill, and not a simulation of an unregulated combat “to the finish” – in this sense, each individual point is regarded as a separate "duel" within the framework of the following rules, the loss of which is indicated by having a point called against the losing fencer. -Our intention is to determine the relative ranking, and the best fencer among the fencers -present on the days of the competitions, in terms of tactical, technical, and athletic skills. +Our intention is to determine the relative ranking, and the best fencer present on the days of +the competitions, in terms of tactical, technical, and athletic skills. One of the principles which stand above all others is the principle of fair play. Every functional ruleset should be efficient in providing equal opportunities for every tournament fencer. diff --git a/03-general.md b/03-general.md index fc8b31a..4891211 100644 --- a/03-general.md +++ b/03-general.md @@ -23,7 +23,7 @@ 5. The fencers called first place themselves to the right of the Referee behind the on-guard line. -6. Bout durations, hit limits and tie-break procedures are set out in the +6. Bout durations, point limits and tie-break procedures are set out in the [Organisational Rules](09-organisational.md). Unless the Organising Team announces otherwise, the defaults are: pool bouts 2 minutes or 5 points; direct elimination bouts 2 × 2 minutes (with a one-minute rest) or 7 @@ -150,7 +150,9 @@ ## The methods of scoring hits -1. *Fencing time* (see [Glossary](appendices/01-glossary.md)) is counted as follows: in judging hits, Referees count immediate actions that start up to the moment of the first hit as relevant actions. +1. *Fencing time* (see [Glossary](appendices/01-glossary.md)) is counted as follows: in judging + hits, Referees count immediate actions that start up to the moment of the first hit as relevant + actions. 2. When only one of the fencers receives a hit within one period of fencing time, the fencer who was hit is called one point against. From b06d7d88f07a3b90e877aea9182bc02eebfe8234 Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sun, 9 Aug 2026 01:07:36 +0200 Subject: [PATCH 10/20] feat: global article numbering with chapter prefixes, precise cross-references, remove broken FIE references Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- 01-intro.md | 6 ++ 02-equipment.md | 162 ++++++++++++++++++++-------------------- 03-general.md | 152 +++++++++++++++++++------------------ 04-right-of-way.md | 79 ++++++++++++-------- 05-longsword.md | 27 +++---- 06-rapier.md | 51 ++++++------- 07-sabre.md | 18 ++--- 08-sword-and-buckler.md | 16 ++-- 09-organisational.md | 134 +++++++++++++++++---------------- 10-disciplinary.md | 145 ++++++++++++++++++----------------- 10 files changed, 415 insertions(+), 375 deletions(-) diff --git a/01-intro.md b/01-intro.md index 9dbb548..9aba4be 100644 --- a/01-intro.md +++ b/01-intro.md @@ -24,3 +24,9 @@ ruleset should be efficient in providing equal opportunities for every tournamen 3. Blocks introduced with **Note:** or **Example:** are informative only; they illustrate the rules but contain no requirements. + +4. Rules are numbered with a chapter prefix: E = Equipment, G = General rules, + RoW = Right of Way, LS = Longsword, R = Rapier, S = Sabre, SB = Sword & + Buckler, O = Organisational, D = Disciplinary. Cite rules by these + identifiers (e.g. "G.16", "RoW.12(a)"). Identifiers are stable: new rules + receive new numbers and existing numbers are not reused. diff --git a/02-equipment.md b/02-equipment.md index 37ce3bc..2ceafd6 100644 --- a/02-equipment.md +++ b/02-equipment.md @@ -2,100 +2,100 @@ ## Fencing Arena -1. A fencing arena must provide similar conditions to both fencers. This applies mainly to +**E.1** A fencing arena must provide similar conditions to both fencers. This applies mainly to angles of the light and the ground slipperiness. -2. The fencing arena is a square or rectangular shape, its dimensions must be between a minimum of +**E.2** The fencing arena is a square or rectangular shape, its dimensions must be between a minimum of 5x9 meters and a maximum of 8x12 meters. The borders of a fencing arena must be marked by a full line attached or drawn on the ground. The closest obstacle must be at least 1 meter away from the marking line. -3. The center point of a fencing arena may be marked. +**E.3** The center point of a fencing arena may be marked. -4. The starting position of the fencers must be marked in such a way that the on-guard line is at least 2m +**E.4** The starting position of the fencers must be marked in such a way that the on-guard line is at least 2m away from the center of the arena in opposite directions, setting up at least 4m distance between the fencers at the start of each exchange. ## Equipment standards -1. Every fencer is responsible for their equipment, and must use each element of the mandatory +**E.5** Every fencer is responsible for their equipment, and must use each element of the mandatory equipment, when entering a tournament. If a piece of equipment is declared unsuitable or unfit and the fencer is unable to get a suitable substitute they are prohibited from entering the tournament. -2. The designated tournament staff inspect the mandatory equipment before the competition; the +**E.6** The designated tournament staff inspect the mandatory equipment before the competition; the Referee of each fencing arena performs an additional check. A Referee may require a fencer to change or adjust a part of their equipment. Nonconforming clothing or equipment is penalised according to the first group of offences (see penalty 1.6), and the fencer is not allowed to start or continue competing until the item(s) have been approved or replaced with approved ones. For an equipment failure occurring in the course of a bout, a break of up to 3 minutes may be - allowed (see the General Rules). + allowed (see [G.23](03-general.md) — equipment failure breaks). -3. In case of an accident caused by unfit or inadequate equipment approved negligently by the +**E.7** In case of an accident caused by unfit or inadequate equipment approved negligently by the equipment check staff or the Referee, the responsibility lies with the staff or Referee, who approved the fencer’s entry. The staff or the Referee is subjected to disciplinary proceedings and their license may be revoked. -4. A Referee has the right to forbid a piece or a set of equipment which does not comply with the +**E.8** A Referee has the right to forbid a piece or a set of equipment which does not comply with the prescribed norm. ### Protection Gear #### Head -1. An undamaged mask that is approved by the FIE (CE level 2, 1600N resistance) is mandatory. +**E.9** An undamaged mask that is approved by the FIE (CE level 2, 1600N resistance) is mandatory. -2. Back of head protection and cervical spine protection is mandatory. +**E.10** Back of head protection and cervical spine protection is mandatory. -3. A neck protector with a thick layer protecting the larynx is mandatory. +**E.11** A neck protector with a thick layer protecting the larynx is mandatory. -4. The bib of the mask must not roll up. +**E.12** The bib of the mask must not roll up. -5. The head protection must leave no skin or unprotected area visible when the fencer tilts their +**E.13** The head protection must leave no skin or unprotected area visible when the fencer tilts their head at any normal angle. #### Hands, arms and torso protection -1. Only special HEMA fencing gloves or gloves which are meeting all requirements of +**E.14** Only special HEMA fencing gloves or gloves which are meeting all requirements of sporting-historical fencing are allowed. It is forbidden to use pieces of metal on any place of the gloves. -2. Rapier and Sabre: A fencer with a bell guard, basket, or sufficiently closed hilt does not need +**E.15** Rapier and Sabre: A fencer with a bell guard, basket, or sufficiently closed hilt does not need to wear a massive glove with the primary weapon. However, additional hand protection is needed for the protection of the wrist and forearm. -3. Rapier: If a fencer uses a side weapon, this hand needs to be protected with a glove with +**E.16** Rapier: If a fencer uses a side weapon, this hand needs to be protected with a glove with additional hand protection (e.g. padding...) -4. Gloves used in a tournament don’t need to have a thickened layer on the inside of the palm but +**E.17** Gloves used in a tournament don’t need to have a thickened layer on the inside of the palm but the palm must be covered at least by a simple glove or textile. -5. The torso of the body must be protected with an undamaged fencing jacket or gambeson with at +**E.18** The torso of the body must be protected with an undamaged fencing jacket or gambeson with at least 350N FIE certification, made of special hardened or thick material which prevents blade penetration and eases the blade impact. The jacket is subjected to control by the tournament staff and the arena Referee. A fencing jacket must cover the armpits as well. -6. Every female fencer must wear solid breast/chest protection. +**E.19** Every female fencer must wear solid breast/chest protection. -7. Additional protection of the arms or elbows is required if the jacket does not provide +**E.20** Additional protection of the arms or elbows is required if the jacket does not provide sufficient protection itself. -8. Every part of the body must be covered. The gloves must overlap the jacket sleeves, leaving no +**E.21** Every part of the body must be covered. The gloves must overlap the jacket sleeves, leaving no gap. -9. An 800N FIE-certified under-plastron is mandatory in the Rapier category. +**E.22** An 800N FIE-certified under-plastron is mandatory in the Rapier category. -10. A rigid wrist guard is mandatory in the Longsword, Sabre, and Sword & Buckler categories. +**E.23** A rigid wrist guard is mandatory in the Longsword, Sabre, and Sword & Buckler categories. #### Legs -1. A groin protector is mandatory for every male fencer in all weapon categories. +**E.24** A groin protector is mandatory for every male fencer in all weapon categories. -2. The knees and shins must be protected at the front and the sides as well. +**E.25** The knees and shins must be protected at the front and the sides as well. -3. The hips must be protected either by a fencing jacket or by padded pants. +**E.26** The hips must be protected either by a fencing jacket or by padded pants. -4. The thighs and the upper legs must be protected with CE Level 1 certified pants (350N) or other +**E.27** The thighs and the upper legs must be protected with CE Level 1 certified pants (350N) or other approved thrust-resistant protection. ### Weapons @@ -107,153 +107,153 @@ blade reaches full bend. #### Longsword -1. Only straight-bladed, European-type simulators are allowed in the tournament. A longsword must +**E.28** Only straight-bladed, European-type simulators are allowed in the tournament. A longsword must consist of a blade with two edges, a cross-guard, a handle, and a pommel. Longswords must be made of proper steel (aluminium, plastic or wooden swords are not accepted) and comply with certain qualities, see below. -2. The blade must not bear signs of heavy damage, must not be bent, broken or ruptured. The edges +**E.29** The blade must not bear signs of heavy damage, must not be bent, broken or ruptured. The edges must be round and blunt. -3. A blade may contain a wide blade root, also known as *Schilt*, which must have round and blunt +**E.30** A blade may contain a wide blade root, also known as *Schilt*, which must have round and blunt edges. -4. The cross-guard must be straight and must be round at both ends. Additional protection (e.g. in +**E.31** The cross-guard must be straight and must be round at both ends. Additional protection (e.g. in a form of rings) is not allowed. -5. The pommel must be smooth and have no studs. +**E.32** The pommel must be smooth and have no studs. -6. The acceptable flexibility range for longsword blades is 9–16 kg. +**E.33** The acceptable flexibility range for longsword blades is 9–16 kg. -7. The minimum point surface area is 70mm². +**E.34** The minimum point surface area is 70mm². -8. The point of the blade must be either flared or rounded to prevent potential penetration. +**E.35** The point of the blade must be either flared or rounded to prevent potential penetration. -9. The point of balance of the sword cannot be more than 9cm away from the cross-guard. +**E.36** The point of balance of the sword cannot be more than 9cm away from the cross-guard. -10. The point of the sword must be covered by contrasting high-visibility tape for better +**E.37** The point of the sword must be covered by contrasting high-visibility tape for better visibility. -11. The overall length of the sword must be within 120-140cm. +**E.38** The overall length of the sword must be within 120-140cm. -12. Sword Weight in the men's category must be between 1400 and 1700g. For the +**E.39** Sword Weight in the men's category must be between 1400 and 1700g. For the women's category, the sword must weigh between 1250 and 1600g. #### One-handed sword -1. Only straight-bladed, European-type simulators are allowed in the tournament. In modern times +**E.40** Only straight-bladed, European-type simulators are allowed in the tournament. In modern times the so-called Fechschwert/Feder sword (with widened *ricasso*) or *Spada* sword (with a complex handle which protects the hand) are preferred. A sword must consist of a blade with two edges, a cross-guard, a handle, and a pommel. -2. The blade must not bear signs of heavy damage, must not be bent, broken or ruptured. The edges +**E.41** The blade must not bear signs of heavy damage, must not be bent, broken or ruptured. The edges must be round and blunt. -3. A complex cross-guard or rings are allowed. +**E.42** A complex cross-guard or rings are allowed. -4. The pommel must be smooth and have no studs. +**E.43** The pommel must be smooth and have no studs. -5. The minimum point surface area is 50mm². +**E.44** The minimum point surface area is 50mm². -6. The point of the blade must be either flared or rounded to prevent potential penetration. +**E.45** The point of the blade must be either flared or rounded to prevent potential penetration. -7. The point of balance of the sword cannot be more than 9cm away from the cross-guard. +**E.46** The point of balance of the sword cannot be more than 9cm away from the cross-guard. -8. The point of the sword must be covered by contrasting high-visibility tape for better +**E.47** The point of the sword must be covered by contrasting high-visibility tape for better visibility. -9. The overall length of the sword must be within 70-100cm. +**E.48** The overall length of the sword must be within 70-100cm. -10. The weight of the sword must be between 900 to 1200g. +**E.49** The weight of the sword must be between 900 to 1200g. #### Buckler -1. A buckler is used in tournaments in the category sword and buckler. +**E.50** A buckler is used in tournaments in the category sword and buckler. -2. By the name buckler, it is meant a circular shield that can be gripped in a fist. +**E.51** By the name buckler, it is meant a circular shield that can be gripped in a fist. -3. The core of a buckler is made with a shield boss, which protects the hand. +**E.52** The core of a buckler is made with a shield boss, which protects the hand. -4. The maximal allowed shield diameter is 40cm. +**E.53** The maximal allowed shield diameter is 40cm. -5. The body of buckler must be wooden or metallic; it cannot have any studs or sharp edges. +**E.54** The body of buckler must be wooden or metallic; it cannot have any studs or sharp edges. -6. The weight of the buckler is not limited, but it must have a circular shape; so-called *Targa* +**E.55** The weight of the buckler is not limited, but it must have a circular shape; so-called *Targa* shield is not allowed in the tournament. -7. The buckler serves a defensive purpose; covering, engaging and diverting of the opponent’s +**E.56** The buckler serves a defensive purpose; covering, engaging and diverting of the opponent’s weapon is possible. #### Rapier -1. Historicizing replicas of rapiers with a long blade meant for sporting-historical fencing are +**E.57** Historicizing replicas of rapiers with a long blade meant for sporting-historical fencing are allowed (modern epee or foil blades are not allowed). -2. The length of a handle, type of hilt or width of cross-guard is not limited. The overall length +**E.58** The length of a handle, type of hilt or width of cross-guard is not limited. The overall length of the rapier must not exceed 130cm. -3. The cross-guard must be round at both ends. +**E.59** The cross-guard must be round at both ends. -4. The maximum length of the blade including *ricasso* is 110cm. The blade must be flexible, +**E.60** The maximum length of the blade including *ricasso* is 110cm. The blade must be flexible, especially from the middle of the rapier to the point in order not to pose a risk in thrust attacks. For rapier blades, the acceptable flexibility is 10 kg or less. -5. The weight of the sword must be between 900 to 1300g. +**E.61** The weight of the sword must be between 900 to 1300g. -6. The blade must not bear signs of heavy damage, must not be bent, broken or ruptured, which may +**E.62** The blade must not bear signs of heavy damage, must not be bent, broken or ruptured, which may pose a risk of breaking the weapon. -7. The point of the primary weapon must be blunt and rounded. If the tip is not rounded, it must be +**E.63** The point of the primary weapon must be blunt and rounded. If the tip is not rounded, it must be additionally secured by protection such as properly fitted plastic or cork end. Adequacy of protection is judged by the main Referee or the Organising Team. -8. The point of the primary and side weapon must be covered by contrasting high-visibility tape +**E.64** The point of the primary and side weapon must be covered by contrasting high-visibility tape for better visibility. -9. The minimum point surface area is 50mm². +**E.65** The minimum point surface area is 50mm². #### Side weapon - dagger -1. In the rapier category, it is possible to use a side weapon, which serves defensive purposes. The +**E.66** In the rapier category, it is possible to use a side weapon, which serves defensive purposes. The Organising Team states the usage of the side weapon. -2. The dagger blade must be straight; daggers with more blades or with a special *ricasso* meant for +**E.67** The dagger blade must be straight; daggers with more blades or with a special *ricasso* meant for intercepting a weapon or curved daggers are not allowed in the tournament. -3. The maximum length of the blade is 45cm and the maximum overall length is 60cm. +**E.68** The maximum length of the blade is 45cm and the maximum overall length is 60cm. -4. The point of dagger must be blunt and rounded. If the tip is not rounded, it must be additionally +**E.69** The point of dagger must be blunt and rounded. If the tip is not rounded, it must be additionally secured by protection such as properly fitted plastic or cork end. The point of side weapon must be covered by contrasting high-visibility tape. #### Cloak -1. In the rapier category, it is possible to use a cloak, which serves defensive purposes. The +**E.70** In the rapier category, it is possible to use a cloak, which serves defensive purposes. The Organising Team must announce in advance whether they allow the usage of cloaks in their competitions. -2. The term cloak refers to a semi-circular or circular piece of cloth. +**E.71** The term cloak refers to a semi-circular or circular piece of cloth. -3. The cloak must be made of natural materials such as wool, cotton, or a similar fibre; synthetic +**E.72** The cloak must be made of natural materials such as wool, cotton, or a similar fibre; synthetic materials are not allowed. -4. The cloak must not have any attached metal parts such as weights. However, it is allowed to be +**E.73** The cloak must not have any attached metal parts such as weights. However, it is allowed to be quilted with fabric or a pattern. #### Sabre -1. A sabre is a one-handed light cut and thrust blade, either straight or lightly curved. +**E.74** A sabre is a one-handed light cut and thrust blade, either straight or lightly curved. -2. The sabre, including blade and basket, must weigh between 650 and 800 g. +**E.75** The sabre, including blade and basket, must weigh between 650 and 800 g. -3. The maximal blade length is 90cm. The maximal total sabre length is 105cm. +**E.76** The maximal blade length is 90cm. The maximal total sabre length is 105cm. -4. The blade must not have any significant bends or signs of damage. +**E.77** The blade must not have any significant bends or signs of damage. -5. For sabre blades, the acceptable flexibility is 10 kg or less. +**E.78** For sabre blades, the acceptable flexibility is 10 kg or less. -6. The minimum point surface area is 50mm². The blade must have a safe tip: rolled, thickened or +**E.79** The minimum point surface area is 50mm². The blade must have a safe tip: rolled, thickened or spatulated. The tip must be further built up at the event with contrasting high-visibility tape. -7. The Organising Team reserves the right to disallow weapons they feel are unsafe or against the spirit +**E.80** The Organising Team reserves the right to disallow weapons they feel are unsafe or against the spirit of the rules. diff --git a/03-general.md b/03-general.md index 4891211..0d5aac2 100644 --- a/03-general.md +++ b/03-general.md @@ -4,118 +4,120 @@ ### Starting the bout -1. Each bout is performed for a set amount of time or until a set amount of points. This is achieved +**G.1** Each bout is performed for a set amount of time or until a set amount of points. This is achieved through a series of separate, independent exchanges. -2. The fencers present themselves in the arena when called by the Referee before each pool or +**G.2** The fencers present themselves in the arena when called by the Referee before each pool or direct elimination bout, in appropriate gear conforming to the rules and be ready to fence. -3. Equipment checks before and during the competition, and the penalties for +**G.3** Equipment checks before and during the competition, and the penalties for nonconforming equipment, are set out in the - [Technical & Equipment Standards](02-equipment.md). + [Technical & Equipment Standards](02-equipment.md), E.6. -4. Each fencer is allowed one coach/second who is allowed to be near the arena during bouts. This +**G.4** Each fencer is allowed one coach/second who is allowed to be near the arena during bouts. This person may speak to their fencer during breaks but may not disturb the bout with verbal or physical gestures. Generally, it is the fencer who should address the Referee for help, clarification or appeals, the seconds should not interfere with the bout in any other way than advising their fencers during breaks. -5. The fencers called first place themselves to the right of the Referee behind the on-guard +**G.5** The fencers called first place themselves to the right of the Referee behind the on-guard line. -6. Bout durations, point limits and tie-break procedures are set out in the - [Organisational Rules](09-organisational.md). Unless the Organising Team +**G.6** Bout durations, point limits and tie-break procedures are set out in the + [Organisational Rules](09-organisational.md), O.16–O.34. Unless the Organising Team announces otherwise, the defaults are: pool bouts 2 minutes or 5 points; direct elimination bouts 2 × 2 minutes (with a one-minute rest) or 7 points. The Timekeeper announces the end of time. Only the Referee may stop the bout. -7. Before the beginning of each bout, the two fencers called on the arena salute to their opponent, +**G.7** Before the beginning of each bout, the two fencers called on the arena salute to their opponent, and the Referee. Fencers come on guard when the Referee gives the order ‘On guard!’, after which the Referee asks, ‘Are you ready?’. On the affirmative, or in the absence of a negative reply, the command is given for fencing to commence with the word ‘Fence!’. ### Stopping the exchange -8. The exchange stops when the Referee commands ‘Halt!/Stop!’. The most common reasons for stopping +**G.8** The exchange stops when the Referee commands ‘Halt!/Stop!’. The most common reasons for stopping an exchange: - 1. a valid hit has been made - 2. an invalid hit has been made, which may complicate the evaluation of any further actions - 3. a fencer has left the arena with both feet - 4. end of time - 5. dangerous or confused fencing - 6. equipment failure - 7. injury - 8. a fencer has requested to break the exchange - -9. Fencers may ask for a break by signaling with their arm raised. This may be done due to any + +- a) a valid hit has been made +- b) an invalid hit has been made, which may complicate the evaluation of any further actions +- c) a fencer has left the arena with both feet +- d) end of time +- e) dangerous or confused fencing +- f) equipment failure +- g) injury +- h) a fencer has requested to break the exchange + +**G.9** Fencers may ask for a break by signaling with their arm raised. This may be done due to any reason that proves to be valid (e.g. equipment failure, injury). However, the exchange stops only when the Referee gives the command to stop. -10. No actions that have started before the command to start or after the command to stop may be +**G.10** No actions that have started before the command to start or after the command to stop may be counted as valid. Starting any action before the command to start and initiating an action after the command to stop belong to the first group of offences. -11. Invalid hits may be disregarded at the Referee's discretion as if never happened, when the +**G.11** Invalid hits may be disregarded at the Referee's discretion as if never happened, when the Referee is able to clearly follow the exchange. -12. If a hit that the Referee ignored as invalid proves, when the exchange is stopped, to have been +**G.12** If a hit that the Referee ignored as invalid proves, when the exchange is stopped, to have been valid, the Referee must, if possible, re-judge the exchange from that actual first hit. Later hits are annulled, even if they were valid. ### Arena boundaries -13. When a fencer crosses one of the boundaries of the arena with both feet completely off the +**G.13** When a fencer crosses one of the boundaries of the arena with both feet completely off the arena, the Referee must immediately stop the exchange. -14. If the fencer goes off the arena with both feet, the Referee must annul everything that has +**G.14** If the fencer goes off the arena with both feet, the Referee must annul everything that has occurred after the boundary has been crossed. -15. A hit scored by the fencer who leaves the arena with one foot only is valid provided that the +**G.15** A hit scored by the fencer who leaves the arena with one foot only is valid provided that the action was started before the exchange was stopped, even if the fencer leaves the arena afterwards. -16. If a fencer crosses the boundary of the arena with both feet without having scored a valid hit +**G.16** If a fencer crosses the boundary of the arena with both feet without having scored a valid hit before crossing (see penalty 0.3): - 1. upon the first occasion within a bout, the fencer receives a verbal warning - 2. on each subsequent occasion within the bout, a point is scored against the fencer (as if + +- a) upon the first occasion within a bout, the fencer receives a verbal warning +- b) on each subsequent occasion within the bout, a point is scored against the fencer (as if they had been hit). -17. A fencer who involuntarily crosses one of the boundaries of the arena as the result of any +**G.17** A fencer who involuntarily crosses one of the boundaries of the arena as the result of any accidental cause (such as jostling/being pushed out by the opponent) incurs no penalty. ### Restarting, video review and end of the bout -18. After each valid hit and in case the exchange is stopped for other reasons (confused fencing, +**G.18** After each valid hit and in case the exchange is stopped for other reasons (confused fencing, malfunction, unsuccessful grappling, etc.) the bout continues from the 'On guard' position, at the on-guard line. -19. When available, fencers have the right to appeal for video review once during bout. If the video +**G.19** When available, fencers have the right to appeal for video review once during bout. If the video review alters the Referee's verdict in their favour, they retain the right to appeal for video review during that bout. -20. In case the points of the fencers are equal at the time limit, an additional minute of time is +**G.20** In case the points of the fencers are equal at the time limit, an additional minute of time is given, during which the first valid hit wins the bout. Additionally, before overtime starts, the Referee draws lots and randomly assigns one of the two fencers with priority. If the sudden death overtime runs out with neither fencer scoring, the fencer with priority wins the bout. This randomly assigned priority has no effect on the judgment of actions during the overtime. -21. At the end of the bout the Referee announces the winner and the final score. The opponents +**G.21** At the end of the bout the Referee announces the winner and the final score. The opponents must salute the Referees and the opponent and shake hands with the opponent (Refusal to observe this rule by one or both of the opponents belongs to the fourth group of offences). -22. After the pool round and each direct elimination bout, the fencers must check and sign the +**G.22** After the pool round and each direct elimination bout, the fencers must check and sign the result sheet filled in by the Referee during the bout, before leaving the arena. ### Equipment failure and injury breaks -23. For an equipment failure which occurs in the course of a bout, the Referee may allow a break in +**G.23** For an equipment failure which occurs in the course of a bout, the Referee may allow a break in the bout lasting up to 3 minutes (measured from the point when the failure has been acknowledged by the Referee). This time interval can be used to mend or replace, and check the equipment in question. If a fencer is not able to continue fencing before or at the end of the break, the Referee has the authority to disqualify the fencer from that bout. -24. For an injury or cramp which occurs in the course of a bout the Referee may allow a break in the +**G.24** For an injury or cramp which occurs in the course of a bout the Referee may allow a break in the bout lasting up to 10 minutes (measured from the point when the qualified staff give their opinion). This time interval is reserved for the treatment of the injury or cramp which brought it about. No further interruption can be allowed in the same bout for the same injury. If the @@ -125,103 +127,104 @@ ### Forfeits and withdrawal -25. In case the fencer forfeits one bout due to an equipment malfunction or injury, during the pool +**G.25** In case the fencer forfeits one bout due to an equipment malfunction or injury, during the pool phase, the other fencer is declared as winning, but the score is not annulled (it is possible to win a bout while having less points than the opponent, in this case). In the direct elimination phase, the other fencer is declared as winning, and the fencer does not lose their place in the overall classification of the competition. -26. Only one bout can be forfeited in the pool, should the fencer be unable to fence through a bout +**G.26** Only one bout can be forfeited in the pool, should the fencer be unable to fence through a bout a second time, they must withdraw from the competition. (They may still participate in other competitions/weapons in the tournament) -27. In case the fencer is withdrawn from the competition during the pool bouts, their results are +**G.27** In case the fencer is withdrawn from the competition during the pool bouts, their results are scratched, and their opponents are declared as winning V0-D0 in each of their past or future pool bouts, regardless of the previously achieved results. The withdrawn fencer does not participate in the calculation of ranking for the direct elimination table. -28. If the fencer withdraws from the competition during the last pool bout, the score is +**G.28** If the fencer withdraws from the competition during the last pool bout, the score is recorded as if they had forfeited only one pool bout (see previous paragraph), but they are not included in the calculation if ranking for the direct elimination table. -29. If the fencer withdraws during the direct elimination phase, the opponent is declared as +**G.29** If the fencer withdraws during the direct elimination phase, the opponent is declared as winning, and the fencer does not lose their place in the overall classification of the competition. ## The methods of scoring hits -1. *Fencing time* (see [Glossary](appendices/01-glossary.md)) is counted as follows: in judging +**G.30** *Fencing time* (see [Glossary](appendices/01-glossary.md)) is counted as follows: in judging hits, Referees count immediate actions that start up to the moment of the first hit as relevant actions. -2. When only one of the fencers receives a hit within one period of fencing time, the fencer who was +**G.31** When only one of the fencers receives a hit within one period of fencing time, the fencer who was hit is called one point against. -3. In case both fencers hit within one period of fencing time, three different tactical situations +**G.32** In case both fencers hit within one period of fencing time, three different tactical situations are defined in the rules. - 1. A simultaneous hit is the result of a similar conception and execution of both fencers at the +- a) A simultaneous hit is the result of a similar conception and execution of both fencers at the same time. The scoring of simultaneous hits is determined by weapon-specific rules. - 2. A double hit occurs when both fencers are hit within one period of fencing time but the +- b) A double hit occurs when both fencers are hit within one period of fencing time but the actions are not simultaneous. Double hits are evaluated according to the weapon-specific rules. - 3. An after-action is a double hit situation, where the fencer at fault starts a counter action +- c) An after-action is a double hit situation, where the fencer at fault starts a counter action (or the finishing move of a compound action) at or after the moment of receiving a hit. After-actions do not score, and do not nullify the hit received. -4. Hits can be made using the weapon in the following ways: - 1. Cut - carried out with the edge of the blade on any valid target. A cut must be performed +**G.33** Hits can be made using the weapon in the following ways: + +- a) Cut - carried out with the edge of the blade on any valid target. A cut must be performed with a visually distinctive trajectory (preparation more than 45 degrees) and must correspond with an action that would probably cause the target area to be wounded. Hits performed with the flat may be counted at the Referee's discretion, if they bear the characteristics of a coordinated and potent technique (e.g. hitting the head with the flat surface of the sword). - 2. Thrust - carried out with the point of the weapon on any valid target. A valid thrust must be +- b) Thrust - carried out with the point of the weapon on any valid target. A valid thrust must be performed in such a way that it would be visually distinctive, e.g. the blade bends at the end of the action and the point traverses at least 20cm. - 3. Slice - carried out with the edge of the weapon on any valid target. A slice must be a +- c) Slice - carried out with the edge of the weapon on any valid target. A slice must be a movement which is defined by pushing or pulling of the blade against the valid area in a visually distinctive way. - 4. Strike - using the pommel of the weapon against the front mesh of the opponent's mask. +- d) Strike - using the pommel of the weapon against the front mesh of the opponent's mask. This action is valid only in the Longsword category. ### Dominance -1. The Referee may award a hit when a weapon action results in a passively +**G.34** The Referee may award a hit when a weapon action results in a passively constraining position for the opponent, held for a considerable time during which the opponent is unable to break free. Dominance may be the result of grappling, locks involving the weapon, or opposing actions that restrain the opponent's weapon movement. -2. The Referee awards the hit by calling 'Halt!' once they find all criteria of +**G.35** The Referee awards the hit by calling 'Halt!' once they find all criteria of dominance met. Hits received while the dominant position is upheld are not valid. -3. Dominance does not apply when the opponent can practically break free and +**G.36** Dominance does not apply when the opponent can practically break free and initiate valid actions, even if the weapon contact is not completely broken. It is at the Referee's discretion to judge the validity of dominance actions. -4. Dominance achieved by grappling or close quarter combat applies only in the +**G.37** Dominance achieved by grappling or close quarter combat applies only in the Longsword category. ## Forbidden actions (all weapons) -1. Punching, kicking, violent jostling, and throwing the weapon are strictly +**G.38** Punching, kicking, violent jostling, and throwing the weapon are strictly forbidden. -2. Excessive force, brutality or unnecessary violence are forbidden. +**G.39** Excessive force, brutality or unnecessary violence are forbidden. -3. Hitting the back of the head, the spine, the groin, the back of the knee or +**G.40** Hitting the back of the head, the spine, the groin, the back of the knee or the foot is forbidden and is penalised (see penalty 1.5). -4. It is forbidden to hit with the cross-guard, where applicable, or with the +**G.41** It is forbidden to hit with the cross-guard, where applicable, or with the basket or bell guard (see penalty 1.5). -5. Turning the head or covering a valid target with an off-target part belongs to +**G.42** Turning the head or covering a valid target with an off-target part belongs to the first group of offences. -6. Hitting the arena floor with any weapon due to bad measure in an action is +**G.43** Hitting the arena floor with any weapon due to bad measure in an action is penalised according to the first group of offences (cases resulting from the opponent's interactions, accidental touches, and touching the floor after having hit the opponent, may be disregarded by the Referee). @@ -231,30 +234,35 @@ Close quarter combat and grappling are allowed only where the weapon-specific rules permit them (currently only in the Longsword category), with the following regulations: -1. The Referee may call 'Halt!' after an unsuccessful period of grappling. -2. Grappling on the opponent's blade is allowed, if the blade is controlled. Seizing of the blade +**G.44** The Referee may call 'Halt!' after an unsuccessful period of grappling. + +**G.45** Grappling on the opponent's blade is allowed, if the blade is controlled. Seizing of the blade needs to be momentary, and followed by an immediate 'clean' hit to score a point. If the fencer can not achieve a hit consequently to seizing the blade, the Referee calls 'Halt!' and awards no points. Failing to control the blade is counted as a point against the fencer who attempted to enter grappling. -3. Grappling actions that score a point are: - 1. take-downs and throws followed/accompanied by a simple and immediate hit with the weapon + +**G.46** Grappling actions that score a point are: + +- a) take-downs and throws followed/accompanied by a simple and immediate hit with the weapon (within a period of fencing time) - 2. controlling the opponent via grappling with or without the weapon, until the Referee calls +- b) controlling the opponent via grappling with or without the weapon, until the Referee calls 'Halt!' -4. Ground action is not allowed, the Referee must call 'Halt!' when one of the fencers falls to the + +**G.47** Ground action is not allowed, the Referee must call 'Halt!' when one of the fencers falls to the ground, or whenever the Referee is unable to judge the action any more, or when a reasonable time has passed for dominance to apply. -5. Disarming is allowed and scores a point, unless the disarmed fencer immediately (before the + +**G.48** Disarming is allowed and scores a point, unless the disarmed fencer immediately (before the Referee calls 'Halt!') controls the opponent's weapon and enters grappling. -6. If a fencer accidentally drops the weapon, or falls without the opponent's interaction, the +**G.49** If a fencer accidentally drops the weapon, or falls without the opponent's interaction, the Referee must call 'Halt!'. A hit that started before the fencer obviously lost the weapon should be counted as valid even if it arrives afterwards, but in the spirit of sportsmanship, no intentional new attack should be initiated if the opponent has fallen or lost the weapon. ### Forbidden actions in close quarter combat -1. Neck-wrenching, lifting the opponent off the ground, full application of +**G.50** Neck-wrenching, lifting the opponent off the ground, full application of joint locks, small-joint manipulation, or other potentially dangerous wrestling techniques are strictly forbidden. diff --git a/04-right-of-way.md b/04-right-of-way.md index ecd11f8..01e3b59 100644 --- a/04-right-of-way.md +++ b/04-right-of-way.md @@ -2,23 +2,24 @@ ## General Principles -1. The Referee alone decides as to the validity or the priority (right of way, historically *Vor*) of the hit by applying the following basic rules which are the conventions applicable to priority-based weapons (longsword and sabre). +**RoW.1** The Referee alone decides as to the validity or the priority (right of way, historically *Vor*) of the hit by applying the following basic rules which are the conventions applicable to priority-based weapons (longsword and sabre). -2. Any attack properly executed must be parried, or completely avoided, and the phrase must be continuous. +**RoW.2** Any attack properly executed must be parried, or completely avoided, and the phrase must be continuous. -3. Priority rules are used to resolve double hits when both fencers are hit within one period of fencing time. +**RoW.3** Priority rules are used to resolve double hits when both fencers are hit within one period of fencing time. ## Attack Definition and Requirements -1. The attack is correctly carried out when the straightening of the arm, with the point or the edge continuously threatening the valid target, precedes the initiation of the footwork action. +**RoW.4** The attack is correctly carried out when the straightening of the arm, with the point or the edge continuously threatening the valid target, precedes the initiation of the footwork action. -2. An attack with a lunge (or other offensive footwork) is correctly carried out: - 1. in a simple attack when the beginning of the straightening of the arms precedes the launching of the lunge or other offensive footwork, and the hit arrives at the latest when the front foot hits the ground - 2. in a compound attack when the beginning of the straightening of the arms, on the first feint, precedes the launching of the lunge or other offensive footwork, and the hit arrives at the latest when the front foot hits the ground. +**RoW.5** An attack with a lunge (or other offensive footwork) is correctly carried out: -3. Attacks with step-forward-lunge or other compound footwork are not defined in this rulebook. Priority is assigned based on the start of the (attack with) lunge other simple offensive footwork, while steps in any case are considered as preparations. +- a) in a simple attack when the beginning of the straightening of the arms precedes the launching of the lunge or other offensive footwork, and the hit arrives at the latest when the front foot hits the ground +- b) in a compound attack when the beginning of the straightening of the arms, on the first feint, precedes the launching of the lunge or other offensive footwork, and the hit arrives at the latest when the front foot hits the ground. -4. Actions, simple or compound, steps or feints, which are executed with bent arms, are not considered as attacks but as preparations, laying themselves open to the initiation of the offensive or defensive/offensive action of the opponent. Hits received from attacks/counterattacks initiated during these actions are counted as valid and score a point against the preparing fencer. +**RoW.6** Attacks with step-forward-lunge or other compound footwork are not defined in this rulebook. Priority is assigned based on the start of the (attack with) lunge other simple offensive footwork, while steps in any case are considered as preparations. + +**RoW.7** Actions, simple or compound, steps or feints, which are executed with bent arms, are not considered as attacks but as preparations, laying themselves open to the initiation of the offensive or defensive/offensive action of the opponent. Hits received from attacks/counterattacks initiated during these actions are counted as valid and score a point against the preparing fencer. ## Fencing Actions and Priority @@ -33,50 +34,62 @@ Priority assignment for specific actions: ## Attack Validity Rules -1. **Point-in-line situations**: If the attack is initiated when the opponent has their point passively in line, the attacker must first deflect the opponent's weapon. Referees must ensure that a mere contact of the blades is not considered as sufficient to deflect the opponent's blade. +**RoW.8** **Point-in-line situations**: If the attack is initiated when the opponent has their point passively in line, the attacker must first deflect the opponent's weapon. Referees must ensure that a mere contact of the blades is not considered as sufficient to deflect the opponent's blade. -2. **Failed blade finding**: If, when attempting to find the opponent's blade to deflect it, the blade is not found, the right of attack passes to the opponent. +**RoW.9** **Failed blade finding**: If, when attempting to find the opponent's blade to deflect it, the blade is not found, the right of attack passes to the opponent. -3. **Attack completion**: If the attack is commenced when the opponent's blade is not in line, the attack may be completed either direct, or by a disengagement or by a cutover, or else be preceded by feints which oblige the opponent to parry. +**RoW.10** **Attack completion**: If the attack is commenced when the opponent's blade is not in line, the attack may be completed either direct, or by a disengagement or by a cutover, or else be preceded by feints which oblige the opponent to parry. -4. **Stop-hits in compound attacks**: In a compound attack the opponent has the right to stop-hit; but, in order to be valid, the stop-hit must precede the last movement of the attack by one period of fencing time, i.e. the stop-hit must arrive before the attacker has started the last movement of the attack itself. +**RoW.11** **Stop-hits in compound attacks**: In a compound attack the opponent has the right to stop-hit; but, in order to be valid, the stop-hit must precede the last movement of the attack by one period of fencing time, i.e. the stop-hit must arrive before the attacker has started the last movement of the attack itself. ## Parry and Riposte -1. The parry - properly carried out - gives the right to riposte; a simple riposte may be direct or indirect, but in order to annul any subsequent movement by the attacker, it must be carried out immediately, *without any hesitation or pause*. However, if the riposte is delayed so that a renewed attack clearly starts before the riposte, then the renewed attack gains priority. +**RoW.12** The parry - properly carried out - gives the right to riposte; a simple riposte may be direct or indirect, but in order to annul any subsequent movement by the attacker, it must be carried out immediately, *without any hesitation or pause*. However, if the riposte is delayed so that a renewed attack clearly starts before the riposte, then the renewed attack gains priority. + +**RoW.13** Against thrusts, and cuts with the edge, the flat, or the back edge of the blade, the object of the parry is to prevent hits made by the opponent arriving on the valid target; therefore: -2. Against thrusts, and cuts with the edge, the flat, or the back edge of the blade, the object of the parry is to prevent hits made by the opponent arriving on the valid target; therefore: - 1. The parry is properly carried out when, before the completion of the attack, it prevents the arrival of that attack by closing the line in which that attack is to finish. - 2. When a parry is properly executed, the attack by the opponent must be declared parried, and judged as such by the Referee, even if, as a result of its flexibility, the tip of the opponent's weapon makes contact with the target. +- a) The parry is properly carried out when, before the completion of the attack, it prevents the arrival of that attack by closing the line in which that attack is to finish. +- b) When a parry is properly executed, the attack by the opponent must be declared parried, and judged as such by the Referee, even if, as a result of its flexibility, the tip of the opponent's weapon makes contact with the target. ## Priority Assignment in Double Hits -1. Priority rules are only used in assessing double hits. If there is a delay of a fencing time or more between hits, the fencer who landed first is assessed to have scored. +**RoW.14** Priority rules are only used in assessing double hits. If there is a delay of a fencing time or more between hits, the fencer who landed first is assessed to have scored. -2. Priority rules are only used when one fencer can be clearly assessed to have made a mistake. +**RoW.15** Priority rules are only used when one fencer can be clearly assessed to have made a mistake. ### The fencer who is attacked is alone counted as hit: -1. if they make a counter-attack against the opponent's simple attack -2. if, instead of parrying, they attempt to avoid the hit and do not succeed in doing so -3. if, after making a successful parry, they make a momentary pause (delayed riposte) which gives the opponent the right to renew the attack (redoublement, or remise, or reprise) -4. if, during a compound attack, they make a stop-hit without being in time -5. if, having their point 'in line' and being subjected to a beat or a taking of the blade which deflects their blade, they attack or place their point in line again instead of parrying a direct hit made by the opponent +**RoW.16** if they make a counter-attack against the opponent's simple attack + +**RoW.17** if, instead of parrying, they attempt to avoid the hit and do not succeed in doing so + +**RoW.18** if, after making a successful parry, they make a momentary pause (delayed riposte) which gives the opponent the right to renew the attack (redoublement, or remise, or reprise) + +**RoW.19** if, during a compound attack, they make a stop-hit without being in time + +**RoW.20** if, having their point 'in line' and being subjected to a beat or a taking of the blade which deflects their blade, they attack or place their point in line again instead of parrying a direct hit made by the opponent ### The fencer who attacks is alone counted as hit: -1. If they initiated their attack when the opponent's point was 'in line', without deflecting the opponent's weapon. Referees must ensure that a mere contact of the blades is not considered as sufficient to deflect the opponent's blade. -2. If they attempt to find the blade, do not succeed (due to the opponent's avoiding reaction) and continue the attack. -3. If, during a compound attack, they allow the opponent to find the blade, and continue the attack while the opponent ripostes immediately. -4. If, during a compound attack, they bend their arm or make a momentary pause, during which time the opponent makes a stop-hit or an attack while the attacker continues their own attack. -5. If, during a compound attack, they are stop-hit one period of fencing time before they make the final movement of the attack. -6. If they make a hit by a renewed attack following a parry by the opponent which has been followed by a riposte which is immediate, simple and executed in one period of fencing time without withdrawing the arm. +**RoW.21** If they initiated their attack when the opponent's point was 'in line', without deflecting the opponent's weapon. Referees must ensure that a mere contact of the blades is not considered as sufficient to deflect the opponent's blade. + +**RoW.22** If they attempt to find the blade, do not succeed (due to the opponent's avoiding reaction) and continue the attack. + +**RoW.23** If, during a compound attack, they allow the opponent to find the blade, and continue the attack while the opponent ripostes immediately. + +**RoW.24** If, during a compound attack, they bend their arm or make a momentary pause, during which time the opponent makes a stop-hit or an attack while the attacker continues their own attack. + +**RoW.25** If, during a compound attack, they are stop-hit one period of fencing time before they make the final movement of the attack. + +**RoW.26** If they make a hit by a renewed attack following a parry by the opponent which has been followed by a riposte which is immediate, simple and executed in one period of fencing time without withdrawing the arm. ### Both fencers are at fault (no points awarded) -1. Similar conception and execution of the same action by both fencers at once, without either of them taking the initiative sooner than the other. -2. Similar failure to initiate or execute the appropriate actions, of both fencers at the same time, resulting in the loss of priority gained by previous actions, and without any of the fencers taking the initiative sooner than the other afterwards. -3. When both fencers are at fault, NO POINTS are awarded to either fencer. +**RoW.27** Similar conception and execution of the same action by both fencers at once, without either of them taking the initiative sooner than the other. + +**RoW.28** Similar failure to initiate or execute the appropriate actions, of both fencers at the same time, resulting in the loss of priority gained by previous actions, and without any of the fencers taking the initiative sooner than the other afterwards. + +**RoW.29** When both fencers are at fault, NO POINTS are awarded to either fencer. ## Weapon-Specific Variations diff --git a/05-longsword.md b/05-longsword.md index 110a6a3..1154fa3 100644 --- a/05-longsword.md +++ b/05-longsword.md @@ -2,19 +2,19 @@ ## Rules of hit validity and fencing actions -1. All hits made with the true edge, the false edge, and the tip of the blade are valid if they are +**LS.1** All hits made with the true edge, the false edge, and the tip of the blade are valid if they are performed in such a way that it would have caused a wound to an unarmoured opponent, had the weapon been sharp. Hits performed with the flat may be counted, if they bear the characteristics of a coordinated and potent technique. A strike with the pommel against the front mesh of the - opponent's mask is also a valid hit (see the General Rules, 'The methods of scoring hits'). It is + opponent's mask is also a valid hit (see [G.33](03-general.md) — pommel strike). It is up to the Referee’s discretion to judge the validity of hits. -2. Hits through the blade, that is to say those which bend over the opponent’s blade or cross-guard, +**LS.2** Hits through the blade, that is to say those which bend over the opponent’s blade or cross-guard, are not considered to be valid. However, the Referee may count a hit as valid, if the opponent’s blade has not closed the line of the attack, and it touches at the same time the valid target and the weapon of the opponent, whenever they arrive clearly on the target. -3. The target includes the whole of the fencer’s body, including the handle of the weapon, clothing, +**LS.3** The target includes the whole of the fencer’s body, including the handle of the weapon, clothing, and safety equipment, except for the back of the head, spine, groin, the feet, and the back of the knees. @@ -25,7 +25,7 @@ Longsword uses the standard priority (right of way, historically *Vor*) system. ## Close quarter combat -1. Priority ceases to exist when the weapons of the opponents come together at *Stercke* on +**LS.4** Priority ceases to exist when the weapons of the opponents come together at *Stercke* on *Stercke* (including the cross-guard), and/or in case of grappling actions. In case the weapons touch *Stercke* on *Stercke*, and a double hit follows immediately, no points are awarded. Otherwise, they may disengage and continue fencing (with priority rules), or enter @@ -33,30 +33,31 @@ Longsword uses the standard priority (right of way, historically *Vor*) system. ## Judging of hits -1. When during a phrase both fencers are hit within a period of fencing time there is either a +**LS.5** When during a phrase both fencers are hit within a period of fencing time there is either a simultaneous action or a double hit: - 1. The simultaneous action is due to simultaneous conception and execution of an attack by both + +- a) The simultaneous action is due to simultaneous conception and execution of an attack by both fencers; in this case no points are awarded. - 2. A double hit, on the other hand, occurs when there is no interval of fencing time between the +- b) A double hit, on the other hand, occurs when there is no interval of fencing time between the hits and it is the result of a clearly faulty action on the part of one of the fencers, as defined by these rules. -2. When there is a double hit, and if the Referee is unable clearly to judge from which side the +**LS.6** When there is a double hit, and if the Referee is unable clearly to judge from which side the fault has come, the Referee must not assign any points. -3. In cases when a stop-hit is made and there is doubt as to whether it was made sufficiently in +**LS.7** In cases when a stop-hit is made and there is doubt as to whether it was made sufficiently in time in relation to the final movement of a compound attack, the double hit often occurs through the fault of both fencers concerned. Since this is clearly not a tactically symmetrical case, the Referee should assign no points. (The fault of the attacker consists of indecision, slowness of execution or the making of feints which are not sufficiently effective. The fault of the defender lies in delay or slowness in making the stop-hit.) -4. Any actions executed while holding the weapon with one hand only, can only score if the fencer +**LS.8** Any actions executed while holding the weapon with one hand only, can only score if the fencer does not receive any attack or counterattack with a weapon held with two hands, within one period of fencing time. -5. However if the opponent reacts to the attack with a weapon held in one hand with an attempt to +**LS.9** However if the opponent reacts to the attack with a weapon held in one hand with an attempt to parry, an unsuccessful parry returns the priority to the one-handed hit. -6. In cases when both fencers get hit with a weapon held in one hand within time, the judgment of +**LS.10** In cases when both fencers get hit with a weapon held in one hand within time, the judgment of the action follows the regular priority rules. diff --git a/06-rapier.md b/06-rapier.md index fc06421..4f717b3 100644 --- a/06-rapier.md +++ b/06-rapier.md @@ -2,75 +2,76 @@ ## Wrestling -1. Wrestling actions (arm locks, throws, chokes) are forbidden in Rapier and Side Weapons +**R.1** Wrestling actions (arm locks, throws, chokes) are forbidden in Rapier and Side Weapons competitions. -2. Attempting wrestling actions during bouts of this category belongs to the first group of +**R.2** Attempting wrestling actions during bouts of this category belongs to the first group of offences. -3. Body contact (including accidental jostling) in itself is not considered as wrestling and +**R.3** Body contact (including accidental jostling) in itself is not considered as wrestling and therefore are allowed. ## Judging of hits -Rapier and side weapons do not use priority (right of way) rules. Scoring follows combat rules: -only the first valid hit scores. In the case of hits arriving within one period of fencing time, -the rules below apply. +Rapier and side weapons do not use priority (right of way) rules. Scoring follows combat rules. In +the case of hits arriving within one period of fencing time, the rules below apply. -1. A double hit occurs when two valid hits land within one period of fencing time. +**R.4** Only the first valid hit scores. A double hit occurs when two valid hits land within one period + of fencing time. -2. When a double hit consists of a thrust by one fencer and a cut or slice by the other, the thrust +**R.5** When a double hit consists of a thrust by one fencer and a cut or slice by the other, the thrust scores one point and the cut scores no point. -3. In all other double hits, each fencer scores one point. Simultaneous hits (similar conception +**R.6** In all other double hits, each fencer scores one point. Simultaneous hits (similar conception and execution of both fencers at the same time) are treated the same way: each fencer scores one point. -4. A hit that begins at or after the moment a fencer receives a valid hit (after-action) is not +**R.7** A hit that begins at or after the moment a fencer receives a valid hit (after-action) is not counted. -5. Rapiers may be used with a parrying dagger or a cloak; the regulations for these side weapons are - set out elsewhere in this Rulebook. +**R.8** Rapiers may be used with a parrying dagger or a cloak; the regulations for these side weapons are + set out in the [Technical & Equipment Standards](02-equipment.md), E.66–E.69 (dagger) and + E.70–E.73 (cloak). -6. All hits made with the point, and the edges of the blade, are valid. The action must be +**R.9** All hits made with the point, and the edges of the blade, are valid. The action must be performed in such a way that it would have caused a wound to an unarmoured opponent, had the weapon been sharp. Hits performed with the flat may be counted, if they are aimed at the head, and bear the characteristics of a coordinated and potent technique. It is up to the Referee’s discretion to judge the validity of hits, in accordance with the Rulebook’s regulations. -7. The target includes the whole of the fencer’s body, clothing, and safety equipment, except for +**R.10** The target includes the whole of the fencer’s body, clothing, and safety equipment, except for the back of the head, spine, groin, the feet, the back of the knees, and if used, the cloak. -8. It is allowed to parry using the unarmed hand, as long as the weapon is controlled (thrusts or +**R.11** It is allowed to parry using the unarmed hand, as long as the weapon is controlled (thrusts or static blade positions, where the parrying hand does not get a direct hit). -9. Switching of the weapon hand is allowed only in case of injury of the original armed hand, +**R.12** Switching of the weapon hand is allowed only in case of injury of the original armed hand, disallowing to continue fencing with the same hand. Switching the hands in any other case or holding the rapier with two hands is not permitted. ## Actions involving a dagger as a side weapon -1. It is allowed to parry with the dagger, as long as it is used for defensive actions only. +**R.13** It is allowed to parry with the dagger, as long as it is used for defensive actions only. -2. It is allowed to engage the opponent’s blade using the dagger +**R.14** It is allowed to engage the opponent’s blade using the dagger -3. It is forbidden to attack with the dagger, and depending on the outcome, it may belong to the +**R.15** It is forbidden to attack with the dagger, and depending on the outcome, it may belong to the first or the second group of offences. -4. It is forbidden to throw the dagger at the opponent, it belongs to the fourth group of offences, +**R.16** It is forbidden to throw the dagger at the opponent, it belongs to the fourth group of offences, and is penalised with elimination from the tournament. ## Actions involving a cloak as a side weapon -1. It is allowed to parry with the cloak, as long as it is used for defensive actions only. +**R.17** It is allowed to parry with the cloak, as long as it is used for defensive actions only. -2. It is allowed to engage the opponent’s blade using the cloak. +**R.18** It is allowed to engage the opponent’s blade using the cloak. -3. Cuts aimed at the cloak-covered hand or body or the cloak itself are not considered valid. +**R.19** Cuts aimed at the cloak-covered hand or body or the cloak itself are not considered valid. -4. Thrusts aimed at the cloak-covered hand or body are considered valid, as long as the thrust hits +**R.20** Thrusts aimed at the cloak-covered hand or body are considered valid, as long as the thrust hits a valid target through the cloak and satisfies the general requirements of valid attacks. -5. It is forbidden to throw the cloak at the opponent. It must be wrapped around the unarmed hand. +**R.21** It is forbidden to throw the cloak at the opponent. It must be wrapped around the unarmed hand. Dropping or letting go of the cloak without the opponent’s interaction belongs to the first group of offences. diff --git a/07-sabre.md b/07-sabre.md index 7107986..24e66c0 100644 --- a/07-sabre.md +++ b/07-sabre.md @@ -2,29 +2,29 @@ ## Target Area -1. Targets are restricted from the hips up, including arms and head, but with legs being off-target. +**S.1** Targets are restricted from the hips up, including arms and head, but with legs being off-target. -2. Strikes to an off-target area do not score, do not stop the exchange, and do not assign any +**S.2** Strikes to an off-target area do not score, do not stop the exchange, and do not assign any points. -3. Repeated, deliberate strikes to an off-target area are judged as strikes to a forbidden target and dealt with accordingly. +**S.3** Repeated, deliberate strikes to an off-target area are judged as strikes to a forbidden target and dealt with accordingly. ## Sabre-specific scoring considerations -1. **Simultaneous hits** - When both fencers hit simultaneously, the score does not change. +**S.4** **Simultaneous hits** - When both fencers hit simultaneously, the score does not change. -2. **Hits through blade contact** - Hits landed with blade contact (through a parry or over the cross-guard) are valid only if the hit retains meaningful force. +**S.5** **Hits through blade contact** - Hits landed with blade contact (through a parry or over the cross-guard) are valid only if the hit retains meaningful force. -3. **Point-in-line exception** - If the defender holds their point outstretched and the opponent runs into the point, the distance traversed ceases to play a role in judging validity. +**S.6** **Point-in-line exception** - If the defender holds their point outstretched and the opponent runs into the point, the distance traversed ceases to play a role in judging validity. -4. **Dominance actions** - Note that the general dominance rule (see [General Rules](03-general.md)) applies only to weapon locks and constraining actions, not grappling, as grappling is forbidden in sabre. +**S.7** **Dominance actions** - Note that the general dominance rule (see [G.34–G.37](03-general.md)) applies only to weapon locks and constraining actions, not grappling, as grappling is forbidden in sabre. ## Forbidden actions -1. Grappling or close quarter combat is forbidden; it belongs to the first group of offences (see +**S.8** Grappling or close quarter combat is forbidden; it belongs to the first group of offences (see penalty 1.5). -2. Engaging in grappling, close quarters combat, or corps-a-corps is immediately stopped by the Referee. +**S.9** Engaging in grappling, close quarters combat, or corps-a-corps is immediately stopped by the Referee. ## Priority System diff --git a/08-sword-and-buckler.md b/08-sword-and-buckler.md index 1dcada1..11dcdaa 100644 --- a/08-sword-and-buckler.md +++ b/08-sword-and-buckler.md @@ -6,32 +6,32 @@ Sword and Buckler competitions do not use priority (right of way) rules. Scoring combat rules as Rapier and side weapons competitions (see [Rapier and side weapons](06-rapier.md)): only the first valid hit scores. -1. Double hits, simultaneous hits, and after-actions are judged according to the rules of the +**SB.1** Double hits, simultaneous hits, and after-actions are judged according to the rules of the Rapier and side weapons competitions. -2. All hits made with the point, and the edges of the blade, are valid. The action must be +**SB.2** All hits made with the point, and the edges of the blade, are valid. The action must be performed in such a way that it would have caused a wound to an unarmoured opponent, had the weapon been sharp. Hits performed with the flat may be counted at the Referee's discretion, if they bear the characteristics of a coordinated and potent technique. -3. The target includes the whole of the fencer’s body, clothing, and safety equipment, except for +**SB.3** The target includes the whole of the fencer’s body, clothing, and safety equipment, except for the back of the head, spine, groin, the feet, and the back of the knees. -4. Hits landing on the buckler are not valid and do not score. +**SB.4** Hits landing on the buckler are not valid and do not score. ## Wrestling -1. Wrestling actions (arm locks, throws, chokes) are forbidden, as in the Rapier and side weapons +**SB.5** Wrestling actions (arm locks, throws, chokes) are forbidden, as in the Rapier and side weapons competitions. Attempting wrestling actions during bouts of this category belongs to the first group of offences. -2. Body contact (including accidental jostling) in itself is not considered as wrestling and is +**SB.6** Body contact (including accidental jostling) in itself is not considered as wrestling and is therefore allowed. ## Actions involving the buckler -1. The buckler serves a defensive purpose; covering, engaging and diverting of the opponent’s +**SB.7** The buckler serves a defensive purpose; covering, engaging and diverting of the opponent’s weapon is allowed. -2. It is forbidden to strike the opponent with the buckler; depending on the outcome, it belongs +**SB.8** It is forbidden to strike the opponent with the buckler; depending on the outcome, it belongs to the first or the second group of offences. diff --git a/09-organisational.md b/09-organisational.md index 9d624d2..4558f92 100644 --- a/09-organisational.md +++ b/09-organisational.md @@ -2,69 +2,70 @@ ## Eligibility -1. The competition is open to fencers of 18 years and older. +**O.1** The competition is open to fencers of 18 years and older. -2. It is prohibited to enter a competition under the influence of alcohol or performance-altering +**O.2** It is prohibited to enter a competition under the influence of alcohol or performance-altering drugs (including recreational drugs and those prescribed by physicians). ## Fencer readiness and presence -1. All fencers must be present at their assigned arena 10 minutes before the start of +**O.3** All fencers must be present at their assigned arena 10 minutes before the start of bouts. This applies to both the pool round and the direct elimination stage. -2. The staff of the given arena call the fencers 10 minutes before the start of +**O.4** The staff of the given arena call the fencers 10 minutes before the start of bouts. If a fencer is not present when called, the call is repeated two additional times, each after 1 minute. After the third unanswered call, the fencer is disqualified from the competition (they may still participate in other competitions/weapons of the tournament; see penalty 0.1). -3. During a competition, if a fencer does not present themselves on the arena ready to fence +**O.5** During a competition, if a fencer does not present themselves on the arena ready to fence when ordered to do so by the Referee, the procedure described in the disciplinary rules applies (Yellow → Red → elimination, with 1-minute intervals between calls; see penalty 0.2 and [Fencing etiquette and disciplinary rules](10-disciplinary.md), section 'The Fencers'). -4. The Refereeing Team checks the readiness of fencers (completeness of safety +**O.6** The Refereeing Team checks the readiness of fencers (completeness of safety gear and weapons) before the indicated start of bouts, as set out in the - [Technical & Equipment Standards](02-equipment.md). The Referee may repeat + [Technical & Equipment Standards](02-equipment.md), E.6. The Referee may repeat this check at any time. ## The Refereeing system ### Main Referee -1. The Referee works with an Assistant Referee (observing from a different angle) and manages the +**O.7** The Referee works with an Assistant Referee (observing from a different angle) and manages the time and protocol (when necessary, supported by an administrative crew). -2. The Referee gives the signals to start, stop, assigns points and describes what happened during +**O.8** The Referee gives the signals to start, stop, assigns points and describes what happened during the entire bout or at least the last exchange. -3. After stopping an exchange, the Referee consults the Assistant and proposes +**O.9** After stopping an exchange, the Referee consults the Assistant and proposes a result. Then: - a) if both fencers accept the decision (they say nothing), the bout + +- a) if both fencers accept the decision (they say nothing), the bout continues with the proposed score; - b) if the fencers disagree with the Referee but agree with each other, the +- b) if the fencers disagree with the Referee but agree with each other, the Referee may decide according to their shared account; - c) if a fencer protests and the fencers disagree with each other, the +- c) if a fencer protests and the fencers disagree with each other, the Referee either assigns the point (only when completely sure) or repeats the exchange. -4. If the Referee is unable to interpret the fencing phrase for some reason, they can repeat the +**O.10** If the Referee is unable to interpret the fencing phrase for some reason, they can repeat the exchange but must explain and apologise. When an exchange is repeated, the time measured for the bout is set back by 10 seconds. -5. The Referee's decisions can not be contested after the start of the following bout. +**O.11** The Referee's decisions can not be contested after the start of the following bout. -6. The Referee must be able to conduct and manage bouts in English. +**O.12** The Referee must be able to conduct and manage bouts in English. ### Assistant Referee -1. An Assistant Referee helps the main Referee in scoring and hit evaluation. Their task is to +**O.13** An Assistant Referee helps the main Referee in scoring and hit evaluation. Their task is to observe a bout from a different angle than the main Referee. -2. The Assistant may signal hits made by the fencers to the Referee by raising their arm, even if +**O.14** The Assistant may signal hits made by the fencers to the Referee by raising their arm, even if the Referee does not halt the exchange immediately. -3. An Assistant Referee is not responsible for point assignment nor for the overall bout score. +**O.15** An Assistant Referee is not responsible for point assignment nor for the overall bout score. ## Organisation of the competitions and classification @@ -74,135 +75,140 @@ values before the start of the competition; unless announced otherwise, the defa ### The round of pools -1. In all competitions for which the formula includes a round of pools, the pools consist of +**O.16** In all competitions for which the formula includes a round of pools, the pools consist of 7 fencers if the number of participants is divisible by 7. Otherwise the pools are of 7 and 6 fencers. -2. In the pools a bout ends when: - 1. One of the fencers has scored 5 points. In this case the score registered on the score- sheet +**O.17** In the pools a bout ends when: + +- a) One of the fencers has scored 5 points. In this case the score registered on the score- sheet is the final score of the bout (V5 – Dn, where n = the number of points scored by the losing fencer). - 2. Two minutes of effective fencing time have passed. (There is no warning for the last +- b) Two minutes of effective fencing time have passed. (There is no warning for the last minute.) -3. If when the time limit expires there is a difference of at least one point between the scores of +**O.18** If when the time limit expires there is a difference of at least one point between the scores of the two fencers, the fencer who has scored the greater number of points is declared winner. The score registered on the score-sheet is the actual score achieved in the bout (VN – Dn, where N = the number of points scored by the winning fencer and n = the number of points scored by the losing fencer). -4. If at the end of regulation time the scores are equal, the fencers fence for a deciding hit, +**O.19** If at the end of regulation time the scores are equal, the fencers fence for a deciding hit, with a maximum time limit of one minute. Before the fencing recommences, the Referee draws lots to decide who is the winner if scores are still equal at the end of the extra minute, as described in the [General Rules](03-general.md). -5. In this case the score registered on the score-sheet is always the actual score achieved in the +**O.20** In this case the score registered on the score-sheet is always the actual score achieved in the bout: - 1. VN–Dn if a deciding hit is scored within the time limit for the bout. - 2. V4–D4 or V3–D3 or V2–D2 or V1–D1 or V0–D0 if the winner is designated by drawing lots. - 3. Vn-DN, VN-Dn or Vn-Dn in case a single bout is forfeited due to injury or equipment + +- a) VN–Dn if a deciding hit is scored within the time limit for the bout. +- b) V4–D4 or V3–D3 or V2–D2 or V1–D1 or V0–D0 if the winner is designated by drawing lots. +- c) Vn-DN, VN-Dn or Vn-Dn in case a single bout is forfeited due to injury or equipment malfunction but the rest of the bouts have been completed regularly. It is always the fencer who did not forfeit the bout who is registered as victorious, even though the scores are not annulled. - 4. V0-D0 in case a fencer is withdrawn or removed from the competition, marking the opponent as +- d) V0-D0 in case a fencer is withdrawn or removed from the competition, marking the opponent as the winner, but not registering any scores, for all of the fencer’s bouts in the pool.. -6. Before the competition starts, the Organising Team decides on and announces the number of +**O.21** Before the competition starts, the Organising Team decides on and announces the number of fencers to be eliminated based on the ranking established by the pools (0-40%). -7. After the pools, a single general ranking is established of all the fencers who have taken +**O.22** After the pools, a single general ranking is established of all the fencers who have taken part in the pools, taking account, successively, of the indices V/M, HS – HR, HS. (V = victories; M = bouts; HS = points scored; HR = points received.) -8. A summary classification table is then made in the following way: - 1. The results written up on the summary table are added up to ascertain the two indices +**O.23** A summary classification table is then made in the following way: + +- a) The results written up on the summary table are added up to ascertain the two indices required. - 2. The first index, for the initial classification, is obtained by dividing the number of +- b) The first index, for the initial classification, is obtained by dividing the number of victories by the number of bouts fought, using the formula V/M. - 3. The fencer with the highest index (maximum 1) is seeded first. - 4. In cases of equality in this first index, and to separate fencers with equal first indices, a +- c) The fencer with the highest index (maximum 1) is seeded first. +- d) In cases of equality in this first index, and to separate fencers with equal first indices, a second index is established, using the formula HS – HR, the difference between the total number of points scored and points received. - 5. In cases of equality of the two indices V/M and HS – HR, the fencer who has scored most points +- e) In cases of equality of the two indices V/M and HS – HR, the fencer who has scored most points is seeded highest. - 6. In cases of absolute equality between two or more fencers, their seeding order is +- f) In cases of absolute equality between two or more fencers, their seeding order is decided by drawing lots. -9. Should there be absolute equality among the last to qualify there is no barrage, and the +**O.24** Should there be absolute equality among the last to qualify there is no barrage, and the fencers with equal indicators all qualify, even if they are in excess of the number decided on. -10. A fencer who withdraws, or who is excluded, is scratched from the pool. Their results are +**O.25** A fencer who withdraws, or who is excluded, is scratched from the pool. Their results are recorded as if all of their opponents had won against the fencer, but no score is registered (V0-D0). The fencer who is withdrawn or excluded during the pool, is not included in the calculation of the ranking for the direct elimination table. -11. When a fencer withdraws from one pool bout only, they are declared as having lost the bout, but +**O.26** When a fencer withdraws from one pool bout only, they are declared as having lost the bout, but the score established before is not annulled. ## The direct elimination -1. The direct elimination table (bout plan) – complete or incomplete – is established taking - account of the classification table and the special rules for each competition (See Figure 2.) +**O.27** The direct elimination table (bout plan) – complete or incomplete – is established taking + account of the classification table and the special rules for each competition. -2. The Organising Team publishes the direct elimination bout plan. The direct elimination +**O.28** The Organising Team publishes the direct elimination bout plan. The direct elimination bouts are for 7 points or end when the two periods of two minutes, with a one-minute rest between the two periods, have passed. -3. For the gold-medal bout (1st place) and the bronze-medal bout (3rd place), the Organising Team may +**O.29** For the gold-medal bout (1st place) and the bronze-medal bout (3rd place), the Organising Team may raise the point limit above the standard seven (e.g. 10 or 15). The chosen limit (and any corresponding time structure) must be published in the official schedule before the start of the competition day. -4. During the one-minute rest a second/coach, named before the bout, may have access to the fencer. +**O.30** During the one-minute rest a second/coach, named before the bout, may have access to the fencer. + +**O.31** The bout ends when: -5. The bout ends when: - 1. One of the fencers has scored 7 points; or - 2. 2 × 2 minutes of effective fencing time have passed. +- a) One of the fencers has scored 7 points; or +- b) 2 × 2 minutes of effective fencing time have passed. -6. The fencer who has scored the greater number of points is declared the winner. +**O.32** The fencer who has scored the greater number of points is declared the winner. -7. If at the end of regulation time the scores are equal, the fencers fence for a deciding hit, +**O.33** If at the end of regulation time the scores are equal, the fencers fence for a deciding hit, with a maximum time limit of one minute. Before the fencing recommences the Referee draws lots to decide who is the winner if scores are still equal at the end of the extra minute, as described in the [General Rules](03-general.md). In this case the score recorded on the score-sheet is the real score achieved in the bout. -8. Withdrawal: When, for whatever reason, a fencer cannot fence, or cannot complete their bout, +**O.34** Withdrawal: When, for whatever reason, a fencer cannot fence, or cannot complete their bout, their opponent is declared winner of that bout. A fencer who withdraws does not lose their place in the overall classification of the competition. ## Order of bouts -1. In each round of the direct elimination table (256, 128, 64, 32, 16, 8 or 4), the bouts are +**O.35** In each round of the direct elimination table (256, 128, 64, 32, 16, 8 or 4), the bouts are always called in the order of the bout plan, starting at the top and ending at the bottom. ## Classification -1. The general classification is obtained as follows: - 1. First: the winner of the bout for the first place - 2. Second: the loser of the bout for the first place - 3. A bout for third and fourth places is fought between the two losers of the semi-final +**O.36** The general classification is obtained as follows: + +- a) First: the winner of the bout for the first place +- b) Second: the loser of the bout for the first place +- c) A bout for third and fourth places is fought between the two losers of the semi-final bouts. - 4. The remainder are placed, within each round of the direct elimination, in accordance with +- d) The remainder are placed, within each round of the direct elimination, in accordance with their classification for the composition of the direct elimination table. ## Tournament Staff -1. Medical/paramedic staff assess possible injury/illness of the participants during/after +**O.37** Medical/paramedic staff assess possible injury/illness of the participants during/after bouts and advise on immediate management. -2. The head of the Organising Team is responsible for the overall smooth running of the tournament. +**O.38** The head of the Organising Team is responsible for the overall smooth running of the tournament. The Organising Team is available for questions, complaints, compliments, and suggestions, before during and after the event. -3. The head of the Refereeing Team oversees the allocation and performance of the Referees and +**O.39** The head of the Refereeing Team oversees the allocation and performance of the Referees and Assistants. The Head of the Refereeing Team can be approached directly by the participants or their representatives, if questions regarding the performance of any of the Referees are raised. -4. The head of Equipment Inspection performs pre-tournament checks of safety equipment and weapons, +**O.40** The head of Equipment Inspection performs pre-tournament checks of safety equipment and weapons, stamps passed items and keeps a list of participants whose safety equipment has been deemed satisfactory. -5. The Technical Team manages the technical infrastructure, including the competition management +**O.41** The Technical Team manages the technical infrastructure, including the competition management software, ensuring that the events are recorded, stored, displayed correctly. diff --git a/10-disciplinary.md b/10-disciplinary.md index 92393c5..0690e5b 100644 --- a/10-disciplinary.md +++ b/10-disciplinary.md @@ -2,74 +2,75 @@ ## Order and Discipline -1. Everyone taking part in or attending a fencing competition, including the spectators, must +**D.1** Everyone taking part in or attending a fencing competition, including the spectators, must observe strictly and faithfully the particular rules for the competition in which they are engaged, the traditional customs of courtesy and integrity and the instructions of the officials. In particular they must subscribe, in an orderly, disciplined and sporting manner, to the following provisions; all breaches of these rules may entail punishments by the disciplinary authorities after, or even without prior warning, according to the facts and circumstances. -2. Everybody taking part in or present at a fencing competition must remain orderly and must not +**D.2** Everybody taking part in or present at a fencing competition must remain orderly and must not disturb the smooth running of the competition. During bouts no one is allowed to approach the arenas to give advice to the fencers, to criticise the Referee or the Assistant, to insult them or to attempt to influence them in any way. The second must remain in the space assigned to them. The Referee must stop immediately any activity which disturbs the smooth running of the bout which they are refereeing -3. Any person who, for any reason, threatens or insults an official is eligible for immediate +**D.3** Any person who, for any reason, threatens or insults an official is eligible for immediate disqualification/expulsion from the premises. -4. The Referee, and/or the Organising Team, on their own authority, can decide to expel from the +**D.4** The Referee, and/or the Organising Team, on their own authority, can decide to expel from the competition venue, with or without a warning, any person who by their gestures, attitude or language disturbs the good order or smooth running of the event. ## The Fencers -1. By entering a fencing competition, fencers agree to observe the Rules and the decisions and +**D.5** By entering a fencing competition, fencers agree to observe the Rules and the decisions and instructions of the officials, to be respectful towards the Referees (Referee and Assistant), and to follow their orders. -2. No fencer may take part in the competition if they refuse to fence against any other fencer +**D.6** No fencer may take part in the competition if they refuse to fence against any other fencer whatsoever correctly entered in the event. Should this rule be broken, the penalties specified for offences of the 4th group are applied. -3. The fencers, completely equipped, with all equipment conforming with the regulations and ready +**D.7** The fencers, completely equipped, with all equipment conforming with the regulations and ready to fence, must be present at the time and place appointed for the beginning of the pool or direct elimination bout, or at the time appointed for the checking of their equipment before their bout, as well as during the competition, whenever the Referee requires it. -4. When presenting themselves to fence a bout, the fencers must arrive on the arena completely +**D.8** When presenting themselves to fence a bout, the fencers must arrive on the arena completely ready to fence — regulation clothing, jacket fastened, hands gloved and holding the weapon. -5. During a competition, if a fencer does not present themselves on the arena, ready to fence, +**D.9** During a competition, if a fencer does not present themselves on the arena, ready to fence, when ordered to do so by the Referee: - 1. The fencer not present is penalised with a Yellow Card; - 2. A second call is made, one minute after the first call, followed by a Red Card for the + +- a) The fencer not present is penalised with a Yellow Card; +- b) A second call is made, one minute after the first call, followed by a Red Card for the fencer or team member not present; - 3. A third and last call is made, one minute after the second call, followed by elimination +- c) A third and last call is made, one minute after the second call, followed by elimination from the competition for the fencer not present. -6. During or after a bout, even if the fencer has already left the arena, any act against the +**D.10** During or after a bout, even if the fencer has already left the arena, any act against the spirit of sportsmanship such as violently or dangerously throwing one’s mask (or any other piece of equipment) is penalised. -7. The fencer, whether on or off the arena, must keep their mask on until the Referee calls +**D.11** The fencer, whether on or off the arena, must keep their mask on until the Referee calls ‘Halt!’. They must not address the Referee until the Referee has announced the decision. -8. Fencers must fence to their utmost ability in a sportsmanlike manner until the end of the +**D.12** Fencers must fence to their utmost ability in a sportsmanlike manner until the end of the competition in order to obtain the best possible classification, without giving away hits or seeking to be favoured by being given hits by anyone. ## Fencing Etiquette -1. All bouts must remain courteous and fair. All irregular actions (e.g. violently jostling the +**D.13** All bouts must remain courteous and fair. All irregular actions (e.g. violently jostling the opponent; disorderly fencing; irregular movements in the arena; hits achieved with violence; blows struck with the cross-guard; hits made during or after an accidental fall; failing to stop dangerous techniques short of full application, taking out fury on the furniture or equipment of the venue) or anti-sporting behaviour are strictly forbidden. Should such an offence occur, any hit scored by the fencer at fault is annulled. -2. Before the beginning of each bout, the two fencers must perform a fencer’s salute to their +**D.14** Before the beginning of each bout, the two fencers must perform a fencer’s salute to their opponent, the Referee, and preferably to the spectators. Equally, when the final hit has been scored, the bout has not ended until the two fencers have saluted each other, the Referee (and the spectators). To this end, they must remain still while the Referee is making the decision; @@ -78,12 +79,12 @@ to comply with these rules, the Referee penalises them as specified for offences of the 4th group. -3. Punishable actions are acted on by verbal warnings, warnings (yellow card), point awarded to the +**D.15** Punishable actions are acted on by verbal warnings, warnings (yellow card), point awarded to the opponent (red card) or disqualification and expulsion from the venue (black card), according to - severity and repetition of offense, as detailed in the rulebook (see the table of offences, also - attached to this summary). + severity and repetition of offense, as detailed in the rulebook (see the + [Table of Offences and Penalties](appendices/02-penalties.md)). -4. Spectators are obliged not to interfere with the good order of a competition, to do nothing which +**D.16** Spectators are obliged not to interfere with the good order of a competition, to do nothing which may tend to influence the fencers or the Referee, and to respect the decisions of the latter even when they do not agree with them. They must obey any instructions which the Referee may deem it necessary to give them. @@ -92,81 +93,81 @@ ### The Referee -1. By accepting a position as Referee or Assistant, the person so designated agrees to respect the +**D.17** By accepting a position as Referee or Assistant, the person so designated agrees to respect the rules and to cause them to be respected, and to carry out their duties with the strictest impartiality and absolute concentration. -2. The Referee is responsible not only for the direction of the bout, the judging of hits and the +**D.18** The Referee is responsible not only for the direction of the bout, the judging of hits and the checking of equipment, but equally for the maintenance of order in the bouts which they are refereeing. -3. The Referee has the right to interrupt a bout if the play becomes confused or dangerous, or the +**D.19** The Referee has the right to interrupt a bout if the play becomes confused or dangerous, or the Referee is unable to clearly judge the action any more. In the absence of an objective scoring device, the fencing phrases are judged according to the Referee and Assistant's observation of the action. While fencers are welcome to address the Referee for clarification or appeals before the final decision is made, the Referee's judgment regarding facts is not to be questioned in retrospect. -4. As director of the bout and arbiter of hits, the Referee may, in accordance with the rules and — +**D.20** As director of the bout and arbiter of hits, the Referee may, in accordance with the rules and — according to the circumstances — with or without prior warning: a) refuse to award a hit actually made; b) award a point against a fencer for a hit not actually received; c) exclude a fencer from the competition. When the Referee has judged on a matter of fact, the decision is irrevocable. -5. By reason of the right of jurisdiction which they have over all the fencers who participate in, +**D.21** By reason of the right of jurisdiction which they have over all the fencers who participate in, or are present at a competition which they are refereeing, they can also propose the expulsion from the venue of the competition of the spectators, trainers, instructors and other persons who accompany the fencers. -6. Finally, they may recommend to the Organising Team all other penalties which they consider +**D.22** Finally, they may recommend to the Organising Team all other penalties which they consider appropriate (exclusion from the whole competition, suspension or disqualification). The Head of the Refereeing Team is the authority competent to deal with appeals against the decisions of the Referee. ## The Organising Team and the Head of the Refereeing Team -1. The Organising Team and the head of the Refereeing Team have jurisdiction over all the fencers +**D.23** The Organising Team and the head of the Refereeing Team have jurisdiction over all the fencers who take part in or are present at a competition which they are running. When necessary, they can intervene on their own initiative in all disputes. They are also responsible for maintaining order and discipline during competitions, and may use the penalties specified in the Rules. -2. All the decisions of the Organising Team or the Head of the Refereeing Team are immediately +**D.24** All the decisions of the Organising Team or the Head of the Refereeing Team are immediately enforceable. No appeal against a decision can suspend that decision during the competition. ## Penalties -1. There are distinct categories of penalty applicable to different sorts of offence. +**D.25** There are distinct categories of penalty applicable to different sorts of offence. - 1. Penalties related to fencing, applicable to offences committed while fencing. These are: - 1. refusal to award a hit actually made - 2. awarding a hit which has not in fact been received - 3. exclusion from the competition +- a) Penalties related to fencing, applicable to offences committed while fencing. These are: + - i) refusal to award a hit actually made + - ii) awarding a hit which has not in fact been received + - iii) exclusion from the competition - 2. Disciplinary penalties applicable to offences concerned with maintenance of order, discipline +- b) Disciplinary penalties applicable to offences concerned with maintenance of order, discipline or sportsmanship. These are: - 1. awarding a hit which has not in fact been received - 2. exclusion from the competition - 3. exclusion from participation in the whole tournament - 4. expulsion from the venue of the competition - 5. exclusion from events organised by the Federation or the specific Organising Team for a + - i) awarding a hit which has not in fact been received + - ii) exclusion from the competition + - iii) exclusion from participation in the whole tournament + - iv) expulsion from the venue of the competition + - v) exclusion from events organised by the Federation or the specific Organising Team for a period of time. -2. All these penalties can be applied by the competent authorities at a competition — the Referee, +**D.26** All these penalties can be applied by the competent authorities at a competition — the Referee, the Head of the Refereeing Team, and the Organising Team. ### Penalties Related to Fencing -1. Refusal to award a hit actually made. Although a fencer may in fact have hit the opponent on +**D.27** Refusal to award a hit actually made. Although a fencer may in fact have hit the opponent on the target, this hit may be disallowed, either because it did not arrive during the period of time during which fencing is allowed, or because the fencer had crossed the boundaries of the arena, or because violence was involved in the making of the hit, or because of other reasons as laid down in the Rules. -2. Award of a hit which has not in fact been received. A fencer may have a hit awarded against +**D.28** Award of a hit which has not in fact been received. A fencer may have a hit awarded against them which they have not in fact received, either because they have crossed the limit of the arena, or because they have committed an offence which has prevented the opponent fencing. -3. Exclusion. A fencer who, while fencing, commits certain violent or vindictive actions against +**D.29** Exclusion. A fencer who, while fencing, commits certain violent or vindictive actions against the opponent, or who does not fence to their utmost ability, or who profits from a fraudulent agreement with the opponent, may be excluded from the competition. A fencer who is excluded from a competition may not continue to take part in that competition, even if they are already @@ -176,16 +177,16 @@ ### Disciplinary penalties -1. Exclusion from the Competition. It may also be imposed for a disciplinary offence (failure to +**D.30** Exclusion from the Competition. It may also be imposed for a disciplinary offence (failure to appear on the arena as required, weapons not in accordance with the rules, reprehensible attitude towards an official, etc.). The consequences of such exclusion for the fencer are the same as - those described in the Article 29. above. + those described in D.29 (Exclusion) above. -2. Expulsion from the venue of the competition or the tournament. +**D.31** Expulsion from the venue of the competition or the tournament. - 1. A fencer who is excluded from a tournament is no longer allowed to participate in any +- a) A fencer who is excluded from a tournament is no longer allowed to participate in any competition during that tournament, either at the same weapon or another. - 2. All participants or non-fencers who participate in or are present at a competition +- b) All participants or non-fencers who participate in or are present at a competition (instructors, trainers, technicians, supporters, officials, spectators) may be expelled. Such expulsion has the effect of forbidding them access to the venue for the duration of the competition or tournament. The imposition of this penalty gives no one a right to @@ -193,40 +194,42 @@ ### The types (groups) of penalty -1. There are three types of penalty to be applied in the cases indicated in the table in Article. +**D.32** There are three types of penalty to be applied in the cases indicated in the + [Table of Offences and Penalties](appendices/02-penalties.md). If a Referee has to penalise a fencer who has committed several faults at the same time, they should penalise the least serious fault first. -2. Penalties are cumulative and they are valid for the bout with the exception of those indicated +**D.33** Penalties are cumulative and they are valid for the bout with the exception of those indicated by a BLACK CARD, which means exclusion from the competition, suspension for the remainder of the tournament or future events organised by the Federation or the specific Organising Team. -3. Certain offences can result in the annulment of the hit scored by the fencer at fault. During +**D.34** Certain offences can result in the annulment of the hit scored by the fencer at fault. During the bout, only hits scored in circumstances connected with the offence may be annulled. -4. The penalties are as follows: - 1. a warning, indicated by a YELLOW CARD with which the Referee identifies the fencer at fault. +**D.35** The penalties are as follows: + +- a) a warning, indicated by a YELLOW CARD with which the Referee identifies the fencer at fault. The fencer then knows that any further offence on their part results in a penalty point. - 2. a penalty point, indicated by a RED CARD with which the Referee identifies the fencer at fault. +- b) a penalty point, indicated by a RED CARD with which the Referee identifies the fencer at fault. A hit is added to the score of the opponent and may, if the last hit is at stake, lead to the loss of the bout. Furthermore, a RED CARD can only be followed by another RED CARD or by a BLACK CARD, depending on the nature of the second offence. - 3. Exclusion from the competition, suspension from the remainder of the tournament, indicated by +- c) Exclusion from the competition, suspension from the remainder of the tournament, indicated by a BLACK CARD with which the Referee identifies the person at fault. - 4. Expulsion from the competition venue (any person disturbing the order of the competition). +- d) Expulsion from the competition venue (any person disturbing the order of the competition). -5. All warnings (YELLOW CARDS), penalty points (RED CARDS) and exclusions (BLACK CARDS) must be noted +**D.36** All warnings (YELLOW CARDS), penalty points (RED CARDS) and exclusions (BLACK CARDS) must be noted on the score-sheet of the bout, the pool or the direct-elimination bout, together with the group to which they belong. -6. The offences and their penalties which appear in different articles of the Rules are summarised - in the table that follows in Article 44.); they are divided into four groups. All these +**D.37** The offences and their penalties which appear in different articles of the Rules are summarised + in the [Table of Offences and Penalties](appendices/02-penalties.md); they are divided into four groups. All these penalties are within the competence of the Referee, although the Organising Team still retains the right to intervene on its own initiative. ### The First Group of offences -1. The first infringement in this First Group is penalised by a YELLOW CARD (warning). If during the +**D.38** The first infringement in this First Group is penalised by a YELLOW CARD (warning). If during the same bout the fencer commits the same or a different offence in this group the Referee penalises them on each occasion, with a RED CARD (penalty point). If the fencer at fault has already been penalised by a RED CARD because of an offence listed in the Second or Third Group, they receive a @@ -234,31 +237,33 @@ ### The Second Group of offences -1. Every offence in the Second Group, including the first infringement, is penalised by a RED CARD +**D.39** Every offence in the Second Group, including the first infringement, is penalised by a RED CARD (penalty point). ### The Third Group of Offences -1. The first infringement in the Third Group is penalised by a RED CARD (penalty point), even if the +**D.40** The first infringement in the Third Group is penalised by a RED CARD (penalty point), even if the fencer at fault has already received a RED CARD as a result of offences in the First or Second Groups. -2. If during the same bout the fencer commits the same or a different offence in this group, they +**D.41** If during the same bout the fencer commits the same or a different offence in this group, they are penalised with a BLACK CARD (exclusion from the competition and suspension from the remainder of the tournament). The fencer keeps the position in the ranking obtained up to the moment of the disqualification (unless the ranking has not yet been established via the pools). -3. Any person not on the arena who disturbs the good order of the competition receives: - 1. On the first infringement, a warning, indicated by a YELLOW CARD, valid for the whole of the +**D.42** Any person not on the arena who disturbs the good order of the competition receives: + +- a) On the first infringement, a warning, indicated by a YELLOW CARD, valid for the whole of the competition, which must be noted on the bout score-sheet and recorded by the Technical Team; - 2. At the second infringement during the same competition a BLACK CARD. - 3. In the most serious cases concerning disturbance either on or off the arena, the Referee may +- b) At the second infringement during the same competition a BLACK CARD. +- c) In the most serious cases concerning disturbance either on or off the arena, the Referee may exclude or expel the person at fault immediately. ### The Fourth Group of Offences -1. The first infringement in the Fourth Group, is penalised by a BLACK CARD (exclusion from the +**D.43** The first infringement in the Fourth Group, is penalised by a BLACK CARD (exclusion from the competition). -2. The penalized fencer keeps the position in the ranking obtained up to the moment of the + +**D.44** The penalized fencer keeps the position in the ranking obtained up to the moment of the disqualification (unless the ranking has not yet been established via the pools). From e2e9325fcbfe4e896edccc111a1c53ec6c929a89 Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sun, 9 Aug 2026 01:29:28 +0200 Subject: [PATCH 11/20] refactor(penalties): pure markdown tables with filled ART. column and card colours in PDF Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- appendices/02-penalties.md | 562 +++++------------------------------ generate_pdf.py | 18 +- scripts/check_conventions.sh | 3 +- 3 files changed, 94 insertions(+), 489 deletions(-) diff --git a/appendices/02-penalties.md b/appendices/02-penalties.md index afe6363..d9beeb6 100644 --- a/appendices/02-penalties.md +++ b/appendices/02-penalties.md @@ -1,494 +1,86 @@ # Table of Offences and Penalties -This table is intended to be a summary; it is not a substitute for the full text of the articles -concerned, which should be consulted in any case of doubt. +This table is a summary; it is not a substitute for the full text of the +articles concerned (ART. column), which must be consulted in any case of doubt. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- OFFENCE - ART. - PENALTY -
- -

Non-presentation

-
- -
0.1 - Non presentation when called by the staff of the fencing area ten minutes before the time indicated for start of pool/bouts of direct elimination - - Elimination from the competition -
0.2 - Non presentation on the arena ready to fence when ordered by the referee. Three calls, with one minute intervals. - - 1st call - 2nd call - Elim. -
+An asterisk (\*) means: any hit scored by the fencer at fault is annulled. - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -

Boundary crossing

-
- -
0.3 - Leaving the arena with both feet without the opponent’s interaction and without having scored a valid hit (see the General Rules) - - Verbal warning - Hit against (each subsequent case) -
+## Non-presentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -

1ST GROUP

-
1st offence - 2nd offence - 3rd offence and subs. -
1.1 - Leaving the arena without permission - - YELLOW - RED - RED -
1.2 - Turning back on opponent - -
1.3 - Covering/substitution of valid target - -
1.4 - Interruption of the bout without valid reason - -
1.5 - Attacking forbidden targets (back of the head, spine, groin, foot, back of the knee). Hit with crossguard. Attack with the dagger in rapier. Strike with the buckler. Wrestling or grappling in rapier, sword & buckler, or sabre. - -
1.6 - Clothing/equipment nonconforming. Absence of regulation weapon - -
1.7 - Hitting the arena floor with an uncontrolled action - -
1.8 - Refusal to obey the referee (including actions before “Fence!” or after “Halt!”) - -
1.9 - Disorderly fencing *; taking off mask before the Referee calls 'Halt!'; dressing or undressing in the arena - -
1.10 - Irregular moves in the arena *; throwing the opponent by lifting their both of their feet off the ground * - -
1.11 - Unjustified appeal - -
1.12 - Hitting with the fists and kicking * - -
1.13 - Removing the opponent‘s mask or any other protective equipment. * - -
1.14 - Losing or dropping the cloak during a rapier bout - -
+| No. | Offence | Art. | Penalty | +|-----|---------|------|---------| +| 0.1 | Non-presentation when called by the staff of the arena ten minutes before the time indicated for the start of pool / direct elimination bouts | O.4 | **BLACK** — elimination from the competition | +| 0.2 | Non-presentation on the arena ready to fence when ordered by the Referee (three calls, one-minute intervals) | D.9 | 1st call **YELLOW** · 2nd call **RED** · 3rd call elimination | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -

2ND GROUP

-
1st offence - 2nd offence - 3rd offence and subs. -
2.1 - Throwing the weapon * - - RED - RED - RED -
2.2 - Demanding a break for claimed injury/cramp unjustified by the doctor - -
2.3 - Absence of equipment control marks * - -
2.4 - Dangerous, violent or vindictive action. * Attack with the dagger in rapier bouts. * Strike with the buckler. * - -
+## Boundary crossing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -

3RD GROUP

-
1st offence - 2nd offence -
3.1 - Fencer disturbing order when in the arena. In the most serious cases the Referee may award a black card immediately. - - RED4 (even if the fencer at fault has already received a Red Card as a result of offenses in the 1st or 2nd groups) - BLACK1 (only after the fencer has committed another offence in this third group.) -
3.2 - Dishonest fencing * - - RED -
3.3 - Any person not in arena disturbing order. In the most serious cases the Referee may award a black card immediately. - - YELLOW4 (valid for the whole of the competition) - BLACK3 -
3.4 - Offence against sportsmanship * - In the most serious cases the Referee may award a black card immediately. - - YELLOW - BLACK 1 or 2 -
+| No. | Offence | Art. | 1st occasion | Subsequent | +|-----|---------|------|--------------|------------| +| 0.3 | Leaving the arena with both feet without the opponent's interaction and without having scored a valid hit | G.16 | Verbal warning | Point against | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -

4TH GROUP

-
1st offence -
4.1 - Deliberate brutality. Throwing the opponent onto their head *. Neck-wrenching and small-joint manipulation techniques. * Failing to stop dangerous submission holds before full application (both competitors may be penalised, the victim as well if he/she did not submit). * Throwing the dagger at the opponent in rapier bouts * - - BLACK -
4.2 - Causing injury or threat of injury with equipment non-conforming to the Rules without or with imitated / transferred weapon control marks. - -
4.3 - Offence against sportsmanship (e.g. refusal to salute or shake hands after the bout) - -
4.4 - Refusal of a fencer to fence another competitor properly entered - -
4.5 - Profiting from collusion, favouring an opponent - -
+## First group - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

EXPLANATIONS

-
*Annulling of any hit scored by the competitor at fault
YELLOW CARD - Warning valid for the bout. If a competitor commits an offence of the 1st group after having been penalized with a RED CARD, for whatever reason, he/she receives a further RED CARD. -
RED CARD - Penalty hit -
BLACK CARD - Exclusion from the competition, suspension from the remainder of the tournament. - Possible suspension from future events organised by the Federation or the Organiser. - A competitor only receives a BLACK CARD in the 3rd group if the offender previously committed an offence in this Third Group (demonstrated by a RED CARD). -

-

1. Exclusion from competition -

2. Exclusion from tournament -

3. Expulsion from venue -

4. In serious cases, the referee may exclude/expel immediately -

+Penalty ladder: 1st offence **YELLOW**, 2nd and subsequent offences **RED**. +A fencer already holding a RED card receives a further **RED** for a first +offence of this group. + +| No. | Offence | Art. | +|-----|---------|------| +| 1.1 | Leaving the arena without permission | — | +| 1.2 | Turning the back on the opponent | G.42 | +| 1.3 | Covering/substitution of valid target | G.42 | +| 1.4 | Interruption of the bout without valid reason | G.9 | +| 1.5 | Attacking forbidden targets (back of the head, spine, groin, foot, back of the knee). Hit with the cross-guard. Attack with the dagger in Rapier. Strike with the buckler. Wrestling or grappling in Rapier, Sword & Buckler, or Sabre. | G.40–G.41, R.1, R.15, SB.5, SB.8, S.8 | +| 1.6 | Clothing/equipment nonconforming; absence of regulation weapon | E.6 | +| 1.7 | Hitting the arena floor with an uncontrolled action | G.43 | +| 1.8 | Refusal to obey the Referee (including actions before 'Fence!' or after 'Halt!') | G.10 | +| 1.9 | Disorderly fencing \*; taking off the mask before the Referee calls 'Halt!'; dressing or undressing in the arena | D.11, D.13 | +| 1.10 | Irregular movements in the arena \*; throwing the opponent by lifting both of their feet off the ground \* | D.13, G.50 | +| 1.11 | Unjustified appeal | D.19 | +| 1.12 | Hitting with the fists, kicking \* | G.38 | +| 1.13 | Removing the opponent's mask or any other protective equipment \* | — | +| 1.14 | Losing or dropping the cloak during a Rapier bout | R.21 | + +## Second group + +Penalty: **RED** for every offence, including the first. + +| No. | Offence | Art. | +|-----|---------|------| +| 2.1 | Throwing the weapon \* | G.38 | +| 2.2 | Demanding a break for a claimed injury/cramp not confirmed by the medical staff | G.24 | +| 2.3 | Absence of equipment control marks \* | O.40 | +| 2.4 | Dangerous, violent or vindictive action \*; attack with the dagger in Rapier bouts \*; strike with the buckler \* | D.13, R.15, SB.8 | + +## Third group + +| No. | Offence | Art. | 1st offence | 2nd offence | +|-----|---------|------|-------------|-------------| +| 3.1 | Fencer disturbing order when in the arena (in the most serious cases the Referee may award a black card immediately) | D.2 | **RED**⁴ (even if already holding a RED from groups 1 or 2) | **BLACK**¹ | +| 3.2 | Dishonest fencing \* | D.12 | **RED** | **BLACK**¹ | +| 3.3 | Any person not in the arena disturbing order (in the most serious cases: immediate black card) | D.42 | **YELLOW**⁴ (valid for the whole competition) | **BLACK**³ | +| 3.4 | Offence against sportsmanship \* (in the most serious cases: immediate black card) | D.13 | **YELLOW** | **BLACK**¹ or ² | + +## Fourth group + +Penalty: **BLACK** for the first offence. + +| No. | Offence | Art. | +|-----|---------|------| +| 4.1 | Deliberate brutality; throwing the opponent onto their head \*; neck-wrenching and small-joint manipulation \*; failing to stop dangerous submission holds before full application (both fencers may be penalised, the victim as well if they did not submit) \*; throwing the dagger at the opponent in Rapier bouts \* | G.50, R.16 | +| 4.2 | Causing injury or threat of injury with equipment non-conforming to the Rules, or with imitated/transferred weapon control marks | E.5 | +| 4.3 | Offence against sportsmanship (e.g. refusal to salute or shake hands after the bout) | G.21, D.14 | +| 4.4 | Refusal of a fencer to fence another fencer properly entered | D.6 | +| 4.5 | Profiting from collusion, favouring an opponent | D.29 | + +## Cards and footnotes + +| Card | Meaning | +|------|---------| +| **YELLOW** | Warning, valid for the bout. A fencer who commits a 1st-group offence after having been penalised with a RED card (for whatever reason) receives a further **RED**. | +| **RED** | Penalty point for the opponent. | +| **BLACK** | Exclusion from the competition and suspension from the remainder of the tournament; possible suspension from future events organised by the Federation or the Organiser. In the 3rd group, a BLACK card is awarded only after a previous offence in that group (demonstrated by a RED card). | + +¹ exclusion from the competition · ² exclusion from the tournament · +³ expulsion from the venue · ⁴ in serious cases the Referee may exclude/expel +immediately diff --git a/generate_pdf.py b/generate_pdf.py index e76bf0f..ba208f9 100644 --- a/generate_pdf.py +++ b/generate_pdf.py @@ -239,9 +239,17 @@ def add_header_numbering(match): # Nahradiť všetky h1, h2, h3 s ID a číslovaním (vrátane tých s atribútmi) html_content = re.sub(r']*>(.*?)', add_header_numbering, html_content) - + + html_content = self.colorize_cards(html_content) return html_content - + + def colorize_cards(self, html: str) -> str: + """Zafarbí YELLOW/RED/BLACK karty v tabuľkách trestov.""" + html = html.replace('YELLOW', 'YELLOW') + html = html.replace('RED', 'RED') + html = html.replace('BLACK', 'BLACK') + return html + def get_logo_base64(self) -> str: """Načíta logo a konvertuje na base64""" # Try JPG first, then PNG @@ -612,7 +620,11 @@ def generate_pdf(self, output_filename: str = 'febus_rulebook.pdf'): tbody tr:last-child td { border-bottom: 2px solid #333; } - + + .card-yellow { background-color: #E3D059; padding: 0 4px; white-space: nowrap; } + .card-red { background-color: #E36159; color: #fff; padding: 0 4px; white-space: nowrap; } + .card-black { background-color: #787878; color: #fff; padding: 0 4px; white-space: nowrap; } + /* Citácie */ blockquote { margin: 1em 2em; diff --git a/scripts/check_conventions.sh b/scripts/check_conventions.sh index e6c2a6a..a475047 100755 --- a/scripts/check_conventions.sh +++ b/scripts/check_conventions.sh @@ -4,7 +4,8 @@ set -u FILES="01-intro.md 02-equipment.md 03-general.md 04-right-of-way.md \ 05-longsword.md 06-rapier.md 07-sabre.md 08-sword-and-buckler.md \ -09-organisational.md 10-disciplinary.md README.md appendices/01-glossary.md" +09-organisational.md 10-disciplinary.md README.md appendices/01-glossary.md \ +appendices/02-penalties.md" fail=0 check_zero() { # $1 = popis, $2 = pattern hits=$(grep -nE "$2" $FILES 2>/dev/null) From 49a589285b92bf923aa780e24e774e7b442985ad Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sun, 9 Aug 2026 01:47:15 +0200 Subject: [PATCH 12/20] feat: summary tables for bout parameters, weapon parameters and equipment 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 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- 02-equipment.md | 35 +++++++++++++++++++++++++++++++++++ 09-organisational.md | 10 ++++++++++ generate_pdf.py | 5 +++++ 3 files changed, 50 insertions(+) diff --git a/02-equipment.md b/02-equipment.md index 2ceafd6..9797fcf 100644 --- a/02-equipment.md +++ b/02-equipment.md @@ -100,6 +100,19 @@ ### Weapons +| Parameter | Longsword | One-handed sword | Rapier | Dagger | Sabre | +|---|---|---|---|---|---| +| Overall length | 120–140 cm | 70–100 cm | ≤ 130 cm | ≤ 60 cm | ≤ 105 cm | +| Blade length | — | — | ≤ 110 cm (incl. *ricasso*) | ≤ 45 cm | ≤ 90 cm | +| Weight | 1400–1700 g (men), 1250–1600 g (women) | 900–1200 g | 900–1300 g | not specified | 650–800 g | +| Flexibility | 9–16 kg | not specified | ≤ 10 kg | not specified | ≤ 10 kg | +| Minimum point area | 70 mm² | 50 mm² | 50 mm² | blunt + rounded/secured | 50 mm² | +| Point of balance | ≤ 9 cm from cross-guard | ≤ 9 cm from cross-guard | — | — | — | + +> **Note:** This table is a summary of the detailed requirements below, which +> prevail in case of doubt. Buckler: circular, diameter ≤ 40 cm, wooden or +> metallic, no studs or sharp edges. + The flexibility of a blade is measured by applying pressure on the blade point against scales, with one hand firmly placed on the pommel. The blade's flexibility is the maximum value (in kg) displayed on the scales before the @@ -257,3 +270,25 @@ blade reaches full bend. **E.80** The Organising Team reserves the right to disallow weapons they feel are unsafe or against the spirit of the rules. + +## Equipment checklist by weapon category + +| Equipment | Longsword | Rapier | Sabre | Sword & Buckler | +|---|---|---|---|---| +| FIE mask (CE level 2, 1600 N), undamaged | required | required | required | required | +| Back-of-head + cervical spine protection | required | required | required | required | +| Throat/larynx protector | required | required | required | required | +| HEMA fencing gloves | required | not required with a sufficiently closed hilt (E.15) | not required with a sufficiently closed hilt (E.15) | required | +| Additional wrist/forearm protection | — | required when fencing without a massive glove | required when fencing without a massive glove | — | +| Rigid wrist guard | required | — | required | required | +| Fencing jacket/gambeson ≥ 350 N, covering armpits | required | required | required | required | +| Under-plastron 800 N (FIE) | — | required | — | — | +| Breast/chest protection (women) | required | required | required | required | +| Groin protector (men) | required | required | required | required | +| Knee + shin protection (front and sides) | required | required | required | required | +| Thigh protection ≥ 350 N (CE level 1) | required | required | required | required | +| Hip protection (jacket or padded trousers) | required | required | required | required | +| Side-weapon hand: glove with additional protection | — | required if a side weapon is used | — | — | + +> **Note:** Summary only — the detailed articles above prevail. `required` +> means mandatory for entering the category. diff --git a/09-organisational.md b/09-organisational.md index 4558f92..5ba72bf 100644 --- a/09-organisational.md +++ b/09-organisational.md @@ -73,6 +73,16 @@ The values stated below (pool sizes, point limits, bout durations, and the share eliminated after the pools) are the standard defaults. The Organising Team may announce different values before the start of the competition; unless announced otherwise, the defaults apply. +| Phase | Fencing time | Point limit | Rest | If tied at end of time | +|-------|--------------|-------------|------|------------------------| +| Pool bout | 2 min | 5 | — | 1 min sudden death; lot decides if still tied | +| Direct elimination | 2 × 2 min | 7 | 1 min between periods | 1 min sudden death; lot decides if still tied | +| Medal bouts (gold, bronze) | per schedule | may be raised (e.g. 10 or 15) | per schedule | as direct elimination | + +> **Note:** These are the default values; the Organising Team may announce +> different values before the start of the competition (see the articles +> below). + ### The round of pools **O.16** In all competitions for which the formula includes a round of pools, the pools consist of diff --git a/generate_pdf.py b/generate_pdf.py index ba208f9..23122e2 100644 --- a/generate_pdf.py +++ b/generate_pdf.py @@ -600,6 +600,11 @@ def generate_pdf(self, output_filename: str = 'febus_rulebook.pdf'): font-size: 10pt; } + tr { + page-break-inside: avoid; + break-inside: avoid; + } + th, td { border: none; border-top: 1px solid #ddd; From 5dfccd6cc83abfad88b97410f7f34c9605e1c06c Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sun, 9 Aug 2026 02:01:47 +0200 Subject: [PATCH 13/20] feat: worked examples, Note convention, weapon overview and referee quick reference appendices Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- 03-general.md | 15 +++++++++ 04-right-of-way.md | 21 ++++++++++++ 05-longsword.md | 7 ++-- README.md | 2 ++ appendices/01-glossary.md | 8 ++--- appendices/03-weapon-overview.md | 17 ++++++++++ appendices/04-referee-quick-reference.md | 43 ++++++++++++++++++++++++ 7 files changed, 106 insertions(+), 7 deletions(-) create mode 100644 appendices/03-weapon-overview.md create mode 100644 appendices/04-referee-quick-reference.md diff --git a/03-general.md b/03-general.md index 0d5aac2..81dd410 100644 --- a/03-general.md +++ b/03-general.md @@ -173,6 +173,21 @@ (or the finishing move of a compound action) at or after the moment of receiving a hit. After-actions do not score, and do not nullify the hit received. +> **Example (simultaneous hit):** Both fencers decide to attack at the same +> moment and both cuts land together; neither action began meaningfully +> earlier. → Simultaneous hit, scored according to the weapon-specific rules +> (no score change in Longsword and Sabre; both fencers score in Rapier and +> Sword & Buckler). + +> **Example (double hit):** Fencer A launches a correct attack. Fencer B, +> instead of parrying, counterattacks; both hits arrive within one period of +> fencing time. → Double hit, evaluated by the weapon-specific rules (in +> priority weapons the point goes to A). + +> **Example (after-action):** Fencer A lands a clean valid hit. Only after +> being hit does Fencer B start a counter-cut, which also lands. → B's hit is +> an after-action: it does not score and does not annul A's point. + **G.33** Hits can be made using the weapon in the following ways: - a) Cut - carried out with the edge of the blade on any valid target. A cut must be performed diff --git a/04-right-of-way.md b/04-right-of-way.md index 01e3b59..c60c6b6 100644 --- a/04-right-of-way.md +++ b/04-right-of-way.md @@ -51,6 +51,10 @@ Priority assignment for specific actions: - a) The parry is properly carried out when, before the completion of the attack, it prevents the arrival of that attack by closing the line in which that attack is to finish. - b) When a parry is properly executed, the attack by the opponent must be declared parried, and judged as such by the Referee, even if, as a result of its flexibility, the tip of the opponent's weapon makes contact with the target. +> **Example:** A attacks; B parries successfully but pauses before riposting. +> A immediately renews the attack and hits while B's delayed riposte also +> lands. → A scores: the delayed riposte lost priority. + ## Priority Assignment in Double Hits **RoW.14** Priority rules are only used in assessing double hits. If there is a delay of a fencing time or more between hits, the fencer who landed first is assessed to have scored. @@ -69,6 +73,15 @@ Priority assignment for specific actions: **RoW.20** if, having their point 'in line' and being subjected to a beat or a taking of the blade which deflects their blade, they attack or place their point in line again instead of parrying a direct hit made by the opponent +> **Example:** A attacks with a straight thrust, the arm extending before the +> lunge. B counterattacks to the arm without parrying; both hits land within +> one fencing time. → A alone scores: a counterattack into a simple attack +> loses. + +> **Example:** A makes a compound attack (feint, then disengage). B stop-hits, +> but the stop-hit lands only as A starts the final movement. → The stop-hit +> is not in time; A alone scores. + ### The fencer who attacks is alone counted as hit: **RoW.21** If they initiated their attack when the opponent's point was 'in line', without deflecting the opponent's weapon. Referees must ensure that a mere contact of the blades is not considered as sufficient to deflect the opponent's blade. @@ -83,6 +96,14 @@ Priority assignment for specific actions: **RoW.26** If they make a hit by a renewed attack following a parry by the opponent which has been followed by a riposte which is immediate, simple and executed in one period of fencing time without withdrawing the arm. +> **Example:** B stands with the point in line before A starts attacking. A +> attacks without deflecting B's blade and both fencers are hit. → B alone +> scores: A had to take the blade first. + +> **Example:** A attacks; B parries and ripostes immediately with a simple +> direct riposte. A renews the attack (remise) and both hits land. → B alone +> scores: a remise against an immediate simple riposte loses. + ### Both fencers are at fault (no points awarded) **RoW.27** Similar conception and execution of the same action by both fencers at once, without either of them taking the initiative sooner than the other. diff --git a/05-longsword.md b/05-longsword.md index 1154fa3..68d2f72 100644 --- a/05-longsword.md +++ b/05-longsword.md @@ -48,9 +48,10 @@ Longsword uses the standard priority (right of way, historically *Vor*) system. **LS.7** In cases when a stop-hit is made and there is doubt as to whether it was made sufficiently in time in relation to the final movement of a compound attack, the double hit often occurs through the fault of both fencers concerned. Since this is clearly not a tactically symmetrical case, - the Referee should assign no points. (The fault of the attacker consists of indecision, slowness - of execution or the making of feints which are not sufficiently effective. The fault of the - defender lies in delay or slowness in making the stop-hit.) + the Referee should assign no points. + +> **Note:** The fault of the attacker typically consists of indecision, slow execution, or +> insufficiently effective feints; the fault of the defender lies in a delayed or slow stop-hit. **LS.8** Any actions executed while holding the weapon with one hand only, can only score if the fencer does not receive any attack or counterattack with a weapon held with two hands, within one diff --git a/README.md b/README.md index dc2c7ad..cafe7ec 100644 --- a/README.md +++ b/README.md @@ -26,3 +26,5 @@ - [Glossary](appendices/01-glossary.md) - [Table of Offences and Penalties](appendices/02-penalties.md) +- [Weapon Overview](appendices/03-weapon-overview.md) +- [Referee Quick Reference](appendices/04-referee-quick-reference.md) diff --git a/appendices/01-glossary.md b/appendices/01-glossary.md index aef6c10..ecd7563 100644 --- a/appendices/01-glossary.md +++ b/appendices/01-glossary.md @@ -39,10 +39,10 @@ ## Fencing actions -1. This section of the rules defines basic fencing actions in terms which are easy to understand for - every fencer even though they might practice different schools of fencing and thus use - various terminologies. It is stressed that this section in no way replaces a treatise on fencing - and is only included in order to help the reader understand the rules. +> **Note:** This section of the rules defines basic fencing actions in terms which are easy to +> understand for every fencer even though they might practise different schools of fencing and +> thus use various terminologies. It is stressed that this section in no way replaces a treatise +> on fencing and is only included in order to help the reader understand the rules. ### Offensive actions diff --git a/appendices/03-weapon-overview.md b/appendices/03-weapon-overview.md new file mode 100644 index 0000000..6aed4b9 --- /dev/null +++ b/appendices/03-weapon-overview.md @@ -0,0 +1,17 @@ +# Weapon Overview + +Summary of the key differences between weapon categories. The weapon-specific +chapters prevail in case of doubt. + +| | Longsword | Rapier & side weapons | Sabre | Sword & Buckler | +|---|---|---|---|---| +| Valid target | whole body incl. weapon handle, except forbidden targets | whole body except forbidden targets and the cloak | hips up (incl. arms and head); legs are off-target | whole body except forbidden targets; hits on the buckler are not valid | +| Priority (right of way) | yes ([RoW](../04-right-of-way.md)) | no — combat rules | yes ([RoW](../04-right-of-way.md)) | no — combat rules (as Rapier) | +| Simultaneous hits | no points | both score a point | no score change | both score a point | +| Double hits | priority rules decide | each scores a point, except thrust beats cut/slice (thrust only) | priority rules decide | as Rapier | +| After-actions | never score | never score | never score | never score | +| Grappling / close quarter combat | allowed | forbidden | forbidden | forbidden | +| Special rules | pommel strike to the mask scores; dominance incl. grappling | dagger and cloak defensive only; parrying with the unarmed hand allowed | hits through blade contact must retain force; point-in-line exception; dominance without grappling | buckler defensive only; striking with the buckler forbidden | + +Forbidden targets in all categories: back of the head, spine, groin, feet, +back of the knees (see [Forbidden actions](../03-general.md)). diff --git a/appendices/04-referee-quick-reference.md b/appendices/04-referee-quick-reference.md new file mode 100644 index 0000000..dee6ea5 --- /dev/null +++ b/appendices/04-referee-quick-reference.md @@ -0,0 +1,43 @@ +# Referee Quick Reference + +> **Note:** Informative summary for referees. The full rules prevail. + +## Commands + +'On guard!' → 'Are you ready?' → 'Fence!' → … → 'Halt!' (see G.7–G.8) + +## Stop the exchange ('Halt!') when + +a valid hit lands · an invalid hit complicates further evaluation · a fencer +leaves the arena with both feet · end of time · dangerous or confused fencing · +equipment failure · injury · a fencer requests a break (raised arm) (see G.8) + +## Arena boundaries + +- Both feet out → stop immediately; annul everything after the crossing (G.13–G.14). +- One foot out → a hit still scores if the action started before 'Halt!' (G.15). +- Both feet out without a prior valid hit (penalty 0.3): first time a verbal + warning, then a point against (G.16). +- Pushed out accidentally by the opponent → no penalty (G.17). + +## Bout parameters (defaults) + +Pools: 2 min or 5 points (O.17). Direct elimination: 2 × 2 min (1 min rest) or 7 +points (O.28, O.31). Tie → 1 min sudden death; before it starts, the Referee +draws lots for priority in case nobody scores (G.20; see also O.19, O.33). + +## Breaks + +Equipment failure: up to 3 min (G.23). Injury/cramp: up to 10 min (confirmed by +medical staff; once per injury per bout) (G.24). + +## Cards + +Group 1: **YELLOW** → **RED** → **RED** · Group 2: **RED** every time · +Group 3: **RED** → **BLACK** (3.1, 3.2) / **YELLOW** → **BLACK** (3.3, 3.4) · +Group 4: **BLACK** immediately. +Full table: [Table of Offences and Penalties](02-penalties.md). + +## Verdicts per weapon + +See [Weapon Overview](03-weapon-overview.md). From 937605ffb9ab4efd1f9a65ad2f2b6b2e4992adcd Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sun, 9 Aug 2026 02:07:58 +0200 Subject: [PATCH 14/20] chore: cover new appendices in convention check 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 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- scripts/check_conventions.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/check_conventions.sh b/scripts/check_conventions.sh index a475047..dfc810c 100755 --- a/scripts/check_conventions.sh +++ b/scripts/check_conventions.sh @@ -5,7 +5,8 @@ set -u FILES="01-intro.md 02-equipment.md 03-general.md 04-right-of-way.md \ 05-longsword.md 06-rapier.md 07-sabre.md 08-sword-and-buckler.md \ 09-organisational.md 10-disciplinary.md README.md appendices/01-glossary.md \ -appendices/02-penalties.md" +appendices/02-penalties.md appendices/03-weapon-overview.md \ +appendices/04-referee-quick-reference.md" fail=0 check_zero() { # $1 = popis, $2 = pattern hits=$(grep -nE "$2" $FILES 2>/dev/null) From bda5896c9daecaeaed0eb4db3632d684cc77cf29 Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sun, 9 Aug 2026 02:33:53 +0200 Subject: [PATCH 15/20] feat: version, curated changelog, title page version and open content questions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- 03-general.md | 4 +- 09-organisational.md | 4 +- CHANGELOG.md | 48 +++++++++++++ README.md | 3 + VERSION | 1 + docs/open-questions.md | 29 ++++++++ generate_pdf.py | 150 ++++++++++++++++++++++++++++------------- 7 files changed, 189 insertions(+), 50 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 VERSION create mode 100644 docs/open-questions.md diff --git a/03-general.md b/03-general.md index 81dd410..934721a 100644 --- a/03-general.md +++ b/03-general.md @@ -24,7 +24,7 @@ line. **G.6** Bout durations, point limits and tie-break procedures are set out in the - [Organisational Rules](09-organisational.md), O.16–O.34. Unless the Organising Team + [Organisational Rules](09-organisational.md), O.17–O.20 and O.31–O.33. Unless the Organising Team announces otherwise, the defaults are: pool bouts 2 minutes or 5 points; direct elimination bouts 2 × 2 minutes (with a one-minute rest) or 7 points. The Timekeeper announces the end of time. Only the Referee may @@ -144,7 +144,7 @@ **G.28** If the fencer withdraws from the competition during the last pool bout, the score is recorded as if they had forfeited only one pool bout (see previous paragraph), but they are not - included in the calculation if ranking for the direct elimination table. + included in the calculation of ranking for the direct elimination table. **G.29** If the fencer withdraws during the direct elimination phase, the opponent is declared as winning, and the fencer does not lose their place in the overall classification of the diff --git a/09-organisational.md b/09-organisational.md index 5ba72bf..916c9d6 100644 --- a/09-organisational.md +++ b/09-organisational.md @@ -106,7 +106,7 @@ values before the start of the competition; unless announced otherwise, the defa **O.19** If at the end of regulation time the scores are equal, the fencers fence for a deciding hit, with a maximum time limit of one minute. Before the fencing recommences, the Referee draws lots to decide who is the winner if scores are still equal at the end of the extra minute, as - described in the [General Rules](03-general.md). + described in [G.20](03-general.md). **O.20** In this case the score registered on the score-sheet is always the actual score achieved in the bout: @@ -180,7 +180,7 @@ values before the start of the competition; unless announced otherwise, the defa **O.33** If at the end of regulation time the scores are equal, the fencers fence for a deciding hit, with a maximum time limit of one minute. Before the fencing recommences the Referee draws lots to decide who is the winner if scores are still equal at the end of the extra minute, as - described in the [General Rules](03-general.md). In this case the score recorded on the + described in [G.20](03-general.md). In this case the score recorded on the score-sheet is the real score achieved in the bout. **O.34** Withdrawal: When, for whatever reason, a fencer cannot fence, or cannot complete their bout, diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e5e5d4a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,48 @@ +# Changelog + +## 2.0.0-draft (2026) + +Readability refactor — no intended changes to the meaning of the rules: + +- Chapters renamed to the canonical reading order; README, PDF and file + numbering unified. +- Global article numbering with chapter prefixes (E, G, RoW, LS, R, S, SB, O, + D); ART. column of the penalty table filled in; broken references inherited + from the FIE rules removed. +- Normative verb convention (must/may/should) and a "Use of Language" clause. +- Terminology unified (fencer, bout, priority, point vs hit, arena, on-guard + line, Assistant Referee, off-target vs forbidden target); new glossary + entries. +- General rules reorganised: subsection headings, universal forbidden actions + promoted out of the longsword-only close-quarter section, dominance rules + restructured. +- Summary tables (bout parameters, weapon parameters, equipment checklist), + worked examples for tactical situations and priority, weapon overview and + referee quick-reference appendices. +- PDF generator: title page now shows the rulebook version; the Change Log + page renders this file instead of the raw git log; table-of-contents page + numbers are now resolved from the PDF's own internal anchors (named + destinations) rather than by matching heading text, which fixes wrong page + numbers for headings whose title text repeats across chapters (e.g. + "Judging of hits" in longsword, rapier and sword & buckler, or "Arena + boundaries" in both the main body and appendix A4). Also fixed a related + anchor bug: heading IDs used in cross-chapter links were derived from + already smart-quoted HTML, so a heading containing an apostrophe or + quotation mark (e.g. "Stop the exchange ('Halt!') when") produced a + different ID than the one used to link to it, leaving that entry's page + number blank and its link dead. +- Known gaps flagged for the federation: no rule text exists for offences 1.1 + (leaving the arena without permission) and 1.13 (removing the opponent's + mask); offence 1.2 is only partially anchored (G.42 covers turning the head + or covering a target, not turning the back on the opponent); offence 1.9 is + only partially anchored (D.11/D.13 cover keeping the mask on and general + irregular conduct, not dressing or undressing in the arena); offence 4.2 is + only partially anchored (E.5 covers general equipment responsibility, not + imitated or transferred weapon control marks specifically); video-review + procedure is unspecified; the sabre hip boundary and the rapier + hilt-as-target question are open. See `docs/open-questions.md` for the + full list with proposed wording. + +## 1.x + +Original rulebook (see git history). diff --git a/README.md b/README.md index cafe7ec..edbb0ff 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # FEBUS Tournament Rulebook +**Version 2.0.0-draft** — under review, not yet in force. See the +[Changelog](CHANGELOG.md). + ## Introduction - [Introduction](01-intro.md) diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..2cbe8ef --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +2.0.0-draft diff --git a/docs/open-questions.md b/docs/open-questions.md new file mode 100644 index 0000000..d5b13e4 --- /dev/null +++ b/docs/open-questions.md @@ -0,0 +1,29 @@ +# Otvorené obsahové otázky (vyžadujú rozhodnutie federácie) + +1. **Video review** — G-pravidlo dnes dáva právo na jeden appeal, ale chýba + procedúra. Návrh: nový článok v Organisational Rules — o review rozhoduje + Referee po vzhliadnutí záznamu s Assistantom; review môže zmeniť len + posúdenie faktov poslednej výmeny; ak záznam nie je presvedčivý, pôvodný + verdikt platí a fencer stráca ďalší appeal. +2. **Sabre — hranica bedra**: "from the hips up" nedefinuje, či zásah presne na + bedrový kĺb platí. Návrh: "hits on the hip line count as valid". +3. **Rapier — rukoväť/koš ako cieľ**: longsword rukoväť explicitne zahŕňa, + rapier mlčí. Návrh: doplniť do R článku o cieli "including the hilt of the + weapon" alebo explicitne vylúčiť. +4. **Priestupky 1.1 a 1.13** nemajú kotvu v texte pravidiel — doplniť články + (opustenie arény bez povolenia; strhnutie masky súpera) do G/D. +5. **One-handed sword** nemá v equipment kapitole limit flexibility — doplniť? +6. **Priestupok 1.2 (otočenie sa chrbtom k súperovi)** má v tabuľke trestov + kotvu G.42, ale G.42 v skutočnosti opisuje len otočenie hlavy alebo + zakrytie platného cieľa mimocieľovou časťou tela — nie otočenie sa + chrbtom. Návrh: doplniť do G.42 (alebo nového článku) explicitnú vetu o + otočení sa chrbtom k súperovi. +7. **Priestupok 1.9 (obliekanie/vyzliekanie v aréne)** má kotvu D.11/D.13, tie + však pokrývajú len ponechanie masky do "Halt!" a všeobecné nešportové + konanie — nie obliekanie/vyzliekanie. Návrh: doplniť explicitnú vetu do + D.11 alebo nový článok v D. +8. **Priestupok 4.2 (imitované/prenesené kontrolné značky výzbroje)** má + kotvu E.5, tá však opisuje len všeobecnú zodpovednosť fencera za výzbroj, + nie falšovanie alebo prenos kontrolných značiek. Návrh: doplniť do E + kapitoly (alebo O.40) explicitný zákaz imitovania/prenosu kontrolných + značiek. diff --git a/generate_pdf.py b/generate_pdf.py index 23122e2..c86ab32 100644 --- a/generate_pdf.py +++ b/generate_pdf.py @@ -8,6 +8,7 @@ import os import re +import html import base64 import subprocess from pathlib import Path @@ -38,7 +39,7 @@ def collect_markdown_files(self) -> List[Tuple[str, Path]]: # Hlavné súbory v root adresári for file in Path('.').glob('*.md'): - if file.name not in ['README.md', 'CLAUDE.md'] \ + if file.name not in ['README.md', 'CLAUDE.md', 'CHANGELOG.md'] \ and not file.name.startswith('FEBUS_smernica'): root_files.append((file.name, file)) @@ -196,7 +197,14 @@ def convert_markdown_to_html(self, content: str, file_name: str, chapter_num: in def add_header_numbering(match): level = int(match.group(1)) text = match.group(2) - header_id = re.sub(r'[^\w\s-]', '', text.lower()) + # `text` comes from already-converted HTML, so smart quotes from the + # 'smarty' extension are still literal entities (e.g. ‘) at this + # point. Unescape them before stripping punctuation, otherwise their + # letters (lsquo/rsquo/amp/...) survive into the id and it no longer + # matches the anchor extract_headers_for_toc computed from the raw + # markdown text — breaking the TOC link and page-number lookup for + # any heading containing a quote/apostrophe (e.g. "Halt!"). + header_id = re.sub(r'[^\w\s-]', '', html.unescape(text).lower()) header_id = re.sub(r'[-\s]+', '-', header_id) # Generovať číslovanie @@ -310,9 +318,23 @@ def get_repository_url(self) -> str: return url except: return "https://github.com/FEBUS/rulebook" - + + def get_version(self) -> str: + """Získa verziu rulebooku zo súboru VERSION""" + p = Path('VERSION') + return p.read_text(encoding='utf-8').strip() if p.exists() else '' + def generate_changelog(self) -> str: - """Vygeneruje changelog z git histórie""" + """Vygeneruje changelog: preferuje CHANGELOG.md, fallback git história.""" + changelog_md = Path('CHANGELOG.md') + if changelog_md.exists(): + md = markdown.Markdown(extensions=['extra', 'sane_lists']) + body = md.convert(changelog_md.read_text(encoding='utf-8')) + return f'
{body}
' + return self._generate_changelog_from_git() + + def _generate_changelog_from_git(self) -> str: + """Vygeneruje changelog z git histórie (fallback, ak chýba CHANGELOG.md)""" try: result = subprocess.run( ['git', 'log', '--pretty=format:%h | %ad | %s', '--date=short', '-20'], @@ -344,55 +366,89 @@ def generate_changelog(self) -> str: return '

Change Log

No git history available.

' def extract_page_numbers_from_pdf(self, pdf_path: str) -> Dict[str, int]: - """Extrahuje čísla strán pre kotvy z PDF""" + """Extrahuje čísla strán pre kotvy z PDF. + + Primárne cez named destinations, ktoré vytvorí WeasyPrint pre každý + `` odkaz (TOC odkazuje na každú kotvu z + self.toc_entries) — kotva sa tak namapuje priamo na skutočnú stranu + podľa PDF štruktúry, bez závislosti na texte nadpisu. Toto opravuje + prípady, keď sa rovnaký text nadpisu (napr. "Arena boundaries") + opakuje vo viacerých kapitolách/prílohách a staršie zhodovanie podľa + titulku vracalo stranu prvého výskytu textu, nie skutočnú stranu danej + kotvy. + + Ak sa pre niektorú kotvu named destination nenájde, spadne sa na + pôvodné zhodovanie podľa titulku nadpisu ako záložné riešenie. + """ page_numbers = {} try: with open(pdf_path, 'rb') as pdf_file: pdf_reader = PyPDF2.PdfReader(pdf_file) - - # Create mapping of expected titles to anchors - title_to_anchor = {} + + named_destinations = {} + try: + named_destinations = pdf_reader.named_destinations + except Exception as e: + print(f"Varovanie: Nepodarilo sa načítať named destinations: {e}") + + unresolved = [] for level, title, anchor in self.toc_entries: - # Get just the title without numbering - clean_title = title.split('. ', 1)[-1] if '. ' in title else title - title_to_anchor[clean_title] = anchor - # Also try with just first few words for better matching - short_title = ' '.join(clean_title.split()[:3]) - if short_title not in title_to_anchor: - title_to_anchor[short_title] = anchor - - # TOC starts on page 2 (after title page), actual content starts on page 3 - # So we need to account for this offset - toc_pages = 2 # Title page + TOC page - - # For each page, extract text and look for titles - for page_num, page in enumerate(pdf_reader.pages, start=1): - text = page.extract_text() - if not text: + dest = named_destinations.get(anchor) + if dest is None: + unresolved.append((level, title, anchor)) continue - - # Clean up text for better matching - text = ' '.join(text.split()) # Normalize whitespace - - # Check each title - for title, anchor in title_to_anchor.items(): - if anchor not in page_numbers: - # Look for title at the beginning of a line or after numbering - if title in text: - # Additional check - ensure it's not in the middle of text - idx = text.find(title) - if idx != -1: - # Check if it's preceded by a number (chapter number) or at start - before = text[max(0, idx-10):idx] - if idx == 0 or any(c.isdigit() or c == '.' for c in before[-3:]): - page_numbers[anchor] = page_num - break - + try: + page_numbers[anchor] = pdf_reader.get_destination_page_number(dest) + 1 + except Exception: + unresolved.append((level, title, anchor)) + + if unresolved: + page_numbers.update(self._extract_page_numbers_by_title(pdf_reader, unresolved)) + except Exception as e: print(f"Varovanie: Nepodarilo sa extrahovať čísla strán: {e}") - + return page_numbers - + + def _extract_page_numbers_by_title(self, pdf_reader, entries) -> Dict[str, int]: + """Záložné zhodovanie kotvy podľa textu titulku (ak chýba named destination). + + Na rozdiel od pôvodnej implementácie sa strany prehľadávajú v poradí, + v akom sa nadpisy nachádzajú v dokumente (self.toc_entries), a + vyhľadávanie pre každý ďalší nadpis začína až od strany, na ktorej sa + našiel predchádzajúci — nie od strany 1. Pri opakujúcom sa texte + titulku (napr. rovnaký názov v dvoch kapitolách) sa tak každá kotva + naviaže na svoj skutočný výskyt, nie na prvý výskyt textu v dokumente. + """ + page_numbers = {} + page_texts = [] + for page in pdf_reader.pages: + text = page.extract_text() or '' + page_texts.append(' '.join(text.split())) + + search_from = 0 + for level, title, anchor in entries: + clean_title = title.split('. ', 1)[-1] if '. ' in title else title + short_title = ' '.join(clean_title.split()[:3]) + found_page = None + for page_idx in range(search_from, len(page_texts)): + text = page_texts[page_idx] + for candidate in (clean_title, short_title): + idx = text.find(candidate) + if idx == -1: + continue + before = text[max(0, idx - 10):idx] + if idx == 0 or any(c.isdigit() or c == '.' for c in before[-3:]): + found_page = page_idx + 1 + break + if found_page: + break + if found_page: + page_numbers[anchor] = found_page + search_from = found_page - 1 + + return page_numbers + def generate_pdf(self, output_filename: str = 'febus_rulebook.pdf'): """Vygeneruje PDF dokument""" print("Generujem PDF...") @@ -410,7 +466,9 @@ def generate_pdf(self, output_filename: str = 'febus_rulebook.pdf'): last_commit_date = self.get_last_commit_date() commit_hash = self.get_commit_hash() repo_url = self.get_repository_url() - + version = self.get_version() + edition = f'Official Edition — Version {version}' if version else 'Official Edition' + # Titulná strana html_parts.append(f'''
@@ -428,7 +486,7 @@ def generate_pdf(self, output_filename: str = 'febus_rulebook.pdf'):
-
Official Edition
+
{edition}
{last_commit_date}
Federácia Európskych Bojových Umení Slovenska
From a5b9b6186977ce5d8b4da770d7010aca551dbe38 Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sun, 9 Aug 2026 02:44:27 +0200 Subject: [PATCH 16/20] fix: remove broken title-matching fallback in TOC page-number lookup 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 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- generate_pdf.py | 75 +++++++++++++++---------------------------------- 1 file changed, 22 insertions(+), 53 deletions(-) diff --git a/generate_pdf.py b/generate_pdf.py index c86ab32..8f9aefb 100644 --- a/generate_pdf.py +++ b/generate_pdf.py @@ -366,19 +366,25 @@ def _generate_changelog_from_git(self) -> str: return '

Change Log

No git history available.

' def extract_page_numbers_from_pdf(self, pdf_path: str) -> Dict[str, int]: - """Extrahuje čísla strán pre kotvy z PDF. + """Extrahuje čísla strán pre kotvy z PDF cez named destinations. - Primárne cez named destinations, ktoré vytvorí WeasyPrint pre každý - `
` odkaz (TOC odkazuje na každú kotvu z - self.toc_entries) — kotva sa tak namapuje priamo na skutočnú stranu - podľa PDF štruktúry, bez závislosti na texte nadpisu. Toto opravuje - prípady, keď sa rovnaký text nadpisu (napr. "Arena boundaries") - opakuje vo viacerých kapitolách/prílohách a staršie zhodovanie podľa - titulku vracalo stranu prvého výskytu textu, nie skutočnú stranu danej - kotvy. + WeasyPrint vytvorí named destination pre každý `` + odkaz, ktorý má v dokumente zodpovedajúci `id`; TOC odkazuje na každú + kotvu z self.toc_entries, takže za normálnych okolností sa každá + kotva namapuje priamo na skutočnú stranu podľa PDF štruktúry, bez + závislosti na texte nadpisu. Toto opravuje prípady, keď sa rovnaký + text nadpisu (napr. "Arena boundaries", "Judging of hits") opakuje vo + viacerých kapitolách/prílohách — staršie zhodovanie podľa titulku + vracalo stranu prvého výskytu textu v CELOM dokumente (vrátane + bežného textu, nie len nadpisov), nie skutočnú stranu danej kotvy. - Ak sa pre niektorú kotvu named destination nenájde, spadne sa na - pôvodné zhodovanie podľa titulku nadpisu ako záložné riešenie. + Predchádzajúca verzia mala pre nevyriešené kotvy záložné zhodovanie + podľa titulku; to sa v praxi ukázalo nefunkčné (chybná posuvná + oblasť hľadania a zhoda na hocijaký výskyt textu, nielen nadpis) a + keďže named destinations pokrývajú všetky kotvy z TOC, bolo + odstránené. Ak sa napriek tomu pre niektorú kotvu destination + nenájde, hlasno sa to nahlási a číslo strany zostane v TOC prázdne + (rovnaké degradované správanie, aké malo pôvodné zlyhanie extrakcie). """ page_numbers = {} try: @@ -395,60 +401,23 @@ def extract_page_numbers_from_pdf(self, pdf_path: str) -> Dict[str, int]: for level, title, anchor in self.toc_entries: dest = named_destinations.get(anchor) if dest is None: - unresolved.append((level, title, anchor)) + unresolved.append((title, anchor)) continue try: page_numbers[anchor] = pdf_reader.get_destination_page_number(dest) + 1 except Exception: - unresolved.append((level, title, anchor)) + unresolved.append((title, anchor)) if unresolved: - page_numbers.update(self._extract_page_numbers_by_title(pdf_reader, unresolved)) + print(f"VAROVANIE: {len(unresolved)} položiek obsahu nemá named " + f"destination — ich číslo strany v TOC ostane prázdne: " + f"{[title for title, _ in unresolved]}") except Exception as e: print(f"Varovanie: Nepodarilo sa extrahovať čísla strán: {e}") return page_numbers - def _extract_page_numbers_by_title(self, pdf_reader, entries) -> Dict[str, int]: - """Záložné zhodovanie kotvy podľa textu titulku (ak chýba named destination). - - Na rozdiel od pôvodnej implementácie sa strany prehľadávajú v poradí, - v akom sa nadpisy nachádzajú v dokumente (self.toc_entries), a - vyhľadávanie pre každý ďalší nadpis začína až od strany, na ktorej sa - našiel predchádzajúci — nie od strany 1. Pri opakujúcom sa texte - titulku (napr. rovnaký názov v dvoch kapitolách) sa tak každá kotva - naviaže na svoj skutočný výskyt, nie na prvý výskyt textu v dokumente. - """ - page_numbers = {} - page_texts = [] - for page in pdf_reader.pages: - text = page.extract_text() or '' - page_texts.append(' '.join(text.split())) - - search_from = 0 - for level, title, anchor in entries: - clean_title = title.split('. ', 1)[-1] if '. ' in title else title - short_title = ' '.join(clean_title.split()[:3]) - found_page = None - for page_idx in range(search_from, len(page_texts)): - text = page_texts[page_idx] - for candidate in (clean_title, short_title): - idx = text.find(candidate) - if idx == -1: - continue - before = text[max(0, idx - 10):idx] - if idx == 0 or any(c.isdigit() or c == '.' for c in before[-3:]): - found_page = page_idx + 1 - break - if found_page: - break - if found_page: - page_numbers[anchor] = found_page - search_from = found_page - 1 - - return page_numbers - def generate_pdf(self, output_filename: str = 'febus_rulebook.pdf'): """Vygeneruje PDF dokument""" print("Generujem PDF...") From 83d8068f27f73a557a69bfeb163bd3af9b7c476a Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sun, 9 Aug 2026 03:05:17 +0200 Subject: [PATCH 17/20] fix: PDF-internal appendix links, British spelling remnants and final review polish Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015mUp5Fjoti86eriPXzE7Gw --- .gitignore | 3 +++ 02-equipment.md | 6 +++--- 06-rapier.md | 2 +- 10-disciplinary.md | 8 ++++---- docs/open-questions.md | 6 ++++++ generate_pdf.py | 27 +++++++++++++++++++-------- scripts/check_conventions.sh | 1 + 7 files changed, 37 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 6526bd7..22db012 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ CLAUDE.md .DS_Store venv/ febus_rulebook.pdf +febus_logo_old.png +original_febus_rules.pdf +rules.pdf diff --git a/02-equipment.md b/02-equipment.md index 9797fcf..babd02a 100644 --- a/02-equipment.md +++ b/02-equipment.md @@ -6,14 +6,14 @@ angles of the light and the ground slipperiness. **E.2** The fencing arena is a square or rectangular shape, its dimensions must be between a minimum of - 5x9 meters and a maximum of 8x12 meters. The borders of a fencing arena must be marked by a full + 5x9 metres and a maximum of 8x12 metres. The borders of a fencing arena must be marked by a full line attached or drawn on the ground. The closest obstacle must be at least 1 meter away from the marking line. -**E.3** The center point of a fencing arena may be marked. +**E.3** The centre point of a fencing arena may be marked. **E.4** The starting position of the fencers must be marked in such a way that the on-guard line is at least 2m - away from the center of the arena in opposite directions, setting up at least 4m distance between + away from the centre of the arena in opposite directions, setting up at least 4m distance between the fencers at the start of each exchange. ## Equipment standards diff --git a/06-rapier.md b/06-rapier.md index 4f717b3..3042980 100644 --- a/06-rapier.md +++ b/06-rapier.md @@ -9,7 +9,7 @@ offences. **R.3** Body contact (including accidental jostling) in itself is not considered as wrestling and - therefore are allowed. + is therefore allowed. ## Judging of hits diff --git a/10-disciplinary.md b/10-disciplinary.md index 0690e5b..e77355c 100644 --- a/10-disciplinary.md +++ b/10-disciplinary.md @@ -81,7 +81,7 @@ **D.15** Punishable actions are acted on by verbal warnings, warnings (yellow card), point awarded to the opponent (red card) or disqualification and expulsion from the venue (black card), according to - severity and repetition of offense, as detailed in the rulebook (see the + severity and repetition of offence, as detailed in the rulebook (see the [Table of Offences and Penalties](appendices/02-penalties.md)). **D.16** Spectators are obliged not to interfere with the good order of a competition, to do nothing which @@ -211,8 +211,8 @@ - a) a warning, indicated by a YELLOW CARD with which the Referee identifies the fencer at fault. The fencer then knows that any further offence on their part results in a penalty point. - b) a penalty point, indicated by a RED CARD with which the Referee identifies the fencer at fault. - A hit is added to the score of the opponent and may, if the last hit is at stake, lead to the - loss of the bout. Furthermore, a RED CARD can only be followed by another RED CARD or by a + A point is added to the score of the opponent and may, if the last point is at stake, lead to + the loss of the bout. Furthermore, a RED CARD can only be followed by another RED CARD or by a BLACK CARD, depending on the nature of the second offence. - c) Exclusion from the competition, suspension from the remainder of the tournament, indicated by a BLACK CARD with which the Referee identifies the person at fault. @@ -264,6 +264,6 @@ **D.43** The first infringement in the Fourth Group, is penalised by a BLACK CARD (exclusion from the competition). -**D.44** The penalized fencer keeps the position in the ranking obtained up to the moment of the +**D.44** The penalised fencer keeps the position in the ranking obtained up to the moment of the disqualification (unless the ranking has not yet been established via the pools). diff --git a/docs/open-questions.md b/docs/open-questions.md index d5b13e4..a39f981 100644 --- a/docs/open-questions.md +++ b/docs/open-questions.md @@ -27,3 +27,9 @@ nie falšovanie alebo prenos kontrolných značiek. Návrh: doplniť do E kapitoly (alebo O.40) explicitný zákaz imitovania/prenosu kontrolných značiek. +9. **Priority assignment for specific actions** (04-right-of-way.md, riadky + ~28–33) — blok noriem (požiadavka na blade commitment, counterattacks + nemôžu získať prioritu, podmienka pre remise) nemá čísla článkov (RoW.x), + preto nie je citovateľný. Návrh: federácia/maintainer rozhodne, či blok + očíslovať ako nové RoW články, alebo obsah zapracovať do existujúcich RoW + článkov. Do rozhodnutia blok samotný nemeniť. diff --git a/generate_pdf.py b/generate_pdf.py index 8f9aefb..a25d62b 100644 --- a/generate_pdf.py +++ b/generate_pdf.py @@ -138,8 +138,15 @@ def generate_table_of_contents(self, with_page_numbers=False) -> str: return '\n'.join(toc_html) - def convert_md_links_to_anchors(self, content: str) -> str: - """Konvertuje odkazy na .md súbory na interné HTML kotvy""" + def convert_md_links_to_anchors(self, content: str, file_name: str) -> str: + """Konvertuje odkazy na .md súbory na interné HTML kotvy + + Cesty v odkazoch sú relatívne k súboru, v ktorom sa nachádzajú (napr. + appendices/01-glossary.md odkazuje na ../04-right-of-way.md), takže sa + musia rozlíšiť voči adresáru zdrojového súboru (`file_name`) — nie voči + surovej ceste z odkazu — inak vznikne kotva, ktorá v dokumente + neexistuje (napr. '#..-04-right-of-way' namiesto '#04-right-of-way'). + """ # Pattern pre markdown odkazy: [text](path/file.md) alebo [text](path/file.md#anchor) def replace_link(match): link_text = match.group(1) @@ -152,13 +159,17 @@ def replace_link(match): # Rozdeliť cestu a kotvu ak existuje if '#' in link_path: file_part, anchor_part = link_path.split('#', 1) - # Odstráň .md a nahraď / za - - chapter_id = file_part.replace('.md', '').replace('/', '-') - # Vytvoriť internú kotvu + else: + file_part, anchor_part = link_path, None + + # Rozlíšiť cestu voči adresáru zdrojového súboru + resolved = os.path.normpath(os.path.join(os.path.dirname(file_name), file_part)) + chapter_id = resolved.replace('.md', '').replace(os.sep, '-').replace('/', '-') + + if anchor_part is not None: internal_anchor = f"#{chapter_id}-{anchor_part}" else: # Len súbor bez kotvy - odkazuj na začiatok kapitoly - chapter_id = link_path.replace('.md', '').replace('/', '-') internal_anchor = f"#{chapter_id}" return f"[{link_text}]({internal_anchor})" @@ -170,7 +181,7 @@ def replace_link(match): def convert_markdown_to_html(self, content: str, file_name: str, chapter_num: int) -> str: """Konvertuje markdown na HTML s pridaním ID a číslovania pre navigáciu""" # Najprv konvertuj .md odkazy na interné kotvy - content = self.convert_md_links_to_anchors(content) + content = self.convert_md_links_to_anchors(content, file_name) # Inicializovať markdown konvertor md = markdown.Markdown(extensions=[ @@ -623,7 +634,7 @@ def generate_pdf(self, output_filename: str = 'febus_rulebook.pdf'): border-collapse: collapse; width: 100%; margin: 2em 0; - page-break-inside: avoid; + page-break-inside: auto; font-size: 10pt; } diff --git a/scripts/check_conventions.sh b/scripts/check_conventions.sh index dfc810c..35be7bc 100755 --- a/scripts/check_conventions.sh +++ b/scripts/check_conventions.sh @@ -20,6 +20,7 @@ check_zero "nekanonická priorita" 'right of initiative' check_zero "nekanonická čiara" 'start-line|\bstarting line\b' check_zero "nekanonický asistent" 'Side Referee' check_zero "americký pravopis organizácie" 'Organizing Team|organizer' +check_zero "americký pravopis" '\b(center|meters|offense|penalized|organized)\b' check_zero "nekanonický cross-guard" '\bcrossguard\b|cross/guard' check_zero "nekanonický stop hit" '\bstop hit\b' check_zero "rozbité FIE odkazy" 'Article [0-9]|in Article\.|Figure 2' From 13064c64c0949a9ca757624b831772b349999039 Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sun, 9 Aug 2026 17:03:45 +0200 Subject: [PATCH 18/20] style(intro): condense Use of Language section to two paragraphs --- 01-intro.md | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/01-intro.md b/01-intro.md index 9aba4be..6a8eb4e 100644 --- a/01-intro.md +++ b/01-intro.md @@ -13,20 +13,14 @@ ruleset should be efficient in providing equal opportunities for every tournamen ## Use of Language -1. This Rulebook uses the following verb conventions: - - **must** / **must not** — a binding requirement or prohibition; - - **may** — a permission; - - **should** — a recommendation: not binding, but expected as good practice; - - **can** — a statement of ability or possibility, not a norm. +In this Rulebook, **must** and **must not** state binding requirements, +**may** grants a permission, and **should** gives a non-binding +recommendation. Terms in *italics* are defined in the +[Glossary](appendices/01-glossary.md); blocks marked **Note:** or +**Example:** only illustrate the rules and contain no requirements. -2. Terms in *italics* are technical terms defined in the - [Glossary](appendices/01-glossary.md). - -3. Blocks introduced with **Note:** or **Example:** are informative only; they - illustrate the rules but contain no requirements. - -4. Rules are numbered with a chapter prefix: E = Equipment, G = General rules, - RoW = Right of Way, LS = Longsword, R = Rapier, S = Sabre, SB = Sword & - Buckler, O = Organisational, D = Disciplinary. Cite rules by these - identifiers (e.g. "G.16", "RoW.12(a)"). Identifiers are stable: new rules - receive new numbers and existing numbers are not reused. +Rules are numbered with a chapter prefix (E = Equipment, G = General, +RoW = Right of Way, LS = Longsword, R = Rapier, S = Sabre, SB = Sword & +Buckler, O = Organisational, D = Disciplinary) and are cited by these +identifiers, e.g. "G.16" or "RoW.12(a)". Once assigned, an identifier +never changes. From fe070b33b0d0f44e828c59d4a2c1ef2986659462 Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sun, 9 Aug 2026 21:25:02 +0200 Subject: [PATCH 19/20] refactor: move summary tables from core chapters to Weapon Overview appendix --- 02-equipment.md | 36 ++-------------------- 09-organisational.md | 11 ++----- appendices/03-weapon-overview.md | 39 ++++++++++++++++++++++++ appendices/04-referee-quick-reference.md | 2 ++ 4 files changed, 46 insertions(+), 42 deletions(-) diff --git a/02-equipment.md b/02-equipment.md index babd02a..184527f 100644 --- a/02-equipment.md +++ b/02-equipment.md @@ -100,18 +100,9 @@ ### Weapons -| Parameter | Longsword | One-handed sword | Rapier | Dagger | Sabre | -|---|---|---|---|---|---| -| Overall length | 120–140 cm | 70–100 cm | ≤ 130 cm | ≤ 60 cm | ≤ 105 cm | -| Blade length | — | — | ≤ 110 cm (incl. *ricasso*) | ≤ 45 cm | ≤ 90 cm | -| Weight | 1400–1700 g (men), 1250–1600 g (women) | 900–1200 g | 900–1300 g | not specified | 650–800 g | -| Flexibility | 9–16 kg | not specified | ≤ 10 kg | not specified | ≤ 10 kg | -| Minimum point area | 70 mm² | 50 mm² | 50 mm² | blunt + rounded/secured | 50 mm² | -| Point of balance | ≤ 9 cm from cross-guard | ≤ 9 cm from cross-guard | — | — | — | - -> **Note:** This table is a summary of the detailed requirements below, which -> prevail in case of doubt. Buckler: circular, diameter ≤ 40 cm, wooden or -> metallic, no studs or sharp edges. +> **Note:** A summary table of the weapon parameters and an equipment +> checklist by weapon category are provided in the +> [Weapon Overview](appendices/03-weapon-overview.md) appendix. The flexibility of a blade is measured by applying pressure on the blade point against scales, with one hand firmly placed on the pommel. The blade's @@ -271,24 +262,3 @@ blade reaches full bend. **E.80** The Organising Team reserves the right to disallow weapons they feel are unsafe or against the spirit of the rules. -## Equipment checklist by weapon category - -| Equipment | Longsword | Rapier | Sabre | Sword & Buckler | -|---|---|---|---|---| -| FIE mask (CE level 2, 1600 N), undamaged | required | required | required | required | -| Back-of-head + cervical spine protection | required | required | required | required | -| Throat/larynx protector | required | required | required | required | -| HEMA fencing gloves | required | not required with a sufficiently closed hilt (E.15) | not required with a sufficiently closed hilt (E.15) | required | -| Additional wrist/forearm protection | — | required when fencing without a massive glove | required when fencing without a massive glove | — | -| Rigid wrist guard | required | — | required | required | -| Fencing jacket/gambeson ≥ 350 N, covering armpits | required | required | required | required | -| Under-plastron 800 N (FIE) | — | required | — | — | -| Breast/chest protection (women) | required | required | required | required | -| Groin protector (men) | required | required | required | required | -| Knee + shin protection (front and sides) | required | required | required | required | -| Thigh protection ≥ 350 N (CE level 1) | required | required | required | required | -| Hip protection (jacket or padded trousers) | required | required | required | required | -| Side-weapon hand: glove with additional protection | — | required if a side weapon is used | — | — | - -> **Note:** Summary only — the detailed articles above prevail. `required` -> means mandatory for entering the category. diff --git a/09-organisational.md b/09-organisational.md index 916c9d6..03c2671 100644 --- a/09-organisational.md +++ b/09-organisational.md @@ -73,15 +73,8 @@ The values stated below (pool sizes, point limits, bout durations, and the share eliminated after the pools) are the standard defaults. The Organising Team may announce different values before the start of the competition; unless announced otherwise, the defaults apply. -| Phase | Fencing time | Point limit | Rest | If tied at end of time | -|-------|--------------|-------------|------|------------------------| -| Pool bout | 2 min | 5 | — | 1 min sudden death; lot decides if still tied | -| Direct elimination | 2 × 2 min | 7 | 1 min between periods | 1 min sudden death; lot decides if still tied | -| Medal bouts (gold, bronze) | per schedule | may be raised (e.g. 10 or 15) | per schedule | as direct elimination | - -> **Note:** These are the default values; the Organising Team may announce -> different values before the start of the competition (see the articles -> below). +> **Note:** A one-page summary of the bout parameters is provided in the +> [Referee Quick Reference](appendices/04-referee-quick-reference.md). ### The round of pools diff --git a/appendices/03-weapon-overview.md b/appendices/03-weapon-overview.md index 6aed4b9..c24455d 100644 --- a/appendices/03-weapon-overview.md +++ b/appendices/03-weapon-overview.md @@ -15,3 +15,42 @@ chapters prevail in case of doubt. Forbidden targets in all categories: back of the head, spine, groin, feet, back of the knees (see [Forbidden actions](../03-general.md)). + +## Weapon parameters + +| Parameter | Longsword | One-handed sword | Rapier | Dagger | Sabre | +|---|---|---|---|---|---| +| Overall length | 120–140 cm | 70–100 cm | ≤ 130 cm | ≤ 60 cm | ≤ 105 cm | +| Blade length | — | — | ≤ 110 cm (incl. *ricasso*) | ≤ 45 cm | ≤ 90 cm | +| Weight | 1400–1700 g (men), 1250–1600 g (women) | 900–1200 g | 900–1300 g | not specified | 650–800 g | +| Flexibility | 9–16 kg | not specified | ≤ 10 kg | not specified | ≤ 10 kg | +| Minimum point area | 70 mm² | 50 mm² | 50 mm² | blunt + rounded/secured | 50 mm² | +| Point of balance | ≤ 9 cm from cross-guard | ≤ 9 cm from cross-guard | — | — | — | + +> **Note:** Summary only — the articles of the +> [Technical & Equipment Standards](../02-equipment.md) prevail in case of +> doubt. Buckler: circular, diameter ≤ 40 cm, wooden or metallic, no studs or +> sharp edges. + +## Equipment checklist by weapon category + +| Equipment | Longsword | Rapier | Sabre | Sword & Buckler | +|---|---|---|---|---| +| FIE mask (CE level 2, 1600 N), undamaged | required | required | required | required | +| Back-of-head + cervical spine protection | required | required | required | required | +| Throat/larynx protector | required | required | required | required | +| HEMA fencing gloves | required | not required with a sufficiently closed hilt (E.15) | not required with a sufficiently closed hilt (E.15) | required | +| Additional wrist/forearm protection | — | required when fencing without a massive glove | required when fencing without a massive glove | — | +| Rigid wrist guard | required | — | required | required | +| Fencing jacket/gambeson ≥ 350 N, covering armpits | required | required | required | required | +| Under-plastron 800 N (FIE) | — | required | — | — | +| Breast/chest protection (women) | required | required | required | required | +| Groin protector (men) | required | required | required | required | +| Knee + shin protection (front and sides) | required | required | required | required | +| Thigh protection ≥ 350 N (CE level 1) | required | required | required | required | +| Hip protection (jacket or padded trousers) | required | required | required | required | +| Side-weapon hand: glove with additional protection | — | required if a side weapon is used | — | — | + +> **Note:** Summary only — the articles of the +> [Technical & Equipment Standards](../02-equipment.md) prevail. `required` +> means mandatory for entering the category. diff --git a/appendices/04-referee-quick-reference.md b/appendices/04-referee-quick-reference.md index dee6ea5..93e4a32 100644 --- a/appendices/04-referee-quick-reference.md +++ b/appendices/04-referee-quick-reference.md @@ -25,6 +25,8 @@ equipment failure · injury · a fencer requests a break (raised arm) (see G.8) Pools: 2 min or 5 points (O.17). Direct elimination: 2 × 2 min (1 min rest) or 7 points (O.28, O.31). Tie → 1 min sudden death; before it starts, the Referee draws lots for priority in case nobody scores (G.20; see also O.19, O.33). +Medal bouts: the Organising Team may raise the point limit (e.g. 10 or 15) and +adjust the time structure (O.29). ## Breaks From 18417afa4613922ec5375fc26570171a5227b8d2 Mon Sep 17 00:00:00 2001 From: Anton Kohutovic Date: Sun, 9 Aug 2026 21:30:35 +0200 Subject: [PATCH 20/20] style(appendix): checkmark icons instead of 'required' in equipment checklist --- appendices/03-weapon-overview.md | 36 ++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/appendices/03-weapon-overview.md b/appendices/03-weapon-overview.md index c24455d..7947ee4 100644 --- a/appendices/03-weapon-overview.md +++ b/appendices/03-weapon-overview.md @@ -36,21 +36,25 @@ back of the knees (see [Forbidden actions](../03-general.md)). | Equipment | Longsword | Rapier | Sabre | Sword & Buckler | |---|---|---|---|---| -| FIE mask (CE level 2, 1600 N), undamaged | required | required | required | required | -| Back-of-head + cervical spine protection | required | required | required | required | -| Throat/larynx protector | required | required | required | required | -| HEMA fencing gloves | required | not required with a sufficiently closed hilt (E.15) | not required with a sufficiently closed hilt (E.15) | required | -| Additional wrist/forearm protection | — | required when fencing without a massive glove | required when fencing without a massive glove | — | -| Rigid wrist guard | required | — | required | required | -| Fencing jacket/gambeson ≥ 350 N, covering armpits | required | required | required | required | -| Under-plastron 800 N (FIE) | — | required | — | — | -| Breast/chest protection (women) | required | required | required | required | -| Groin protector (men) | required | required | required | required | -| Knee + shin protection (front and sides) | required | required | required | required | -| Thigh protection ≥ 350 N (CE level 1) | required | required | required | required | -| Hip protection (jacket or padded trousers) | required | required | required | required | -| Side-weapon hand: glove with additional protection | — | required if a side weapon is used | — | — | +| FIE mask (CE level 2, 1600 N), undamaged | ✓ | ✓ | ✓ | ✓ | +| Back-of-head + cervical spine protection | ✓ | ✓ | ✓ | ✓ | +| Throat/larynx protector | ✓ | ✓ | ✓ | ✓ | +| HEMA fencing gloves | ✓ | ✓ ¹ | ✓ ¹ | ✓ | +| Additional wrist/forearm protection | — | ✓ ² | ✓ ² | — | +| Rigid wrist guard | ✓ | — | ✓ | ✓ | +| Fencing jacket/gambeson ≥ 350 N, covering armpits | ✓ | ✓ | ✓ | ✓ | +| Under-plastron 800 N (FIE) | — | ✓ | — | — | +| Breast/chest protection (women) | ✓ | ✓ | ✓ | ✓ | +| Groin protector (men) | ✓ | ✓ | ✓ | ✓ | +| Knee + shin protection (front and sides) | ✓ | ✓ | ✓ | ✓ | +| Thigh protection ≥ 350 N (CE level 1) | ✓ | ✓ | ✓ | ✓ | +| Hip protection (jacket or padded trousers) | ✓ | ✓ | ✓ | ✓ | +| Side-weapon hand: glove with additional protection | — | ✓ ³ | — | — | + +✓ = required for entering the category · — = not required · +¹ not required with a sufficiently closed hilt (E.15) · +² required when fencing without a massive glove (E.15) · +³ required if a side weapon is used (E.16) > **Note:** Summary only — the articles of the -> [Technical & Equipment Standards](../02-equipment.md) prevail. `required` -> means mandatory for entering the category. +> [Technical & Equipment Standards](../02-equipment.md) prevail.