Skip to content

Claude/reorganize api docs acr tb#481

Merged
Krilliac merged 4 commits into
Workingfrom
claude/reorganize-api-docs-acrTb
Apr 17, 2026
Merged

Claude/reorganize api docs acr tb#481
Krilliac merged 4 commits into
Workingfrom
claude/reorganize-api-docs-acrTb

Conversation

@Krilliac

Copy link
Copy Markdown
Owner

No description provided.

claude added 4 commits April 17, 2026 03:27
Reorganize the `docs/` tree so every artifact lives in a subfolder keyed
to its type, with a master index one level up that links to every
category and every entry:

  docs/
  ├── README.md        Master categorized index (rewritten)
  ├── architecture/    Dependency matrix, extension policies (existing)
  ├── specs/           Wire/asset/plugin ABI formats (existing)
  ├── plans/           Roadmap + milestones (add FEATURE_ROADMAP.md)
  ├── status/          Project status snapshots (new, holds PROJECT_STATUS.md)
  ├── guides/          User-facing guides (new, holds packaging.md)
  ├── tooling/         Doc generators + Doxygen setup (new)
  ├── api/             Auto-generated API pages (gitignored)
  ├── screenshots/     Images (existing)
  └── wine-upstream/   Wine patches (existing)

Fix API-doc links across the repo to match the new layout:
  - README.md references docs/plans/, docs/status/, docs/guides/ paths
    and points at the wiki's API-Reference as the API entry point.
  - wiki/_Sidebar.md replaces the misnamed "API Docs (Doxygen)" link
    with Documentation Index + Doc Tooling links.
  - wiki/Home.md adds [API Reference](API-Reference) alongside the
    Documentation Index link.
  - wiki/Build-System-and-CMake-Modules.md and
    docs/plans/tier3-polish-maturity-milestone.md use the new paths.

Generator (docs/generate-api-docs.sh) improvements:
  - Generated index now links back to the master docs index and to the
    sibling Component/System quick references.
  - Per-header pages include back-links to the API index and master.
  - Top-level overview files (ComponentIndex, SystemIndex) are grouped
    under an "Overview" heading instead of becoming their own sections.
  - Free-function filter no longer drops any line containing `::`, which
    regressed indexing of valid free functions with namespace-qualified
    return types (e.g. `std::unique_ptr<X> MakeLinearTree(`). Now only
    rejects when the matched function name is itself preceded by `::`.
    Recovers 177 previously-skipped symbols (16799 → 16976 total).

https://claude.ai/code/session_01TuKSsMgreD8WhdcLqhT8E4
Move every wiki page — except Home.md, _Sidebar.md, and _Template.md
— into a category subfolder keyed to its _Sidebar section:

  wiki/
  ├── Home.md, _Sidebar.md, _Template.md   (root, GitHub wiki convention)
  ├── getting-started/      13 pages (tutorials, intro, architecture)
  ├── subsystems/           34 pages (engine subsystems)
  ├── gameplay-tools/       30 pages (gameplay, editor, asset tooling)
  ├── platform/              5 pages (platform support)
  ├── graphics/             23 pages (rendering/graphics)
  ├── advanced/             19 pages (perf, memory, testing, code health)
  ├── specifications/        3 pages (wire formats, plugin ABI)
  └── reference/             8 pages (auto-generated symbol/file indexes)

Link maintenance:
  - 948 internal wiki links in 110 pages rewritten to relative subfolder
    paths (Python script, `.md`-suffix preserved for explicitness).
  - _Sidebar.md entries updated to subfolder paths.
  - docs/README.md master index updated — 142 `../wiki/PageName.md` links
    now point at `../wiki/<category>/PageName.md`.
  - Relative paths in moved pages (images, source files, ../docs/ refs)
    gained an extra `../` hop to account for the deeper location.
  - README.md, CLAUDE.md, and docs/tooling/README.md external references
    updated.

Generator updates (new output locations):
  - generate-symbol-index.sh       → wiki/reference/{Symbol,Function,Class,Enum,Macro}-Index.md
  - generate-file-tree.sh          → wiki/reference/File-Tree.md
  - generate-class-hierarchy.sh    → wiki/reference/Class-Hierarchy.md
  - generate-flowchart.sh          → wiki/getting-started/Engine-Architecture-Flowchart.md
  - update-codebase-stats.sh       → wiki/advanced/Codebase-Statistics.md
  - Source-link prefix bumped from `../<path>` to `../../<path>` in the
    reference indexes so they still resolve after the extra nesting
    (35,000+ backlinks updated).

