-
Notifications
You must be signed in to change notification settings - Fork 2
Home
A TypeDB-powered agentic knowledge notebook for developers — run interactively with Claude Code or deployed persistently via OpenClaw
"The duty of the man who investigates the writings of scientists, if learning the truth is his goal, is to make himself an enemy of all that he reads, and, applying his mind to the core and margins of its content, attack it from every side."
— Ibn al-Haytham (Alhazen), 965-1039 AD
Alhazen is an agentic curation system: Claude Code talks to a TypeDB knowledge graph, runs Python scripts, and builds structured understanding from unstructured sources — job postings, disease databases, scientific literature. You never write TypeQL or call APIs directly. Claude handles all of it.
The system has three layers:
- Claude Code — the agentic interface. You talk to Claude; Claude does the work.
- TypeDB — the knowledge graph backend, acting as the ontological memory. Schema-first design means concepts are defined before data is stored.
- Skills — domain-specific modules combining a TypeDB schema namespace, Python scripts, and a SKILL.md instruction file.
Open a Claude Code session in the project directory. Claude reads the skill files, calls Python scripts, and stores results in TypeDB. Best for exploration, sensemaking, and building new skills.
cd skillful-alhazen
make db-start # start TypeDB
claude # open Claude CodeOpenClaw deploys Alhazen as a persistent service — cron-scheduled foraging, Telegram notifications, always-on knowledge accumulation. No laptop required.
Telegram → OpenClaw → Claude Code → TypeDB
↑
cron forager (nightly)
See Deployment for the progression from local dev to OpenClaw on Mac Mini to OpenClaw on a VPS.
These two skills are production-ready for external data and persistent workflows:
| Skill | Description | OpenClaw Use |
|---|---|---|
| Skills: Jobhunt | Track job applications — automated forager, fit analysis, skill gap identification | Nightly forager cron, Telegram triage notifications |
| Skills: Rare Disease | Build 360° disease knowledge graphs from MONDO IDs — phenome, genome, therapeutome | Batch ingestion from disease lists |
These skills are internal explorations and development tools:
| Skill | Description |
|---|---|
| Skills: EPMC Search | Search Europe PMC for scientific papers |
| Skills: APM | Patient-centric rare disease investigation (Algorithm for Precision Medicine) |
| Skills: TechRecon | Technology landscape reconnaissance |
| Skills: TypeDB Notebook | Core knowledge operations (remember, recall, organize) |
| Skills: Domain Modeling | Meta-skill for designing new domain skills |
TypeDB is not just a document store — it's the ontological foundation of Alhazen. The schema defines the concepts Claude reasons with:
identifiable-entity (abstract root)
├── domain-thing # Real-world objects: diseases, genes, companies, jobs
├── collection # Typed sets: investigations, search campaigns, corpora
└── information-content-entity (abstract)
├── artifact # Raw captured content (API responses, HTML, PDFs)
├── fragment # Extracted pieces (requirements, phenotype associations)
└── note # Claude's analysis (fit scores, mechanism notes, syntheses)
This hierarchy guides skill design: a gene or a job posting is not information content. Only artifacts, fragments, and notes carry content. Domain objects are what you reason about; ICEs are what you reason with.
TypeDB's pattern-matching queries let Claude reason across skill boundaries — for example, linking a rare disease investigation (rare-disease skill) to a patient case (APM skill) via shared MONDO IDs.
With OpenClaw deployed on a Mac Mini:
10pm: cron job triggers → job_forager.py heartbeat
→ searches Greenhouse, LinkedIn, Remotive
→ filters by your skill profile (min relevance 0.3)
→ stores 12 new candidates in TypeDB
10am: you open Telegram
→ "12 new job candidates found overnight"
→ tap to triage: promote 3, dismiss 9
Later: Claude Code session
→ "Analyze the 3 promoted candidates"
→ Claude reads JD artifacts, runs sensemaking workflow
→ fit scores, skill gap notes, company research stored
| Document | Description |
|---|---|
| Getting Started | Installation and first steps |
| Deployment | Local → Mac Mini → VPS progression |
| OpenClaw Configuration | Gateway, cron jobs, Tailscale Serve |
| Skill Architecture | How to build skills — the three-component pattern |
| Design Concepts | Architecture and design principles |
| Schema Reference | TypeDB schema docs — type hierarchy, ER diagrams, query examples |
| Dashboard Organization | Next.js dashboard structure |
| History | The story of Ibn al-Haytham and project origins |
- Repository: github.com/GullyBurns/skillful-alhazen
- Original CZI Project: github.com/chanzuckerberg/alhazen
Getting Started
Architecture
Core Skills
Domain Skills
- Skills: Scientific Literature
- Skills: ALG Precision Therapeutics
- Skills: Literature Trends
- Skills: They Said Whaaa
- Skills: DisMech
- Skills: Jobhunt
Links