|
|
|
@@ -0,0 +1,121 @@
|
|
|
|
|
# Writing Style Standard — MOS-STE (MANDATORY)
|
|
|
|
|
|
|
|
|
|
This guide defines how agents write. It sets one style standard per output type.
|
|
|
|
|
It is written in the standard it defines, as a worked example.
|
|
|
|
|
|
|
|
|
|
**Adapted, not compliant.** MOS-STE (Mosaic Simplified Technical English) is an
|
|
|
|
|
adapted profile of ASD-STE100. Mosaic does not license or certify against
|
|
|
|
|
ASD-STE100. Mosaic uses the load-bearing rules and fits them to agent work. This
|
|
|
|
|
is the same stance Mosaic takes toward DO-178B/C: use the rigor, do not claim the
|
|
|
|
|
certification.
|
|
|
|
|
|
|
|
|
|
## Scope — which standard governs which output
|
|
|
|
|
|
|
|
|
|
| Output type | Standard |
|
|
|
|
|
|---|---|
|
|
|
|
|
| Technical documentation (READMEs, runbooks, PRDs, procedures, ADRs, guides, acceptance criteria, design docs) | **MOS-STE** (this guide) |
|
|
|
|
|
| Source code and code comments | **Google Style Guide** for the language (§4) |
|
|
|
|
|
| Inter-agent comms | MOS-STE by default (concise, technical) |
|
|
|
|
|
| User-facing comms | **Per-user style choice** — read `USER.md` "Communication Preferences" (§5) |
|
|
|
|
|
| End-user prose the user owns (marketing, letters, personal writing, voice-matched content) | The user's declared voice. MOS-STE does NOT apply. |
|
|
|
|
|
|
|
|
|
|
**The user-voice carve-out is absolute.** Do not apply MOS-STE to content that
|
|
|
|
|
must carry a specific human voice (for example a cover letter, a personal
|
|
|
|
|
message, or marketing copy). That content needs the user's voice. MOS-STE would
|
|
|
|
|
damage it. When a project declares a voice profile, that profile wins.
|
|
|
|
|
|
|
|
|
|
## 1. Why one standard
|
|
|
|
|
|
|
|
|
|
Agent documentation drifts across projects. Different agents use different terms,
|
|
|
|
|
sentence styles, and structures for the same concept. Readers lose time.
|
|
|
|
|
Assumptions hide in ambiguous prose. One standard gives agents a clear target. It
|
|
|
|
|
gives reviewers a clear test.
|
|
|
|
|
|
|
|
|
|
## 2. Where MOS-STE matters most — verification artifacts
|
|
|
|
|
|
|
|
|
|
Apply MOS-STE hardest to acceptance criteria, witness predicates, gate
|
|
|
|
|
definitions, and alarm conditions. In prose, an ambiguous term produces a
|
|
|
|
|
confused reader. In a verification artifact, an ambiguous term produces a false
|
|
|
|
|
green — a check that passes without testing the claim.
|
|
|
|
|
|
|
|
|
|
The one-term-one-concept rule (rule 9) is the guard. When one word names two
|
|
|
|
|
concepts in one predicate, the check can test the wrong concept and still pass.
|
|
|
|
|
|
|
|
|
|
**Worked failure.** A rename used a witness predicate with three clauses: ref A
|
|
|
|
|
present, ref B absent, tip committed from this host. Every clause tested the git
|
|
|
|
|
*ref* (the channel). The claim under test was about a *field inside the payload*.
|
|
|
|
|
The word "beacon" named two concepts in one sentence. Deleting ref B was the next
|
|
|
|
|
scheduled step. That step flips the last clause green and certifies a state in
|
|
|
|
|
which the payload still names the wrong host. The predicate was one planned action
|
|
|
|
|
away from a false green on its normal path. The payload field was never tested.
|
|
|
|
|
|
|
|
|
|
Rule: when N failure modes share one observable, the observable is not a
|
|
|
|
|
diagnostic. In a verification artifact, that ambiguity does not confuse a reader —
|
|
|
|
|
it certifies the defect.
|
|
|
|
|
|
|
|
|
|
## 3. MOS-STE rules
|
|
|
|
|
|
|
|
|
|
### 3.1 Sentence rules
|
|
|
|
|
|
|
|
|
|
1. Keep sentences short. Use 20 words or fewer for a procedure. Use 25 words or
|
|
|
|
|
fewer for a description.
|
|
|
|
|
2. Write one instruction per sentence. In a procedure, give one command per step.
|
|
|
|
|
3. Use the active voice. Write "Run the script." Do not write "The script should
|
|
|
|
|
be run."
|
|
|
|
|
4. Use the imperative for instructions. Start the sentence with the verb.
|
|
|
|
|
5. Use simple verb tenses. Prefer the present tense. Avoid the perfect and
|
|
|
|
|
progressive tenses when a simple tense works.
|
|
|
|
|
6. Do not use an `-ing` form when it makes the meaning unclear.
|
|
|
|
|
7. Write positive statements. State what to do, not only what to avoid.
|
|
|
|
|
|
|
|
|
|
### 3.2 Word rules
|
|
|
|
|
|
|
|
|
|
8. Use one word for one meaning. Do not use the same word in two senses.
|
|
|
|
|
9. Use one term for one concept. Do not use synonyms for variety. Example: choose
|
|
|
|
|
`secret`, `credential`, or `key` for each concept, and keep it.
|
|
|
|
|
10. Use articles (`a`, `the`). Do not drop words to save space.
|
|
|
|
|
11. Keep an approved-terms glossary per project. Add each domain noun and each
|
|
|
|
|
chosen verb. Technical names (for example `Vault`, `cgroup`, `systemd`) are
|
|
|
|
|
always allowed.
|
|
|
|
|
12. Define an abbreviation at its first use. Then use it consistently.
|
|
|
|
|
|
|
|
|
|
### 3.3 Structure rules
|
|
|
|
|
|
|
|
|
|
13. Use a list for parallel items or sequential steps. Do not put them in one long
|
|
|
|
|
sentence.
|
|
|
|
|
14. Use a table for data with more than two dimensions.
|
|
|
|
|
15. Use parallel structure in headings and steps.
|
|
|
|
|
16. Repeat the noun. Do not use a pronoun when the reference is unclear.
|
|
|
|
|
|
|
|
|
|
### 3.4 Adaptation notes (where MOS-STE deviates from ASD-STE100, and why)
|
|
|
|
|
|
|
|
|
|
- **No licensed dictionary.** ASD-STE100 ships a controlled dictionary under
|
|
|
|
|
copyright. MOS-STE uses per-project glossaries instead (rule 11).
|
|
|
|
|
- **Domain terms are allowed.** MOS-STE keeps every term the work needs.
|
|
|
|
|
- **Reasoning prose gets structure, not amputation.** Apply the sentence and word
|
|
|
|
|
rules to design and doctrine writing. Allow the length a subtle argument needs.
|
|
|
|
|
Readable-first beats rule-strict when the two conflict.
|
|
|
|
|
|
|
|
|
|
## 4. Code — Google Style Guide
|
|
|
|
|
|
|
|
|
|
Write source code to the Google Style Guide for the language (Python, TypeScript,
|
|
|
|
|
Shell, Go, and so on). Match the existing file when a local convention already
|
|
|
|
|
exists. Keep code comments to the MOS-STE sentence and word rules.
|
|
|
|
|
|
|
|
|
|
## 5. User-facing comms — a per-user choice
|
|
|
|
|
|
|
|
|
|
Mosaic is multi-user. Different users want different comms styles. Read the
|
|
|
|
|
`USER.md` "Communication Preferences" section and match the declared style.
|
|
|
|
|
|
|
|
|
|
- **Default (no preference declared):** technical — MOS-STE structure,
|
|
|
|
|
readable-first.
|
|
|
|
|
- **Declared style wins.** If the user declares prose, warmth, or a specific
|
|
|
|
|
register, match it. The user's preference outranks the MOS-STE default for
|
|
|
|
|
user-facing comms. It does not change the documentation standard (§3).
|
|
|
|
|
|
|
|
|
|
## 6. Enforcement
|
|
|
|
|
|
|
|
|
|
- **Now:** human review plus the pre-push gate. Reviewers check output against the
|
|
|
|
|
scope table and the MOS-STE rules.
|
|
|
|
|
- **Future:** an MOS-STE lint check and a Google-style linter in the pre-push
|
|
|
|
|
gate.
|