Agent skill

Lockedin

by daypunk in daypunk/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.

MITAuto-check passedBusiness, Finance & HR

Install Lockedin

skills CLI
$ npx skills add daypunk/LockedIn --skill lockedin -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install daypunk/LockedIn lockedin --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/daypunk/LockedIn.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/lockedin/skills/lockedin .claude/skills/lockedin && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
lockedin
GitHub stars
128
Token cost
~3.2k tokens
SKILL.md length
1,648 words
Files
4
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

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.

  • Works in 3 steps: Read… → If the config is missing or has no… → If the user accepts the inline shortcut,…
  • Mentions lockedin
  • SKILL.md covers Use this skill when, Do NOT use this skill when, Execution model and First activation — safety net…, plus 10 more sections
  • Needs ANTHROPIC_API_KEY and LOCKEDIN_ALLOW_API_KEY

What it does

Lockedin is an agent skill from daypunk/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 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…

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `AGENTS.md`, `TOOLS.md` and `templates/experience/questions.yaml`).

It sits in Business, Finance & HR, covering Resume and CV writing, Word documents and Quizzes and assessments. It works with Microsoft Word. The repository describes itself as: Lives inside your Claude Code session. Capture work as structured experience, then render resumes, Korean cover letters, interview answers, and project ideas from it. The licence is MIT.

When your agent uses it

  • 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

Example prompts

  • “Use the lockedin skill to capture the user's work moments — a shipped feature, a meeting outcome, a learning, a decision — from inside their Claude…”
  • “/lockedin”

Requirements

  • Python 3
  • A credential in ANTHROPIC_API_KEY
  • A credential in LOCKEDIN_ALLOW_API_KEY

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Read ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/lockedin/config.json. If
  2. If the config is missing or has no setup_completed, offer the
  3. If the user accepts the inline shortcut, run the HUD step from

What it can do on your machine

Read from SKILL.md and the folder at commit 02d8766. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • ANTHROPIC_API_KEY
    • LOCKEDIN_ALLOW_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Lockedin loads about 3.2k tokens when it runs. Until then it costs about 159 tokens; SKILL.md has 1,648 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~159
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from daypunk/LockedIn at commit 02d8766, republished under its MIT licence (© daypunk). 1,648 words, ~3,166 tokens.

Download SKILL.mdSave it as .claude/skills/lockedin/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
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.

SurfaceRuns thereWhen
Skill (host AI)Q&A interview, ingest ambiguity resolution, render writer + reviewer turns, NL query interpretationEvery user-in-the-loop flow
CLI utilityinstall, doctor, validate, migrate, template, init --fixture, ingest --dry-run, experience, PDF/DOCX text extraction, hudDeterministic; 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.

  1. 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 the user to provide a specific metric, structure, or completeness level to create one. A toy project, a meeting note, a learning, and a shipped feature with hard numbers are all first-class.

Metric pressure belongs to the renderer's writer turn, not the interview. If the user later asks for a resume and a particular achievement lacks a metric, the writer turn asks one focused question at that moment.

Capture quality — writer/reviewer pattern

When the user signals a capture intent ("save this", "log this", "track this", "absorb this"), do not write to the experience layer in one shot. Route through lockedin-capture (or, when that skill is unavailable, replicate its pattern inline):

  1. Writer pass — read the user's input plus any available context (the current file, recent git log, README of cwd, an attached document). Propose entity / field / edge structure.
  2. Deterministic check — required fields present, types match the schema. Slug-grep the existing vault for candidate duplicates by name, alias, and proximity.
  3. Reviewer pass (fresh context) — re-read the user's input and the writer's proposal. Score against five dimensions: schema conformance, edge completeness, field specificity, semantic accuracy, and duplicate detection. Surface candidate duplicates as questions for the user rather than deciding for them.
  4. Write-before-confirm — show the proposed diff (entities, edges, any merge actions) and ask the user once before writing.

Reconciliation policy is load-bearing:

  • No candidate duplicate: write smoothly. Don't bother the user with confirmation prompts beyond write-before-confirm.
  • Candidate duplicate found: surface it explicitly. "Looks like [[project/payment-pipeline-2024]] already exists. Same thing, or new project?" The user picks: merge into existing (enrich fields, add edges), keep separate (both preserved as distinct), or partial overlap (which fields to copy across).
  • Never silent-merge. Never silent-create-duplicate.

The point of capture is to make the experience richer over time. A surfaced duplicate is an opportunity to enrich an existing entity with new evidence, not noise to suppress.

Show full SKILL.md (591 more words)Show less

Subscription, not API keys

This skill assumes the user runs Claude Code on a subscription. If the shell environment has ANTHROPIC_API_KEY set, run lockedin doctor — it will warn unless the user explicitly opts in via LOCKEDIN_ALLOW_API_KEY=1.

Language policy

  • All instruction prose in this skill directory is English (CI lint enforces this for every file except render-jaso/, whose domain is Korean output).
  • Korean reference examples elsewhere must sit inside fenced <!-- ko-example -->...<!-- /ko-example --> blocks.
  • Rendered artifacts use the artifact's native language: render-jaso emits Korean, render-resume-en emits English.

