Build a compressed, visualizable "portrait" of a consulting/coaching client before a session, so the paid hour is spent solving, not scoping. Runs a 7-lens JTBD-inspired interview (where / how / what / problem / ideal / tension / jobs-to-be-done) that takes rich open answers in and compresses them to an 11-field YAML portrait out. Delivers three ways: raw paste-into-a-clean-chat prompt, a secret GitHub gist link, or a Codex CLI one-liner. Use when preparing for an upcoming client call, when the user says "prep an intake", "portrait interview", "questions before our session", "send a client a pre-session questionnaire", or wants a reusable client-intake instrument.
npx skills add https://github.com/glebis/claude-skills --skill pre-session-portrait
Turn "help me with X" into a decision-grade brief before the session starts. The instrument asks the client open, voice-note-friendly questions across seven fixed lenses; the consultant (or an LLM) compresses each answer to one line, yielding a portrait that is iterable, compressible, and easy to visualize.
Design principle: rich in, compressed out. The client talks freely; compression happens after, not in their head.
| # | Lens | Elicits | Compresses to |
|---|------|---------|---------------|
| 0 | ANCHOR | the topic — what the call is for (referent for every later "this") | the topic in one line |
| 1 | WHERE | what's been tried, where it stalls | current state in one line |
| 2 | HOW | cognitive style — fast/slow, visual/verbal, systems/stories | how they think |
| 3 | WHAT | live preoccupations, open loops | current focus |
| 4 | PROBLEM | the problem under the problem | the core job |
| 5 | IDEAL | concrete "solved" state (day/feeling, not tool) | desired outcome |
| 6 | TENSION | what holds them back / worries them | dominant anxiety |
| 7 | JTBD | Push · Pull · Habit · Anxiety · Trigger | switching forces |
portrait:
where: ""
how: ""
what: ""
problem: ""
ideal: ""
tension: ""
jtbd:
push: ""
pull: ""
habit: ""
anxiety: ""
trigger: ""
assets/interview-prompt.md and substitute {{CONSULTANT}} (and topic if narrowing lens 4). Leave the seven lenses intact.gh gist create --desc "Pre-session portrait interview (for <name>)" interview-prompt.md. Share the gist link. Use the unpinned raw URL (/raw/<filename>) so edits propagate.assets/codex-bootstrap.txt; fetches the raw gist URL and runs the interview interactively.portrait: YAML into the client's People/Session note; diff against any prior portrait to show movement.codex (not codex exec), and include the "do not write code / touch files — this is a conversation" guard so it stays in interview mode.Once a portrait is back, generate an interactive prep cockpit the consultant runs live during the session. Start from assets/cockpit-template.html — a self-contained, theme-aware single file (no external deps).
Tabs: Setup (structured stack/facts fields + a paste box for the portrait: block) · Framework (six-station pipeline with per-station AUTO/ASSIST/HUMAN + quality-gate inputs) · Questions (per-section bank, each with an autosaved answer field; add-your-own) · Decisions & Actions (dynamic add/delete rows; actions carry an owner) + a build/demo box and show-don't-tell cues · Agenda (accordion of time-blocks that expand into checkable sub-steps + per-block notes; a live timer auto-opens the current block and fills a progress bar) · Notes.
Key properties:
localStorage, namespaced by the Client-name field — so multiple cockpit files opened from the same folder (same file:// origin) never clobber each other's data.const SEED = {fields, decisions, actions} object just before // init; a one-time guard (prep::<ns>::__seeded) writes the seed into the client's namespace on first load, then the consultant's edits persist. Use this to pre-populate a cockpit from a known portrait + prior-session facts.Also generate a client-facing recap after the session (same visual language): what we covered, current→target pipeline, decisions, what we built live, their next steps (autosaved checkboxes + fields), tech notes. Deliver as a file or publish as an Artifact URL to share a link.
assets/interview-prompt.md — the self-contained interviewer prompt (template).assets/intake-form.md — human-readable version with per-lens capture: fields, if the consultant prefers to interview live.assets/codex-bootstrap.txt — the Codex CLI one-liner template.assets/cockpit-template.html — the interactive prep cockpit (blank, reusable; autosaved + client-namespaced).Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take glebis/pre-session-portrait from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.