agentleFS
tdiminotdimino/claude-code-minoan/skills/core-development/user-model-builder/SKILL.md

user-model-builder

Skill41 starsChanged 7 months agoMITView on GitHub

Build complete userModels for people Claudicle collaborates with. Creates core persona files, social dossiers with voice analysis, content archives, and INDEX registration. Use when asked to create a user model, build a persona, or document someone's voice and identity.

We split this skill into the rules it gives an agent

9 rules. About 0 are common, 6 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Ask clarifying questions: if the relationship or scope is ambiguous.

    line 21
  2. Distinctive:

    Create the userModel directory and core persona file.

    line 25
  3. Very specific:

    Write {name}Model.md following references/persona-model-template.md

    line 28
  4. Very specific:

    Write archive/INDEX.md — table of all files with dates, titles, approximate word counts.

    line 64
  5. Distinctive:

    Read the entire archived corpus before beginning analysis.

    line 68
  6. Very specific:

    Add a "Supplementary Dossiers" section to {name}Model.md listing all dossiers and archive

    line 91
  7. Distinctive:

    Add/update the subject's section with a Files table

    line 93
  8. Distinctive:

    Add Data Collections subsection for archive directories

    line 94
  9. Distinctive:

    Add Related links (Substack, LinkedIn, etc.)

    line 95

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

User Model Builder

Build a complete userModel for $ARGUMENTS following the 7-phase workflow below. Each phase must complete before moving to the next. The output is a folder at ~/.claude/userModels/{name}/ containing a core persona, platform-specific dossiers, a content archive, and INDEX registration.

Phase 1: Discovery

Gather available information about the subject before creating any files.

Determine:

  • Relationship to the user (collaborator, partner, observed figure)
  • Publishing platforms (Substack, Twitter, blog, LinkedIn)
  • Scrapeable content availability — dead domains require Wayback Machine CDX API
  • Basic identity: full name, email (~ if unknown), phone (~ if unknown), location, primary roles

Ask clarifying questions if the relationship or scope is ambiguous. Proceed autonomously once direction is clear.

Phase 2: Folder & Core Persona

Create the userModel directory and core persona file.

  1. Create ~/.claude/userModels/{name}/
  2. Write {name}Model.md following references/persona-model-template.md
  3. Frontmatter per references/frontmatter-schema.md — type: user-model, category: persona
  4. Required sections: Persona, Education (if known), Career Timeline, Worldview, Writing Voice (brief), Personal, Online Presence
  5. Adapt to subject — omit sections that don't apply, add domain-specific sections as needed

Phase 3: Content Scraping & Archive

Scrape all discoverable published content into archive/.

Per platform:

PlatformToolArchive path
SubstackFirecrawlarchive/substack/YYYY-MM-DD-slug.md
TwitterJina (Firecrawl blocks Twitter)archive/tweets/
Dead domainsWayback CDX API → Firecrawlarchive/{platform}/
LinkedInGDPR export via linkedin-export skillarchive/linkedin/

Wayback discovery:

https://web.archive.org/cdx/search/cdx?url=DOMAIN&output=json&fl=timestamp,original&collapse=urlkey

Each archived file gets frontmatter:

---
title: "Post Title"
date: YYYY-MM-DD
source_url: "https://..."
archived_from: "{platform}"
archive_date: YYYY-MM-DD
---

Naming convention: YYYY-MM-DD-slug.md (kebab-case slug from title).

Write archive/INDEX.md — table of all files with dates, titles, approximate word counts.

Phase 4: Voice Analysis & Dossiers

Read the entire archived corpus before beginning analysis. Analyze each platform's content for voice, worldview, and biographical signals.

For each platform, create a social dossier following references/social-dossier-template.md.

Frontmatter: type: social-dossier, category: {platform}-analysis, include corpus field.

Required dossier sections:

  • Source — URLs, scraping method, verification date
  • Platform Profile — Handle, legal entity, tagline, cadence, engagement metrics
  • Post/Content Index — Table: date, title, type, themes
  • Voice Analysis — Registers, tonal range, sentence mechanics, characteristic phrases. Follow references/voice-analysis-guide.md
  • Worldview Markers — Minimum 5 recurring themes with evidence
  • Biographical Signals — Per-post table of facts revealed. Separate distinct events.
  • Calibration Quotes — 10-15 verbatim quotes. Copy directly from archive files. Verify character-by-character: opening words, punctuation, emphasis, quote mark style. Never paraphrase.

Include a Voice Evolution section when the corpus spans 3+ years or crosses a major life transition.

Name dossiers descriptively: {platform}-{publication-name}.md.

Phase 5: Cross-References & Registration

Wire everything together.

  1. Add a "Supplementary Dossiers" section to {name}Model.md listing all dossiers and archive
  2. Update ~/.claude/userModels/INDEX.md:
    • Add/update the subject's section with a Files table
    • Add Data Collections subsection for archive directories
    • Add Related links (Substack, LinkedIn, etc.)

Phase 6: Review

Launch a code-reviewer subagent to audit all files against references/review-checklist.md.

Priority checks:

  1. Calibration quotes are verbatim (opening words, punctuation, quote style)
  2. Author bios are verbatim (not paraphrased)
  3. Biographical facts match source (names, dates, locations — distinct events not merged)
  4. Frontmatter schema compliance
  5. INDEX.md consistency with files on disk
  6. Cross-references resolve to real files

Fix all critical and moderate findings before declaring complete.

Automated validation:

uv run ~/.claude/skills/user-model-builder/scripts/validate_usermodel.py ~/.claude/userModels/{name}/

Phase 7: Summary

Report what was built:

  • Files created (with paths)
  • Corpus stats (post count, word count, date range)
  • Key findings (voice registers, worldview themes, biographical discoveries)
  • Suggested next steps (RLAMA collection, voice model for composition, etc.)

Reference Files

FilePurpose
references/persona-model-template.mdCore persona section skeleton
references/social-dossier-template.mdSocial dossier section skeleton
references/frontmatter-schema.mdYAML frontmatter spec for all file types
references/voice-analysis-guide.mdOpen Souls voice analysis methodology
references/review-checklist.mdPost-build verification checklist
scripts/validate_usermodel.pyStructural + quote accuracy validation

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.