Authoring: writing and editing topics
Before you write
- Read the style rules and
spec/conventions.mdat the repository root. - Check
spec/structure.mdat the repository root to see where the topic fits and what number it should have.
Writing a new topic
- Pick the part and the next free decimal number in that part. Numbering is contiguous, so a new topic usually takes the next number after the last one in its part.
- Create
locales/en-gb-oxendict/topics/PP-CC-slug.md(zero-padded, dash-separated prefix, for example02-01-...) from the topic template. Write it in Oxford spelling (seespec/oxford-spelling.md); never edit the other three locales directly. - Write to the template. Every content topic needs all of its sections: overview, key principles, recommendations, trade-offs (with a table), discussion questions, a sector lens (startup, small business, enterprise, government), examples (one enterprise and one government), business case, anti-patterns, a five-level maturity model, discussion ideas, key takeaways, and references.
- Name the gaming vector. Every metric family needs an explicit answer to “how does a team make this number look good without improving the thing it measures, and what guardrail catches that” (see topic 1.2).
- Define terms on first use. Add Wikipedia links to key concepts on first mention, in prose only.
- Cross-reference related topics by decimal, for example “(topic 2.1).”
- Add the topic to
spec/structure.md. - If the part introduction (N.0) lists its topics, add a bullet there.
- Run
python3 tools/localize.pyto derive the topic intoen-001,en-gb, anden-us. - Run
just nav, thenjust test.
Editing an existing topic
- Keep the section order and headings intact. The tests check that content topics still have every required section.
- Preserve inline definitions, Wikipedia links, tables, and the references list unless the edit is specifically about them.
- Do not introduce em-dashes or the forbidden phrases. If you are rephrasing, reword rather than dropping in a dash.
- Run
python3 tools/localize.pyafterwards to re-deriveen-001,en-gb, anden-usfrom the editeden-gb-oxendictsource.
Renaming or renumbering
- Rename the file in
locales/en-gb-oxendict/, update its# N.M Titleheading, updatespec/structure.md, and update every cross-reference that points to the old number. - Run
python3 tools/localize.pyto rename the file in the other three locales too (it derives all four from the same relative paths). - Run
just navandjust test. The tests will flag a mismatch between the H1 and the file name, a numbering gap, a locale drifted from the source, or a broken link.
Tone reminder
Write like an experienced colleague who wants the reader to succeed. Warm, plain, direct, and useful. Short sentences. No filler.