Script updates (subfolder-aware):
  - sync-wiki.sh: Entity-Component-System, Testing, SparkEditor, Home
    page paths updated; check-mode snapshot/restore now handles the
    whole tree instead of only wiki-root `.md`.
  - check-wiki-nav.sh: extracts sidebar link basenames (slugs) and
    recurses into subfolders for the actual-pages set.
  - check-wiki-quality.sh: Contributing.md and Testing.md paths moved
    to advanced/.

Verified with:
  - tools/check-wiki-nav.sh      : consistent (135 pages, all in sidebar)
  - tools/check-wiki-quality.sh  : passed
  - docs/update-all-docs.sh check: all 9 generators report up to date

Pre-existing broken links (14 references to pages that never existed —
`Scripting-System.md`, `Editor-Panels.md`, `VR-System.md`, etc.) are
unchanged; they were dead before the move and remain dead after. Left
for a future cleanup pass.

https://claude.ai/code/session_01TuKSsMgreD8WhdcLqhT8E4
Deep-scanned every .md under the repo for broken markdown links and
fixed every one. Zero broken file or bare-slug links remain across
37,144 checked references.

New pages (covering substantial real subsystems / workflows that were
referenced but had no target):

  wiki/subsystems/Event-Response-System.md
    — 1146-LOC data-driven "When/If/Then" rule engine with editor
      panel and 15-case test suite. Added to _Sidebar.md under Engine
      Subsystems and to docs/README.md master index.

  .claude/knowledge/git-rebase-conflicts.md
    — Per-file-type resolution rules for rebase conflicts (AUTO:
      sections, stat counters, source code).

  .claude/knowledge/github-api-pr-checks.md
    — Full PR-check polling / diagnosis / rerun workflow via gh.

  .claude/knowledge/clang-format.md
    — CI-matching clang-format invocation; documents why `head -50`
      must never appear in the pre-commit check.

Redirected 31 broken link references to the existing page that already
covers the topic:

  Editor-Panels, Editor-Architecture, Scene-Hierarchy, Inspector-Panel,
  Asset-Browser                      → gameplay-tools/SparkEditor.md
  Scripting-System                   → subsystems/Scripting-with-AngelScript.md
  ECS-Architecture, ECS-and-Components → subsystems/Entity-Component-System.md
  Build-System                       → advanced/Build-System-and-CMake-Modules.md
  Localization-System                → subsystems/Localization.md
  VR-System                          → platform/VR-Support.md
  Physics-System                     → subsystems/Physics.md
  Cinematic-System                   → gameplay-tools/Cinematic-Sequencer.md
  Graphics-Engine                    → subsystems/Rendering-and-Graphics.md
  Screen-Capture                     → gameplay-tools/Movie-Render-Pipeline.md
  Console-System, Console            → gameplay-tools/SparkConsole.md
  Profiler                           → advanced/Profiler-and-Debugging.md
  Seamless-Area-Streaming,
  World-Origin-System                → subsystems/Large-World-Support.md
  Networking-System                  → subsystems/Networking.md
  Quality-Presets                    → advanced/Configuration-Reference.md

Other fixes:
  .claude/README.md: renamed placeholder `filename.md` inside a fenced
    code-block example to `other-entry-filename.md` (no functional
    change; the scanner formerly flagged the sample syntax).

Verified with:
  tools/check-wiki-nav.sh      : consistent (136 pages, all in sidebar)
  tools/check-wiki-quality.sh  : passed
  docs/update-all-docs.sh      : all 9 generators report up to date
  scan-all-links (tmp)         : 37144 checked, 0 broken

https://claude.ai/code/session_01TuKSsMgreD8WhdcLqhT8E4
Deep scan of the codebase turned up five substantial topics with
significant committed source but no dedicated wiki coverage:

  wiki/graphics/D3D11-Backend.md           Primary Windows backend (~360 LOC)
  wiki/graphics/Vulkan-Backend.md          Largest cross-platform backend (~680 LOC)
  wiki/graphics/OpenGL-Backend.md          4.6 core fallback backend (~450 LOC)
  wiki/graphics/Metal-Backend.md           macOS header-designed backend (~540 LOC)
  wiki/getting-started/Game-Modules.md     Catalog of all 10 pre-built game modules
                                           (~58K total LOC, was only covered by
                                           the "Creating a Game Module" tutorial)

