[Forge] Tool registry + call logging tables
Goal
Populate the skills table (0 rows) with entries for every function in tools.py. Create tool_calls table (skill_id, analysis_id, input_json, output_json, duration_ms, status, created_at).
Acceptance Criteria
☐ skills table has ~15 rows.
☐ tool_calls table exists and is ready for logging.
Approach
Read AGENTS.md and relevant source files
Understand existing code patterns before modifying
Implement changes following existing conventions (f-string HTML, SQLite, Bedrock Claude)
Test: curl affected pages, verify rendering, run scidex status
Commit atomically with descriptive messageWork Log
2026-04-01 - Starting implementation
- Reading tools.py to identify all tool functions
- Checking current database schema for skills and tool_calls tables
- Will populate skills table and create tool_calls table
2026-04-01 - Implementation complete
- Created populate_tool_registry.py script
- Created tool_calls table with schema: id, skill_id, analysis_id, input_json, output_json, duration_ms, status, error_message, created_at
- Populated skills table with 9 tool functions from tools.py:
- 7 data_retrieval tools: pubmed_search, pubmed_abstract, semantic_scholar_search, get_gene_info, get_disease_info, search_trials, open_targets_associations
- 2 analysis tools: enrichr_analyze, research_topic
- All tools categorized by skill_type and linked to code_path
- Verified with scidex status - system operational
- Acceptance criteria met: skills table populated, tool_calls table ready for logging