# Conventions --- ## GSDFC docstrings All documented source uses the Google-Styled Doc-Forge Convention (GSDFC): `Args:`, `Returns:`, `Raises:`, and `Attributes:` sections with properly typed signatures. The authoritative GSDFC specification lives in the `docforge/__init__.py` package docstring, which is exported verbatim into `docs/mcp/modules/docforge.json`, so the MCP bundle is self-documenting. Key rules: 1. Use parenthesized types in prose entries (`name (Type):`) that match the signature types. 2. Use `# Summary`, `# Examples`, and `# Notes` sections at module level. 3. Use `Args:`, `Returns:`, `Raises:`, `Yields:`, `Notes:`, and `Example:` sections at function and method level. 4. Always update the matching `.pyi` stub alongside the `.py` implementation. --- ## `.pyi` stubs Every module ships a matching `.pyi` stub kept in sync with the `.py` implementation. When signatures change, update both files. --- ## Wiki pages 1. Hand-written markdown lives in `docs/wiki/**` and is never generated. 2. File names use a numeric prefix: `01_overview.md`, `02_components.md`. 3. Nested directories become nested navigation groups: `05_development/01_environment.md` โ†’ group *Development*. 4. `index.md` is the site `Home` at the root, and a section root inside a directory. 5. Navigation labels are derived by stripping the numeric prefix and applying title case on the remaining words. --- ## Templates MkDocs config fragments live in `docforge/templates`. The `mkdocs.wiki.yml` fragment carries only the `search` plugin, since wiki pages contain no mkdocstrings directives. --- ## Related - [02 โ€“ Components](02_components.md) ยท [04 โ€“ Iterative Workflow](04_iterative_workflow.md)