Deep expertise in Logseq's Datascript database schema. Auto-invokes when users ask about Logseq DB schema, Datascript attributes, built-in classes, property types, entity relationships, schema validation, or the node/block/page data model. Provides authoritative knowledge of the DB graph architecture.
Provides expert knowledge of Logseq's Datascript database schema, classes, properties, and node models.
npx claudepluginhub c0ntr0lledcha0s/claude-code-plugin-automationsThis skill is limited to using the following tools:
assets/class-template.ednassets/property-template.ednreferences/built-in-classes.mdThis skill auto-invokes when:
:db/ident, :logseq.class/*, or :logseq.property/*Reference Material: See {baseDir}/references/built-in-classes.md for complete class hierarchy.
You have expert knowledge of Logseq's database schema architecture.
Logseq DB graphs are built on Datascript, a Clojure/ClojureScript in-memory database that supports:
;; Value types
:db.type/ref ; References to other entities
:db.type/string ; Text values
:db.type/long ; Integer numbers
:db.type/double ; Floating point numbers
:db.type/boolean ; True/false
:db.type/instant ; Timestamps
:db.type/keyword ; Clojure keywords
:db.type/uuid ; UUIDs
;; Cardinality
:db.cardinality/one ; Single value
:db.cardinality/many ; Multiple values (set)
:block/tags ; Classes/tags assigned to the entity
:block/refs ; Outgoing references to other entities
:block/alias ; Alternative names for a page
:block/parent ; Parent block in hierarchy
:block/page ; Page containing this block
:logseq.class/Root
├── :logseq.class/Page
├── :logseq.class/Tag (classes themselves)
├── :logseq.class/Property
├── :logseq.class/Task
│ └── Status, Priority, Deadline, Scheduled
├── :logseq.class/Query
├── :logseq.class/Asset
├── :logseq.class/Code-block
└── :logseq.class/Template
All non-Root classes extend :logseq.class/Root via :logseq.property.class/extends.
| Type | Validator | Closed Values | Use Case |
|---|---|---|---|
:default | text-entity? | ✅ | Text blocks with titles |
:number | number-entity? | ✅ | Numeric values |
:date | date? | ❌ | Journal page entities |
:datetime | datetime? | ❌ | Time-based scheduling |
:checkbox | boolean? | ❌ | Toggle properties |
:url | url-entity? | ✅ | URL strings or macros |
:node | node-entity? | ❌ | Block/page references |
:class | class-entity? | ❌ | Class entities |
{:db/ident :user.property/my-property
:logseq.property/type :default ; Property type
:logseq.property/cardinality :one ; :one or :many
:logseq.property/hide? false ; Hide by default
:logseq.property.ui/position :properties ; UI placement
:logseq.property/closed-values [...] ; Restricted choices
:logseq.property/schema-classes [...] ; Associated classes
:block/title "My Property"} ; Display name
| Namespace | Purpose | Example |
|---|---|---|
logseq.property | Core system properties | :logseq.property/type |
logseq.property.class | Class-related | :logseq.property.class/extends |
logseq.property.table | Table views | :logseq.property.table/columns |
user.property | User-defined | :user.property/author |
plugin.property | Plugin-defined | :plugin.property/custom |
;; Version format
{:major 65 :minor 12}
;; Stored in
:logseq.kv/schema-version ; Graph's current version
db-schema/version ; Expected version
Migrations handle schema upgrades between versions (65.0 → 65.12+).
[property-map value] tuples:logseq.property/type:many vs :one handlingvalidate-tx-report ensures integrityIn DB version, nodes represent both pages and blocks:
Node
├── Page (unique by tag combination)
│ ├── Journal pages (#Journal)
│ ├── Regular pages (#Page)
│ └── Class pages (#Tag)
└── Block (within pages)
├── Content blocks
├── Property blocks
└── Convertible to page via #Page tag
Pages are unique by their tag combination:
;; Define a class with properties
{:db/ident :user.class/Book
:block/tags [:logseq.class/Tag]
:block/title "Book"
:logseq.property.class/extends :logseq.class/Root
:logseq.property/schema-classes
[:user.property/author
:user.property/isbn
:user.property/rating]}
;; Number property with choices
{:db/ident :user.property/rating
:block/title "Rating"
:logseq.property/type :number
:logseq.property/cardinality :one
:logseq.property/closed-values [1 2 3 4 5]}
When users need more information, reference:
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.