# Faction Design

> Faction Design is an Agent Skill for documents published in the majiayu000/claude-skill-registry repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Extract faction entities from narrative text. Use when analyzing organizations, hierarchies, ideologies, territories, resources, leaders, banners, and inter-faction relationships.

- Skill name: `faction-design`
- Category: [Documents](https://www.openparable.com/skill/documents/1)
- Source: https://github.com/majiayu000/claude-skill-registry/blob/HEAD/skills/domains/faction-design/SKILL.md
- Repository: majiayu000/claude-skill-registry (498 GitHub stars when collected)

## SKILL.md

# faction-design

Domain skill for faction and organization extraction.

## Entity Types

| Type | Description |
|------|-------------|
| `faction` | Organization, guild, cult, or group |
| `faction_hierarchy` | Internal power structure |
| `faction_ideology` | Beliefs, goals, worldview |
| `faction_leader` | Leadership position or person |
| `faction_membership` | Member roster or membership info |
| `faction_resource` | Controlled resources and assets |
| `faction_territory` | Controlled or influenced territory |
| `banner` | Faction banner, emblem, or symbol |

## Domain Constraints

- `faction.type`: political, religious, military, criminal, magical, merchant, secret, monster
- `faction.alignment`: good, neutral, evil, chaotic
- `faction_membership.reputation`: integer -1000 to 1000

## Extraction Rules

1. **Named groups**: Guilds, armies, cults, orders — extract with exact name
2. **Implied groups**: Bandits, rebels, authorities — create descriptive name
3. **Hierarchy**: Who leads, how power is organized, ranks
4. **Relationships**: Allies, enemies, neutral parties between factions
5. **Resources**: Wealth, military power, information, magic, territory

## Output Format

Write to `entities/society.json`:

```json
{
  "factions": [
    {
      "id": 1,
      "world_id": 1,
      "name": "Shadow Brotherhood",
      "description": "Secret criminal organization operating in the underworld",
      "type": "criminal",
      "alignment": "evil",
      "leader_character_id": null,
      "member_character_ids": [],
      "allied_faction_ids": [],
      "enemy_faction_ids": [],
      "headquarters_location_id": null,
      "controlled_location_ids": [],
      "reputation_hostile_threshold": -500,
      "reputation_neutral_threshold": 0,
      "reputation_friendly_threshold": 500,
      "reputation_exalted_threshold": 1000,
      "vendor_discount_at_friendly": 10.0,
      "vendor_discount_at_exalted": 25.0,
      "exclusive_items_unlocked_at": 750,
      "faction_icon_path": null,
      "faction_color": null,
      "is_hidden": false,
      "is_joinable": true,
      "created_at": "2026-02-14T10:00:00+00:00",
      "updated_at": "2026-02-14T10:00:00+00:00",
      "version": 1
    }
  ],
  "next_id": 2
}
```

## Key Considerations

- **Overlapping membership**: Characters may belong to multiple factions
- **Hidden factions**: Some operate in secret — extract even unnamed ones
- **Dynamic relationships**: Alliances shift; note current state from text
- **Cross-references**: If needed, track relationships separately in drafts, but final JSON must match `LoreData.from_dict`.

---

Source: https://www.openparable.com/skill/documents/faction-design (OpenParable). Cite the canonical URL above.
