Quest: Interactive Tool Playground

← All Specs

Quest: Interactive Tool Playground

ID: q-tool-playground Layer: Forge Priority: 88 Status: active Depends-on: q-forge (tool registry)

One-line summary

Make every Forge tool directly usable from the site — interactive forms, live API calls, structured result display, and links to external tool providers.

Why this matters

SciDEX has 57+ registered scientific tools, but users can only see usage stats on /forge. They can't try a tool without writing code. Making tools interactive:

  • Demonstrates the platform's data capabilities to visitors
  • Lets researchers explore gene/pathway data without leaving the site
  • Creates a feedback loop: tools that get used more get improved faster
  • Showcases the Forge layer as a genuine scientific computing surface, not just a registry

Scope

Phase 1: Playground MVP (done)

/forge/playground page with 6 high-value tools
☑ Inline input forms with example values + "Run" button
POST /api/forge/tools/try endpoint executing real tool calls
☑ Structured result display (table for arrays, key-value for dicts)
☑ External link to each tool's native site (PubMed, STRING, Reactome, etc.)
☑ Provenance: every playground call goes through @log_tool_call

Initial tools: Gene Info, PubMed Search, STRING PPI, Reactome Pathways, Allen Brain Expression, Enrichr GO Enrichment.

Phase 2: Expanded coverage

☐ Add remaining high-value tools: ClinVar Variants, Human Protein Atlas, GWAS Associations, Open Targets, UniProt Protein Info, ChEMBL Drug Targets
☐ Tool metadata in skills table: input_schema JSON, example_input JSON, external_url_template TEXT
☐ Auto-generate playground cards from skills table metadata (no hardcoded PLAYGROUND_TOOLS dict)
☐ Rate limiting: max 10 calls/min per tool per session

Phase 3: Rich result rendering

☐ Specialized renderers per tool type: network graph for STRING, heatmap for expression, citation cards for PubMed
☐ "Save result as artifact" button (creates artifact row with tool output)
☐ "Feed into Idea Collider" button (pre-seeds collider with the result)
☐ Result comparison: run same tool with different inputs side-by-side

Phase 4: External tool connections

☐ Tool detail pages (/forge/tool/{tool_id}) with: description, input schema, usage stats, external links, recent calls, result examples
☐ External tool provider pages with metadata: API docs URL, rate limits, authentication requirements, data license
☐ Tool chain builder: visual pipeline connecting output of one tool to input of another

Phase 5: Community contributions

☐ Tool request form: users can suggest new tools to add
☐ "Wrap your API" guide: how external tool providers can register their API with SciDEX Forge
☐ Tool quality scoring: uptime monitoring, response time percentiles, data freshness checks

> Tool requests must include a use case describing a hypothesis or analysis that would benefit from the tool. Tool quality scoring auto-rejects tools with <80% uptime or >1-minute p99 latency. Stub tools (no real output) are not registered.

Acceptance criteria (Phase 1)

☑ 6 tools accessible via /forge/playground
☑ Each tool has input form, Run button, result display, external link
☑ API endpoint returns structured JSON with duration_ms
☑ Tool calls are instrumented via @log_tool_call decorator
☑ Playground accessible from Forge nav dropdown

Files

PathPurpose
api.py (PLAYGROUND_TOOLS dict)Tool definitions with input schemas + external URLs
api.py /api/forge/tools/tryPOST endpoint: executes tool, returns JSON
api.py /forge/playgroundInteractive playground page

File: quest_tool_playground_spec.md
Modified: 2026-04-28 03:24
Size: 3.7 KB