Rationale — the RHI page already described the abstraction, but only
D3D12 had its own backend page; the other four were referenced in
`RHIFactory::GetRecommendedBackend()` and shipped with full device
implementations yet had nowhere to document format support, capability
detection, validation, or known limitations. The five new pages
complete the RHI backend matrix.

Game-Modules.md fills the most glaring navigation gap: 10 modules
totalling ~58K LOC were discoverable only by reading CMake or browsing
`GameModules/`. Each module now has a catalog entry with LOC, genre,
and the engine subsystems it wires, plus a link to `Creating-a-Game-Module`
for builders who want their own.

Sidebar and docs/README.md updated; wiki-nav check reports 141 pages,
all in sidebar; full-repo link scan reports 37,220 references checked
with 0 broken.

https://claude.ai/code/session_01TuKSsMgreD8WhdcLqhT8E4
@Krilliac
Krilliac merged commit 13f790a into Working Apr 17, 2026
22 of 41 checks passed
@Krilliac
Krilliac deleted the claude/reorganize-api-docs-acrTb branch April 17, 2026 04:19
@github-actions

Copy link
Copy Markdown
Contributor

❌ CI Error Report

Failed jobs: clang-tidy, coverage, linux-asan, linux-clang-Debug, linux-gcc-Debug, linux-msan, linux-tsan, macos-Debug, macos-Release, windows-vs2022-Release
Errors: 12 | Test failures: 4 | Test warnings: 15 | Compiler warnings: 3

Build Errors

File Line Error Jobs
SparkEngine/Source/Core/SparkEngineLinux.cpp 939 ‘class GraphicsEngine’ has no member named ‘IsHeadless’ coverage
SparkEngine/Source/Core/SparkEngineLinux.cpp 939 ‘class GraphicsEngine’ has no member named ‘IsHeadless’ linux-asan, linux-gcc-Debug, linux-tsan
../../SparkDaemon/src/DaemonServer.h 70 no template named 'expected' in namespace 'std' linux-clang-Debug
../../SparkDaemon/src/DaemonServer.cpp 86 no template named 'expected' in namespace 'std' linux-clang-Debug
../../SparkDaemon/src/DaemonServer.cpp 93 no member named 'unexpected' in namespace 'std' linux-clang-Debug
../../SparkDaemon/src/DaemonServer.cpp 93 expected '(' for function-style cast or type construction linux-clang-Debug
Tests/TestDaemonConcurrent.cpp 37 no member named 'getpid' in the global namespace; did you mean 'getpt'? linux-msan
Tests/TestDaemonConcurrent.cpp 77 no member named 'unlink' in the global namespace linux-msan
Tests/TestDaemonLRU.cpp 36 no member named 'getpid' in the global namespace; did you mean 'getpt'? linux-msan
Tests/TestDaemonCodexFixes.cpp 40 no member named 'getpid' in the global namespace; did you mean 'getpt'? linux-msan
Tests/TestDaemonCodexFixes.cpp 104 no member named 'unlink' in the global namespace linux-msan
Other errors (1)
clang++: error: linker command failed with exit code 1 (u e -v to  ee invocation) [macos-Debug, macos-Release]
Full error output
SparkEngine/Source/Core/SparkEngineLinux.cpp:939:43: error: ‘class GraphicsEngine’ has no member named ‘IsHeadless’
../SparkEngine/Source/Core/SparkEngineLinux.cpp:939:43: error: ‘class GraphicsEngine’ has no member named ‘IsHeadless’
../../SparkDaemon/src/DaemonServer.h:70:14: error: no template named 'expected' in namespace 'std'
../../SparkDaemon/src/DaemonServer.cpp:86:10: error: no template named 'expected' in namespace 'std'
../../SparkDaemon/src/DaemonServer.cpp:93:25: error: no member named 'unexpected' in namespace 'std'
../../SparkDaemon/src/DaemonServer.cpp:93:47: error: expected '(' for function-style cast or type construction
../../Tests/TestDaemonConcurrent.cpp:37:108: error: no member named 'getpid' in the global namespace; did you mean 'getpt'?
../../Tests/TestDaemonConcurrent.cpp:77:15: error: no member named 'unlink' in the global namespace
../../Tests/TestDaemonLRU.cpp:36:89: error: no member named 'getpid' in the global namespace; did you mean 'getpt'?
../../Tests/TestDaemonCodexFixes.cpp:40:100: error: no member named 'getpid' in the global namespace; did you mean 'getpt'?
../../Tests/TestDaemonCodexFixes.cpp:104:7: error: no member named 'unlink' in the global namespace
clang++: error: linker command failed with exit code 1 (u e -v to  ee invocation)
### Test Failures
Test Jobs
1/1 Test #1: SparkEngineTests .................***Failed 14.21 sec windows-vs2022-Release
[ FAILED ] Monitor_TweenSustainedLoad (549us, 5 assertions) windows-vs2022-Release
::warning title=Flaky test: Integration_NetworkingECS_ReplicationLatencyJitterPredictionReconciliation::Integration_N... windows-vs2022-Release
0% tests passed, 1 tests failed out of 1 windows-vs2022-Release

