Skip to content

Commit 418d389

Browse files
committed
fix: use detected adapter tool directly in auto-detect
- Auto-detect now uses detected_capabilities.tool directly instead of hard-coding fallback to generic-markdown - OpenSpec and other registered adapters can now be auto-detected - Proper error handling for unknown tool detection - Fixes both sync and import commands Fixes review findings: - P1 Badge: Sync auto-detect never selects OpenSpec adapter - P1 Badge: Auto-detect falls back to unregistered adapter
1 parent cb032aa commit 418d389

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

src/specfact_cli/commands/import_cmd.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1238,7 +1238,16 @@ def from_bridge(
12381238
if adapter == "speckit" or adapter == "auto":
12391239
probe = BridgeProbe(repo)
12401240
detected_capabilities = probe.detect()
1241-
adapter = "speckit" if detected_capabilities.tool == "speckit" else "generic-markdown"
1241+
# Use detected tool directly (e.g., "speckit", "openspec", "github")
1242+
# BridgeProbe already tries all registered adapters
1243+
if detected_capabilities.tool == "unknown":
1244+
console.print("[bold red]✗[/bold red] Could not auto-detect adapter")
1245+
console.print("[dim]No registered adapter detected this repository structure[/dim]")
1246+
registered = AdapterRegistry.list_adapters()
1247+
console.print(f"[dim]Registered adapters: {', '.join(registered)}[/dim]")
1248+
console.print("[dim]Tip: Specify adapter explicitly with --adapter <adapter>[/dim]")
1249+
raise typer.Exit(1)
1250+
adapter = detected_capabilities.tool
12421251

12431252
# Validate adapter using registry (no hard-coded checks)
12441253
adapter_lower = adapter.lower()

src/specfact_cli/commands/sync.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1111,7 +1111,16 @@ def sync_bridge(
11111111
if adapter == "speckit" or adapter == "auto":
11121112
probe = BridgeProbe(repo)
11131113
detected_capabilities = probe.detect()
1114-
adapter = "speckit" if detected_capabilities.tool == "speckit" else "generic-markdown"
1114+
# Use detected tool directly (e.g., "speckit", "openspec", "github")
1115+
# BridgeProbe already tries all registered adapters
1116+
if detected_capabilities.tool == "unknown":
1117+
console.print("[bold red]✗[/bold red] Could not auto-detect adapter")
1118+
console.print("[dim]No registered adapter detected this repository structure[/dim]")
1119+
registered = AdapterRegistry.list_adapters()
1120+
console.print(f"[dim]Registered adapters: {', '.join(registered)}[/dim]")
1121+
console.print("[dim]Tip: Specify adapter explicitly with --adapter <adapter>[/dim]")
1122+
raise typer.Exit(1)
1123+
adapter = detected_capabilities.tool
11151124

11161125
# Validate adapter using registry (no hard-coded checks)
11171126
adapter_lower = adapter.lower()

0 commit comments

Comments
 (0)