diff --git a/.skills/design-standards/SKILL.md b/.skills/design-standards/SKILL.md index 5d83f59821..61f4492841 100644 --- a/.skills/design-standards/SKILL.md +++ b/.skills/design-standards/SKILL.md @@ -4,7 +4,7 @@ Android-specific guidance for applying the Meshtastic design standards. All visual rules, color palettes, accessibility requirements, and cross-platform conventions live upstream. > **Source of truth:** [`meshtastic/design/standards/`](https://github.com/meshtastic/design/tree/master/standards) -> Read `meshtastic_design_standards_latest.md` (a pointer to the current versioned spec — `meshtastic_design_standards_v1_4.md` at time of writing) for the full spec (colors, M3 mapping, accessibility, units/locale, agent checklist). +> That index names the current version; open it from there for the full spec (colors, M3 mapping, accessibility, units/locale, agent checklist). Don't fetch `meshtastic_design_standards_latest.md` over HTTP — it is a symlink, and GitHub returns its target's filename, 35 bytes, with HTTP 200. > If this skill diverges from upstream, **upstream wins**. ## 1. How to Use the Standards diff --git a/.skills/speckit/SKILL.md b/.skills/speckit/SKILL.md index edf206ab25..2b4d091764 100644 --- a/.skills/speckit/SKILL.md +++ b/.skills/speckit/SKILL.md @@ -108,7 +108,7 @@ specs/ The project constitution at `.specify/memory/constitution.md` defines non-negotiable principles. All specs, plans, and tasks are validated against it during `/speckit.analyze`. -Current constitution (v1.3.6) enforces 7 principles: +Current constitution (v1.4.0) enforces 7 principles: 1. **KMP Core** — Business logic in `commonMain` only 2. **Zero Lint Tolerance** — `spotlessCheck` + `detekt` must pass diff --git a/.specify/memory/constitution.md b/.specify/memory/constitution.md index 2e78b3324a..d4a15a5830 100644 --- a/.specify/memory/constitution.md +++ b/.specify/memory/constitution.md @@ -1,4 +1,27 @@ -- [ ] New screens reviewed against [design standards](https://raw.githubusercontent.com/meshtastic/design/refs/heads/master/standards/meshtastic_design_standards_latest.md) +- [ ] New screens reviewed against [design standards](https://github.com/meshtastic/design/tree/master/standards) - [ ] M3 component selection verified (e.g., `SwitchPreference` not raw `Switch`) - [ ] Accessibility: TalkBack semantics, touch targets, color-independent info - [ ] Typography: `titleMediumEmphasized` for emphasis, M3 scale for hierarchy diff --git a/docs/en/developer/documentation-style.md b/docs/en/developer/documentation-style.md index b22c06007d..0d46f98910 100644 --- a/docs/en/developer/documentation-style.md +++ b/docs/en/developer/documentation-style.md @@ -2,8 +2,8 @@ title: Documentation Style parent: Developer Guide nav_order: 11 -last_updated: 2026-09-10 -description: How this repository's docs work, and the few prose rules the Meshtastic design standards leave to us. +last_updated: 2026-09-14 +description: How this repository's docs work, and the one prose rule the Meshtastic design standards leave to us. aliases: - style - style-guide @@ -13,9 +13,9 @@ aliases: # Documentation Style -Section 11 of the [Meshtastic Client Design Standards](https://github.com/meshtastic/design/blob/master/standards/meshtastic_design_standards_v1_5.md) is the style guide for everything under `docs/en/`. Read it first. It decides voice, plain language, terminology, page structure, instructions, cross-platform coverage, code and CLI examples, media, accessibility, admonition use, units, translation, versioning, and in-product text, and it closes with a checklist of the rules a reviewer can check without judgment. +Section 11 of the [Meshtastic Client Design Standards](https://github.com/meshtastic/design/tree/master/standards) is the style guide for everything under `docs/en/`. Read it first. It decides voice, plain language, terminology, page structure, instructions, cross-platform coverage, code and CLI examples, media, accessibility, admonition use, units, translation, versioning, and in-product text, and it closes with a checklist of the rules a reviewer can check without judgment. -This page carries what Section 11 doesn't: how documentation works in this repository, two forms that differ here, and a handful of prose rules the standards leave open. Where the two ever disagree on something not listed here, Section 11 wins and this page is wrong. +This page carries what Section 11 doesn't: how documentation works in this repository, two forms that differ here, and the one prose rule the standards leave open. Where the two ever disagree on something not listed here, Section 11 wins and this page is wrong. Pages under `docs/en/` ship to three places — the in-app docs browser, the GitHub Pages site, and meshtastic.org — so one page has to read well in all of them, and its English source is the translation base for 40+ locales on Crowdin. Section 11.1 describes the sync: user pages land in `docs/software/android/` on the documentation site weekly, taken from the latest release, and pull requests against those paths there are reverted. @@ -64,14 +64,22 @@ Two forms differ from Section 11. The first is a renderer requirement. The secon ## Prose rules Section 11 leaves open -- **VOICE-2** — Contractions are house voice (*you'll*, *doesn't*, *it's*) — but in warnings, write *do not*: negative contractions are too easy to misread when the cost of misreading is data loss. -- **LANG-1** — American English spelling: *color*, *behavior*, *honors*, *gray*, *organize*. -- **LANG-3** — Requirement words carry exact weight: *must* (obligation), *must not* (prohibition), *should* (recommendation), *can* (capability), *may* (permission). Never *shall*. -- **LANG-4** — Prefer *for example* and *such as* over *e.g.*, and *that is* over *i.e.*, in running prose. Inside table cells and parentheses, *e.g.* is acceptable where space is tight. -- **LANG-6** — Inclusive, literal language: *allowlist*/*blocklist*, singular *they*, no ableist idioms (*final check*, not *sanity check*), no violent metaphors (*the app stops responding*, not *hangs*). -- **LANG-7** — Oxford comma (*Android, iOS, and Windows*). Em dashes are spaced — like this — matching the entire existing corpus. -- **LANG-8** — Spell out zero through nine in prose; numerals for 10 and up, for all measurements and units (*3 dB*, *915 MHz*), for values the reader enters, and with `%`. Dates follow 11.12. -- **LANG-9** — Don't use *above* and *below* to point at other text — say *earlier*, *the following*, or link to the section. (Literal technical use is fine: *below the noise floor*.) +One rule. [design#154](https://github.com/meshtastic/design/pull/154) moved the rest into Section 11, where they read the same, so nothing about how you write changes — the rules have one home rather than two that can drift apart. + +- **LANG-7** — Em dashes are spaced — like this — matching the entire existing corpus. Section 11 doesn't mention them. + +These are retired, with the section that owns each. Their IDs aren't reused. + +| Retired rule | Section | +|---|---| +| VOICE-2 — contractions, and *do not* in warnings | 11.2 | +| LANG-3 — requirement words | 11.3 | +| LANG-4 — *e.g.* and *i.e.* | 11.3 | +| LANG-6 — inclusive, literal language | 11.3 | +| LANG-7 — the Oxford comma half; the em dash stays | 11.3 | +| LANG-1 — American spelling | 11.4 | +| LANG-9 — *above* and *below* | 11.5 | +| LANG-8 — number style | 11.12 | ## Word list