This document defines how Perastage documentation should be organized and maintained. The primary rule is that README.md stays short and acts as a landing page, while detailed workflows live in focused files under docs/.
- Keep
README.mdas an elevator pitch and quick-start entry point. - Limit it to project overview, highlights, minimal build/run steps, and links to deeper guides.
- Do not move long troubleshooting logs, packaging checklists, or platform-specific edge cases into
README.md.
Use dedicated documents for deeper topics:
docs/features.mdfor feature breakdowns and workflow summaries.docs/build.mdfor dependency, CMake, and advanced build options.docs/installation_windows.mdfor Windows-specific setup notes.docs/packaging.mdfor installer and desktop integration behavior.docs/troubleshooting.mdfor platform-specific failure modes and fixes.- Existing policy/spec files (for example
docs/text_to_scene_rules.mdanddocs/gdtf_mutation_policy.md) for behavior contracts.
- Use
##headings for major sections and###for subtopics. - Keep paragraphs short and focused.
- Prefer bullet lists and tables for structured information.
- Use fenced code blocks for commands and snippets.
- Write all documentation and code comments in English.
When updating the Spanish block in help.md (<!-- LANG:es -->), keep UI terminology stable and searchable:
- Do not translate exact UI labels for menus, panels, dialogs, tabs, and buttons.
- Translate only explanatory narrative text around those labels.
- Keep command names and option labels exactly as shown in the application UI.
- Reuse the same canonical UI terms across all ES help sections.
Minimum glossary of terms that must remain untranslated:
| Keep in English | Notes |
|---|---|
Fixtures |
Tab/panel label. |
Trusses |
Tab/panel label. |
Hoists |
Tab/panel label. |
Objects |
Tab/panel label. |
Render style |
3D Viewer context-menu entry. |
Create from text |
Tools workflow entry. |
Apply filter |
Create-from-text action button. |
Create |
Create-from-text action button. |
File, Edit, View, Tools |
Menu names. |
Console, Layers, Layouts, Summary, Rigging, 2D Viewer, 3D Viewer, 2D Render Options, Layout View |
Panel/view names. |
- Avoid duplicating large sections across files.
- Link related guides using relative links.
- When adding a new major workflow, add one short bullet to
README.mdHighlights and place details in the appropriatedocs/*.mdfile.
Use this checklist in every PR that changes behavior, UX labels, or parsing contracts to keep user help and technical rules aligned.
Update help.md when a change is visible to operators in normal workflows, including at least:
- New or removed menu actions, dialogs, toolbar actions, or panel entries.
- Changes to user-executed workflows (new steps, reordered steps, renamed actions, changed defaults).
- New or changed keyboard/mouse shortcuts.
- New or changed console commands, command syntax, or command scope/selection behavior.
- Build-gated visibility changes that affect what users can access in Debug vs Release.
- Any user-visible warning, limitation, or prerequisite needed to avoid incorrect usage.
Keep parser/scene-generation contracts in docs/text_to_scene_rules.md as the technical source of truth, including:
- Token grammar and normalization expectations (headers, separators, accepted aliases).
- Parsing precedence and conflict resolution rules.
- Placement/distribution algorithms, defaults, fallback behavior, and override hierarchy.
- Coordinate/unit parsing semantics and value interpretation rules.
- Error handling, skipped-line policy, and deterministic behavior requirements.
help.md should summarize only operator-facing behavior. Avoid duplicating the full parser contract there; link to docs/text_to_scene_rules.md for details.
Update both help.md and docs/text_to_scene_rules.md in the same PR when any of the following is true:
- A text-to-scene/rider parsing or scene-generation change is visible to users.
- The same feature requires both a user workflow explanation and an update to parsing/placement technical rules.
- UI labels/help examples must change to stay consistent with updated parser behavior.
If the change is purely internal and does not alter user-visible behavior, update only docs/text_to_scene_rules.md when the technical contract changes.
- I reviewed this checklist and updated
help.mdwhere user-facing behavior changed. - I updated
docs/text_to_scene_rules.mdwhere parser/scene-generation rules changed. - I updated both files in the same PR when both criteria applied.
- I added cross-links instead of duplicating long rule sections.
Use this short checklist for PRs that claim no functional change:
- No functional change confirmed (behavior, outputs, and user workflows unchanged).
- One-line English comments added/maintained above touched function definitions.
- CMake source lists updated explicitly when files are split or moved (no implicit source discovery).
- If text-to-scene parsing or scene-generation behavior changed,
docs/text_to_scene_rules.mdwas updated in the same PR. - If GUI shortcut mappings/scope/precedence changed,
docs/gui_shortcut_architecture.mdwas updated in the same PR. - Hotspot growth was avoided by extracting responsibilities when touching near-limit files.
- Store screenshots and diagrams under
docs/orresources/as appropriate. - Embed media only where it adds clear instructional value.
- Compress images before committing to keep repository size manageable.
- Keep license details in
LICENSE.txtas the single source of truth. - Reference the license from
README.mdand any documentation that needs legal context.