diff --git a/src/personal_mcp/registry/models/registry.py b/src/personal_mcp/registry/models/registry.py index a9b1659..bc5257d 100644 --- a/src/personal_mcp/registry/models/registry.py +++ b/src/personal_mcp/registry/models/registry.py @@ -199,16 +199,27 @@ class DocsRegistry(StrictFrozenModel): """In-memory index of loaded skills, prompts, and docs content.""" skills_by_id: Mapping[str, SkillRecord] = Field(default_factory=frozen_mapping) + """Maps each skill identifier to its fully resolved registry record.""" skills_in_load_order: tuple[str, ...] + """Preserves skill identifiers in deterministic source loading order.""" skills_summary_in_load_order: tuple[SkillSummaryRecord, ...] + """Stores compact skill summaries in the same deterministic loading order.""" docs_markdown_by_path: Mapping[DocsPath, str] = Field(default_factory=_empty_docs_mapping) + """Maps each documentation path to its loaded Markdown content.""" docs_markdown_path_index: tuple[DocsPath, ...] + """Lists documentation paths in deterministic index order.""" tag_to_skill_ids: Mapping[str, tuple[str, ...]] = Field(default_factory=frozen_mapping) + """Indexes skill identifiers by tag for catalog filtering and search.""" capability_to_skill_ids: Mapping[str, tuple[str, ...]] = Field(default_factory=frozen_mapping) + """Indexes skill identifiers by the capabilities they provide.""" prompts_by_id: Mapping[str, PromptRecord] = Field(default_factory=frozen_mapping) + """Maps each prompt identifier to its fully resolved registry record.""" prompts_in_load_order: tuple[str, ...] = () + """Preserves prompt identifiers in deterministic source loading order.""" prompts_summary_in_load_order: tuple[PromptSummaryRecord, ...] = () + """Stores compact prompt summaries in the same deterministic loading order.""" tag_to_prompt_ids: Mapping[str, tuple[str, ...]] = Field(default_factory=frozen_mapping) + """Indexes prompt identifiers by tag for catalog filtering and search.""" @field_validator( "skills_by_id",