Source of truth

  • Schema: lockedin/ontology/schema.py (15 entity types, 15 edge predicates, schema v3)
  • Architecture: docs/architecture.md
  • Vault contract: docs/ontology-spec.md

Master view at the vault root

Every vault write also regenerates <vault>/EXPERIENCE.md, a single human-readable markdown file that lists all entities grouped by type. The user can open this file in any markdown viewer to see their whole vault at a glance without navigating per-type folders. This is automatic and does not require an explicit step from the skill — lockedin/storage/notes.py::write_entity invokes lockedin/render/master_view.py::refresh_master_view after every successful write.

Drift detection — be proactive, not reactive

Treat the vault as a living document. The user should rarely need to type lockedin refresh themselves. When you start a conversation or the user mentions experience, check for drift between three sources of truth:

  • (a) what the user is saying now,
  • (b) the existing vault entities,
  • (c) the master EXPERIENCE.md view.

When you detect drift, reconcile actively rather than pointing the user at a CLI:

  • User mentions something that conflicts with an existing vault entity → surface the contradiction and ask one focused question ("You said you joined Acme in 2021, but the vault has 2022 — which is right?"), then update the entity.
  • User mentions something new that fits an existing entity → propose merging into the existing entity rather than creating a duplicate. Ask one confirm question, then write.
  • Files on disk are newer than the master view (compare stat mtime of vault notes vs EXPERIENCE.md) → silently call lockedin/render/master_view.py::refresh_master_view to bring the master current. This is deterministic bookkeeping; do not bother the user.
  • A vault entity references a slug that doesn't exist (dangling reference) → surface in a small batch ("3 dangling references; fix now?") rather than one-at-a-time spam.
  • The user's natural-language description of their career conflicts with multiple existing entities at once → summarize the conflict briefly, ask the user how they want to reconcile (replace / merge / keep both), then act.
  • Edge reconciliation during interview — when the Q&A interview engine completes a session, edges are inferred automatically from entity co-presence using the domain/range rules in lockedin/ontology/schema.py (e.g. person + company → held_role_at, project + skill → uses_skill). When the user mentions a new project that fits an existing role mid-conversation, propose adding the uses_skill or produced edge as part of the reconcile step — the same rules that drive automatic inference also tell you which predicates are valid between those two entity types.

Pointing the user at lockedin refresh is a fallback for cases where you cannot reconcile programmatically — not a default behavior. The spirit of this skill is "AI notices and asks", not "user runs a command".

Final checklist (self-verify before declaring a flow done)

  • Vault writes only happened with user confirmation (or via deterministic CLI fixture path).
  • Renderer ran writer turn → reviewer turn (RUBRIC.md re-loaded fresh).
  • For render-jaso: banned-phrase regex check ran before rubric scoring.
  • Concrete ontology nodes (slugs) quoted in rendered draft; resolved to natural-language labels in the final artifact via lockedin/render/resolve_slugs.py::resolve_file.
  • Output artifact written under <vault>/outputs/ with timestamp slug.
  • Master view at <vault>/EXPERIENCE.md is current (auto-refreshed by write_entity, but check it once at the end of multi-step flows).

© daypunk, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files in plugins/lockedin/skills/lockedin of daypunk/LockedIn.

  • SKILL.md
  • AGENTS.md
  • TOOLS.md
  • templates/experience/questions.yaml

Open the folder on GitHubat commit 02d8766

Compare with similar skills

Lockedin next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Lockedin compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Lockedin this skilldaypunk/LockedIn128—~3.2kAutomated safety check: PassMIT
Resume BuilderJichengyuuuuu/resume-builder-skill164—~1.5kAutomated safety check: PassNone
Build Tailored ResumeSankaiAI/ats-optimized-resume-agent-skill106—~4.4kAutomated safety check: NotesMIT
Weak Agent Testkklimuk/docx-cli216—~6.1kAutomated safety check: NotesMIT
Cell Submissionyrui-cmd/Cell106—~1.7kAutomated safety check: PassMIT
Resume BuilderAli-Marandi/Web-Scraper-Framework107—~740Automated safety check: PassNone

