Skip to content
Back to skills

Prm

ASecurity

Personal relationship management audit grounded in local relationship notes.

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 9, 2026
ai-agentsgobashgit

Works with

  • cli

Security analysis

A100/100

Scanned October 9, 2026

npx -y skills add mhxie/Atelier --skill prm --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Prm?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Prm
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mhxie-prm-atelier/badge)](https://www.skillsdirectory.com/skills/mhxie-prm-atelier)

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

Download with Pro
SKILL.md
---
name: prm
description: Personal relationship management audit grounded in local relationship notes.
---
# PRM: Personal Relationship Management

Audit the health and robustness of the user's social support system. Grounded in Dunbar's layer model, House's four-dimension support framework, and the cached Dunbar energy-allocation paper under `<paths.cache>/` when present.

## Prerequisites

1. Check if `profile/identity.md` exists. If not, tell the user: "No profile found. Run `/introspect` first to build your self-model." and stop.
2. Read `profile/identity.md`. Check the `Last built:` date. If older than 7 days, warn: "Your profile is stale (built on [date]). Consider running `/introspect` to refresh. Continuing with current profile."
3. Verify `<paths.people>/` exists and contains DL-tagged files. Run `Grep(pattern: "DL[0-5]", path: "<paths.people>/")` to count coverage. If fewer than 10 DL-tagged files, warn: "Low DL coverage (N files tagged). Results will be incomplete. Consider running `/prm enrich` after the audit."
4. Filter out `#author` files (public figures, book authors) from the audit scope. These are reference entries, not personal contacts.

## Data Sources

- **People files:** `<paths.people>/*.md` (each file has Bio, Notes, and Relationship sections with Dunbar layer tags [[DL0]] through [[DL5]])
- **PRM template:** `<paths.archive>/templates/` PRM template file (layer definitions and scoring rules)
- **Daily notes:** `<paths.daily_notes>/` (for interaction frequency detection)
- **Profile:** `profile/identity.md` (Key People section, Active Life Areas: Social & Emotional)
- **Prior reflections:** `<paths.reflections>/` (relationship findings from prior reflection and PRM sessions)

## Reference Frameworks

### Dunbar Layer Model (from PRM template)
| Layer | Tag | Size Target | Description |
|-------|-----|-------------|-------------|
| DL0 | [[DL0]] | ~5 | Support clique: closest emotional support |
| DL1 | [[DL1]] | ~15 | Sympathy group: close friends, regular interaction |
| DL2 | [[DL2]] | ~50 | Affinity circle: good friends, frequent contacts |
| DL3 | [[DL3]] | ~150 | Casual friends: party-invite level |
| DL4 | [[DL4]] | ~500 | Acquaintances: recognizable faces, weak ties |
| DL5 | [[DL5]] | rest | Any listed contact |

### House Support Type Model
| Type | Code | What it provides |
|------|------|-----------------|
| Emotional | E | Being heard, cared for, emotional resonance |
| Instrumental | I | Practical help, resources, material assistance |
| Informational | Inf | Advice, guidance, knowledge |
| Appraisal | A | Feedback, validation, self-assessment help |

### Health Indicators
| Indicator | Healthy | Warning | Critical |
|-----------|---------|---------|----------|
| DL0 size | 3-7 | 1-2 or 8-10 | 0 or >10 |
| DL1 size | 8-20 | 5-7 or 21-30 | <5 or >30 |
| Support type coverage | 4 types from 3+ sources each | 1-2 types concentrated | All types from 1 person |
| Domain diversity | 3+ distinct domains in DL0-1 | 2 domains | 1 domain |
| New connections (past 90 days) | 2+ new DL2+ | 1 new | 0 new |
| Staleness (no mention in 90 days) | <20% of DL0-1 | 20-50% | >50% |
| Energy balance | Mix of give/receive/mutual | Mostly one direction | All giving or all receiving |

## Execution Flow

### Step 1: Census

Scan all people files (excluding `#author`-tagged entries) and build the current map.

Use `Grep` for the structural census:
- `Grep(pattern: "\\[\\[DL0\\]\\]", path: "<paths.people>/", output_mode: "files_with_matches")` for each layer DL0 through DL5
- For each matched file, `Grep(pattern: "#author", path: "<file>")` to exclude public figures

For each person in DL0 and DL1, extract:
- Name (from filename)
- Dunbar layer
- Categorization tags (if present)
- Company/affiliation (domain proxy)

Present as a table. Flag data gaps (missing categorization, missing company).

### Step 2: Support Type Mapping

Dispatch **Researcher** to scan daily notes for DL0-DL1 people mentions. The Researcher uses `Bash: uv run scripts/semantic.py query "<person name> interaction" --after "<90 days ago, YYYY-MM-DD>" --top 10` as primary search, then `Grep` for exact name matches as structural follow-up.

For each DL0-DL1 person, assess which support types they provide. Sources for inference:
1. **Categorization tags** in the people file (#mentor: Informational + Appraisal, #partner: Emotional + Instrumental, #colleague: Informational, etc.)
2. **Daily note mentions** (from Researcher): infer interaction type from context
3. **Profile Key People section**: role descriptions give support type hints
4. **Ask the user** for any ambiguous cases

Build a support type matrix:

| Person | Layer | E | I | Inf | A | Domain |
|--------|-------|---|---|-----|---|--------|
| Name | DL0 | x | x | | | family |

### Step 3: Health Assessment

Score against the Health Indicators table. For each indicator, report:
- Current value
- Status (healthy / warning / critical)
- One-line explanation

Key analyses:
- **Concentration risk:** How many support types point to the same person? Flag anyone carrying 3+ types.
- **Domain diversity:** Are DL0-1 all from the same context (work, school, family)? Cross-reference company/affiliation fields.
- **Layer capacity:** Is any layer over/under Dunbar targets?
- **Staleness:** Cross-reference DL0-1 names against daily notes from the past 90 days. Flag people with zero mentions.
- **Weak tie health:** Is DL2-3 populated enough to provide information bridges and opportunity flow?
- **New connections:** Has anyone been added or promoted in the past 90 days?

### Step 4: Structural Vulnerabilities

Dispatch **Challenger** to probe the health assessment for blind spots: Are the vulnerability scenarios realistic? Are there hidden dependencies the data doesn't surface? What would the user lose if a key person became unavailable?

Identify specific failure scenarios:
- "If [Person X] were unavailable, which support types would you lose entirely?"
- "Your [type] support comes exclusively from [domain]. A single context shift would remove it."
- "DL1 has N people but they're all from [same context]."

### Step 5: Recommendations

Generate 3-5 specific, actionable suggestions ranked by impact:
- **Rebalance:** "Consider promoting [Name] from DL2 to DL1; they provide [type] support that DL0-1 lacks"
- **Diversify:** "Your DL0-1 is heavily [domain]. One cross-domain relationship would reduce concentration risk"
- **Maintain:** "[Name] hasn't appeared in daily notes for 90+ days. A brief check-in prevents decay"
- **Demote:** "DL0 has [N] people (target: 5). Consider whether all truly belong in your support clique"
- **Enrich data:** "N people in DL0-1 have no categorization tags. Filling these enables better analysis next time"

### Step 6: Data Enrichment (Interactive, Optional)

If the user wants to improve the data:
- Walk through DL0-1 people files one by one
- Ask the user to confirm/update: categorization tags, support types, last meaningful interaction
- Edit the people files with updated information
- Offer to add a `Support types:` field to the Relationship section of each file

Proposed enhanced Relationship section format:
```markdown
### Relationship

- Dunbar Layer at [[DLx]]
- Categorization: #tag1, #tag2
- Support types: E / I / Inf / A (which types this person provides)
- Domain: work / family / school / community / online
- Last meaningful interaction: YYYY-MM-DD
- Shared connections: [[Name1]], [[Name2]]
```

## Output

Write a report to `<paths.reflections>/YYYY-MM-DD-prm-audit.md`:

```markdown
# PRM Audit: YYYY-MM-DD

## Layer Distribution
| Layer | Count | Target | Status |
|-------|-------|--------|--------|

## Support Type Matrix (DL0-1)
| Person | Layer | E | I | Inf | A | Domain |
|--------|-------|---|---|-----|---|--------|

## Health Indicators
| Indicator | Value | Status | Note |
|-----------|-------|--------|------|

## Structural Vulnerabilities
[Specific failure scenarios identified]

## Recommendations
[3-5 ranked, actionable suggestions]

## Data Quality
- People files scanned: N
- Dunbar-tagged: N (N%)
- Categorization coverage in DL0-1: N%
- Fields to enrich: [list]
```

## Quality Gate

Before presenting the final report, dispatch **Reviewer** + **Challenger** in parallel:
- **Reviewer** checks: Are health indicator scores grounded in actual data? Are vulnerability scenarios supported by the census? Are recommendation examples cited correctly?
- **Challenger** checks: What structural risks did the analysis miss? Are there hidden dependencies between people? Is the user's self-report of support types accurate, or should it be questioned?

Fix any issues they surface before writing the output file.

## Session Log

After writing the PRM audit file, emit a session log:
1. `Bash: uv run scripts/session_log.py --type prm --duration <minutes>`
2. `Edit` the created file to populate sections from session data (agents dispatched, searches, questions, frameworks, anomalies). The canonical fill-in guide lives in `protocols/session-log.md` § "Section Guidance". Leave empty sections with headers only. If the write fails, warn and continue.

## Wrap Up

The PRM audit file in `<paths.reflections>/` is the durable session output. Daily notes are user-authored; the system reads them but does not modify them. Tell the user the audit has been saved and where to find it.

## Usage Patterns

- `/prm`: Full audit (Steps 1-5)
- `/prm enrich`: Full audit + interactive data enrichment (Steps 1-6)
- `/prm check [Name]`: Single-person deep dive (all mentions in daily notes, support type analysis, relationship trajectory)

## Frequency

Recommended: monthly full audit. Between audits, the Relationships check-in in `skills/daily-reflection/SKILL.md` → Relevant life context supplies longitudinal evidence when it comes up; the monthly `/prm` audit synthesizes structural patterns.

Attribution

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

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.