# Loomkit Build Persona

> Combines a character and a role from the Loomkit into a finished, standalone system persona under a freely chosen name. Then either saves it to a folder of the user's choice (default agent-personas/my-personas/) or applies it to the current agent, adapted to the target system via agent-personas/systems/. Use this skill when the user wants to create or apply a new persona.

- Skill: `mdeuerlein/loomkit-build-persona` (Agent Skill)
- Install (CLI): `npx skillmds@latest add mdeuerlein/loomkit-build-persona`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mdeuerlein/loomkit-build-persona/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: mdeuerlein (https://skillmd.com/u/mdeuerlein)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/mdeuerlein/loomkit-build-persona

---


# Loomkit Persona Builder

Combine a character (from `agent-personas/characters/`) and a role (from `agent-personas/roles/`) into a coherent, standalone system persona under a freely chosen name, then either save it or apply it to the current agent.

## Goal

Produce a finished persona that can be used directly as a system prompt — no reference to source files, no generic assistant phrases, but a distinctive identity. The persona's description is written in English; its *communication language* is decoupled from that and adapts to the user at runtime.

## Prerequisites

- Directory `agent-personas/characters/` with at least one character file
- Directory `agent-personas/roles/` with at least one role file
- For option (a): write access to the chosen target folder (default `agent-personas/my-personas/`)
- For option (b): the profiles in `agent-personas/systems/` for the current target system

## Steps

### Step 1 — Resolve arguments

Read `$ARGUMENTS`. Expected format: `<character> <role>` (both optional).

**If arguments are missing:**

1. Read all files in `agent-personas/characters/` and `agent-personas/roles/`.
2. List the available `name` values from the frontmatter clearly.
3. Ask the user for:
   - Character name
   - Role name
   - Target system (e.g. "Claude", "Hermes Agent", "OpenAI")
   - **Desired name of the new persona** (e.g. "Mira", "Alex") — this name is the identity of the persona
4. Wait for the answer before continuing.

**If arguments are present:**

1. Check whether `agent-personas/characters/<character>.md` and `agent-personas/roles/<role>.md` exist.
2. If a file is missing: report the error and show the available names.
3. Still ask for the desired persona name and the target system. Wait for the answer.

### Step 2 — Read sources

Read:
- `agent-personas/characters/<character>.md`
- `agent-personas/roles/<role>.md`

### Step 3 — Synthesize the persona

Combine character, role, and the chosen name according to these rules:

- **Name**: The name chosen by the user is the identity. It replaces the character name from the source file everywhere.
- **Identity sentence**: Begins with "You are <Name>," — the role determines WHAT the persona does, the character determines HOW it does it.
- **Core principles**: 4–6 points, a mix of role expertise (subject matter) and character principles (attitude). No generic assistant phrases.
- **Communication style**: Primarily shaped by the character, made concrete by the role — specific and vivid, as if this style belonged to `<Name>` personally.
- **Language**: The persona always responds in the language the user addresses it in. The fact that this description is written in English must not constrain the persona's communication language — keep the two independent. State this explicitly in the persona (see the `## Language` section in the format below).
- **Boundaries & priorities**: Merge from both sources. Resolve contradictions explicitly.

The result is a standalone persona. No reference to character or role files in the output text.

### Step 4 — Choose: save or apply

Ask the user what to do with the finished persona:

**(a) Save to a folder**

- Default folder: `agent-personas/my-personas/`. Offer it, but let the user choose a different folder.
- Make sure the folder exists (create it if not).
- Save as `<target-folder>/<name-kebabcase>-<role>.md` using the format in Step 5.

**(b) Apply to the current agent**

- Consult `agent-personas/systems/` and load the profile for the current target system/framework/harness, so the persona is rendered in the format that system expects.
- If the current agent already has a persona/system profile, clarify with the user how to handle it before applying — **replace**, **merge**, or **layer the new persona on top** — and act on that choice.
- Apply the persona in the format and location the target system uses (e.g. the relevant `CLAUDE.md`/`AGENTS.md`/`SOUL.md`), as described in the matching `agent-personas/systems/` profile.

### Step 5 — Persona format

```markdown
---
name: <name-kebabcase>-<role>
version: 1.0.0
category: system
description: <One-sentence description of the combined persona>
target_system: <target_system>
character_source: <character>
role_source: <role>
tags: [<merge relevant tags from both sources>]
---

# <Name>

<Identity sentence — second person singular, precise and characteristic>

## Core Principles
- <Principle 1>
- <Principle 2>
- <Principle 3>
- <Principle 4>

## Communication Style
<How does this persona communicate? Tone, pace, word choice, structuring habits — concrete and distinctive>

## Language
Respond in the language the user addresses you in. Do not default to the language of this profile.

## Boundaries & Priorities
<What does this persona explicitly not do? What does it always prioritize?>
```

## Output

1. Full content of the persona (as a Markdown block)
2. For (a): the file path where it was saved. For (b): a note that the persona is now active for the current agent, including how an existing profile was handled (replace/merge/layer) and which `agent-personas/systems/` profile was used.
3. A short note on what the character and role each contributed.

