@@ -156,185 +156,31 @@ Pull requests MUST:
156156 options exposed by ` lambda-sh/lambda.sh ` for consistent builds.
157157- Store large assets through ` git-lfs ` to keep history lean.
158158
159- ## Documentation Metadata & Authoring
160-
161- Long-lived docs MUST include a metadata header with YAML front matter. Apply
162- this to roadmaps, specifications, guides, tutorials, and similar durable
163- documents.
164-
165- Metadata schema:
166-
167- ``` yaml
168- ---
169- title : " <short, descriptive title>"
170- document_id : " <stable-id, e.g., game-roadmap-YYYY-MM-DD>"
171- status : " draft" # draft | living | frozen | deprecated
172- created : " <UTC ISO-8601>" # e.g., 2025-09-24T00:00:00Z
173- last_updated : " <UTC ISO-8601>"
174- version : " 0.x.y"
175- engine_workspace_version : " 2023.1.30"
176- wgpu_version : " 26.0.1"
177- shader_backend_default : " naga"
178- winit_version : " 0.29.10"
179- repo_commit : " <git sha at update>"
180- owners : ["lambda-sh"]
181- reviewers : ["engine", "rendering"]
182- tags : ["roadmap", "games", "2d", "3d", "desktop"]
183- ---
184- ```
185-
186- ### Authoring Guidance
187-
188- - Keep sections short and scannable.
189- - Prefer bullets and concise code snippets.
190- - Include ASCII diagrams where helpful.
191- - Do not commit embedded binaries to the repository.
192- - When proposing APIs, mirror existing builder or command patterns and show
193- concise Rust sketches.
194- - Update ` last_updated ` , ` version ` , and ` repo_commit ` when making material
195- changes.
196- - Append a ` Changelog ` section for material updates.
197- - Prefer ISO-8601 UTC timestamps.
198- - Use semantic versioning for the document ` version ` .
199- - Create new specifications by copying ` docs/specs/_spec-template.md ` and
200- completing the placeholders. Do not start from an existing specification.
201- - Always include a table of contents for specifications and tutorials.
202-
203- ### Documentation Tone & Style
204-
205- All specifications and long-lived docs MUST adopt a professional and precise
206- tone.
207-
208- #### Voice & Register
209-
210- - Use clear, direct, neutral language.
211- - Prefer active voice and present tense.
212- - Avoid conversational phrasing, rhetorical questions, and tutorial chatter.
213- - Avoid first-person pronouns such as ` I ` and ` we ` .
214- - Do not address the reader directly unless the context requires an
215- instruction. Prefer terms such as "the API", "the engine", or
216- "this document".
217- - Do not include meta commentary, such as "this aims to" or "we want to".
218- State requirements and behavior directly.
219-
220- #### Normative Language
221-
222- - Use RFC-2119 keywords where appropriate: MUST, SHOULD, MAY, MUST NOT, and
223- SHOULD NOT.
224- - When explaining decisions, use a short ` Rationale ` sub-bullet instead of a
225- "Why" paragraph.
226-
227- #### Terminology & Consistency
228-
229- - Define acronyms on first use in each document, such as
230- "uniform buffer object (UBO)", then use the acronym consistently.
231- - Acronyms are permitted in documentation but not in code identifiers.
232- - Use consistent technical terms such as ` GPU ` , ` CPU ` , ` wgpu ` , "bind group",
233- and "pipeline layout".
234- - Refer to code identifiers with backticks, such as ` BindGroupLayout ` .
235- - Prefer American English spelling, such as "behavior" and "color".
236- - When describing implementation areas, refer to crates by name, such as
237- ` lambda-rs ` and ` lambda-rs-platform ` , rather than generic labels like
238- "engine layer" or "platform layer".
239-
240- #### Structure & Formatting
241-
242- - Keep headings stable and diff-friendly.
243- - Avoid frequent heading renames.
244- - Keep bullets to one line when practical.
245- - Avoid filler sentences.
246- - Include only minimal, buildable code snippets.
247- - Match repository style in all examples.
248- - Avoid marketing claims, subjective adjectives, and speculation.
249-
250- #### Metadata & Changelog Discipline
251-
252- - Update ` last_updated ` , bump ` version ` semantically, and set ` repo_commit ` to
253- the current ` HEAD ` when making substantive edits.
254- - Changelog entries MUST use an ISO-8601 date, the document version, and a
255- concise imperative summary of the content change.
256-
257- #### Prohibitions
258-
259- - Do not use emojis, exclamation marks for emphasis, or informal asides.
260- - Do not reference AI authorship or generation.
261- - Do not make unscoped promises such as "we will add" without a linked
262- tracking issue.
263- - Do not add commentary in specifications or tutorials about what must or
264- should be done because of this ` AGENTS.md ` file.
265-
266- ## Tutorials Authoring
267-
268- Tutorials are step-by-step instructional documents that teach a discrete task
269- using the engine. They MUST follow the same metadata schema and tone rules as
270- other docs, with the additions below.
271-
272- ### Location & Naming
273-
274- - Place tutorials under ` docs/tutorials/ ` .
275- - Use kebab-case filenames, such as ` uniform-buffers.md ` .
276- - Include the ` tutorial ` tag in the metadata ` tags ` array.
277-
278- ### Tone & Voice
279-
280- - Follow the Documentation Tone & Style rules while using a book-like
281- instructional narrative.
282- - Explain intent before each code block, including what is about to be done
283- and why it is necessary.
284- - After each code block, include a short narrative paragraph describing the
285- outcome and what was achieved.
286- - Include a final ` Conclusion ` section summarizing what was built and what the
287- tutorial accomplished.
288- - Imperative instructions are preferred. Limited second-person language MAY be
289- used when it materially improves clarity.
290- - Define acronyms on first use, such as "uniform buffer object (UBO)", and
291- use them consistently.
292-
293- ### Standard Section Structure
294-
295- - ` Goals ` : clearly state what will be built and what will be learned.
296- - ` Overview ` : provide a short paragraph defining the task and constraints.
297- - ` Prerequisites ` : list version assumptions, build commands, and paths to
298- examples.
299- - ` Implementation Steps ` : use numbered steps. Each step MUST explain intent
300- and rationale before the code block and include a short narrative paragraph
301- afterward describing the resulting state and why it matters.
302- - ` Validation ` : provide exact commands to build and run, plus the expected
303- visible behavior.
304- - ` Notes ` : capture normative requirements and pitfalls using MUST, SHOULD, and
305- MAY.
306- - ` Conclusion ` : summarize the final system and what was accomplished.
307- - ` Exercises ` : include 5 to 7 focused extensions that reuse concepts from the
308- tutorial.
309- - ` Changelog ` : record the ISO-8601 date, version, and concise change summary.
310-
311- ### Code & Snippets
312-
313- - Match repository style: 2-space indentation, line width near 80 columns,
314- explicit return statements, and no abbreviations or acronyms in code
315- identifiers.
316- - Prefer minimal, buildable snippets.
317- - Avoid large, redundant code blocks.
318- - Reference files with workspace-relative paths, such as
319- ` crates/lambda-rs/examples/uniform_buffer_triangle.rs ` .
320- - Use ASCII diagrams only.
321- - Do not embed binaries.
322-
323- ### Metadata Discipline
324-
325- - Update ` last_updated ` , bump ` version ` semantically, and set ` repo_commit ` to
326- the current ` HEAD ` when making substantive edits.
327- - Keep ` document_id ` stable across revisions.
328- - Use semantic versioning for the document ` version ` .
329-
330- ### Consistency
331-
332- - Keep headings stable and diff-friendly across tutorial revisions.
333- - Use consistent terminology such as ` bind group ` , ` pipeline layout ` , ` GPU ` ,
334- ` CPU ` , and ` wgpu ` .
335-
336- ### Scope & Process Isolation
337-
338- - Do not reference internal process documents, such as this file.
339- - Do not include commentary about guideline updates within tutorials or
340- specifications.
159+ ## Documentation Skills
160+
161+ Use the repo-local Codex skills for detailed documentation workflows.
162+
163+ - Use ` .codex/skills/long-lived-docs-authoring/SKILL.md ` for specs, roadmaps,
164+ guides, plans, and other long-lived Markdown documents.
165+ - Use ` .codex/skills/tutorial-authoring/SKILL.md ` for step-by-step tutorials
166+ in ` docs/tutorials/ ` .
167+ - Keep repo-wide policy in this file and keep detailed documentation authoring
168+ workflow in those skills.
169+
170+ ## Documentation Requirements
171+
172+ - Long-lived docs MUST include YAML front matter with ` title ` ,
173+ ` document_id ` , ` status ` , ` created ` , ` last_updated ` , ` version ` ,
174+ ` engine_workspace_version ` , ` wgpu_version ` , ` shader_backend_default ` ,
175+ ` winit_version ` , ` repo_commit ` , ` owners ` , ` reviewers ` , and ` tags ` .
176+ - New specifications MUST be created from ` docs/specs/_spec-template.md ` .
177+ - Specifications and tutorials MUST include a table of contents.
178+ - Substantive documentation edits MUST update ` last_updated ` , ` version ` ,
179+ ` repo_commit ` , and the ` Changelog ` .
180+ - Long-lived docs MUST use a professional, precise tone with active voice,
181+ consistent terminology, American English spelling, and RFC-2119 keywords
182+ where appropriate.
183+ - Tutorials MUST live in ` docs/tutorials/ ` , use kebab-case filenames, include
184+ the ` tutorial ` tag, and include ` Goals ` , ` Overview ` , ` Prerequisites ` ,
185+ ` Implementation Steps ` , ` Validation ` , ` Notes ` , ` Conclusion ` , ` Exercises ` ,
186+ and ` Changelog ` .
0 commit comments