create-profile
Build a new expert thinking profile - research a person or archetype, synthesize their technical philosophy, and generate self-contained action files. Use when user says 'create a profile', 'add a profile', 'build a profile for X'.
What this skill does
<references>
<reference name="profile-builder-guide" path="references/profile-builder-guide.md" />
<reference name="builder-agents" path="$CLAUDE_PLUGIN_ROOT/agents/builders/" />
<reference name="shared-context-templates" path="$HOME/.things/shared/contexts/" />
</references>
<purpose>
Build a new expert thinking profile by researching a person or archetype and synthesizing their technical philosophy into structured profile and action files.
</purpose>
<steps>
<step id="load-config" number="1">
<description>Load Configuration</description>
<load-config>
<action>Resolve the user's home directory.</action>
<command language="bash" output="home" tool="Bash">echo $HOME</command>
<constraint>Never pass `~` to the Read tool.</constraint>
<read path="<home>/.things/config.json" output="config" />
<read path="<home>/.things/think-like/profiles/master-index.json" output="master-index" />
<if condition="either-missing">Tell the user to run `/setup-tl`.</if>
</load-config>
</step>
<step id="parse-arguments" number="2">
<description>Parse Arguments</description>
<action>Parse `$ARGUMENTS` for subject (a person name or archetype) and optional reference URLs.</action>
<if condition="no-arguments-provided">
<ask-user-question>
<question>Who should this profile model? This can be a real person (e.g., Kent Beck) or an archetype (e.g., performance-obsessed SRE).</question>
</ask-user-question>
</if>
</step>
<step id="check-duplicates" number="3">
<description>Check for Duplicates</description>
<action>Generate an ID from the subject name: lowercase, hyphens for spaces, alphanumeric only (e.g., "Kent Beck" -> `kent-beck`).</action>
<action>Check if `<home>/.things/shared/people/<id>/` already exists.</action>
<if condition="profile-already-exists">
<ask-user-question>
<question>A profile for this person already exists. What would you like to do?</question>
<option>Update existing profile with new research</option>
<option>Create anyway with a different ID</option>
<option>Cancel</option>
</ask-user-question>
</if>
</step>
<step id="gather-references" number="4">
<description>Gather References</description>
<if condition="urls-or-github-info-in-arguments">
<action>Note them for the research phase.</action>
</if>
<if condition="no-references-provided">
<ask-user-question>
<question>How should I research this person's technical thinking?</question>
<option>Mine their GitHub PR comments -- I'll provide username and repos</option>
<option>I have reference links (blogs, talks, repos)</option>
<option>Just use web search</option>
<option>I'll describe their philosophy myself</option>
</ask-user-question>
<if condition="user-selects-mine-github-pr-comments">
<action>Ask for their GitHub username and which repos to analyze (comma-separated `owner/repo`). The profile-builder will use `gh api` to fetch their review comments and extract patterns, priorities, and voice. This produces the highest-signal profiles for code review actions.</action>
</if>
<if condition="user-selects-reference-links">
<action>Accept URLs to blogs, conference talks, GitHub repos, articles.</action>
</if>
<if condition="user-selects-describe-philosophy">
<action>Accept freeform text describing the person's philosophy, style, and stances.</action>
</if>
</if>
</step>
<step id="determine-actions" number="5">
<description>Determine Actions</description>
<ask-user-question>
<question>Which actions should this profile cover?</question>
<option>Code review -- line-by-line code evaluation</option>
<option>PR review -- holistic pull request assessment (approach, scope, risk)</option>
<option>Architecture -- system design and structure evaluation</option>
<option>Security audit -- security-focused code and design review</option>
<option>Code smell -- pattern and anti-pattern detection</option>
<option>Debug -- hypothesis-driven debugging and root cause analysis</option>
</ask-user-question>
</step>
<step id="set-expectations" number="6">
<description>Set Expectations</description>
<action>Before launching the build, let the user know this may take a while.</action>
<output>
Heads up — building a profile for the first time can take up to 10 minutes depending on the number of actions and source material. I'll be researching, synthesizing, and generating self-contained action files for each action you selected. Sit tight.
</output>
</step>
<step id="research-and-build" number="7">
<description>Research and Build</description>
<action>Launch the profile-builder agent (Task tool, subagent_type: general-purpose) with the following prompt.</action>
<template name="profile-builder-prompt">
You are the profile-builder agent for think-like. Your job is to:
1. Research the person/archetype
2. Create person profile at `<home>/.things/shared/people/<id>/`
3. For EACH requested action, read the appropriate shared context template from `<home>/.things/shared/contexts/<action-type>.md` and invoke the appropriate builder agent to produce self-contained action files at `<home>/.things/think-like/profiles/<id>/<action>.md`
Subject: <subject name>
ID: <generated id>
GitHub username: <username or "none">
GitHub repos to mine: <owner/repo list or "none">
Reference URLs: <urls or "none">
User-provided context: <context or "none">
Requested actions: <list of actions>
<output-files>
- Person profile: `<home>/.things/shared/people/<id>/profile.md`
- Person index: `<home>/.things/shared/people/<id>/index.json`
- Action files: `<home>/.things/think-like/profiles/<id>/<action>.md` (one per requested action)
- Profile index: `<home>/.things/think-like/profiles/<id>/index.json`
</output-files>
Builder agent references: `<plugin_root>/agents/builders/` -- read the appropriate builder for each action type
Shared context templates: `<home>/.things/shared/contexts/` -- read template for each action
File format guide: `<plugin_root>/skills/create-profile/references/profile-builder-guide.md`
Use WebSearch and WebFetch to research. Write all output files when complete.
</template>
<constraint>Where `<plugin_root>` is resolved via `${CLAUDE_PLUGIN_ROOT}` or the plugin's installed path.</constraint>
</step>
<step id="update-indexes" number="8">
<description>Update Indexes</description>
<action>After the agent completes, update both master indexes.</action>
<substep name="update-people-index">
<description>Update shared/people master index.</description>
<read path="<home>/.things/shared/people/master-index.json" output="people-index" />
<action>Add entry:</action>
<schema name="people-entry">
```json
{
"id": "<id>",
"display_name": "<name>",
"type": "person",
"created": "<current_date>",
"referenced_by": ["think-like"]
}
```
</schema>
<action>Increment `total_people`, update `last_updated`.</action>
<write path="<home>/.things/shared/people/master-index.json" content="updated-people-index" />
</substep>
<substep name="update-profiles-index">
<description>Update think-like profiles master index.</description>
<read path="<home>/.things/think-like/profiles/master-index.json" output="profiles-index" />
<action>Add entry:</action>
<schema name="profile-entry">
```json
{
"id": "<id>",
"display_name": "<name>",
"person_ref": "shared/people/<id>",
"actions": ["<action1>", "<action2>"],
"tags": ["<from profile index.json>"],
"created": "<currenRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.