Tech Recon
Skills: Tech Recon
Goal-driven technology investigation — systematically research, compare, and visualize competing systems against user-defined success criteria.
Purpose
Tech-recon turns technology evaluation from ad hoc web searches into a structured, queryable investigation. It runs an 8-question interview to define your goal and success criteria, discovers candidate systems, ingests their documentation, writes structured notes via parallel subagents, and renders Observable Plot visualizations in a dashboard.
Use this skill when you need to choose between frameworks, databases, libraries, or platforms — especially when the decision involves multiple criteria and multiple candidates.
The 7-Phase Pipeline
| Phase | Name | What Happens |
|---|---|---|
| 1 | Interview | 8 conversational questions → goal + success criteria |
| 2 | Discovery | Find candidate systems; user approves list |
| 3 | Ingestion | Parallel subagents ingest primary sources per system |
| 4 | Sensemaking | Parallel subagents write structured notes per system |
| 5 | Viz Planning | Propose visualizations mapped to success criteria |
| 6 | Analysis | Implement Observable Plot visualizations |
| 7 | Dashboard | Browse at http://localhost:3001/tech-recon |
Prerequisites
- TypeDB running:
make db-start - Dependencies installed:
uv sync --all-extras - Dashboard (for Phase 7):
cd dashboard && npm run devordocker compose up -d dashboard
Commands
Investigation Lifecycle
# Start a new investigation (after interview)
uv run python .claude/skills/tech-recon/tech_recon.py start-investigation \
--name "Graph DB alternatives" \
--goal "Choose a graph DB for knowledge graph + agent memory" \
--success-criteria "Schema inference, Python API, active community, open source"
# Show investigation details
uv run python .claude/skills/tech-recon/tech_recon.py show-investigation \
--id INVESTIGATION_ID
# Advance to next iteration
uv run python .claude/skills/tech-recon/tech_recon.py advance-iteration \
--investigation INVESTIGATION_ID
Discovery
# Add a candidate system
uv run python .claude/skills/tech-recon/tech_recon.py add-system \
--investigation INVESTIGATION_ID \
--name "TypeDB" \
--url "https://typedb.com" \
--github-url "https://github.com/typedb/typedb" \
--description "Polymorphic database with type theory foundations"
# List candidate systems
uv run python .claude/skills/tech-recon/tech_recon.py list-systems \
--investigation INVESTIGATION_ID
# Approve a system for ingestion
uv run python .claude/skills/tech-recon/tech_recon.py approve-system \
--id SYSTEM_ID
Ingestion
# Ingest homepage
uv run python .claude/skills/tech-recon/tech_recon.py ingest-page \
--url "https://typedb.com" --system SYSTEM_ID
# Ingest GitHub repository (README + file tree)
uv run python .claude/skills/tech-recon/tech_recon.py ingest-repo \
--url "https://github.com/typedb/typedb" --system SYSTEM_ID
# Ingest documentation site (recursively)
uv run python .claude/skills/tech-recon/tech_recon.py ingest-docs \
--url "https://typedb.com/docs" --system SYSTEM_ID --max-pages 20
# Ingest a PDF (whitepaper, paper)
uv run python .claude/skills/tech-recon/tech_recon.py ingest-pdf \
--url "https://example.com/paper.pdf" --system SYSTEM_ID
# List artifacts
uv run python .claude/skills/tech-recon/tech_recon.py list-artifacts \
--system SYSTEM_ID
# Show artifact content
uv run python .claude/skills/tech-recon/tech_recon.py show-artifact \
--id ARTIFACT_ID
Sensemaking
# Write a structured note (topics: architecture, api, data-model, integration,
# performance, community, comparison, assessment)
uv run python .claude/skills/tech-recon/tech_recon.py write-note \
--system SYSTEM_ID \
--topic architecture \
--content "## Architecture\n\nTypeDB uses a polymorphic type system..."
# Note about the investigation (cross-system)
uv run python .claude/skills/tech-recon/tech_recon.py write-note \
--investigation INVESTIGATION_ID \
--topic comparison \
--content "## Cross-System Comparison\n\n..."
# List notes
uv run python .claude/skills/tech-recon/tech_recon.py list-notes \
--system SYSTEM_ID
uv run python .claude/skills/tech-recon/tech_recon.py list-notes \
--investigation INVESTIGATION_ID --topic assessment
# Show note
uv run python .claude/skills/tech-recon/tech_recon.py show-note \
--id NOTE_ID
Analysis and Visualization
# Generate a visualization plan from notes + success criteria
uv run python .claude/skills/tech-recon/tech_recon.py plan-analyses \
--investigation INVESTIGATION_ID
# Add an analysis (after user approves plan)
uv run python .claude/skills/tech-recon/tech_recon.py add-analysis \
--investigation INVESTIGATION_ID \
--title "GitHub Stars Comparison" \
--analysis-type bar \
--query "match \$s isa tech-recon-system, has name \$n, has star-count \$sc; fetch { \"name\": \$n, \"stars\": \$sc };" \
--plot-code "Plot.barY(data, {x: 'name', y: 'stars'}).plot()"
# Run an analysis (executes TQL, returns data for dashboard)
uv run python .claude/skills/tech-recon/tech_recon.py run-analysis \
--id ANALYSIS_ID
# List all analyses
uv run python .claude/skills/tech-recon/tech_recon.py list-analyses \
--investigation INVESTIGATION_ID
Typical Workflow
You: I need to choose a vector database for semantic search
Agent: [runs 8-question interview, one question per turn]
[synthesizes goal + success criteria, shows for approval]
Agent: start-investigation --name "Vector DB selection" ...
You: Search for candidates
Agent: [uses web-search + GitHub to find 5-6 candidates]
[presents table for approval]
You: Looks good, let's go
Agent: [dispatches ingestion subagents in parallel, 1 per system]
[dispatches sensemaking subagents in parallel, 1 per system]
[proposes viz plan: star comparison, license matrix, Python API feature table]
You: Approved
Agent: [implements Observable Plot charts]
[opens http://localhost:3001/tech-recon]
Schema
Entities
| Entity | Subtype of | Key Attributes |
|---|---|---|
tech-recon-investigation |
collection |
goal-description, success-criteria |
tech-recon-system |
domain-thing |
url, github-url, language, license, star-count, status |
tech-recon-artifact |
artifact |
artifact-type, url, content, cache-path |
tech-recon-analysis |
artifact |
title, description, analysis-type, plot-code, tql-query |
tech-recon-note |
note |
topic, tag, content |
Relations
| Relation | Purpose |
|---|---|
investigated-in |
Links system to investigation |
sourced-from |
Links artifact to system or investigation |
analysis-of |
Links analysis to investigation |
aboutness (core) |
Links notes to systems or investigations |
collection-membership (core) |
Links systems into investigations |
Dashboard
URL: http://localhost:3001/tech-recon
| Route | Content |
|---|---|
/tech-recon |
All investigations with goal and status |
/tech-recon/[id] |
Investigation detail: systems, notes, analyses |
/tech-recon/[id]/system/[sid] |
System detail: artifacts and notes |
/tech-recon/[id]/analyses |
Visualization gallery |
/tech-recon/[id]/analysis/[aid] |
Single visualization with Observable Plot render |
See Also
- Design Concepts — the 6-phase curation framework
- Skill Architecture — how skills are structured
- Schema Reference — core type hierarchy