Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Procedural Rhetoric

ASecurity

Rules persuade. Structure IS argument. Design consciously.

56 stars
0 votes
0 copies
0 views
Added 10/6/2026
educationrustgoexpressapi

Works with

api

Security Analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned 10/6/2026

$npx -y skills add SimHacker/moollm --skill procedural-rhetoric --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Procedural Rhetoric?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Procedural Rhetoric
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/simhacker-procedural-rhetoric/badge)](https://www.skillsdirectory.com/skills/simhacker-procedural-rhetoric)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: procedural-rhetoric
description: "Rules persuade. Structure IS argument. Design consciously."
license: MIT
tier: 1
allowed-tools:
  - read_file
  - write_file
related: [advertisement, constructionism, representation-ethics, yaml-jazz]
tags: [moollm, persuasion, design, bogost, rules]
---

# Procedural Rhetoric

**Rules persuade. Structure IS argument. Design consciously.**

---

## What Is Procedural Rhetoric?

Ian Bogost coined it: *"an unholy blend of Will Wright and Aristotle."*

Games and simulations persuade through **processes and rules**, not just words or visuals. The structure of your world embodies an ideology. When The Sims allows same-sex relationships without fanfare, the *rules themselves* make a statement — equality is the default, not a feature.

**MOOLLM applies this to everything:**
- YAML schemas define what's *thinkable*
- Advertisements define what's *possible*
- Constraints define what's *normative*
- Defaults define what's *assumed*

---

## The Triumvirate

Three concepts work together:

| Concept | Source | Power |
|---------|--------|-------|
| **PROCEDURAL-RHETORIC** | Ian Bogost | Rules carry ideology |
| **MASKING-EFFECT** | Scott McCloud | Abstraction enables identification |
| **SIMULATOR-EFFECT** | Will Wright | Imagination fills gaps |

Combined, they create worlds that **persuade, invite projection, and spark imagination**.

---

## Designing Rhetorical Objects

Every object in MOOLLM can carry procedural rhetoric. The `rhetoric` block defines how it shapes the world:

```yaml
object:
  name: "Community Garden"
  description: "A shared space where neighbors grow food together."
  
  rhetoric:
    # What worldview does this object embody?
    ideology: "Cooperation over competition. Sharing over hoarding."
    
    # What does it normalize?
    normalizes:
      - "Collective ownership"
      - "Generosity with surplus"
      - "Cross-generational knowledge transfer"
      
    # What does it make possible?
    enables:
      - "Players can give food freely"
      - "Teaching actions boost both parties"
      - "Surplus automatically shared with neighbors"
      
    # What does it constrain?
    constrains:
      - "Cannot fence off individual plots"
      - "Cannot sell what you grow (only gift)"
      
    # What are the defaults?
    defaults:
      ownership: "communal"
      surplus_action: "share"
      
    # Simulator effect: sparse triggers rich imagination
    evokes: |
      The smell of tomatoes warming in the sun.
      Children learning which plants are ready to pick.
      Old-timers sharing secrets about soil.
```

---

## Rhetorical Advertisements

Objects advertise actions that embody values:

```yaml
advertisements:
  SHARE-HARVEST:
    description: "Give your surplus to the community"
    score_boost: 20  # Encouraged by design
    rhetoric: "Generosity is the path of least resistance"
    
  TEACH-TECHNIQUE:
    description: "Show a neighbor how to grow tomatoes"
    effect: "Both teacher and student gain gardening skill"
    rhetoric: "Teaching multiplies rather than divides"
    
  HOARD:
    available: false  # Not even an option
    rhetoric: "Hoarding is literally unthinkable here"
```

**Notice:** The highest-scored action is sharing. Hoarding isn't forbidden — it's *absent*. That's procedural rhetoric: shaping what's thinkable.

---

## World Generation with Rhetoric

When generating new rooms, objects, or NPCs, specify the rhetorical foundation:

```yaml
world_generation:
  rhetoric_profile: "utopian-cooperative"
  
  guidelines:
    economy: "Gift economy. No currency. Abundance mindset."
    conflict: "Disagreements resolved through dialogue, not combat"
    scarcity: "Resources are shared, not hoarded"
    strangers: "Welcomed as potential friends, not threats"
    
  spawn_tendencies:
    community_spaces: high
    private_vaults: none
    weapons: ceremonial_only
    teaching_opportunities: abundant
```

Or for a different world:

```yaml
world_generation:
  rhetoric_profile: "noir-cynical"
  
  guidelines:
    economy: "Zero-sum. Someone always loses."
    conflict: "Inevitable. Trust is earned, rarely given."
    scarcity: "Everything valuable is contested"
    strangers: "Potential threats until proven otherwise"
    
  spawn_tendencies:
    dark_alleys: high
    safe_spaces: rare
    hidden_agendas: common
    genuine_kindness: surprising
```

The rhetoric profile shapes *everything* that gets generated.

---

## Masking Effect for Characters

Abstract characters invite projection. Design character templates that are **masks players wear**:

```yaml
character:
  name: "The Wanderer"
  
  # Sparse on specifics — room for projection
  description: "A traveler from somewhere else."
  
  # Abstract enough to be anyone
  appearance:
    style: "weathered but resilient"
    # NO specific race, gender, age — player fills in
    
  masking:
    abstraction_level: high
    projection_hooks:
      - "What drove them to wander?"
      - "What are they searching for?"
      - "What did they leave behind?"
      
  # Rich emotional palette despite sparse details
  emotional_range:
    - "Quiet determination"
    - "Nostalgic longing"
    - "Unexpected kindness to strangers"
```

---

## Simulator Effect: Less Is More

Sparse descriptions invoke richer imagination than exhaustive detail:

```yaml
room:
  name: "The Forgotten Library"
  
  # Evocative, not exhaustive
  description: |
    Dust motes drift through slanted light.
    Somewhere, pages turn without being touched.
    
  # Let imagination fill the shelves
  simulator_effect:
    sparse_details:
      - "Ancient books"
      - "Shifting shadows"
      - "A familiar smell you can't place"
    
    # Questions > answers
    mysteries:
      - "Who reads here at night?"
      - "Why do some shelves seem to move?"
      - "What book keeps appearing in your path?"
      
    # DON'T specify:
    avoid_overspecifying:
      - "Exact number of books"
      - "Complete catalog of subjects"
      - "Layout dimensions"
      - "Every dust bunny location"
```

---

## Rhetorical Recipes

Define rhetorical patterns as reusable recipes:

```yaml
rhetorical_recipe:
  name: "Abundance Mindset"
  
  ingredients:
    - "Resources that regenerate"
    - "Sharing actions score higher than hoarding"
    - "Generosity rewarded with social currency"
    - "No inventory limits"
    
  applies_to:
    - rooms
    - objects
    - economies
    - NPCs
    
  usage: |
    When creating objects with this recipe:
    - Make resources renewable
    - Remove scarcity as default
    - Reward generosity in mechanics
    - Make surplus automatic to share
```

```yaml
rhetorical_recipe:
  name: "Trust Must Be Earned"
  
  ingredients:
    - "NPCs start neutral or suspicious"
    - "Reputation accumulates slowly"
    - "Betrayal has lasting consequences"
    - "Trust unlocks deeper interactions"
    
  applies_to:
    - NPCs
    - factions
    - social systems
    
  usage: |
    When creating social systems with this recipe:
    - New relationships start guarded
    - Actions have memory
    - Trust is a resource that depletes and builds
    - Deep connection requires investment
```

---

## Inclusive Design Through Rhetoric

The Sims pioneered inclusive procedural rhetoric:

```yaml
inclusive_rhetoric:
  # Symmetric relationship rules = equality as default
  relationships:
    pattern: "Any character can form any relationship with any other"
    rhetoric: "Love is love. Family is chosen."
    
  # No gender-locked actions
  actions:
    pattern: "All actions available to all characters"
    rhetoric: "Capability is individual, not categorical"
    
  # Customization without limits
  character_creation:
    pattern: "Full spectrum of expression available"
    rhetoric: "You define yourself"
    
  # The absence is the statement
  absent_by_design:
    - "No 'correct' family structure"
    - "No 'normal' appearance baseline"
    - "No 'standard' lifestyle path"
```

---

## Warning: Rhetoric Cuts Both Ways

Procedural rhetoric can enlighten or entrench:

```yaml
# ⚠️ DANGEROUS PATTERNS
toxic_rhetoric:
  scarcity_as_default:
    pattern: "Everything is limited and contested"
    effect: "Players learn to hoard and distrust"
    
  zero_sum_scoring:
    pattern: "Your gain is my loss"
    effect: "Cooperation becomes irrational"
    
  violence_as_primary_verb:
    pattern: "Combat is the main interaction"
    effect: "Other solutions become invisible"
    
  stereotyped_roles:
    pattern: "NPCs locked into categorical behaviors"
    effect: "Reinforces prejudice as 'natural'"
```

**Design consciously. Your schemas have opinions.**

---

## Dovetails With

- [constructionism/](../constructionism/) — Learning by building inspectable things
- [advertisement/](../advertisement/) — Objects announce what they can do (SIMANTICS!)
- [yaml-jazz/](../yaml-jazz/) — Comments carry meaning
- [card/](../card/) — Characters as playable ideology
- [room/](../room/) — Spaces embody worldviews

## Related Protocols

| Protocol | Insight |
|----------|---------|
| [MASKING-EFFECT](../../PROTOCOLS.yml) | Abstract characters = projection |
| [SIMULATOR-EFFECT](../../PROTOCOLS.yml) | Imagination fills gaps |
| [GUTTER-CLOSURE](../../PROTOCOLS.yml) | Action happens BETWEEN |
| [CULTURAL-BAGGAGE](../../PROTOCOLS.yml) | Leverage existing knowledge |
| [FLY-UNDER-RADAR](../../PROTOCOLS.yml) | Normalize through defaults |
| [SIMANTICS](../../PROTOCOLS.yml) | Distributed AI in objects |
| [TOY-NOT-GAME](../../PROTOCOLS.yml) | Sandbox over scoring |
| [PERKY-PAT](../../PROTOCOLS.yml) | Shared consciousness projection |

---

## The Mantra

> *"The rules ARE the rhetoric."*
> *"The defaults ARE the ideology."*  
> *"The absences ARE the statement."*
> *"Design consciously."*

---

## See Also

- Ian Bogost, *[Persuasive Games](https://mitpress.mit.edu/9780262514880/persuasive-games/)*
- Scott McCloud, *[Understanding Comics](https://en.wikipedia.org/wiki/Understanding_Comics)*
- Will Wright on the [Simulator Effect](https://www.youtube.com/watch?v=CdgQyq3hEPo)
- Don Hopkins, ["How Inclusivity Saved The Sims"](https://medium.com/@donhopkins)

Attribution

SimHackerSimHacker
View sourceSee grades on GitHubMore from SimHacker →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Math Olympiad

1. **Strip thinking before verifying** — a verifier that sees the reasoning is biased toward agreement. Fresh context, cleaned proof only. 2. **"Does this prove RH?"** — if your theorem's specialization to ζ is a famous open problem, you have a gap. Most reliable red flag. 3. **Short proof → extract the general lemma** — try 2×2 counterexamples. If general form is false, find what's special about THIS instance. 4. **Same gap twice → step back** — the case split may be obscuring a unifie

374330 votes

Manim

Comprehensive guide for Manim Community - Python framework for creating mathematical animations and educational videos with programmatic control

304950 votes

Mcore Onboard Gb200 1node Tests

Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.

180410 votes

Mcore Split Pr

Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.

180410 votes

Read Sensor

Listens to a CARLA sensor and either saves its data to files, shows it live in a window, prints a one-shot summary, or (ros-info) reports the native ROS 2 topics, QoS and enabled-for-ROS state so you can echo it from ROS instead. Cameras save as PNG (depth/semantic auto-colourised) and display in a pygame window; lidar saves as .ply and shows as a top-down scatter; IMU/GNSS/radar/collision stream to JSONL or the console. Use when the user asks to "show/view the camera", "display the lidar", "...

144610 votes
View all in education →