Session Start Orient at the beginning of a work session. Execute these steps directly (do NOT spawn a subagent — you have the session context, a subagent does not). Steps 0. Read project instructions Check CLAUDE.md for , , sync commands, or similar sections. Note any sync/pull commands — you'll run them in Step 1. 1. Sync from remote If CLAUDE.md documents a sync or pull command (rsync, git pull, etc.), run it now. If nothing is documented, skip this step. 2. Detect repo type CLAUDE.md is already loaded into conversation context — don't re-read it. Detect repo type from declaration in CLAUDE…

| grep -v 'master

Session Start Orient at the beginning of a work session. Execute these steps directly (do NOT spawn a subagent — you have the session context, a subagent does not). Steps 0. Read project instructions Check CLAUDE.md for , , sync commands, or similar sections. Note any sync/pull commands — you'll run them in Step 1. 1. Sync from remote If CLAUDE.md documents a sync or pull command (rsync, git pull, etc.), run it now. If nothing is documented, skip this step. 2. Detect repo type CLAUDE.md is already loaded into conversation context — don't re-read it. Detect repo type from declaration in CLAUDE…

| head -5\n```\n\nCheck for forgotten stashes from previous sessions:\n\n```bash\ngit stash list 2>/dev/null | head -5\n```\n\nIf stashes exist, list them in the summary so the user can decide whether to pop or drop them.\n\n### 3b. Check worktrees\n\nIf the repo uses git worktrees (common for experiment frameworks):\n\n```bash\ngit worktree list 2>/dev/null\n```\n\nIf multiple worktrees exist, list them in the summary. This surfaces sibling experiments or feature branches the user may have been working on.\n\n### 4. Check for existing plans\n\nLook for files in `.claude/plans/`. If any exist, list them with a one-line summary. These may represent in-progress work from previous sessions.\n\n### 5. Check for running background processes\n\nFlag any relevant background processes (pm2, nohup jobs, screen sessions, drip campaigns). These may be left over from a previous session or actively running.\n\n### 5b. Check agent-inbox for pending handoffs\n\nSome projects use an `_agent-inbox/` handoff pattern — sandboxed/container agents drop tasks there for the host Claude Code session to execute (things they can't do: deploy, touch host, run pm2, edit .env, etc.).\n\n1. **Locate the inbox.** Check `_agent-inbox/` in the current repo. Also check any related-repo path referenced by CLAUDE.md (e.g., a `## Related Repository` section with a \"Local path:\" line). Auto-memory may also record an inbox path — use it if the current CLAUDE.md points there.\n2. **Pull before listing** so items are fresh: `cd \u003cinbox-repo> && git pull`.\n3. **List pending items.** `.md` files directly in `_agent-inbox/` that are NOT in the `done/` subfolder, excluding `README.md` (that's the inbox's own readme, not an instruction).\n4. **Surface each pending item** in the orientation with filename + a one-line summary (first heading or first non-empty line). These are tasks waiting for execution.\n5. **Do not auto-execute.** Let the user decide whether to process them this session — some may be stale, superseded, or lower priority than the user's current goal.\n\nCompletion convention (for when the user chooses to process): move the file to `done/` via `git mv` and commit the move to the inbox repo. Run any deploy command documented in the instruction.\n\n### 6. Parse roadmap sections\n\nFrom CLAUDE.md, extract — skip any that don't exist:\n\n- **`## Current Focus`** — Suggested starting point for the session\n- **`## Roadmap`** — Count total vs completed items, list next 2-3 incomplete items\n- **`## Session Log`** — Most recent entry (what was completed, what was next)\n\n### 6b. Flag stale session log entries\n\nIf any session log entries are older than 30 days, flag them for archiving. Suggest the user move old entries to a separate file (e.g., `docs/session-archive.md`) or delete them to keep CLAUDE.md concise.\n\n### 7. Output orientation summary\n\nProvide a structured summary including: project purpose, current branch, uncommitted changes, upstream status, recent commits, current focus, roadmap progress, last session summary, existing plans, and any running background processes.\n\nAdapt for repo type:\n- **Code repos** (default): Focus on git state, plans, running services\n- **Research repos**: Include document structure, recently edited files, where writing left off\n- **Mixed**: Combine both\n\n## Structure checks\n\nAfter the orientation, note any missing infrastructure as suggestions (don't block on them):\n\n1. **No CLAUDE.md** — Offer to create one with project description, roadmap sections, and current focus placeholder. Ask: \"What is this project for? (one sentence)\"\n\n2. **CLAUDE.md exists but missing roadmap sections** — Suggest adding `## Current Focus`, `## Roadmap`, and `## Session Log`. These enable progress tracking and `/wrap-up-session` integration.\n\n## Notes\n\n- Pairs with `/wrap-up-session` which writes the same roadmap sections this skill reads\n- The skill is a checklist — defer to project CLAUDE.md for project-specific details (sync commands, deploy targets, branch strategy)\n- If plans exist in `.claude/plans/`, flag stale ones (>30 days) for cleanup\n---","attachment_filenames":[],"attachments":[],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Session Start","type":"text"}]},{"type":"paragraph","content":[{"text":"Orient at the beginning of a work session. Execute these steps directly (do NOT spawn a subagent — you have the session context, a subagent does not).","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Steps","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"0. Read project instructions","type":"text"}]},{"type":"paragraph","content":[{"text":"Check CLAUDE.md for ","type":"text"},{"text":"## Session Wrap-up","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"## Deployment","type":"text","marks":[{"type":"code_inline"}]},{"text":", sync commands, or similar sections. Note any sync/pull commands — you'll run them in Step 1.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"1. Sync from remote","type":"text"}]},{"type":"paragraph","content":[{"text":"If CLAUDE.md documents a sync or pull command (rsync, git pull, etc.), run it now. If nothing is documented, skip this step.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"2. Detect repo type","type":"text"}]},{"type":"paragraph","content":[{"text":"CLAUDE.md is already loaded into conversation context — don't re-read it. Detect repo type from ","type":"text"},{"text":"type:","type":"text","marks":[{"type":"code_inline"}]},{"text":" declaration in CLAUDE.md or infer from contents (package.json = code, mostly .md = research). Only read ","type":"text"},{"text":"agents.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" or ","type":"text"},{"text":"README.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" if CLAUDE.md is missing or lacks project context.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"3. Check git state","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"git fetch --prune 2>/dev/null\ngit status --short\ngit branch --show-current\ngit log --oneline -5","type":"text"}]},{"type":"paragraph","content":[{"text":"After fetching, check if the current branch is behind the remote:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"git rev-list --count HEAD..@{u} 2>/dev/null","type":"text"}]},{"type":"paragraph","content":[{"text":"If behind, note it in the summary so the user can decide whether to pull.","type":"text"}]},{"type":"paragraph","content":[{"text":"Also list any remote-only branches (excluding main/master) if they exist:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"git branch -r --no-merged HEAD 2>/dev/null | grep -v HEAD | grep -v 'main

