fix: add @moduledoc to all public modules (CSM-018)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-10 11:30:08 +02:00
parent 5c17751d55
commit 3f77488e33
13 changed files with 62 additions and 15 deletions

View File

@@ -307,9 +307,22 @@
## Low Severity / Code Quality ## Low Severity / Code Quality
### CSM-018 — `@moduledoc false` Epidemic ### ~~CSM-018 — `@moduledoc false` Epidemic~~ ✅ FIXED
- **Files:** `lib/bds/i18n.ex`, `lib/bds/map_utils.ex`, `lib/bds/bounded_atoms.ex`, `lib/bds/document_fields.ex`, `lib/bds/import_definitions.ex`, `lib/bds/publishing.ex`, `lib/bds/settings.ex`, `lib/bds/templates.ex`, `lib/bds/ai.ex`, `lib/bds/mcp.ex`, `lib/bds/scripting/capabilities.ex`, `lib/bds/scripting/api_docs.ex` - **Fixed:** 2026-05-10
- **Fix:** Write `@moduledoc` descriptions for all public modules. Keep internal helpers documented or mark them `@moduledoc false` only if truly private. - **What was done:**
- Replaced `@moduledoc false` with descriptive `@moduledoc` strings in all 12 listed public modules:
- `lib/bds/i18n.ex` — language support, locale resolution, flag emoji mapping
- `lib/bds/map_utils.ex` — mixed-key map utilities and safe atom conversion
- `lib/bds/bounded_atoms.ex` — allow-list-based dynamic atom conversion
- `lib/bds/document_fields.ex` — frontmatter field access with key aliases
- `lib/bds/import_definitions.ex` — CRUD for WXR import configurations
- `lib/bds/publishing.ex` — GenServer for site upload job coordination
- `lib/bds/settings.ex` — global key-value settings persistence
- `lib/bds/templates.ex` — Liquid template lifecycle management
- `lib/bds/ai.ex` — AI endpoint config, secrets, and inference dispatch
- `lib/bds/mcp.ex` — MCP server facade for external AI agents
- `lib/bds/scripting/capabilities.ex` — Lua scripting capability map builder
- `lib/bds/scripting/api_docs.ex` — machine-readable Lua API documentation
--- ---

View File

@@ -1,5 +1,8 @@
defmodule BDS.AI do defmodule BDS.AI do
@moduledoc false @moduledoc """
Public interface for AI features — endpoint configuration, secret management,
model catalog access, and dispatching chat and one-shot inference requests.
"""
alias BDS.AI.Catalog alias BDS.AI.Catalog
alias BDS.AI.Chat alias BDS.AI.Chat

View File

@@ -1,5 +1,8 @@
defmodule BDS.BoundedAtoms do defmodule BDS.BoundedAtoms do
@moduledoc false @moduledoc """
Safe conversion of dynamic values to atoms from pre-defined allow-lists,
preventing atom table exhaustion from untrusted input.
"""
alias BDS.UI.Registry alias BDS.UI.Registry
alias BDS.UI.MenuBar alias BDS.UI.MenuBar

View File

@@ -1,5 +1,8 @@
defmodule BDS.DocumentFields do defmodule BDS.DocumentFields do
@moduledoc false @moduledoc """
Accessor functions for document frontmatter fields, supporting key aliases
(e.g. "date" and "published_at" resolve to the same value).
"""
def get(fields, key, default \\ nil) when is_map(fields) and is_binary(key) do def get(fields, key, default \\ nil) when is_map(fields) and is_binary(key) do
case fetch(fields, key) do case fetch(fields, key) do

View File

@@ -1,5 +1,7 @@
defmodule BDS.I18n do defmodule BDS.I18n do
@moduledoc false @moduledoc """
Internationalization helpers for supported languages, locale resolution, and flag emoji mapping.
"""
@supported_languages [ @supported_languages [
%{code: "en", flag: "GB"}, %{code: "en", flag: "GB"},

View File

@@ -1,5 +1,8 @@
defmodule BDS.ImportDefinitions do defmodule BDS.ImportDefinitions do
@moduledoc false @moduledoc """
CRUD operations for import definitions — saved configurations for importing
content from WordPress WXR exports.
"""
import Ecto.Query import Ecto.Query

View File

@@ -1,5 +1,8 @@
defmodule BDS.MapUtils do defmodule BDS.MapUtils do
@moduledoc false @moduledoc """
Utility functions for working with maps that may have atom or string keys,
including safe atom conversion for untrusted input.
"""
@typedoc "An attribute map that may use atom or string keys." @typedoc "An attribute map that may use atom or string keys."
@type attrs :: %{optional(atom()) => term(), optional(String.t()) => term()} @type attrs :: %{optional(atom()) => term(), optional(String.t()) => term()}

View File

@@ -1,5 +1,8 @@
defmodule BDS.MCP do defmodule BDS.MCP do
@moduledoc false @moduledoc """
Facade for the Model Context Protocol server, exposing tools and resources
that external AI agents can invoke to read and manipulate blog content.
"""
alias BDS.MCP.Resources alias BDS.MCP.Resources
alias BDS.MCP.Tools alias BDS.MCP.Tools

View File

@@ -1,5 +1,8 @@
defmodule BDS.Publishing do defmodule BDS.Publishing do
@moduledoc false @moduledoc """
GenServer that manages site upload jobs, coordinating file transfers to
configured hosting destinations and tracking progress via the task system.
"""
use GenServer use GenServer

View File

@@ -1,5 +1,8 @@
defmodule BDS.Scripting.ApiDocs do defmodule BDS.Scripting.ApiDocs do
@moduledoc false @moduledoc """
Machine-readable documentation for the Lua scripting API, used to generate
help text, autocompletion data, and the published API reference.
"""
@version "0.4.0" @version "0.4.0"

View File

@@ -1,5 +1,8 @@
defmodule BDS.Scripting.Capabilities do defmodule BDS.Scripting.Capabilities do
@moduledoc false @moduledoc """
Builds the capability map exposed to Lua scripts, binding each scripting API
method to its Elixir implementation for a given project context.
"""
alias BDS.I18n alias BDS.I18n
alias BDS.Tasks alias BDS.Tasks

View File

@@ -1,5 +1,7 @@
defmodule BDS.Settings do defmodule BDS.Settings do
@moduledoc false @moduledoc """
Persistence layer for global application settings stored as key-value pairs in the database.
"""
alias BDS.Persistence alias BDS.Persistence
alias BDS.Repo alias BDS.Repo

View File

@@ -1,5 +1,8 @@
defmodule BDS.Templates do defmodule BDS.Templates do
@moduledoc false @moduledoc """
CRUD and lifecycle management for Liquid templates (posts, lists, partials, 404 pages),
including slug derivation, status transitions, and filesystem synchronization.
"""
import Ecto.Query import Ecto.Query
import BDS.MapUtils, only: [attr: 2, maybe_put: 3] import BDS.MapUtils, only: [attr: 2, maybe_put: 3]