Files
doc-forge/docs/wiki/02_architecture.md
Vishesh 'ironeagle' Bangotra 582b6809a0 docs: bring docforge docstrings and wiki to GSDFC standard
- fix GSDFC spec contradictions in __init__ docstring (parenthesized types, fenced-block rule) and sync generated README
- rewrite docstrings across loaders, models, nav, servers, renderers, cli; sync .pyi stubs
- add pydoclint (google style) gate to dev extras and pyproject config
- fix mcp nav resources doc:// -> docs://
- refresh docs/lib and docs/mcp, drop stale docforge/ duplicate group
- update wiki pages and add GSDFC + MCP guides under 05_development
2026-09-12 13:12:51 +05:30

1.3 KiB

Architecture

docforge is split into four horizontal layers. Everything flows top to bottom through the CLI.

Loaders → Models

The docforge/loaders package wraps griffe to extract modules, functions, classes, and Google-style docstring sections. Loaded data is normalized into the object model under docforge/models (Project, Module, DocObject).

Navigation

docforge/nav parses docforge.nav.yml specs (NavSpec, Resolver, and the MkDocs nav emitter) and, since the wiki kind, derives wiki navigation from the file structure via build_wiki_nav.

Renderers

docforge/renderers turn model data into artifacts:

  • MkDocsRendererdocs/lib/** reference markdown
  • MCPRendererdocs/mcp/** structured documentation

Servers

docforge/servers serves generated artifacts over live protocols:

  • MCPServer → serves a pre-generated docs/mcp/** bundle through MCP resources (docs://index, docs://nav, docs://modules/{module})

CLI

docforge/cli wires it all together:

  • commands.py — the build command and its --mkdocs / --api / --wiki / --mcp modes
  • mkdocs_utils.py — config generation (mkdocs.yml) including merged wiki + lib + api navigation
  • api_utils.py — OpenAPI loading and API docs generation