⚠️ Test Warnings (Known Flaky)

These tests are registered as known flaky and do not block the build:

Test Jobs
[04:56:35.058] [TID:4316] [WARN ] [Network ] RCON unknown command: nonexistent_cmd (DedicatedServer.cpp:573) windows-vs2022-Release
[04:56:35.074] [TID:4316] [WARN ] [Network ] NetBuffer::ReadUint8 — buffer overrun at pos 1 (size=1) (NetworkBuffer.c... windows-vs2022-Release
[04:56:35.093] [TID:4316] [WARN ] [AI ] BuildNavMeshWithRecast: empty geometry (RecastDetourBackend.cpp:35) windows-vs2022-Release
[04:56:35.094] [TID:4316] [WARN ] [AI ] NavMeshBuilder: Recast build failed, falling back to triangle-soup builder (N... windows-vs2022-Release
[04:56:35.094] [TID:4316] [WARN ] [Audio ] XAudio2 backend requested but no AudioEngine provided, falling back to Nul... windows-vs2022-Release
[ OK ] ProfileProperties_NoResetWhenNotFlagged (0us,[04:56:35.095] [TID:4316] [WARN ] [Graphics ] No graphics backend... windows-vs2022-Release
[04:56:35.095] [TID:4316] [WARN ] [Graphics ] No graphics backend available — falling back to NullRHIDevice (headless... windows-vs2022-Release
[04:56:35.100] [TID:4316] [WARN ] [Editor ] Cannot host: userName is empty. (CollaborativeEditSession.cpp:454) windows-vs2022-Release
[04:56:35.100] [TID:4316] [WARN ] [Editor ] Already connected. (CollaborativeEditSession.cpp:459) windows-vs2022-Release
[04:56:35.103] [TID:4316] [WARN ] [Editor ] BroadcastEdit rejected: nodeId is empty. (CollaborativeEditSession.cpp:1119) windows-vs2022-Release
[04:56:35.103] [TID:4316] [WARN ] [Editor ] BroadcastEdit rejected: sourceEditor is not set. (CollaborativeEditSessio... windows-vs2022-Release
[04:56:35.104] [TID:4316] [WARN ] [Editor ] SetLocalSelection rejected: nodeId exceeds 255 chars (length=300). (Colla... windows-vs2022-Release
[04:56:40.668] [TID:4316] [WARN ] [Network ] Connection rejected for pending client 5: server full (4/4) (NetworkConn... windows-vs2022-Release
[04:56:40.670] [TID:4316] [WARN ] [Network ] Invalid packet magic 0x6A0E5CB3 (expected 0x5350524B) (NetworkManager.cp... windows-vs2022-Release
[04:56:40.670] [TID:4316] [WARN ] [Network ] Invalid packet magic 0xC6BB6E5B (expected 0x5350524B) (NetworkManager.cp... windows-vs2022-Release
Compiler Warnings (3)
../SparkEngine/Source/Physics/PhysicsBodyImpl.cpp:270:23: warning: comparing floating point with == or != is unsafe [-Wfloat-equal] [linux-msan]
../SparkEngine/Source/Physics/PhysicsSystem.cpp:401:12: warning: use of old-style cast [-Wold-style-cast] [linux-msan]
../../Tests/TestReliableChannel.cpp:390:9: warning: variable 'retransmitCount' set but not used [-Wunused-but-set-variable] [linux-msan]

Updated: 2026-04-17T04:57:16Z — this comment is updated in-place, not duplicated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants