skills/night-park/SKILL.md
Parks the current Claude Code session before going to sleep. Analyzes the conversation, writes a handoff document to docs/handoffs/ in the current project, mirrors the same summary to engram tagged with the session ID, and prints the exact `claude --resume <id>` command for tomorrow. Zero interaction — runs end-to-end on a single invocation. Trigger: /night-park, night park, park session, me voy a dormir, guardar sesion.
npx skillsauth add fearovex/claude-config night-parkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
One-shot "park this session" command for end-of-day handoff across multiple parallel Claude Code sessions. Reads the current
CLAUDE_CODE_SESSION_ID, drafts a substantive summary from the conversation, persists it to disk and to engram, and emits the resume command.
Triggers: /night-park, night park, park session, me voy a dormir, guardar sesion, parking nocturno, handoff session
Working very late across 3+ Claude Code sessions in parallel makes it impossible to remember tomorrow which session was attacking which problem. This skill drops a tagged breadcrumb per session: a real summary you can read in 30 seconds and resume the EXACT session by ID with one command.
The handoff lives in two places:
docs/handoffs/session-<id>-<slug>.md — readable by you, by your IDE,
and by any future Claude session opened in that project. Local to the
project; not meant to be committed (gitignored).topic_key: handoff/<slug> and the session_id embedded —
searchable from any future session in any project via mem_search handoff.The skill runs end-to-end with NO user interaction. No drafts to confirm, no slug to pass, no questions. The user invoked this because they want to stop thinking — respect that.
Read the environment variable CLAUDE_CODE_SESSION_ID. Use the full UUID
(do NOT truncate). If the variable is empty, abort with a one-line message:
night-park: CLAUDE_CODE_SESSION_ID not available in this environment — cannot park.
echo "$CLAUDE_CODE_SESSION_ID"
Analyze the conversation history and produce a 3-5 word kebab-case slug that captures the PROBLEM being worked on (not a generic verb). Examples of good slugs:
pro-plus-duplicate-customern-plus-one-user-listauth-middleware-token-leaknight-park-skill-creationBad slugs (do NOT use):
session-work, debug-stuff, today, wip, task — useless tomorrow.The slug MUST be ≤ 60 chars, lowercase, alphanumerics + hyphens only.
Read the conversation context and fill these sections substantively. These are NOT placeholders — they are the entire point of the document.
| Section | What goes here | Length |
|---------|----------------|--------|
| ## Qué estábamos haciendo | The OBJECTIVE of the session — what problem we were attacking, why it mattered, the user's original ask. | 2-4 lines |
| ## Dónde quedamos | Concrete current state — what was done, what decisions were made, what is half-finished, what is blocked. | 2-4 lines |
| ## Próximo paso | 1-3 bulleted, actionable items — the FIRST thing to do tomorrow when reopening. Each bullet must be doable, not abstract. | 1-3 bullets |
| ## Archivos tocados / relevantes | Files modified or central to the discussion, with a one-line reason each. | bullet list |
| ## Contexto técnico clave | Only if there is a non-obvious gotcha, a key decision, a command to remember, or an external link. Omit the entire section if there is nothing substantive. | optional |
Write in the same language the user has been using in the session (Colombian-style Spanish or English). Default to the dominant language of the session.
The first line of the document is # <Title>. The title is one human-readable
sentence that names the problem — NOT the slug. Examples:
# Pro Plus: duplicate customer on signup flow# N+1 query in /api/users list endpoint# Creating night-park skill for end-of-day session parkingdocs/handoffs/session-<id>-<slug>.mdPath is relative to the CURRENT working directory (the project root). Create
docs/handoffs/ if missing. Use this exact structure:
# <Title>
**Session ID**: <full-uuid>
**Resume con**: `claude --resume <full-uuid>`
**Fecha**: <YYYY-MM-DD HH:MM>
**Proyecto**: <basename of CWD>
## Qué estábamos haciendo
<2-4 lines>
## Dónde quedamos
<2-4 lines>
## Próximo paso
- <actionable item 1>
- <actionable item 2>
## Archivos tocados / relevantes
- `path/to/file.ts` — <why it matters>
## Contexto técnico clave
<omit this section entirely if nothing substantive>
Use the current local date/time for the Fecha field. Use the basename of
CWD for Proyecto.
.gitignoreCheck the project's .gitignore (in CWD). If docs/handoffs/ is NOT already
ignored, append it:
# Local session handoffs from /night-park — not tracked
docs/handoffs/
If there is no .gitignore at all, create one with just that block. Do NOT
add anything else. Do NOT touch a .gitignore outside CWD.
Call mem_save with:
title: same as the document titletype: discoveryscope: personalproject: basename of CWD — mandatory. A mem_save without project
lands with project=NULL and is invisible to every project-scoped search;
that is an INVALID save. After saving, verify with
mem_search(query: "<slug>", project: "<basename of CWD>") — the verification
search MUST pass project, or it shares the defect and cannot detect an
omitted field. If the row does not appear, re-save with the canonical value.topic_key: handoff/<slug>session_id: the full UUID from Step 1content: a structured block following the global engram format. A handoff is
recall-critical, and users search in their own words, not ours — so the FIRST
line MUST be a KEYWORDS: line listing the user's likely spellings and
variants of the topic (e.g. KEYWORDS: lowpoly low-poly diorama), bridging
FTS across hyphenation and alternate forms:KEYWORDS: <user's likely spellings/variants — hyphenated AND joined forms>
**What**: <one-line summary of what the session was doing>
**Why**: <user's motivation / original ask>
**Where**: <files affected, comma-separated>
**Learned**: <gotchas or key decisions, if any — else omit this field>
**Session ID**: <full-uuid>
**Resume**: `claude --resume <full-uuid>`
**Handoff doc**: docs/handoffs/session-<id>-<slug>.md
**Next step**: <first item from the Próximo paso list>
After all writes succeed, print exactly ONE line to the user — no extra commentary, no follow-up question:
🛏️ Parked. Tomorrow: claude --resume <full-uuid>
(The bed emoji is the ONLY emoji allowed in this skill's output. It is a deliberate signal that the session is closed.)
If any step in 5-7 failed, print the error AND still print the resume line if the session ID is known — the user must be able to reopen tomorrow even if the handoff doc didn't write.
CLAUDE_CODE_SESSION_ID directly. Do not ask the user for it.
Do not truncate it. Use the full UUID everywhere it appears.## Qué estábamos haciendo,
## Dónde quedamos, and ## Próximo paso must be filled from the actual
conversation. If you cannot fill them, you did not read the conversation
— re-read before writing.debug-stuff and wip
are banned.docs/handoffs/ belongs in .gitignore. These are personal
late-night notes, not project documentation. Append to .gitignore if
missing. Do not touch .gitignore outside CWD.mem_search handoff returns this entry.
project is mandatory and the save is verified with project set (Step 7);
the content's first line is a KEYWORDS: line in the user's own spellings..gitignore. Per the
global rule "never commit without explicit user request for THAT
action".--resume. Calling mem_session_summary would create a
false "session ended" record.development
Governs AI-assisted generation of images, video, and audio (Gemini Nano Banana Pro, FLUX, etc.) from any project, with a focus on key security and cost control. Trigger: generate an image/illustration/asset with AI, "generate an image", nano banana, gemini image, generate video, configure an image API.
business
Turns an already-investigated customer issue into a short, non-technical engineering-to-CS brief: one natural message that leads with the finding (root cause, real scope, open question), ready to paste into Slack for the support team. Trigger: /support-brief, support brief, brief for support, resumen soporte.
testing
Interactive creator for a project feature: scaffolds the domain knowledge markdown at ai-context/features/<slug>.md AND the antenna skill at .claude/skills/<slug>/SKILL.md, both from the canonical templates. Also registers the antenna in the project's CLAUDE.md. Trigger: /feature-define <name>, define feature, documentar funcionalidad, nueva feature.
data-ai
Generates a short, non-technical, informal English summary of an already-investigated customer issue, ready to paste into Slack/email for support, CX, or ops teammates. Trigger: /customer-summary, customer summary, resumir customer issue, slack summary.