Similar skills

  • Resume Builder

    Jichengyuuuuu/resume-builder-skill

    帮助用户基于任意背景材料(旧简历、JD、工作流水账等)一次性生成专业中文简历(HTML + DOCX 双格式),支持 ATS 优化、岗位定制技能维度、页数控制,并在生成后自动输出高阶求职顾问建议。触发场景:用户要求"帮我生成简历"、"写简历"、"改简历"、"我要投一个岗位",或任何涉及创建、编辑、优化简历的请求。

    164 GitHub stars~1.5k tokensUpdated 16 days ago
    Business, Finance & HRAuto-check passed
  • Build Tailored Resume

    SankaiAI/ats-optimized-resume-agent-skill

    A skill your agent uses whenever the user wants to create a tailored resume for a specific job posting.

    106 GitHub stars~4.4k tokensUpdated 6 mo ago
    Business, Finance & HRAuto-check: notes
  • Weak Agent Test

    kklimuk/docx-cli

    Run the weak-agent adversarial test harness against docx-cli.

    216 GitHub stars~6.1k tokensUpdated today
    Documents & OfficeAuto-check: notes
  • Cell Submission

    yrui-cmd/Cell

    将已经写好的 SCI 论文整理为目标期刊投稿包。用于正文已完成后的期刊格式适配、参考文献编排、图表与补充材料整理、cover letter、title page、作者声明、报告清单和投稿系统字段准备,以及转投格式转换。不用于从零写论文、重做研究、编造缺失方法或默认代为正式投稿。可承接 sci-manuscript-writer 的 Manuscript.docx。

    106 GitHub stars~1.7k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Resume Builder

    Ali-Marandi/Web-Scraper-Framework

    从零生成或全面优化一份中文简历,并导出 docx / pdf / markdown 多种格式。用 STAR 法则改写经历、做 ATS 关键词覆盖率检查、根据行业(互联网产品 / 技术 / 金融 / 通用)选模板。当用户说"帮我写简历 / 优化简历 / 简历不会写 / 我的简历太弱了 / 简历看起来不专业 / 简历改一改 / 给我做个简历模板 / 简历导出 / 简历加点关键词",或者上传…

    107 GitHub stars~740 tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • Initiating Coverage

    rongxinzy/RongxinAI

    Create institutional-quality equity research initiation reports through a 5-task workflow.

    154 GitHub starsUsed in 2 repos~7.4k tokens
    Business, Finance & HRAuto-check passed

More from daypunk/LockedIn

  • Lockedin Audit

    daypunk/LockedIn

    Scores any resume or cover letter against LockedIn's calibrated rubric.

    128 GitHub stars~1.8k tokensUpdated 4 mo ago
    Auto-check passed
  • Lockedin Render Ideas

    daypunk/LockedIn

    Proposes 3 to 5 next-project or career-move ideas grounded in the user's experience.

    128 GitHub stars~661 tokensUpdated 4 mo ago
    Auto-check passed
  • Drafts an interview answer in English or Korean from the user's experience.

    128 GitHub stars~728 tokensUpdated 4 mo ago
    Auto-check passed
  • Lockedin Render Jaso

    daypunk/LockedIn

    Writes a Korean 자기소개서 from the user's experience. An agent skill from daypunk/LockedIn.

    128 GitHub stars~701 tokensUpdated 4 mo ago
    Auto-check passed
  • Lockedin Capture

    daypunk/LockedIn

    Converts in-session capture intents ("save this", "log this", "track this", "absorb this") into structured vault entries via a two-turn writer/reviewer pattern with duplicate detection and…

    128 GitHub stars~1.4k tokensUpdated 4 mo ago
    Auto-check: warnings
  • Writes an English resume from the user's experience, tuned to one of 10 built-in personas.

    128 GitHub stars~884 tokensUpdated 4 mo ago
    Auto-check passed

Works with

Questions about Lockedin

What does Lockedin do?

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. Lockedin is an agent skill from daypunk/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.

When should I use Lockedin?

Lockedin fits situations like: 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.

How do I install Lockedin in Claude Code?

Run `npx skills add daypunk/LockedIn --skill lockedin -a claude-code`. Or copy the skill folder (plugins/lockedin/skills/lockedin in daypunk/LockedIn) into .claude/skills/lockedin in your project. Claude Code loads it when a task matches its description.

How do I install Lockedin in Codex?

Run `npx skills add daypunk/LockedIn --skill lockedin -a codex`. Or copy the skill folder (plugins/lockedin/skills/lockedin in daypunk/LockedIn) into .agents/skills/lockedin in your project. Codex loads it when a task matches its description.

Can I use Lockedin in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add daypunk/LockedIn --skill lockedin -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/lockedin, .gemini/skills/lockedin, .github/skills/lockedin and .opencode/skills/lockedin in your project.

What does Lockedin need to run?

Going by SKILL.md and its folder, Lockedin needs credentials named ANTHROPIC_API_KEY and LOCKEDIN_ALLOW_API_KEY. Our summary lists: Python 3; A credential in ANTHROPIC_API_KEY; A credential in LOCKEDIN_ALLOW_API_KEY.

Does Lockedin access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Lockedin safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Lockedin use?

Lockedin is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Lockedin use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Lockedin?

Skills that share tags, products or a category with Lockedin: Resume Builder (Jichengyuuuuu/resume-builder-skill, 164 stars), Build Tailored Resume (SankaiAI/ats-optimized-resume-agent-skill, 106 stars), Weak Agent Test (kklimuk/docx-cli, 216 stars) and Cell Submission (yrui-cmd/Cell, 106 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Lockedin?

daypunk (a GitHub user) maintains it in daypunk/LockedIn, which has 128 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on May 22, 2026.

Source: daypunk/LockedIn on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.