.ai/skills/cora/SKILL.md
Lisp-1 language with pattern matching, macros, and partial application
npx skillsauth add tiancaiamao/cora coraInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when:
⚠️ Start with Common Pitfalls - most errors come from syntax confusion.
display, file I/O), verify required imports are present (e.g. (import "cora/lib/io"))[] is reader sugar and appears as (list ...) / (list-rest ...) before evaluation, not nested cons data.do is fixed-arity and only accepts exactly 2 expressions; use begin for 3+ expressions.where guards with func clauses; avoid match clauses with where guards in checker codegen paths.deftype rules (e.g. op) instead of hardcoding constructors into core unification/substitution machinery.| Feature | Cora | Common Lisp/Scheme |
|---------|------|-------------------|
| let | (let a 1 b 2 body) | (let ((a 1) (b 2)) body) |
| list literal | [a b c] | '(a b c) |
| match arrows | no => | N/A |
| func arrows | uses => | N/A |
| docstrings | none | supported |
;; 4 special forms
'x (if t a b) (do a b) (lambda (x) body)
;; func (uses =>)
(func fib
0 => 0
1 => 1
n => (+ (fib (- n 1)) (fib (- n 2))))
;; match (NO =>)
(match lst
[] 0
[x . xs] (+ 1 (length xs)))
;; package
(package "my/pkg"
(import "cora/lib/json")
(export foo)
(defun foo (x) ...))
(package "myapp/utils"
(export greet)
(defun greet (name)
(display "Hello, ")
(display name)
(display "\n")))
(import "cora/lib/json")
(let data (json-load-file "config.json")
(let host (json-string-value (json-object-get data "host"))
(display host)))
(defun sum (n acc)
(if (= n 0)
acc
(sum (- n 1) (+ n acc))))
(sum 100 0) ;; => 5050
| Document | Purpose | |----------|---------| | pitfalls.md | Common mistakes - READ FIRST | | cora.md | Complete language specification |
| Module | Description |
|--------|-------------|
| cora/lib/json | JSON parsing/encoding |
| cora/lib/string | String operations |
| cora/lib/os | File system, env vars |
| cora/lib/test | Testing framework |
| cora/lib/hash-h | Hash tables |
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.