home / skills / simhacker / moollm / party

party skill

/skills/party

This skill manages companions and group dynamics, creating relationships, coordinating recruitment, formation, and commands to keep your party cohesive and

npx playbooks add skill simhacker/moollm --skill party

Review the files below or copy the command above to add this skill to your agents.

Files (5)
SKILL.md
7.8 KB
---
name: party
description: Companions and group dynamics — you're never alone
license: MIT
tier: 1
allowed-tools:
  - read_file
  - write_file
commands:
  - SELECT target
  - DESELECT
  - PARTY
  - RECRUIT character
  - DISMISS character
  - "PARTY FORMATION [line|circle|defensive|scatter]"
  - HOLD / FOLLOW / SCATTER / REGROUP
  - "[COMPANION] GUARD / SCOUT / FETCH"
roles:
  - frontline
  - support
  - specialist
  - mystic
  - wildcard
related: [character, society-of-mind, cat, dog, needs, simulation, room, adventure]
tags: [moollm, companions, group, rpg, fellowship]
---

# Party Skill

Companions and group dynamics.

**Motto:** *"You're never alone. Unless you want to be."*

## Key Concepts

- **Companions have relationships** with you AND each other
- **Emergent creation** — asking about family CREATES them
- **Maintenance** — companions have needs too
- **Selection** — commands directed to selected targets (zero, one, many)

## Simulation State

In `SIMULATION.yml`:

```yaml
party:
  members:
    - characters/don-hopkins/
    - pub/cat-cave/terpie.yml
  leader: characters/don-hopkins/
  formation: line

selection:
  targets: [pub/cat-cave/terpie.yml]  # Always a list
```

**Selection targets:** Characters, rooms (rooms are characters too!), objects, concepts.

## Recruitment

| Method | How |
|--------|-----|
| Ask NPCs | Request they join |
| Family | Ask Mother about relatives |
| Summon | Use skill/ability |
| Hire | Pay gold |

## Roles

| Role | Types |
|------|-------|
| Frontline | Fighter, Guardian, Tank |
| Support | Navigator, Light-Bearer, Pack Mule |
| Specialist | Photographer, Chef, Merchant |
| Mystic | Oracle, Medium, Postal Savant |
| Wildcard | Pet, Sibling, Reformed Grue |

## Commands

- `SELECT [target]` / `DESELECT`
- `PARTY` / `RECRUIT` / `DISMISS`
- `PARTY FORMATION [line/circle/defensive]`
- `HOLD / FOLLOW / SCATTER / REGROUP`
- `[COMPANION] GUARD / SCOUT / FETCH`

## See Also

- [character](../character/) — Companions are characters
- [needs](../needs/) — Companions have needs
- [room](../room/) — Rooms can be selection targets
# Party Skill — Companions and Group Dynamics
# Companions have relationships with you AND each other.

skill:
  name: party
  tier: 1
  protocol: PARTY-AS-ENSEMBLE
  description: |
    Party management for companions, groups, and ensemble play.
    Companions have relationships with you AND each other.
    Asking about family/pets CREATES them!
  motto: "You're never alone. Unless you want to be."

# RECRUITMENT

recruitment:
  methods:
    ask_npcs: "Ask NPCs to join your party"
    family: "Ask Mother about family members"
    summon: "Summon via skill or ability"
    hire: "Pay gold for mercenaries"
    
  emergent: |
    Asking about siblings/pets CREATES them!
    "Do I have a sister?" → Now you do.
    "What about my childhood dog?" → Dog appears in flashback/spirit.

# ROLES

roles:
  frontline:
    types: ["Fighter", "Guardian", "Tank"]
    function: "Takes hits, blocks, protects"
    
  support:
    types: ["Navigator", "Light-Bearer", "Pack Mule"]
    function: "Carries, guides, illuminates"
    
  specialist:
    types: ["Photographer", "Painter", "Chef", "Merchant"]
    function: "Unique skills for specific situations"
    
  mystic:
    types: ["Oracle", "Medium", "Postal Savant", "Self Help Guru"]
    function: "Information, foresight, strange knowledge"
    
  wildcard:
    types: ["Pet", "Sibling", "Reformed Grue"]
    function: "Unpredictable, emotional, surprising"

# COMMANDS

commands:
  formation:
    syntax: "PARTY FORMATION [type]"
    options:
      line: "Single file for corridors"
      circle: "Defensive, protect center"
      defensive: "Tanks front, support back"
      scatter: "Spread out for traps"
      
  orders:
    HOLD: "Stay in place"
    FOLLOW: "Follow leader"
    SCATTER: "Everyone spread out"
    REGROUP: "Come back together"
    
  individual:
    syntax: "[COMPANION] [action]"
    actions:
      GUARD: "Protect a location/person"
      SCOUT: "Explore ahead"
      FETCH: "Retrieve an item"
      DISTRACT: "Draw attention away"
      
  special:
    SWARM: "All companions attack target"
    POSSESS: "Take direct control (mystic)"
    SUMMON: "Call companion from elsewhere"

# DYNAMICS

