Chalk Labs
Need help deploying card?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
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/simhacker-card
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
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/card
What's inside
- Skill name
card- Description
- Portable tokens of capability, identity, and access
- License
- MIT
- Instructions
- 735 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- allowed-tools: must be a space-separated string
- body: 735 lines (spec recommends under 500)
Files (47)
- ACTIVATION.md
- CARD.yml
- CARD.yml.tmpl
- COLLECTION.yml.tmpl
- ENSEMBLES.md
- FLUXX.md
- GLANCE.yml
- README.md
- SKILL.md
- adapter-multi-surface.yml · examples/
- boop-polymorphism.yml · examples/
- buff-chain-trigger.yml · examples/
- buff-pie-menu.yml · examples/
- buff-stacking.yml · examples/
- collective-leela-ai.yml · examples/
- collective-maker-guild.yml · examples/
- collective-neighborhood-council.yml · examples/
- collective-open-guild.yml · examples/
- collective-open-observatory.yml · examples/
- collective-research-coop.yml · examples/
- entity-abstract-accountability.yml · examples/
- entity-abstract-clarity.yml · examples/
- entity-abstract-empathy.yml · examples/
- entity-abstract-justice.yml · examples/
- entity-abstract-stewardship.yml · examples/
- guarded-score-ad.yml · examples/
- monster-clockwork-dragon.yml · examples/
- monster-gelatinous-cube.yml · examples/
- monster-mimic.yml · examples/
- monster-owlbear.yml · examples/
- monster-shadow.yml · examples/
- moollm-fluxx-cards.yml · examples/
- moollm-mooxx-cards.yml · examples/
- party-dnd-delvers.yml · examples/
- party-dnd-scouts.yml · examples/
- peewee-herman-secret-word.yml · examples/
- person-fictional-mentor.yml · examples/
- person-fictional-rogue-ai.yml · examples/
- person-real-historian.yml · examples/
- person-real-moderator.yml · examples/
- property-get-set.yml · examples/
- pub-bard-shanty.yml · examples/
- random-toys.yml · examples/
- room-context-nav.yml · examples/
- worm-pointer.yml · examples/
- worm-sitemap-caster.yml · examples/
- skill-snitch-report.md
SKILL.md (first lines)
# Card
> **Portable tokens of capability, identity, and access.**
Cards are templates. Put them "in play" in a [room](../room/) to activate them.
> [!TIP]
> **Hero-stories.** Actors. Safe pointers to wisdom. No risks of impersonation, just tribute, storytelling, skill sharing and composing.
---
## The Card Pun Stack — What A CARD Is
"Card" elegantly puns across a stack of well-proven computing concepts. MOOLLM's CARD sits at the intersection of all of them, and borrows from each. Take the richness as intentional:
| Lineage | What it contributes | How it shows up in `CARD.yml` |
|---|---|---|
| 🎴 **HyperCard** (Bill Atkinson, 1987) | A card as a **self-contained navigable unit** with fields, buttons, scripts — a little interactive object you can page through, link to, and stack. "Everything is a card." | `card:` identity, `navigation:`, `advertisements:` that surface actions the way HyperCard buttons did |
| 💾 **Type Library / IDL / ActiveX / OLE Control** (Microsoft, 1990s) | **Dispatch metadata** describing an object's interface: its methods, properties, events, IDs. Binary in COM; human-readable YAML for us. | `methods:`, `state:`, `k_lines:` (our stand-in for UUIDs), `inherits:` (analog to COM aggregation) |
| 🎭 **Actor** (Hewitt 1973; Agha 1986) | A **message-receiving autonomous entity** with its own state, responding to messages by sending messages or changing state. Concurrency is inherent. | The whole card is an actor signature; advertisements describe the messages this actor handles |
| 🧵 **Thread / Process** | A **unit of control** with its own identity, lifecycle, and dispatchable surface. | Cards are dispatchable in parallel; `state:` is the actor-thread's local memory |
| 📬 **Message Dispatching Surface** (Smalltalk/Self/Objective-C) | The OO insight: methods aren't called, **messages are sent**, and the receiver decides what to do. Late binding, polymorphism, duck typing. | `methods:` ≠ functions; they're the messages this card responds to. DOP delegation composes dispatch across parent cards. |
| 🃏 **Trading / Playing Card** | **Portable token of identity and capability** — you collect them, play them, trade them. Front = identity/rarity; back = mechanical rules. | `rarity:`, `tier:`, `emoji:`, `tagline:`, the whole collectible ethos (hero-stories, soul-chat) |
| 🎯 **Business Card / Index Card** | **Sniffable surface.** Hand it to someone, they know who you are, how to reach you, what you do. | `tagline:`, `description:`, the entire "sniffable interface" framing |
A CARD is **all of these at once** — that's the design, not accident. When you encounter a `CARD.yml`, you're looking at:
- an **interface definition** (like IDL) describing a dispatchable surface,
- a **HyperCard** you can navigate to, activate, and page through,
- an **actor signature** describing a message-receiving entity with local state,
- a **type library entry** in a distributed, human-readable, zero-ceremony registry (the filesystem itself),
- a **collectible token** with rarity, identity, and portability, and
- a **business card** you can hand to a reader (human or LLM) to say "this is what I am and what I do."
The richness is load-bearing. Every time you write `methods:`, `advertisements:`, `k_lines:`, or `inherits:`, you're simultaneously:
- declaring an interface (IDL-style),
- describing an actor's message-handling surface (Hewitt-style),
- exposing navigation/activation triggers (HyperCard-style),
- publishing metadata that tooling and LLMs can sniff without execution (TypeLib-style),
- presenting a portable token of identity (trading-card-style).
This is why a CARD-only directory (no `SKILL.md`) is already a first-class dispatchable object. The CARD isn't documentation for the skill — it **is** the skill's interface, actor, card, type library, and business card rolled into one YAML file.
> 💡 *The other meta-skills (`skill`, `prototype`, `schema`, `file-system-object`) each name one aspect of the MOOLLM object system. `card` names the interface-and-actor surface itself — the CARD is the handle by which everything else is invoked.*
---
## 📑 Index
**Architecture**
- [The Card Pun Stack — What A CARD Is](#the-card-pun-stack--what-a-card-is)
- [What a CARD carries](#what-a-card-carries) — the standard keys, defaults, copy-down, projection
- [Card Architecture](#card-architecture) — The most important section!
- [Recommended Section Order](#recommended-section-order)
- [What Goes Where](#what-goes-where)
- [Advertisements Before Methods](#advertisements-before-methods)
- [Method Placement Rules](#method-placement-rules)
**Card Types**
- [What's a Card?](#whats-a-card)
- [Sidecar Pattern](#sidecar-cardyml-pattern)
- [Card Types](#card-types)
**Mechanics**
- [Activation Records](#activation-records)
- [Card State](#card-state)
- [Collections](#collections)
---
## What a CARD carries
`CARD.yml` is the one file a model reads to learn what an object does
([constitution §15](../../kernel/constitution-core.md#15-the-semantic-image-pyramid-concentrated-not-dry-universal)).
The standard is the `schema:` section of [CARD.yml](CARD.yml): every key's shape, default,
meaning and aliases, in the format of
[SCHEMA.md § Schema files](../../designs/object-system/SCHEMA.md#schema-files).
### One file, concentrated, not DRY
A card holds the object's advertisements, methods, k-lines, state, Dublin Core, card face,
relations and its own YAML Jazz, all in one file. There is no `ADVERTISEMENTS.yml`,
`METHODS.yml` or `K-LINES.yml` beside it. A directory with several interfaces (`ROOM.yml` and
`CHARACTER.yml`) still has one CARD, and every interface feeds it.
Repeating a key that `SKILL.md`, an interface file or the prototype file already has is the
point, not a defect. Never remove something from a card because a larger file says it; ask
whether it is among the most important things at card size. Lint keeps the copies in
agreement; the fix for a disagreement is updating the copy.
### The keys
| Group | Keys | Defaults when omitted |
|---|---|---|
| Identity, Dublin Core | `id`, `name`, `type`, `tags`, `description`, `credits`, `license` | `id` the directory name; `name` the id in title case; `type` `skill` in `skills/`, else the implied skill of the first interface file; `license` the repo's |
| Card face | `emoji`, `tier`, `rarity`, `tagline`, `t_shirt`, `tools {required, optional}`, `files` | `tier: 2`; `rarity: common`; `tagline` the first sentence of description; `files` the directory listing |
| Behavior | `advertisements` (map of [advertisement](../advertisement/)), `methods` (map of method, [OBJECT.yml](../object/OBJECT.yml)) | empty |
| Activation | `k_lines` | the id in UPPER-DASHES |
| State | `state` | empty |
| Copy-down | `interfaces` | the directory's interface files and the skill's prototype file, nothing copied |
| Relations | `inherits`, `inherited_by`, `related` (`{id, role, when, why}`), `see_also`, `lineage` | `see_also` is SKILL.md and README.md when present |
| Common jazz | `schema`, `examples`, `principles`, `anti_patterns` | `examples` the `examples/` directory |
`type:` is one id; other kinds go in `tags:`. `k_lines:` is a flat list of K-LINE words, run by
the same matcher as an advertisement's `trigger:` words. Situations that call for the card
are advertisement `score_if:` lines, not a separate `invoke_when:` list. `status:` and
`version:` are retired (git knows), and so are `card:` and `skill:` envelopes: cards are
flat.
Readers accept the older spellings listed as `aliases:` in the schema (`one_liner`,
`documentation`, `related_skills`, `activates`, `invoke_when`, `allowed_tools`, ...); writers
emit only the canonical key. Lint reports an alias as a finding.
### Copy-down from interfaces
Interface files stay canonical for instances: `skills/room/ROOM.yml` is what every room
inherits. The card copies down their most important slots and methods so the card level of
the pyramid represents them. A model reading the room card learns that every room answersFrom SimHacker/moollm, MIT.
More from SimHacker/moollm
- 0.667score
change-name
SimHacker
Change a name, email address, phone number, handle, or any identifying string across the artifacts where it lives — starting with surgical…
SkillAFreshness: A★ 60Claude Code +9 - 0.664score
emacs
SimHacker
GNU Emacs as a stateful Lisp machine for agents — daemon, moo-* protocol, emacs.py router, emacs:// URLs, spoken grammar, play-learn-lift.
SkillAFreshness: A★ 60Claude Code +9 - 0.662score
design-sense
SimHacker
Ambient design skill socket — the working designer's head.
SkillAFreshness: A★ 60Claude Code +9 - 0.662score
copy-that
SimHacker
Transmission hygiene for content leaving the chat.
SkillAFreshness: A★ 60Claude Code +9 - 0.661score
datasette
SimHacker
Datasette — serve SQLite over HTTP with metadata YAML, JSON API, plugins; MOOLLM path from cursor-mirror export.
SkillAFreshness: A★ 60Claude Code +9 - 0.659score
action-queue
SimHacker
Sims-inspired action scheduling — queue actions, execute in order.
SkillAFreshness: A★ 60Claude Code +9 - 0.659score
artifactory
SimHacker
The Engine of Creation — a general-purpose constructor that reads, writes, edits, destroys, and persists artifacts across the filesystem and git.
SkillAFreshness: A★ 60Claude Code +9 - 0.659score
container
SimHacker
A directory that is a scope, not a place: its defaults: reach every room, character and object inside it, like OpenLaszlo's <node> or the CSS cascade.
SkillAFreshness: A★ 60Claude Code +9 - 0.656score
context
SimHacker
Runtime context passed to compiled closures — the world as seen from inside
SkillAFreshness: A★ 60Claude Code +9 - 0.656score
character
SimHacker
Core patterns for all characters — home, location, relationships, inventory
SkillAFreshness: A★ 60Claude Code +9 - 0.656score
budtender
SimHacker
Cannabis-specialized bartender — strains, terpenes, edibles, rolling
SkillAFreshness: A★ 60Claude Code +9 - 0.656score
bartender
SimHacker
Generic bartending capabilities — pour drinks, manage tabs, know regulars
SkillAFreshness: A★ 60Claude Code +9
Signals
- Stars
- 60
- Forks
- 5
- Open issues
- 1
- Last commit (this folder)
- Oct 20, 2026 (11 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/SimHacker/moollm
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from SimHacker
- 0.667score
change-name
SimHacker
Change a name, email address, phone number, handle, or any identifying string across the artifacts where it lives — starting with surgical…
SkillAFreshness: A★ 60Claude Code +9 - 0.664score
emacs
SimHacker
GNU Emacs as a stateful Lisp machine for agents — daemon, moo-* protocol, emacs.py router, emacs:// URLs, spoken grammar, play-learn-lift.
SkillAFreshness: A★ 60Claude Code +9 - 0.662score
design-sense
SimHacker
Ambient design skill socket — the working designer's head.
SkillAFreshness: A★ 60Claude Code +9 - 0.662score
copy-that
SimHacker
Transmission hygiene for content leaving the chat.
SkillAFreshness: A★ 60Claude Code +9 - 0.661score
datasette
SimHacker
Datasette — serve SQLite over HTTP with metadata YAML, JSON API, plugins; MOOLLM path from cursor-mirror export.
SkillAFreshness: A★ 60Claude Code +9 - 0.659score
action-queue
SimHacker
Sims-inspired action scheduling — queue actions, execute in order.
SkillAFreshness: A★ 60Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get card running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
card skill. Agent Mart. https://agentmart.dev/skills/simhacker-card (last updated 2026-10-24)