docs apply STE100 fixes to prose

Split semicolons into sentences, drop contractions, remove non-inclusive term (whitelist -> allowlist), and fix passive voice in steering docs and the doctrine-check skill. No content or guidance changed, wording only.

Commit
efb9351875d9d84ccce74b028128842af6eb3236
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
Changed files
.kiro/skills/doctrine-check/SKILL.md
index b9f2a267..2e601d4b 100644..100644
@@ -57,8 +57,8 @@
57 57 1. The doctrine wins — the target must change, or
58 58 2. The conflict is raised explicitly.
59 59
60 Removed: Never let a conflict pass in silence. A silent deviation is the failure this
61 Removed: check exists to prevent.
60 Added: Never allow a silent conflict. A silent deviation is the failure this check
61 Added: exists to prevent.
62 62
63 63 ## What to test against
64 64
@@ -66,27 +66,27 @@
66 66 target touches; do not pad the report with untouched ones.
67 67
68 68 - **Intensity is categorical, not scalar.** A working set ends at momentary
69 Removed: muscular failure; that is its definition (HD1, "The Intensity Factor": 0% at
69 Added: muscular failure. That is its definition (HD1, "The Intensity Factor": 0% at
70 70 rest, 100% at failure). Effort past failure is qualitative
71 71 (`Beyond_failure`: forced reps, negatives, static hold — each a count).
72 Removed: Rest-pause is not in HD1; flag any attempt to add it. Flag any
72 Added: Rest-pause is not in HD1. Flag any attempt to add it. Flag any
73 73 numeric "intensity score".
74 Removed: - **Recovery produces growth; the gym only stimulates it.** Stimulation is
75 Removed: immediate; production is not (HD1, "The Economics of Growth and Recovery").
76 Removed: Recovery is systemic and time-based; a hard workout gates the next one.
74 Added: - **Recovery produces growth. The gym only stimulates it.** Stimulation is
75 Added: immediate. Production is not (HD1, "The Economics of Growth and Recovery").
76 Added: Recovery is systemic and time-based. A hard workout gates the next one.
77 77 - **Volume beyond the minimum is harmful.** One working set per exercise is
78 Removed: nominal; three sets per muscle is the ceiling. The net negative of each extra
78 Added: nominal. Three sets per muscle is the ceiling. The net negative of each extra
79 79 set increases geometrically. Rising volume is a diagnostic warning, never an
80 80 achievement or a target.
81 81 - **Progressive overload is the progress signal.** Progress is more reps,
82 Removed: weight, or both; one extra rep counts. Reps are an outcome, never a target —
82 Added: weight, or both. One extra rep counts. Reps are an outcome, never a target —
83 83 a set ends at failure, not a number. The band only calibrates load. Raise the
84 84 load 10-20% once twelve reps are reached. A 6-10 band is not breached at
85 85 eleven.
86 86 - **Brief, infrequent, intense.** Shorter sessions at equal or better overload
87 87 are favourable (HD1, "Regulating Volume and Frequency").
88 Removed: - **Focus over novelty.** Exercises come from a curated catalog. Substitutions
89 Removed: follow author-specified whitelists; a routine may only narrow them.
88 Added: - **Focus over novelty.** Exercises come from a curated catalog. Author-specified
89 Added: allowlists limit substitutions. A routine may only narrow them.
90 90 - **On a stall, the answer is never more work.** After two weeks of no
91 91 progress: a week off, then *reduce* volume and frequency — drop sets, add
92 92 rest days (HD1, "Regulating Volume and Frequency"). No remedy may add volume
@@ -98,9 +98,9 @@
98 98 runtime.
99 99 - Deviations (training early, extra volume) must be possible but never silent:
100 100 require an explicit acknowledgement and retain it.
101 Removed: - Keep plan and record distinct: prescription/routine vs logged workout;
102 Removed: prescription vs progression.
103 Removed: - The logbook records; it never interprets. Invariants belong on authored
101 Added: - Keep plan and record distinct. Separate prescription or routine from logged
102 Added: workout, and prescription from progression.
103 Added: - The logbook records. It never interprets. Invariants belong on authored
104 104 plans, not on observed history. A log that refuses to state what happened is
105 105 worse than one that records an error.
106 106
@@ -119,4 +119,4 @@
119 119 state the tension plainly and ask for a decision. Do not resolve it silently.
120 120
121 121 Keep it terse. Cite the doctrine for every claim. Do not invent doctrine that
122 Removed: is not in HD1 or `domain.md`; if the source is silent, say so.
122 Added: is not in HD1 or `domain.md`. If the source is silent, say so.
.kiro/steering/domain.md
index 61c2d200..5be32bf1 100644..100644
@@ -2,8 +2,8 @@
2 2
3 3 hito is a Heavy Duty training tracker.
4 4
5 Removed: - Source of doctrine: `doc/Mike_Mentzer_Heavy_Duty_I.md` (HD1). Every domain
6 Removed: decision must be justified against it.
5 Added: - Source of doctrine: `doc/Mike_Mentzer_Heavy_Duty_I.md` (HD1). You must
6 Added: justify every domain decision against it.
7 7 - It is copyrighted local reference material, gitignored, and never committed.
8 8 - On conflict between a design choice and the doctrine:
9 9 1. The doctrine wins, or
@@ -12,26 +12,26 @@
12 12 ## Principles that bind the model
13 13
14 14 - **Intensity is categorical, not scalar.**
15 Removed: - A working set is taken to momentary muscular failure; that *is* its
15 Added: - You take a working set to momentary muscular failure. That *is* its
16 16 definition (HD1, "The Intensity Factor": the only accurate measures are 0%
17 17 at rest and 100% at failure).
18 18 - Going further is qualitative — `Beyond_failure`: forced reps, negatives,
19 19 static hold. Each is a count (reps, or seconds held). Rest-pause is not in
20 20 HD1 and is not modeled.
21 21 - Never introduce a numeric "intensity score".
22 Removed: - **Recovery produces growth; the gym only stimulates it.**
23 Removed: - Stimulation is immediate; production is not (HD1, "The Economics of Growth
22 Added: - **Recovery produces growth. The gym only stimulates it.**
23 Added: - Stimulation is immediate. Production is not (HD1, "The Economics of Growth
24 24 and Recovery": recovery precedes growth).
25 25 - Recovery is systemic and time-based — any hard workout gates the next one.
26 26 - **Volume beyond the minimum is harmful.**
27 Removed: - One working set per exercise is nominal; three sets per muscle is the ceiling.
27 Added: - One working set per exercise is nominal. Three sets per muscle is the ceiling.
28 28 A prescription that exceeds it is unrepresentable — `Prescription.Workout.make`
29 29 refuses it.
30 30 - The net negative effect of each extra set increases geometrically.
31 31 - Rising volume is a diagnostic warning — never an achievement or a progress
32 32 target.
33 33 - **Progressive overload is the progress signal.**
34 Removed: - Progress = an increase in reps, weight, or both; one extra rep counts.
34 Added: - Progress is an increase in reps, weight, or both. One extra rep counts.
35 35 - Reps are an *outcome*, never a target — a set ends at failure, not at a
36 36 number. The prescribed band only calibrates load.
37 37 - Raise the load once twelve reps are reached, by 10-20%, so failure returns
@@ -41,8 +41,8 @@
41 41 - Shorter sessions at equal or better overload are favourable.
42 42 - **Focus over novelty.**
43 43 - Exercises come from a curated catalog.
44 Removed: - Substitutions are limited to author-specified whitelists, which a routine
45 Removed: may only narrow.
44 Added: - Author-specified allowlists limit substitutions. A routine may only
45 Added: narrow them.
46 46
47 47 ## Encoding rules
48 48
@@ -55,7 +55,7 @@
55 55 - Keep plan and record distinct:
56 56 - Prescription/routine vs logged workout.
57 57 - Prescription vs progression (plan vs observation).
58 Removed: - The logbook records; it never interprets.
58 Added: - The logbook records. It never interprets.
59 59 - Judgement belongs to one module.
60 60 - Invariants belong on plans, which are authored — not on history, which is
61 61 observed.
.kiro/steering/ocaml.md
index 267a2e58..78a8dc63 100644..100644
@@ -4,8 +4,8 @@
4 4
5 5 - `.mli` files are the specification and outrank tests.
6 6 - If an interface and a test disagree, fix the test.
7 Removed: - Changing an interface is a deliberate design decision — raise it, don't drift
8 Removed: into it.
7 Added: - Changing an interface is a deliberate design decision. Raise it. Do not let
8 Added: the change drift in unannounced.
9 9
10 10 ## Style
11 11
@@ -16,9 +16,9 @@
16 16 - Reach for `let*` when it flattens nested cases — chained `result` or
17 17 `result Lwt.t` plumbing where each step short-circuits on error. Used this
18 18 way, a bind improves flow and cuts indentation.
19 Removed: - A single `match` is clearer than a monad; don't reach for one reflexively.
19 Added: - A single `match` is clearer than a monad. Do not reach for one reflexively.
20 20 - Two or three cascading `match ... with Error _ -> ... | Ok x -> ...`
21 Removed: steps are the signal to switch to `let*`.
21 Added: steps are the signal to change to `let*`.
22 22 - Abstract types with smart constructors for anything carrying an invariant.
23 23 - Use `result` for expected, recoverable failure.
24 24 - This includes converting untrusted external data and domain feedback a caller
@@ -28,7 +28,7 @@
28 28 - Raise a module-specific exception for a violated authored-plan precondition
29 29 after validation.
30 30 - Do not use exceptions for normal domain outcomes or recorded deviations.
31 Removed: - Prefer closed variants — they keep `match` exhaustiveness working for you.
31 Added: - Prefer closed variants — they keep `match` exhaustiveness complete.
32 32 - Total functions where practical; make partiality visible in the type.
33 33
34 34 ## Layering
@@ -55,7 +55,7 @@
55 55
56 56 Rules:
57 57
58 Removed: - Ports are module types; adapters implement them; `Service.Make` and
58 Added: - Ports are module types. Adapters implement them. `Service.Make` and
59 59 `Handlers.Make` are the dependency inversion.
60 60 - Persistence identity is assigned in `hito.app`, not in the core.
61 61 - Data crossing a boundary is a plain value: a view-model DTO outward, a core
.kiro/steering/workflow.md
index 0feaac90..9848e768 100644..100644
@@ -42,13 +42,13 @@
42 42 Written for a human skimming the repo, not for completeness.
43 43
44 44 - Terse, idiomatic OCaml documentation.
45 Removed: - Refactor docs aggressively; delete anything stale or redundant in the same
45 Added: - Refactor docs aggressively. Delete anything stale or redundant in the same
46 46 change that outdates it.
47 47 - Interface docs state **intention**, not implementation. One line where one
48 48 line will do.
49 49 - A module header says what the module is for and which invariant it upholds.
50 50 - No Markdown files unless asked.
51 Removed: - Don't restate the signature in prose. Document the *why* and the edge cases.
51 Added: - Do not restate the signature in prose. Document the *why* and the edge cases.
52 52
53 53
54 54 ## Build directory safety
@@ -64,7 +64,7 @@
64 64
65 65 Never run `dune fmt` while a watch build runs. `dune fmt` ignores
66 66 `--build-dir` and connects to the Dune RPC server that the watch process owns.
67 Removed: That connection is dropped mid-rebuild, and the failure looks like a build
67 Added: Dune drops that connection mid-rebuild. The failure then looks like a build
68 68 error when the code is fine.
69 69
70 70 Format with `ocamlformat` directly, which does not touch the RPC server: