tech-recon
Goal-driven technology investigation — interview, discover, ingest, analyze, and visualize competing systems against user-defined success criteria
Skill by sciknow-io
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/sciknow-io-tech-recon
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/tech-recon
What's inside
- Skill name
tech-recon- Description
- Goal-driven technology investigation — interview, discover, ingest, analyze, and visualize competing systems against user-defined success criteria
- License
- MIT
- Instructions
- 118 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (45)
- plugin.json · .claude-plugin/
- .standalone-db
- README.md
- SKILL.md
- USAGE.md
- analysis-runner.tsx · dashboard/components/
- atoms.tsx · dashboard/components/
- report-content.tsx · dashboard/components/
- tokens.ts · dashboard/components/
- inspector.json · dashboard/
- lib.ts · dashboard/
- .gitkeep · dashboard/pages/tech-recon/
- page.tsx · dashboard/pages/tech-recon/artifact/[id]/
- page.tsx · dashboard/pages/tech-recon/investigation/[id]/analysis/[aid]/
- page.tsx · dashboard/pages/tech-recon/investigation/[id]/
- page.tsx · dashboard/pages/tech-recon/
- page.tsx · dashboard/pages/tech-recon/system/[id]/
- route.ts · dashboard/routes/analysis/[id]/
- route.ts · dashboard/routes/analysis/[id]/run/
- route.ts · dashboard/routes/artifact/[id]/content/
- route.ts · dashboard/routes/artifact/[id]/
- route.ts · dashboard/routes/investigation/[id]/
- route.ts · dashboard/routes/investigations/
- route.ts · dashboard/routes/note/[id]/
- route.ts · dashboard/routes/sources/[systemId]/
- route.ts · dashboard/routes/system/[id]/
- evaluation-notes.md · docs/
- hooks.json · hooks/
- memory_eval_models.py
- pipeline_score_assessments.py · pipelines/
- investigation-report.html.j2 · report_templates/
- schema.png
- schema.tql
- memory_eval.yaml · schema/
- memory_eval_schema.json · schema/
- skill.yaml
- SKILL.md · skills/tech-recon/
- tech_recon.py
- README.md · types/
- brief.md · types/
- evaluation.md · types/
- landscape.md · types/
- monitor.md · types/
- question.md · types/
- survey.md · types/
SKILL.md (first lines)
# Tech-Recon Skill
Systematic, goal-driven technology investigation. Interview the user to define success criteria → discover candidate systems → ingest sources → write structured notes → plan + implement Observable Plot visualizations → dashboard.
## Quick Start
When a user asks to investigate technology, first **classify the investigation type**, then run the interview.
### Step 1: Classify the type
After the user describes their goal (first 2-3 exchanges), read `types/README.md` and match to a type:
| Type | Trigger |
|------|---------|
| `landscape` | "What exists?", "Compare options for..." |
| `evaluation` | "Should we use X?", "Is X right for us?" |
| `question` | "How do people solve X?", "Is there a way to...?" |
| `survey` | "What's the state of the art in...?", "Survey the literature on..." |
| `monitor` | "Keep me updated on...", "Track developments in..." |
| `brief` | "Explain X to my CTO", "Write a study guide on..." |
Propose the type: *"This sounds like a **landscape** investigation. Does that fit?"*
### Step 2: Load the type prompt
Read `types/<type>.md` for the matched type. Follow its guidance for:
- Interview adjustments (which questions to ask/skip/modify)
- Discovery strategy (broad vs. deep, what sources)
- Sensemaking approach (what note topics, how to organize)
- Output expectations (what the synthesis report should contain)
### Step 3: Start the investigation
```bash
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" \
--type landscape
```
## Investigation Phases
1. **Type Classification** — match user's goal to an investigation type
2. **Interview** — type-specific questions to define goal + success criteria
3. **Discovery** — search for candidates/sources (scope varies by type)
4. **Ingestion** — parallel subagents per system/source (see USAGE.md §8)
5. **Sensemaking** — type-specific note topics and organization (see type prompt)
6. **Viz Planning** — propose plots mapped to success criteria, user approves
7. **Analysis** — Observable Plot + TypeQL per approved plot
8. **Dashboard** — `http://localhost:3001/tech-recon`
**Read USAGE.md before executing any commands. Read the type prompt before sensemaking.**
## Type-Specific Sensemaking
After loading the type prompt, adapt your sensemaking strategy:
- Use the **Expected note topics** from the type prompt as your checklist
- Follow the **Sensemaking strategy** section for depth/breadth guidance
- The type prompt's **Completion criteria** tell you when to stop
- Different types emphasize different things: landscapes compare, evaluations assess fit, questions find approaches, surveys build thematic narratives
## Command Output Pattern
`uv run` always emits a `VIRTUAL_ENV` warning to stderr. **Never use `2>&1` when piping to a JSON parser** — the warning merges into stdout and breaks JSON parsing. Always redirect stderr away first:
```bash
# CORRECT — stderr suppressed before JSON parse
uv run python .claude/skills/tech-recon/tech_recon.py <cmd> [args] \
2>/dev/null | python3 -c "import json,sys; print(json.dumps(json.load(sys.stdin),indent=2))"
# WRONG — VIRTUAL_ENV warning corrupts the JSON stream
uv run python .claude/skills/tech-recon/tech_recon.py <cmd> [args] \
2>&1 | python3 -c "import json,sys; ..."
```
When a command fails (wrong args), stdout is empty → JSON parse throws `JSONDecodeError: Expecting value`. To debug, drop the JSON pipe and use `2>&1 | head -5` to see the raw error.
## Command Quick Reference
Use exact argument names — wrong names cause silent failures.
| Command | Required args |
|---------|--------------|
| `show-investigation` | `--id ID` |
| `list-investigations` | _(none)_ |
| `update-investigation` | `--id ID [--status S] [--goal G] [--criteria C]` |
| `advance-iteration` | `--investigation INVESTIGATION` |
| `delete-investigation` | `--id ID --force` |
| `list-systems` | `--investigation INVESTIGATION [--status {candidate,confirmed,ingested,analyzed,excluded,all}]` |
| `show-system` | `--id ID` |
| `add-system` | `--investigation INVESTIGATION --name N --url U [--github-url U] [--description D]` |
| `approve-system` | `--id ID` |
| `delete-system` | `--id ID --force` |
| `ingest-page` | `--url URL --system SYSTEM` |
| `ingest-repo` | `--url URL --system SYSTEM` |
| `ingest-docs` | `--url URL --system SYSTEM [--max-pages N]` |
| `ingest-pdf` | `--url URL --system SYSTEM` |
| `list-artifacts` | `--system SYSTEM [--type {webpage,github-repo,pdf,source-file,file-tree}]` |
| `show-artifact` | `--id ID` |
| `cache-stats` | _(none)_ |
| `write-note` | `--subject-id SUBJECT_ID --topic T --format {markdown,yaml,json} --content C [--tags T] [--iteration N] [--replace]` _(subject = system or investigation ID)_ |
| `list-notes` | `--subject-id SUBJECT_ID [--topic T]` _(subject = system or investigation ID)_ |
| `show-note` | `--id ID` |
| `delete-note` | `--id ID` |
| `list-analyses` | `--investigation INVESTIGATION` |
| `show-analysis` | `--id ID` |
| `run-analysis` | `--id ID` |
| `add-analysis` | `--investigation INVESTIGATION --title T --description D --plot-code CODE --query QUERY [--analysis-type {plot,table,prose}]` |
| `add-pipeline` | `--investigation INVESTIGATION --title T --pipeline-script "code or @path" --pipeline-config JSON [--analysis-type pipeline-plot]` |
| `run-pipeline` | `--id ID` |
| `plan-analyses` | `--investigation INVESTIGATION` |
| `compile-report` | `--investigation INVESTIGATION [--force]` |
| `evaluate-completion` | `--investigation INVESTIGATION` |
| `explore-repo` | `--system SYSTEM` or `--investigation INVESTIGATION` |
| `extract-fragments` | `--artifact ARTIFACT [--max-fragments N]` |From sciknow-io/alhazen-skill-deep-research, MIT.
More from sciknow-io/alhazen-skill-deep-research
- 0.491score
dismech-notebook
sciknow-io
DisMech rare disease knowledge mapped into Alhazen notebook memory
SkillCFreshness: C★ 1Claude Code +9 - 0.491score
dismech
sciknow-io
Browse and query the DisMech disease mechanism knowledge graph (750+ curated disorders in TypeDB 3.x)
SkillCFreshness: C★ 1Claude Code +9 - 0.269score
scientific-literature
sciknow-io
No description from the publisher yet.
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Jul 9, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from sciknow-io
- 0.554score
agentic-memory
sciknow-io
TypeDB-backed ontological memory with schema-driven retrieval.
SkillCFreshness: C★ 24Claude Code +9 - 0.554score
alhazen-core
sciknow-io
REQUIRED FIRST — starts TypeDB + dashboard via Docker, loads the Alhazen base schema.
SkillCFreshness: C★ 24Claude Code +9 - 0.551score
curation-skill-builder
sciknow-io
Design and implement TypeDB-backed curation skills using the Skillful Alhazen methodology
SkillCFreshness: C★ 24Claude Code +9 - 0.551score
typedb-notebook
sciknow-io
Store and retrieve knowledge in the Alhazen TypeDB knowledge graph - remember, recall, organize papers and notes
SkillCFreshness: C★ 24Claude Code +9 - 0.551score
web-search
sciknow-io
Search the web using SearXNG (self-hosted metasearch - no API key needed)
SkillCFreshness: C★ 24Claude Code +9 - 0.544score
your-domain-name
sciknow-io
Brief description of what this skill does
SkillCFreshness: C★ 24Claude Code +9
Cite this page
tech-recon skill. Agent Mart. https://agentmart.dev/skills/sciknow-io-tech-recon (last updated 2026-10-24)