diff --git a/src/repo_registry/web_ui/views.py b/src/repo_registry/web_ui/views.py
index 6f0492b..c1bc4fe 100644
--- a/src/repo_registry/web_ui/views.py
+++ b/src/repo_registry/web_ui/views.py
@@ -2,6 +2,7 @@ from __future__ import annotations
from dataclasses import asdict
from html import escape
+from urllib.parse import quote_plus
from fastapi import APIRouter, Depends, Form, HTTPException, Query
from fastapi.responses import HTMLResponse, PlainTextResponse, RedirectResponse
@@ -527,6 +528,7 @@ def repository_detail(
facts_count=None,
base_href=f"/ui/repos/{repository_id}/elements?scope=approved",
)}
+ {render_approved_registry_actions(repository_id, asdict(ability_map))}
Latest Candidate Graph
{render_latest_candidate_counts(repository_id, latest_candidate, service)}
{render_ability_map(asdict(ability_map), repository_id)}
@@ -1768,6 +1770,24 @@ def render_count_pills(
return "".join(items)
+def render_approved_registry_actions(repository_id: int, ability_map: dict) -> str:
+ abilities = ability_map.get("abilities", [])
+ if not abilities:
+ return ""
+ search_query = abilities[0]["name"]
+ return f"""
+
+
Use Approved Registry
+
+
+ """
+
+
def graph_element_rows(graph: dict, item_type: str) -> list[dict]:
rows: list[dict] = []
for ability in graph.get("abilities", []):
diff --git a/tests/test_web_api.py b/tests/test_web_api.py
index e3586f3..e286f0e 100644
--- a/tests/test_web_api.py
+++ b/tests/test_web_api.py
@@ -1166,6 +1166,12 @@ def test_ui_register_analyze_and_approve_loop(tmp_path):
assert "2 candidate capabilities" in approved_detail.text
assert "2 candidate features" in approved_detail.text
assert "7 candidate facts" in approved_detail.text
+ assert "Use Approved Registry" in approved_detail.text
+ assert "Search Profile" in approved_detail.text
+ assert "Discovery" in approved_detail.text
+ assert "Export" in approved_detail.text
+ assert "Approved Elements" in approved_detail.text
+ assert "q=Report+Service+Status" in approved_detail.text
assert (
f"/ui/repos/{repository_id}/elements?scope=approved&type=abilities"
in approved_detail.text
diff --git a/workplans/RREG-WP-0003-automatic-repository-exploration.md b/workplans/RREG-WP-0003-automatic-repository-exploration.md
index 2173bd1..5f514be 100644
--- a/workplans/RREG-WP-0003-automatic-repository-exploration.md
+++ b/workplans/RREG-WP-0003-automatic-repository-exploration.md
@@ -85,7 +85,7 @@ against feature granularity collapsing into one feature per observed fact.
```task
id: RREG-WP-0003-T03
-status: in_progress
+status: done
priority: medium
state_hub_task_id: "5c4b5bb1-390c-4782-bb70-104b0006fe67"
```