diff --git a/nickol_knx_mcp/report.py b/nickol_knx_mcp/report.py index d351efb..aab80c1 100644 --- a/nickol_knx_mcp/report.py +++ b/nickol_knx_mcp/report.py @@ -18,6 +18,8 @@ from .generate_ha import generate_ha_yaml _SEV_ICON = {"error": "🔴", "warning": "🟡", "info": "🔵"} +FEEDBACK_URL = "https://github.com/NickoScope/nickol-knx-mcp/issues/new?template=real_project_test.yml" + def _section(title: str, findings: list[dict[str, Any]]) -> str: if not findings: return f"### {title}\n\n_No issues found._\n" @@ -119,6 +121,15 @@ def build_report(project: LoadedProject, "4. Generate ETS CSV/XML and HA YAML, commit to Git, then import into ETS " "and deploy to Home Assistant.\n" ) + # A gentle, one-line nudge at the very end — the report is the artefact a + # human actually reads after running the tool on a real project, so this is + # where a field report is most likely to happen. Anonymised is fine. + md.append( + "\n---\n*Ran this on a real ETS project? Two lines in a " + f"[real-project test report]({FEEDBACK_URL}) — what it got right, what it " + "got wrong — are what make the next release better. Anonymised addresses " + "are perfectly fine.*\n" + ) summary = { "ga_count": len(gas), diff --git a/nickol_knx_mcp/server.py b/nickol_knx_mcp/server.py index 644554b..d2a0fc6 100644 --- a/nickol_knx_mcp/server.py +++ b/nickol_knx_mcp/server.py @@ -21,7 +21,7 @@ from .analyze import (validate_naming, detect_missing_status, detect_dpt_issues, detect_topology_issues, secure_posture) from .generate_ha import generate_ha_yaml from .generate_ets import generate_ets_csv, generate_ets_xml -from .report import build_report +from .report import build_report, FEEDBACK_URL from .handover import build_handover from .device_library import decompose_device as _decompose_device, list_recipes from .appprog_parser import (parse_project as _parse_project, @@ -95,6 +95,11 @@ def load_project(path: str, password: Optional[str] = None, "devices": len(proj.devices), "functions": len(proj.functions), "ets_tool_version": proj.info.get("tool_version"), + # The first call every new user makes — the one place a gentle nudge for a + # real-project field report reaches exactly the people who ran it. + "feedback": ("Ran this on a real ETS project? Two lines on what it got " + "right/wrong help the next release: " + f"{FEEDBACK_URL} (anonymised is fine)."), }