Session Start Orient at the beginning of a work session. Execute these steps directly (do NOT spawn a subagent — you have the session context, a subagent does not). Steps 0. Read project instructions Check CLAUDE.md for , , sync commands, or similar sections. Note any sync/pull commands — you'll run them in Step 1. 1. Sync from remote If CLAUDE.md documents a sync or pull command (rsync, git pull, etc.), run it now. If nothing is documented, skip this step. 2. Detect repo type CLAUDE.md is already loaded into conversation context — don't re-read it. Detect repo type from declaration in CLAUDE…

| grep -v 'master

Session Start Orient at the beginning of a work session. Execute these steps directly (do NOT spawn a subagent — you have the session context, a subagent does not). Steps 0. Read project instructions Check CLAUDE.md for , , sync commands, or similar sections. Note any sync/pull commands — you'll run them in Step 1. 1. Sync from remote If CLAUDE.md documents a sync or pull command (rsync, git pull, etc.), run it now. If nothing is documented, skip this step. 2. Detect repo type CLAUDE.md is already loaded into conversation context — don't re-read it. Detect repo type from declaration in CLAUDE…

| head -5","type":"text"}]},{"type":"paragraph","content":[{"text":"Check for forgotten stashes from previous sessions:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"git stash list 2>/dev/null | head -5","type":"text"}]},{"type":"paragraph","content":[{"text":"If stashes exist, list them in the summary so the user can decide whether to pop or drop them.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"3b. Check worktrees","type":"text"}]},{"type":"paragraph","content":[{"text":"If the repo uses git worktrees (common for experiment frameworks):","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"git worktree list 2>/dev/null","type":"text"}]},{"type":"paragraph","content":[{"text":"If multiple worktrees exist, list them in the summary. This surfaces sibling experiments or feature branches the user may have been working on.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"4. Check for existing plans","type":"text"}]},{"type":"paragraph","content":[{"text":"Look for files in ","type":"text"},{"text":".claude/plans/","type":"text","marks":[{"type":"code_inline"}]},{"text":". If any exist, list them with a one-line summary. These may represent in-progress work from previous sessions.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"5. Check for running background processes","type":"text"}]},{"type":"paragraph","content":[{"text":"Flag any relevant background processes (pm2, nohup jobs, screen sessions, drip campaigns). These may be left over from a previous session or actively running.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"5b. Check agent-inbox for pending handoffs","type":"text"}]},{"type":"paragraph","content":[{"text":"Some projects use an ","type":"text"},{"text":"_agent-inbox/","type":"text","marks":[{"type":"code_inline"}]},{"text":" handoff pattern — sandboxed/container agents drop tasks there for the host Claude Code session to execute (things they can't do: deploy, touch host, run pm2, edit .env, etc.).","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Locate the inbox.","type":"text","marks":[{"type":"strong"}]},{"text":" Check ","type":"text"},{"text":"_agent-inbox/","type":"text","marks":[{"type":"code_inline"}]},{"text":" in the current repo. Also check any related-repo path referenced by CLAUDE.md (e.g., a ","type":"text"},{"text":"## Related Repository","type":"text","marks":[{"type":"code_inline"}]},{"text":" section with a \"Local path:\" line). Auto-memory may also record an inbox path — use it if the current CLAUDE.md points there.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Pull before listing","type":"text","marks":[{"type":"strong"}]},{"text":" so items are fresh: ","type":"text"},{"text":"cd \u003cinbox-repo> && git pull","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"List pending items.","type":"text","marks":[{"type":"strong"}]},{"text":" ","type":"text"},{"text":".md","type":"text","marks":[{"type":"code_inline"}]},{"text":" files directly in ","type":"text"},{"text":"_agent-inbox/","type":"text","marks":[{"type":"code_inline"}]},{"text":" that are NOT in the ","type":"text"},{"text":"done/","type":"text","marks":[{"type":"code_inline"}]},{"text":" subfolder, excluding ","type":"text"},{"text":"README.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" (that's the inbox's own readme, not an instruction).","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Surface each pending item","type":"text","marks":[{"type":"strong"}]},{"text":" in the orientation with filename + a one-line summary (first heading or first non-empty line). These are tasks waiting for execution.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Do not auto-execute.","type":"text","marks":[{"type":"strong"}]},{"text":" Let the user decide whether to process them this session — some may be stale, superseded, or lower priority than the user's current goal.","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Completion convention (for when the user chooses to process): move the file to ","type":"text"},{"text":"done/","type":"text","marks":[{"type":"code_inline"}]},{"text":" via ","type":"text"},{"text":"git mv","type":"text","marks":[{"type":"code_inline"}]},{"text":" and commit the move to the inbox repo. Run any deploy command documented in the instruction.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"6. Parse roadmap sections","type":"text"}]},{"type":"paragraph","content":[{"text":"From CLAUDE.md, extract — skip any that don't exist:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"## Current Focus","type":"text","marks":[{"type":"code_inline"},{"type":"strong"}]},{"text":" — Suggested starting point for the session","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"## Roadmap","type":"text","marks":[{"type":"code_inline"},{"type":"strong"}]},{"text":" — Count total vs completed items, list next 2-3 incomplete items","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"## Session Log","type":"text","marks":[{"type":"code_inline"},{"type":"strong"}]},{"text":" — Most recent entry (what was completed, what was next)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"6b. Flag stale session log entries","type":"text"}]},{"type":"paragraph","content":[{"text":"If any session log entries are older than 30 days, flag them for archiving. Suggest the user move old entries to a separate file (e.g., ","type":"text"},{"text":"docs/session-archive.md","type":"text","marks":[{"type":"code_inline"}]},{"text":") or delete them to keep CLAUDE.md concise.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"7. Output orientation summary","type":"text"}]},{"type":"paragraph","content":[{"text":"Provide a structured summary including: project purpose, current branch, uncommitted changes, upstream status, recent commits, current focus, roadmap progress, last session summary, existing plans, and any running background processes.","type":"text"}]},{"type":"paragraph","content":[{"text":"Adapt for repo type:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Code repos","type":"text","marks":[{"type":"strong"}]},{"text":" (default): Focus on git state, plans, running services","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Research repos","type":"text","marks":[{"type":"strong"}]},{"text":": Include document structure, recently edited files, where writing left off","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Mixed","type":"text","marks":[{"type":"strong"}]},{"text":": Combine both","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Structure checks","type":"text"}]},{"type":"paragraph","content":[{"text":"After the orientation, note any missing infrastructure as suggestions (don't block on them):","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"No CLAUDE.md","type":"text","marks":[{"type":"strong"}]},{"text":" — Offer to create one with project description, roadmap sections, and current focus placeholder. Ask: \"What is this project for? (one sentence)\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"CLAUDE.md exists but missing roadmap sections","type":"text","marks":[{"type":"strong"}]},{"text":" — Suggest adding ","type":"text"},{"text":"## Current Focus","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"## Roadmap","type":"text","marks":[{"type":"code_inline"}]},{"text":", and ","type":"text"},{"text":"## Session Log","type":"text","marks":[{"type":"code_inline"}]},{"text":". These enable progress tracking and ","type":"text"},{"text":"/wrap-up-session","type":"text","marks":[{"type":"code_inline"}]},{"text":" integration.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Notes","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Pairs with ","type":"text"},{"text":"/wrap-up-session","type":"text","marks":[{"type":"code_inline"}]},{"text":" which writes the same roadmap sections this skill reads","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"The skill is a checklist — defer to project CLAUDE.md for project-specific details (sync commands, deploy targets, branch strategy)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"If plans exist in ","type":"text"},{"text":".claude/plans/","type":"text","marks":[{"type":"code_inline"}]},{"text":", flag stale ones (>30 days) for cleanup","type":"text"}]}]}]},{"type":"hr","attrs":{"markup":"---"}}]},"metadata":{"date":"2026-06-05","name":"start-session","author":"@skillopedia","source":{"stars":4,"repo_name":"claude-code-skills","origin_url":"https://github.com/vishalsachdev/claude-code-skills/blob/HEAD/skills/start-session/SKILL.md","repo_owner":"vishalsachdev","body_sha256":"f7b87f69121b76dcf7e6ed867cf709e8ba8d834175b32c660d2843aba6d89ff9","cluster_key":"d2df18e5132a41873e41496afd005f602747113cbe9edc3a66c2d28574b7e7d9","clean_bundle":{"format":"clean-skill-bundle-v1","source":"vishalsachdev/claude-code-skills/skills/start-session/SKILL.md","bundle_sha256":"f7dc9f22d781eced7cea48e32fbbd82ededae3cb81c48d8cdc38c14aef839f37","attachment_count":0,"text_attachments":0,"binary_attachments":0},"cluster_size":1,"skill_md_path":"skills/start-session/SKILL.md","import_metadata":{"date":"2026-06-05","author":"@skillopedia","version":"v1","category":"education-research","category_label":"Education"},"exact_dupes_collapsed_into_this":0},"version":"v1","category":"education-research","import_tag":"clean-skills-v1","description":"Use when user says \"let's get started\", \"where are we\", or at beginning of a session. Reads project context from CLAUDE.md, checks git status and recent commits, and provides orientation for the session. Works across all repo types (code, research, mixed)."}},"renderedAt":1782979641381}

Session Start Orient at the beginning of a work session. Execute these steps directly (do NOT spawn a subagent — you have the session context, a subagent does not). Steps 0. Read project instructions Check CLAUDE.md for , , sync commands, or similar sections. Note any sync/pull commands — you'll run them in Step 1. 1. Sync from remote If CLAUDE.md documents a sync or pull command (rsync, git pull, etc.), run it now. If nothing is documented, skip this step. 2. Detect repo type CLAUDE.md is already loaded into conversation context — don't re-read it. Detect repo type from declaration in CLAUDE…