Skip to main content
Version: 3.0 (Next)

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-specific Doxyfile, 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; see REQ-V3-08 in v3.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 a try...finally block 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 in engine/ude/parsers/.
  • History:
    • v1.0 — ClassEntity discriminated union.
    • v2.0 — replaced by the 7-model typed schema; see REQ-V2-07 in v2.0-shipped.md.

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.md cites 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_internals flag on the parser, gated per user-docs/docs/exclusion-gates.md's own note that this flag exists but is not yet exposed through a JSON config key (see v3.0-next.md REQ-V3-09 for 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 handlers engine/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.

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}.py resolve_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_links injection 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}.py group-pruning logic.
  • History:
    • v1.0 — virtual group folder mapping came from per-renderer-class toc_<Class>.json files (see REQ-FUN-50 below).
    • v2.0 — mapping moved to sidebar.toml's [groups] table; see v2.0-shipped.md.

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-docs VitePress 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 from srs/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 root class_layout.html on 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.toml per project (not per renderer class), which is mandatory: missing, malformed, or empty raises UdeException — there is no default navigation at any tier. See v2.0-shipped.md for the current form.

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.

LangHtmlDefaultHugoDefaultHtmlODA (v1.0: "HtmlLegacy")HugoODA (v1.0: "HugoLegacy")
CppCppHtmlDefaultRendererCppHugoDefaultRendererCppHtmlODARendererCppHugoODARenderer
CsCsHtmlDefaultRendererCsHugoDefaultRendererCsHtmlODARendererCsHugoODARenderer
JavaJavaHtmlDefaultRendererJavaHugoDefaultRendererJavaHtmlODARendererJavaHugoODARenderer
PyPyHtmlDefaultRendererPyHugoDefaultRendererPyHtmlODARendererPyHugoODARenderer

:::

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); see REQ-NFN-04b in nfr.md for 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.py pre-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; see REQ-V2-02 in v2.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 BuildCacheManager into all 16 renderer render() calls; see REQ-V2-03 in v2.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-04 in v2.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); see v2.0-shipped.md for 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).