V1.0 MVP — Historical Baseline
:::info Historical snapshot — not a shipped release
This file records the requirements of the pre-typed-IR architecture as audited 2026-06-28 —
namespaces, classes, methods and fields represented as a ClassEntity discriminated union, no
mandatory sidebar.toml, no CLI subcommands. It was never independently released. The project's
first and only GitHub Release is v2.0.0 (2026-08-11); see index.md for why "v1.0" is a
retrospective architectural slice rather than a shipped predecessor. Content here is frozen for
traceability — do not append new work to this file. New requirements belong in
v3.0-next.md or v4.0-backlog.md.
Mechanisms this baseline used that v2.0 later replaced are marked SUPERSEDED below, not deleted —
they explain what v2.0 changed and why, and their ids remain valid citation targets.
:::
Corresponding NFRs (REQ-NFN-01 performance, REQ-NFN-02 modularity, REQ-NFN-03 coverage,
REQ-NFN-04a/REQ-NFN-04c Pydantic/Jinja2) are catalogued once, cross-version, in nfr.md —
not restated here.
Ingestion & Parsing
REQ-FUN-01
Multi-Source Ingestion & Preprocessing
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-01 - Evidence:
engine/ude/collectors/doxygen.py— invokes Doxygen as a subprocess against a local, target-specificDoxyfile, compiling raw source/header files into a temporary XML tree that the parser then consumes. - History:
- v1.0 — Doxygen-subprocess ingestion for C++, C#, Java, Python.
- v3.0 (planned) — Doxygen-independent native parsers (
libclang/tree-sitter) added in parallel; seeREQ-V3-08inv3.0-next.md.
The engine supports a modular preprocessing/collection stage. For all four v1.0 languages, the
orchestrator invokes Doxygen as a subprocess based on a local, target-specific Doxyfile to compile raw
source and header files into XML outputs inside a designated temporary directory, subsequently parsed
to build the catalog. The collector/parser boundary is loosely coupled by design, so later phases can
add direct code-directory collection or custom XML integrations without touching the orchestrator.
REQ-FUN-22
Automated Collector Lifecycle & Temporary Cleanup
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-03 - Evidence:
engine/ude/collectors/doxygen.py:526(finally:),:661(def cleanup) — temporary directories and intermediate XML are deleted inside atry...finallyblock guaranteed to run even on parse/render failure.
Any temporary directories and intermediate XML files generated during collection are automatically and
recursively deleted immediately after ingestion, for all supported languages, guaranteed via
try...finally so the repository and CI/CD workspace stay free of intermediate garbage even when
downstream stages fail.
REQ-FUN-02
Multi-Language API Entity Extraction
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-01 - Evidence:
engine/ude/parsers/doxygen_router.py:42(DoxygenXmlParser), plus per-language concrete parsers inengine/ude/parsers/. - History:
- v1.0 —
ClassEntitydiscriminated union. - v2.0 — replaced by the 7-model typed schema; see
REQ-V2-07inv2.0-shipped.md.
- v1.0 —
Parses and extracts structural API elements (namespaces, classes, structures, methods, member
functions, fields, parameters, return types, access scopes, comment blocks) from preprocessed Doxygen
XML for C++, C#, Java, and Python, mapping them to a unified, language-agnostic Intermediate
Representation. C++-specific constraints: double-colon (::) namespace/scope resolution; template
bracket sequences (< >) escaped in every renderer to avoid breaking HTML DOM/Markdown parsers;
constructors/destructors (~) recognized as having no return type; typedefs/type-aliases preserved.
REQ-FUN-19
C++ Export Macro Filtering
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-01 - Evidence:
engine/ude/parsers/(C++ dialect handling);srs/refactoring_plan.mdcites the same requirement against the same stripping logic.
Automatically identifies and strips compiler linkage/export macros (NWDBEXPORT, MAPEXPORT,
FACETMODELER_EXPORT, etc.) from C++ class, structure, and method declarations during extraction, so
they never pollute IR name fields.
REQ-FUN-20
SWIG Wrapper Internal Exclusions
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-01,REQ-BUS-08 - Evidence:
engine/ude/parsers/—exclude_swig_internalsflag on the parser, gated peruser-docs/docs/exclusion-gates.md's own note that this flag exists but is not yet exposed through a JSON config key (seev3.0-next.mdREQ-V3-09for the wiring gap).
When processing SWIG-generated C#, Java, or Python source, the parser can exclude low-level plumbing
(swigCPtr, swigCMemOwn, Dispose(), getCPtr(), delegate classes, SwigDirector callbacks) when
exclude_swig_internals is enabled, so only the real public API surface reaches the catalog and the
coverage gate.
REQ-FUN-14
Comment Markup Normalization
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-01 - Evidence:
engine/ude/normalizer.py; dialect handlersengine/ude/parsers/dialects/{plain,sphinx_rst,numpy_swig}.py.
Normalizes raw comment blocks and docstrings (Doxygen, Javadoc, Google, Doc-o-matic styles) into unified
CommonMark Markdown within the IR, parsing tags (\param, @return, etc.) into structured schema
fields. Natively supports Sphinx/RST-style and NumPy-style docstrings common in SWIG-generated Python
modules — :param:/:type:/:return:/:rtype: tags and name: type declarations — merges bare-type
parameter declarations into the parameters table, and filters undocumented args/kwargs placeholders
from abstract Python wrapper constructors.
REQ-FUN-13
Ignore Tags & Range Boundaries
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-05,REQ-BUS-08 - Evidence:
engine/ude/collectors/dom_ignore_filter.py;engine/ude/collectors/sfinae_filter.py(a related C++-only parser-state workaround, not itself part of this requirement).
The parser, quality gate, and coverage modules completely ignore code demarcated by
DOM-IGNORE-BEGIN/DOM-IGNORE-END, \cond/\endcond (or @cond/@endcond), and any entity tagged
\internal/@internal. Per user-docs/docs/exclusion-gates.md, DOM-IGNORE/\cond blocks are
regex-stripped from raw Doxygen XML text before XML parsing (a text-level deletion), while \internal
is a catalog-level per-entity drop applied after parsing.
Rendering & Output
REQ-FUN-03
Multi-Format Rendering
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-02 - Evidence:
engine/ude/renderers/static_html.py,engine/ude/renderers/hugo_markdown.py.
Renders the IR into a configurable choice of target formats — standalone static HTML and Hugo-tailored
Markdown in v1.0. Generic Markdown, structured XML, and RAG JSON are out of scope for this baseline; see
v3.0-next.md/v4.0-backlog.md.
REQ-FUN-04
Metadata Configuration
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-02 - Evidence:
engine/ude/renderers/hugo_markdown.py(front-matter emission).
For page-based outputs, the engine allows customized metadata/front-matter layout injection (YAML/TOML
blocks with title, order, parent keys) via templates.
Navigation, Layout & TOC
REQ-FUN-30
TOC Logical Hierarchy & Physical Flat-Mapping
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-10 - Evidence:
engine/ude/renderers/{static_html,hugo_markdown}.pyresolve_filename().
Compiles structured API TOC trees for C++, C#, Java, Python. Logical hierarchy: C++
namespace→nested-namespace→classes/structs/enums/global-functions→nested-classes→methods/fields (and the
equivalent package/module chains for C#, Java, Python). Physical flat-mapping avoids deep folder
nesting: __ separates hierarchy levels (C++, C#), _/__ for Java/Python package vs. member
separation, @ separates overloaded signatures, and unsafe characters are replaced (*→_ptr,
&→_ref, <→_lt_, >→_gt_).
REQ-FUN-31
Multi-Format TOC Compilation & Sidebar Interactive Features
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-10,REQ-BUS-02 - Evidence:
engine/ude/renderers/hugo_markdown.py(front-matter TOC),engine/ude/renderers/static_html.py(offline sidebar /nav_data.js).
Hugo TOC paths compile into YAML/TOML front-matter (title, weight, parent) for native Hugo menu
assembly. Standalone HTML uses an offline-ready dynamic sidebar loaded via file:/// with no CORS
blocks: the TOC compiles to a global JSON object (window.UDE_NAV_DATA) loaded via nav_data.js.
Interactive features: a draggable splitter persisting width to localStorage (ude_sidebar_width), a
real-time client-side search filter, and active-node focus/auto-scroll identical across offline HTML and
Hugo.
REQ-FUN-32
Standardized Entity-Type Page Layouts
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-10 - Evidence:
engine/ude/templates/,engine/ude/renderers/{static_html,hugo_markdown}.py.
Standardized page anatomy for classes/structs/interfaces across all languages: a header with FQN and a
color-coded entity-type badge, a CommonMark prose block (.OdaDocBrief), a metadata table
(.OdaDocContainerTable), a code-prototype block (.OdaDocCodeProto) tagged for Highlight.js,
collapsible member tables with subtype icons, and language-specific declaration syntax
(:: vs ., inheritance lines, parameter lists). Visual match to the ODA reference (main.css, primary
#ff3100/hover #cc2600) is copied from stylesheet_dir at compile time.
REQ-FUN-33
Multi-Entity Dynamic File Prefixing & Page Coverage
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-02,REQ-BUS-10 - Evidence:
resolve_filename()in both renderer families.
Standalone pages are generated for classes, structures, and interfaces only; each filename is prefixed
with the lowercase entity type (class_, struct_, interface_) uniformly across all four languages.
Namespaces, packages, modules, enums, global functions, and variables render inline/hierarchically
rather than as standalone pages in this baseline.
REQ-FUN-34
Integrated Document Catalog Link & Reference
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-11 - Evidence: orchestrator/renderer
catalog_linksinjection into the navigation tree.
Supports injecting custom catalog/central-index links, rendered consistently in the sidebar or footer across all compiled documentation types.
REQ-FUN-35
No Empty Sidebar Sections & Auto-Linking
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-10 - Evidence:
engine/ude/renderers/{static_html,hugo_markdown}.pygroup-pruning logic. - History:
- v1.0 — virtual group folder mapping came from per-renderer-class
toc_<Class>.jsonfiles (seeREQ-FUN-50below). - v2.0 — mapping moved to
sidebar.toml's[groups]table; seev2.0-shipped.md.
- v1.0 — virtual group folder mapping came from per-renderer-class
Every sidebar category/group/node must resolve to a real, navigable page — never an empty collapsible header. Hugo omits intermediate virtual grouping directories entirely, flat-mapping classes under their parent namespace and generating a dedicated namespace index page with a table of child entities. Standalone HTML generates a dedicated index page per virtual category folder. A virtual category node is created only if at least one compiled entity of that type exists under the parent scope; empty categories are pruned on the fly.
REQ-FUN-36
Standardized Welcome Pages
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-10 - Evidence:
engine/ude/renderers/{static_html,hugo_markdown}.py.
Both renderer families emit an identical landing page title ("API Reference Welcome") and body ("Welcome to the API Reference documentation portal. Please browse the sidebar to explore code entities.") so first entry into the API Reference section is consistent across output formats.
REQ-FUN-37
Standardized Namespace Landing Page Briefs
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-10 - Evidence:
engine/ude/renderers/{static_html,hugo_markdown}.py.
Both pipelines generate a uniform namespace landing-page brief ("List of classes in the <NamespaceID>
namespace."), adapting <NamespaceID> to the target format (code-block interpolation in Markdown, ::
to . delimiter conversion for non-C++ languages).
REQ-FUN-38
Header Branding & Dual-Portal Cross-Linking
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-10 - Evidence:
user-docsVitePress config (out of this catalog's edit scope; referenced for traceability only).
The VitePress operational-docs portal header displays the Flude logo and title, with exactly two
cross-portal nav links ("User Docs", "API Reference") opening in a new tab with
rel="noopener noreferrer".
REQ-FUN-39
Multi-URL Active Sidebar Highlighting
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-10 - Evidence: Hugo theme layout partials (
engine/hugo-site/layouts/).
The Hugo sidebar layout evaluates the "API Reference Welcome" card as active if and only if
.RelPermalink is exactly /, /api/, or /ude-user-docs/api/, independent of local vs. production
hosting root.
REQ-FUN-40
SWIG Pointer Type Mapping & Cleanup
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-01,REQ-BUS-10 - Evidence:
engine/ude/parsers/C#/Java dialect handling; also cited fromsrs/refactoring_plan.md.
Detects generic SWIG pointer types (SWIGTYPE_p_<type>, HandleRef) during C#/Java parsing and maps
them to natural language-native equivalents (C#: double[]/ref double, System.IntPtr; Java:
double[], java.nio.ByteBuffer/long) inside the IR compiler stage.
REQ-FUN-41
C++ Template Parameter Extraction & Rendering
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-01,REQ-BUS-10 - Evidence: C++ parser + template rendering in
engine/ude/renderers/.
Extracts \tparam/@tparam directives into structured IR metadata, and renders them in a dedicated
"Template Parameters" block below the class/method header, above the standard parameter list.
REQ-FUN-42
Language-Specific Signature Formatting Strategy
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-02,REQ-BUS-10 - Evidence:
engine/ude/formatters/signatures.py(BaseSignatureFormatter,get_signature_formatter()).
Employs a Strategy Pattern to format declarations, namespace structures, scopes, and names per target language, normalizing namespace boundaries, prefix syntax, and class-header structure, and assembling fallback method signatures when documentation elements are missing.
REQ-FUN-43
Robust Layout Template Loading & Inline Fallback
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-02,REQ-BUS-09 - Evidence:
engine/ude/renderers/static_html.py:620-627— verified: attempts{language}/class_layout.html, falls back to rootclass_layout.htmlon any load failure.
Dual-stage fallback: a language-specific template is tried first; if the language directory/template is absent, the renderer falls back to the root default template. (A third, fail-safe in-memory inline template is specified in the historical text but was not independently re-verified in this pass — flag for a follow-up code check before citing it as confirmed.)
REQ-FUN-44
Backward-Compatible Multi-Language Parser Facade
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-01,REQ-BUS-09 - Evidence:
engine/ude/parsers/doxygen_router.py:42(DoxygenXmlParser),engine/ude/parsers/doxygen_base.py:214(BaseDoxygenParser).
DoxygenXmlParser inherits from BaseDoxygenParser (Liskov-substitutable), dynamically dispatching to
CppDoxygenParser/CsharpDoxygenParser/JavaDoxygenParser/PythonDoxygenParser by explicit language
config or path-based auto-detection, while keeping the public entry points under ude.parsers.doxygen
stable for external orchestrators.
REQ-FUN-50 (v1 form)
Per-Renderer-Class TOC JSON Navigation
- Status:
SUPERSEDED - Target:
v1.0 - Alias:
GAP-06 - Traces to:
REQ-BUS-10 - Evidence of removal:
find engine -iname "toc_*.json"returns no matches;engine/ude/SidebarStructures/does not exist on disk (verified 2026-08-14). Correction applied here (defect D2): the source document (roadmap/mvp_v1/requirements.md's "Confirmed Features" table) listed this as a currently confirmed feature pointing at that now-nonexistent directory. It is not confirmed-current; it is superseded history. - History:
- v1.0 — the documentation engine defined, tracked, and rendered the sidebar structure using one
dedicated JSON configuration file per each of the 16 concrete renderer subclasses, named
toc_<RendererClassName>.json(e.g.toc_CppHtmlRenderer.json). - v2.0 (current) — the per-renderer-class JSON files are removed entirely. Navigation is sourced from
a single
sidebar.tomlper project (not per renderer class), which is mandatory: missing, malformed, or empty raisesUdeException— there is no default navigation at any tier. Seev2.0-shipped.mdfor the current form.
- v1.0 — the documentation engine defined, tracked, and rendered the sidebar structure using one
dedicated JSON configuration file per each of the 16 concrete renderer subclasses, named
Superseded by sidebar.toml (GAP-06) in v2.0. The v1.0 mechanism required one navigation JSON file per
concrete renderer class; it is preserved here only as the "before" half of REQ-FUN-50's in-place
version history — do not reference it as present functionality.
:::note Naming correction (defect D3) — carries alias GAP-13
Alias: GAP-13 (the v1.0 audit's gap id for the renderer-naming convention: the codebase provides
16 concrete renderer classes following <Lang><Output><ID>Renderer, not the 2 generic classes
HugoMarkdownRenderer / HtmlRenderer referenced in earlier SDD drafts). The id is preserved here
because roadmap/mvp_v1/requirements.md cited it and this section is its only successor.
The v1.0-era renderer matrix used the class names HtmlLegacy / HugoLegacy (and
*LegacyRenderer). The binding naming convention as of this restructuring (.antigravitycli/project_core_rules.md)
renames this variant family to HtmlODA / HugoODA (*ODARenderer) — verified on disk:
engine/ude/renderers/oda.py defines CppHtmlODARenderer, CsHtmlODARenderer, JavaHtmlODARenderer,
PyHtmlODARenderer, CppHugoODARenderer, CsHugoODARenderer, JavaHugoODARenderer, PyHugoODARenderer
(8 classes, confirmed at oda.py:749,782,819,875,1864,1901,1946,2010); no legacy.py file exists.
ODA is a target-format variant aligned with Open Design Alliance / Doc-O-Matic conventions, run in
parallel with the Default family — it is not a deprecated predecessor. The v1.0-era name "Legacy" is
recorded here only so old citations (e.g. .antigravitycli/planned.md's F#5, which still says
legacy.py) stay traceable to what is now oda.py.
| Lang | HtmlDefault | HugoDefault | HtmlODA (v1.0: "HtmlLegacy") | HugoODA (v1.0: "HugoLegacy") |
|---|---|---|---|---|
| Cpp | CppHtmlDefaultRenderer | CppHugoDefaultRenderer | CppHtmlODARenderer | CppHugoODARenderer |
| Cs | CsHtmlDefaultRenderer | CsHugoDefaultRenderer | CsHtmlODARenderer | CsHugoODARenderer |
| Java | JavaHtmlDefaultRenderer | JavaHugoDefaultRenderer | JavaHtmlODARenderer | JavaHugoODARenderer |
| Py | PyHtmlDefaultRenderer | PyHugoDefaultRenderer | PyHtmlODARenderer | PyHugoODARenderer |
:::
Pipeline Reliability & Configuration
REQ-FUN-07
Non-Interactive CLI Automation
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-09 - Evidence:
engine/ude/cli.py.
Supports fully non-interactive execution with standard exit codes, configurable via CLI arguments and environment variables, for hands-free CI/CD automation.
REQ-FUN-11
Transparent Compression of JSON Artifacts
- Status:
IMPLEMENTED(IR); seeREQ-NFN-04binnfr.mdfor the translation-cache half - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-03 - Evidence:
engine/ude/storage.py.
Stores and manages the Intermediate Representation as Gzip-compressed .json.gz, transparently
decompressed on load and recompressed on write, so no uncompressed JSON pollutes repository storage.
Translation-cache compression is v4.0+ scope, contingent on the translation feature itself
(REQ-BUS-06) — tracked as REQ-NFN-04b, not restated here.
REQ-FUN-23
Environment & Dependency Verification
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-09 - Evidence:
engine/ude/orchestrator.pypre-flight checks.
Before running any collector/parsing task, verifies Python availability, the Doxygen binary, presence of
required target configs (ude_doc_config.json, Doxyfile), and presence/non-emptiness of source
directories and required source files. Failures halt cleanly pre-subprocess-spawn with diagnostics to
stderr and exit code 5.
REQ-FUN-24
Pipeline Fault Tolerance & Recovery
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-03,REQ-BUS-09 - Evidence:
engine/ude/orchestrator.py(error_policy);engine/ude/collectors/doxygen.py:526(finally:crash-cleanup guarantee).
Configurable fail-fast/continue-on-error multi-project policy; malformed/unreadable XML compounds
are logged and skipped rather than crashing the whole pipeline; crash cleanup via finally blocks
deletes generated temp folders on unhandled exceptions.
REQ-FUN-25
Unified Logging & Auditing
- Status:
IMPLEMENTED(baseline form) - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-03,REQ-BUS-09 - Evidence: file-level only, not independently re-verified this pass.
- History:
- v1.0 — a centralized, time-stamped, thread-safe file logger with configurable verbosity, capturing Doxygen subprocess stderr and parse/render statistics.
- v2.0 — superseded in scope by a single
logging_setup()engine-startup call; seeREQ-V2-02inv2.0-shipped.md.
REQ-FUN-26
Incremental Parsing Cache
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-03,REQ-BUS-09 - Evidence:
engine/ude/doxygen_cache.py.
Incremental parsing keyed on file modification timestamps or content hashes of input Doxygen XML.
Unchanged compounds load from .build_cache.json.gz instead of re-parsing raw XML.
REQ-FUN-27
Incremental Rendering Cache
- Status:
IMPLEMENTED(baseline form) - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-03,REQ-BUS-09 - Evidence:
engine/ude/storage.py(BuildCacheManager). - History:
- v1.0 — signature/content-hash and template-hash comparison to skip redundant disk writes.
- v2.0 — full activation wiring
BuildCacheManagerinto all 16 rendererrender()calls; seeREQ-V2-03inv2.0-shipped.md.
REQ-FUN-28
Target Folder Isolation for Metadata and Cache
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-03 - Evidence:
ude_projects/<SDK>/<sdk>_<lang>/directory convention (repo-wide, e.g.ude_projects/mock/mock_api_cpp/).
IR and build/parsing caches are strictly stored under a dedicated <sdk>_<lang> target subdirectory
under ude/, kept under version control alongside the target's batch script, ude_doc_config.json, and
Doxyfile — never inside output_dir.
REQ-FUN-29
No Hardcoded Paths & Relative Path Resolution
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-09 - Evidence:
engine/ude/orchestrator.py.
All paths are defined exclusively in configuration files and declared relative to the directory containing that config file; the orchestrator resolves them to absolute paths at runtime, so the same configuration is portable between local and CI/CD environments.
REQ-FUN-45
Config Inheritance and Flat-Merging
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-12 - Evidence:
engine/ude/orchestrator.py:99(deep_merge).
Loads a parent ude_global_config.json by walking up the directory tree from the local
ude_doc_config.json, and flat-merges it under the target-specific local configuration so local values
cleanly override global defaults.
REQ-FUN-46
Combined Output Path Resolution
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-12 - Evidence:
engine/ude/orchestrator.py.
If output_base_dir and output_subdir are both present, combines them into a single absolute path; if
either is absent, falls back to the standard relative output_dir for backward compatibility.
REQ-FUN-47
Sequential Doxyfile Assembly
- Status:
IMPLEMENTED(baseline form — source concatenation) - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-13 - Evidence:
engine/ude/collectors/doxyfile.py. - History:
- v1.0 — three-stage sequential merge (global template → project-specific template appended → dynamic orchestrator parameters appended), relying on Doxygen's own last-value-wins semantics for duplicate keys.
- v2.0 — replaced by explicit key-level 3-tier merge; see
REQ-V2-04inv2.0-shipped.md.
Quality & Alignment Testing
REQ-FUN-48
Golden Master Regression Testing
- Status:
IMPLEMENTED - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-08 - Evidence:
engine/tests/test_golden_master.py. - Full spec:
srs/integration_tests_specification.md.
Parametrized across C++, C#, Java, Python: parses pre-compiled Doxygen XML into a ProjectCatalog,
validates the serialized IR against assets/golden_master/ir/{lang}.json, and validates rendered
standalone-HTML and Hugo-Markdown output trees against their respective baselines. Supports
UPDATE_BASELINES=1 to regenerate baselines intentionally.
REQ-FUN-49
Docomatic Semantic Alignment & Difference Tracking
- Status:
IMPLEMENTED(baseline scope); seev2.0-shipped.mdfor the full v2.0 39-combination/16-SDK achievement - Target:
v1.0 - Alias: —
- Traces to:
REQ-BUS-08,REQ-BUS-10 - Evidence:
engine/tests/test_docomatic_alignment.py. - Full spec:
srs/integration_tests_specification.md.
Verifies structural and semantic identity between Flude output and legacy Docomatic reference
documentation: parses Docomatic contents.html for navigation/TOC structure, normalizes semantic text
blocks from both sides, applies a version-controlled AlignmentAllowances engine for known deviations,
records newly detected deviations into gitignored difference_*.json files, and enforces either Strict
Mode (STRICT_ALIGNMENT=1, CI gate) or Soft Mode (warning only, local development).