smithery/thomascothran

pavlov

Discover and learn the Pavlov behavioral programming library for Clojure/CLJS. Use when you need Pavlov concepts, bthreads/bprograms, or to locate docs, tests, and docstrings on the classpath.

Installation

$ npx skills add smithery/thomascothran --skill pavlov

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,146 B
  • docs SUMMARY.md 206 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Pavlov discovery

Pavlov is a Clojure and ClojureScript behavioral programming library inspired by David Harel et al.’s paper "Behavioral Programming". It adapts the original behavioral programming model by running bprograms with a step function.

Choose your path

  • Bare-bones API details or quick usage cues: start with docstrings.
  • Principles and conceptual background: read the documentation resources. What is behavioral programming? Why is it used?
  • Concrete examples: browse tests (see references/access-test-examples.md).

Docstrings (fastest)

  • Use clojure.repl/doc in the Clojure REPL on the core namespaces and functions first.
(require '[clojure.repl :refer [doc source find-doc apropos]])

(doc 'tech.thomascothran.pavlov.bthread)
(doc 'tech.thomascothran.pavlov.bprogram.ephemeral)
(doc 'tech.thomascothran.pavlov.bthread/bids)
(doc 'tech.thomascothran.pavlov.bprogram.ephemeral/execute!)

Documentation resources (background)

  • Use clojure.java.io and slurp with io/resource.
  • All docs live under tech/thomascothran/pavlov-skills/doc/.
(require '[clojure.java.io :as io])

(slurp (io/resource "tech/thomascothran/pavlov-skills/doc/README.md"))
(slurp (io/resource "tech/thomascothran/pavlov-skills/doc/what-is-a-bthread.md"))

Test examples (concrete)

  • Once you have a path, read tests with io/resource + slurp.
(require '[clojure.java.io :as io])

(slurp (io/resource "tech/thomascothran/pavlov/bthread_test.cljc"))
(slurp (io/resource "tech/thomascothran/pavlov/bprogram/ephemeral_test.clj"))

These files can be large, so search the strings for the functions you're looking for.

For more examples, use references/access-test-examples.md (resource path ./references/access-test-examples.md) to list test sources on the classpath.