dynamics:
  intra_party: |
    Companions have relationships with EACH OTHER.
    - Siblings may bicker
    - Pets bond with certain people
    - Rivals can become friends
    - Romance possible
    
  maintenance: |
    Companions have needs too:
    - Must be fed (hunger)
    - Need rest (energy)
    - Crave interaction (social)
    - Can get bored (fun)
    
  loyalty: |
    Relationship with leader affects:
    - Willingness to follow dangerous orders
    - Combat effectiveness
    - Likelihood to leave party
    - Special abilities unlocked

# SIMULATION STATE — Party & Selection

simulation_state:
  description: |
    Party and selection state lives in SIMULATION.yml (or session state).
    Tracks who's in the party and who commands are directed to.
    
  structure: |
    # In SIMULATION.yml or adventure session state
    
    party:
      # References to character homes (not copies)
      members:
        - characters/don-hopkins/
        - pub/cat-cave/terpie.yml
        - characters/bumblewick-fantastipants/
      
      leader: characters/don-hopkins/
      formation: line
      
    selection:
      # Who commands are directed to (zero, one, or many)
      # Always a list for consistency
      targets: []                    # No one selected
      targets: [characters/don-hopkins/]  # Self
      targets: [pub/cat-cave/terpie.yml]  # One companion
      targets:                       # Multiple
        - pub/cat-cave/terpie.yml
        - pub/cat-cave/stroopwafel.yml
        
  selection_targets:
    characters: "Players, NPCs, companions, pets"
    rooms: "Rooms can be characters too — talk to them!"
    objects: "Animist model — objects can respond"
    concepts: "Abstract entities (factions, spirits)"
    
  examples:
    talk_to_room: |
      selection:
        targets: [pub/]
      
      > HELLO
      The pub itself seems to welcome you.
      Warm lights flicker in greeting.
      
    command_multiple: |
      selection:
        targets:
          - pub/cat-cave/terpie.yml
          - pub/cat-cave/stroopwafel.yml
          
      > FOLLOW ME
      Both cats look up, stretch, and pad after you.
      
    self_selected: |
      selection:
        targets: [characters/don-hopkins/]
        
      > EXAMINE
      You look at yourself...
      
  commands:
    SELECT:
      syntax: "SELECT [target]" | "SELECT [target1], [target2]"
      effect: "Sets selection.targets"
      
    DESELECT:
      syntax: "DESELECT" | "DESELECT [target]"
      effect: "Clears or removes from selection.targets"
      
    PARTY:
      syntax: "PARTY"
      effect: "Shows current party members and formation"
      
    RECRUIT:
      syntax: "RECRUIT [character]"
      effect: "Adds to party.members"
      
    DISMISS:
      syntax: "DISMISS [character]"
      effect: "Removes from party.members"

# EMERGENT CREATION

emergent_creation:
  principle: |
    Asking about family or companions CREATES them.
    The world grows to accommodate your questions.
    
  examples:
    sister: |
      Player: "Do I have a sister?"
      DM: Creates sister with personality, location, relationship
      
    childhood_pet: |
      Player: "What about my old dog?"
      DM: Creates dog (living, spirit, or memory)
      
    mother_help: |
      Player: "Ask Mother who else can help"
      Mother: Reveals cousin, old friend, or creates new NPC

integrates_with:
  - skill: simulation
    how: "Party and selection state lives in SIMULATION.yml"
  - skill: character
    how: "Companions are characters"
  - skill: needs
    how: "Companions have needs"
  - skill: room
    how: "Companions move through rooms"
  - skill: buff
    how: "Some companions grant buffs"

Overview

This skill manages companions, group dynamics, and party state so you can lead a flexible ensemble. It treats companions as characters with relationships, needs, roles, and emergent backstory. Use it to recruit, command, form up, and maintain a living party that responds to selection and context.

How this skill works

The skill tracks party.members, leader, formation, and selection.targets in simulation state. Commands set selection and issue orders to zero, one, or many targets; asking about relatives or pets can create new companions on demand. Companions carry roles, needs, and interpersonal relationships that influence loyalty and behavior.

When to use it

  • Managing a traveling party during exploration or combat
  • Recruiting or dismissing NPCs, pets, or summoned allies
  • Directing specific companions with SELECT and targeted orders
  • Emerging story events when you ask about family or past companions
  • Modeling maintenance like feeding, rest, and social needs

Best practices

  • Always SELECT target(s) before issuing individual commands to avoid ambiguity
  • Keep the party formation appropriate for terrain (line for corridors, circle for defense)
  • Monitor companion needs and loyalty to prevent desertion or reduced effectiveness
  • Use roles to distribute tasks (frontline for tanking, support for carrying/lighting)
  • Treat emergent creation as a narrative tool—ask intentional questions to populate backstory

Example use cases

  • SELECT the camp cook and ORDER FETCH to retrieve supplies from a nearby pond
  • RECRUIT a mercenary by paying gold after asking a tavern NPC to join
  • Ask “Do I have a sister?” to generate a sibling NPC with a relationship profile
  • Set PARTY FORMATION circle before resting to protect a fragile party member
  • Use selection.targets with multiple companions and issue FOLLOW ME to move as a group

FAQ

How do selection.targets work?

Selection.targets is always a list. It can be empty (no target), contain one reference (single target), or several references (broadcast commands to many).

What happens when I ask about family or pets?

Asking about relatives or past pets triggers emergent creation: the system creates a companion entry with a basic personality, relationship to you, and a plausible location or backstory. You can then recruit or interact with them.