Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)
Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
"""Documentation snapshot tests for the team profile matching feature.
|
|
|
|
These tests assert that the user-facing documentation files contain the
|
|
keywords that pin the team-search surface (Profile_Type, find_matching_teams,
|
|
team_search, top_competency_weight). They guard against accidental removal
|
|
during future doc rewrites.
|
|
|
|
Validates: Requirements 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 11.1, 11.2,
|
|
11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
|
|
REPO_ROOT = Path(__file__).resolve().parent.parent
|
|
|
|
DOC_FILES = (
|
|
"docs/architecture.md",
|
|
"README.md",
|
|
".kiro/agents/teamlandkarte.md",
|
|
".github/agents/teamlandkarte_agent.md",
|
|
)
|
|
|
|
REQUIRED_KEYWORDS = (
|
|
"Profile_Type",
|
|
"find_matching_teams",
|
|
"team_search",
|
|
"top_competency_weight",
|
|
)
|
|
|
|
|
|
@pytest.mark.parametrize("doc_path", DOC_FILES)
|
|
@pytest.mark.parametrize("keyword", REQUIRED_KEYWORDS)
|
|
def test_doc_contains_team_keyword(doc_path: str, keyword: str) -> None:
|
|
"""Each documentation file must mention the team-search keywords verbatim."""
|
|
|
|
full_path = REPO_ROOT / doc_path
|
|
assert full_path.exists(), f"Documentation file missing: {doc_path}"
|
|
|
|
content = full_path.read_text(encoding="utf-8")
|
|
assert keyword in content, (
|
|
f"Keyword '{keyword}' missing from documentation file '{doc_path}'."
|
|
)
|