Skip to content
Career
Skill

/lockedin

Captures the user's work moments — a shipped feature, a meeting outcome, a learning, a decision — from inside their Claude Code session into structured local markdown. Renders English resumes, Korean cover letters, interview answers, and project ideas from the same source on

BOOST
From plugin
lockedin
1277 skills1 command
Install
$ npx -y skills add daypunk/LockedIn --skill lockedin --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/lockedin

Context preview

The summary Claude sees to decide when to auto-load this skill.

Captures the user's work moments — a shipped feature, a meeting outcome, a learning, a decision — from inside their Claude Code session into structured local markdown. Renders English resumes, Korean cover letters, interview answers, and project ideas from the same source on

SKILL.md

lockedin.SKILL.md
name: lockedin
description: |
  Captures the user's work moments — a shipped feature, a meeting
  outcome, a learning, a decision — from inside their Claude Code
  session into structured local markdown. Renders English resumes,
  Korean cover letters, interview answers, and project ideas from the
  same source on request. Also scores any resume against a calibrated
  rubric without prior setup.

  Activate when the user mentions lockedin, asks to save / log /
  track something from their current work as experience, asks to
  render an English resume / Korean cover letter / interview answer /
  project idea, drops a resume PDF or DOCX, or asks about their own
  past work.

lockedin

Build and grow a personal markdown ontology in `~/Documents/LockedIn/`, then render artifacts from it. Single-purpose: one namespace, one demo.

Use this skill when

  • The user says "lockedin" or "career graph" or "experience graph".
  • The user asks to render an artifact from their own experience: a

resume, a cover letter, an interview answer, a project idea.

  • The user drops a resume `.pdf` / `.docx` or career notes and asks to

absorb them into a structured graph.

  • The user asks to **audit / score / review** a resume against the

calibrated rubric — this works with or without an existing vault (drive-by mode requires no install or signup, just a file path).

  • The user asks a query about their own experience.

Do NOT use this skill when

  • The user is doing coding, debugging, or technical work and hasn't

signaled they want to save it as experience.

  • The user asks about somebody else's experience or a public dataset.
  • The user wants a one-shot AI answer without keeping notes — point

them at Claude Projects on claude.ai instead.

Execution model

Reasoning runs **inside Claude Code** on the user's subscription; the `lockedin` Python CLI is a deterministic helper for non-LLM work.

| Surface | Runs there | When | |---|---|---| | Skill (host AI) | Q&A interview, ingest ambiguity resolution, render writer + reviewer turns, NL query interpretation | Every user-in-the-loop flow | | CLI utility | install, doctor, validate, migrate, template, init --fixture, ingest --dry-run, experience, PDF/DOCX text extraction, hud | Deterministic; called by skill via Bash, or by user directly |

If a skill-only command (`render jaso/resume`, interactive `init`, smart `ingest`, `query`) is typed in a plain terminal, the CLI prints a redirect message — that's expected.

First activation — safety net for skipped setup

Recommended onboarding is the explicit `/lockedin:setup` wizard. This section is the safety net for users who skipped it and started using the skill directly.

1. Read `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/lockedin/config.json`. If the file exists and has a `setup_completed` timestamp, do nothing — the user already ran the wizard. 2. If the config is missing or has no `setup_completed`, offer the wizard ONCE per session: *"Looks like setup hasn't run. Want me to walk through it now? Wires the bottom HUD and a couple of defaults. `/lockedin:setup` runs the full wizard; I can also do just the HUD step inline."* 3. If the user accepts the inline shortcut, run the HUD step from `/lockedin:setup` (Step 1) only. Otherwise, run the full wizard, or continue with the user's original request and remember not to ask again this session.

The skill is fully functional without setup — only the bottom HUD line will not appear until the user wires it.

Core flow

The fastest first try is **drive-by audit**: zero vault, zero install beyond the plugin itself. Past that, vault-backed flows give every artifact LockedIn produces.

0. **Audit (drive-by, no vault)** — `/lockedin audit <path>` or "audit this resume". Extracts text via the deterministic ingest pipeline, scores against `lockedin-render-resume-en` or `lockedin-render-jaso` rubric depending on detected language, returns a 5-dimension score and a banned-phrase / weak-verb hit list. No mutation. Most natural first artifact for a new user. Three modes:

  • `--mode score` (default): rubric pass only.
  • `--mode refine`: propose diff-based refinements; user approves.
  • `--mode refine-score`: refine, then score the refined output to

quantify the lift. Capture intents ("save this", "log this", "track this") route through `lockedin-capture`, which runs writer/reviewer with dedup detection

  • reconciliation.

1. **Init** — `/lockedin init` (or natural language) runs a Q&A interview that seeds the vault. 49 questions across 9 sections; pause-and-resume is supported. 2. **Ingest** — `/lockedin ingest <path>` reads `.pdf` / `.docx` / `.md` / `.txt`, emits a typed diff, asks the user about ambiguities one at a time, then merges. After merge, offers the audit 3-mode choice (Score / Refine / Refine→Score). 3. **Render** — `/lockedin render <kind>` produces the artifact (`jaso`, `resume`, `interview`, `ideas`). Writer turn drafts; reviewer turn re-loads `RUBRIC.md` fresh and scores. If any rubric dimension < 4, revise once with the notes. 4. **Iterate** — every conversation grows the graph. Renders and audits are queries against it.

See `AGENTS.md` for the four sub-roles (Interviewer / Ingester / Renderer / GraphCurator). See `TOOLS.md` for the canonical CLI calls each role issues, with skill-only-path fallbacks.

Write-before-confirm

Before writing to the user's experience, briefly state what's going in: *"Saving 3 entries — project X, achievement Y, skill Z. OK?"*. This applies even if write permission is cached for the experience path from an earlier turn.

Deterministic bookkeeping (`refresh_master_view`, state-file atomic writes) does not need confirmation — it adds no user-visible content.

Interview principles — gentle and short

All interview questions are general, gentle, short, and intuitive. The experience layer accepts entries with thin information; never force

Read more
Ships withlockedin

LockedIn lives inside your Claude Code session. While you're coding or writing docs, save the work that matters as structured experience.

Get the whole plugin

Other skills on lockedin.

lockedin-audit
Skill

lockedin-audit

Scores any resume or cover letter against LockedIn's calibrated rubric. No vault required. Three modes: score, refine, refine…