mcpbeat

Pre Session Portrait

glebis/pre-session-portrait

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.

9k tokens
context cost
the whole folder, loaded on every use
5
files
instructions only
0
copies elsewhere
how many repositories repackaged it
337
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/glebis/claude-skills --skill pre-session-portrait

What comes with it

28 461 bytes besides the instruction
assets/cockpit-template.html
assets/codex-bootstrap.txt
assets/intake-form.md
assets/interview-prompt.md

The instruction itself

8 sections, as written by the author

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.

The seven lenses

| # | 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 |

Output schema

portrait:
  where: ""
  how: ""
  what: ""
  problem: ""
  ideal: ""
  tension: ""
  jtbd:
    push: ""
    pull: ""
    habit: ""
    anxiety: ""
    trigger: ""

How it visualizes

  • 7-spoke radial / hexad map — one label per lens, the capture line as the value.
  • JTBD 2×2 — Push+Pull (energy toward change) vs Habit+Anxiety (energy against). The gap = leverage.
  • Iterable — re-run any lens next session; watch the capture line drift over time.

Workflow

  • Gather context. Client name, consultant name, session date, and (if known) the topic. Pull prior history from vault/email/Fathom if available so the consultant-only prep notes are grounded.
  • Fill the template. Copy assets/interview-prompt.md and substitute {{CONSULTANT}} (and topic if narrowing lens 4). Leave the seven lenses intact.
  • Pick a delivery (ask the user):
  • Raw text — paste the substituted prompt into a message; client runs it in any clean Claude/ChatGPT.
  • Secret gistgh 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.
  • Codex one-liner — see assets/codex-bootstrap.txt; fetches the raw gist URL and runs the interview interactively.
  • Optional preview. Before sending, generate a synthetic filled-in version (answers simulated from known context) so the consultant judges the deliverable's shape. Mark it clearly as synthetic.
  • After the session. Fold the returned portrait: YAML into the client's People/Session note; diff against any prior portrait to show movement.

Delivery notes

  • Secret gist ≠ auth-private: anyone with the link can read it. Fine for a benign intake; don't put client PII in the gist itself.
  • Codex: run interactive codex (not codex exec), and include the "do not write code / touch files — this is a conversation" guard so it stays in interview mode.
  • Framing line to prepend when sending: *"Paste this into a fresh Claude or ChatGPT chat — it'll ask you 7 quick questions and give you a block to send back to me before our call."*

Call cockpit (interactive HTML)

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:

  • Autosaved to 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.
  • Filled instances: copy the template and inject a 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

  • 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).

How to use it

Copy the folder

Take glebis/pre-session-portrait from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

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.