plugins/agentic-behavior/skills/claude-code/SKILL.md
Reference material for Claude Code internals — the on-disk layout under ~/.claude and project-scope .claude, the plugin cache, session-env propagation, and the full hook lifecycle. Auto-recall when working on Claude-Code-related tasks: writing or debugging hooks, authoring plugins, inspecting session state, troubleshooting why an env var is or isn't visible to a Bash tool call, or when paths under ~/.claude or ~/.claude/plugins/ come up.
npx skillsauth add nsheaps/ai-mktpl claude-codeInstall 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.
Reference material for how Claude Code (the CLI harness) is laid out on disk and how its hook system works. This is auto-recalled when an agent needs to reason about Claude Code internals; the body here is intentionally short so it doesn't bloat context. Read the supplementary docs in this directory for detail when the task warrants it.
| Task | Doc |
| -------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| "Where does Claude store sessions / projects / plugins?" | folder-structure.md |
| "What's in ~/.claude/session-env/<id>/ and is it a leak?" | folder-structure.md (session-env section) |
| "How is project path encoded under ~/.claude/projects/?" | folder-structure.md |
| "What hook events exist? When does X fire?" | hooks.md |
| "What JSON does a PreToolUse hook receive / return?" | hooks.md |
| "Difference between command, prompt, agent, http, mcp_tool hook types" | hooks.md |
| "How do SessionStart hooks propagate env to Bash calls?" | hooks.md (CLAUDE_ENV_FILE section) |
~/.claude/ (shared across projects on this machine)<repo>/.claude/ (committed to the repo, project-specific)~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/settings.json under a top-level hooks key,
or bundled inside a plugin at <plugin>/hooks/hooks.json.plugin-dev:plugin-structure — authoring plugin manifests and layoutplugin-dev:hook-development — writing hooks (events, output contracts)plugin-dev:skill-development — authoring skills like this oneupdate-config — modifying settings.json / settings.local.jsonWhen this skill and the official docs disagree, the official docs win: https://code.claude.com/docs/en/hooks. File a follow-up to update this skill if you find a discrepancy.
tools
Manually reproduce what the github-app plugin's SessionStart hook does to make a GitHub App installation token usable in the current session — materialize the PEM, generate the token, isolate GH_CONFIG_DIR, write the runtime env file, and wire CLAUDE_ENV_FILE so every Bash call sees GH_TOKEN/GITHUB_TOKEN. Use when the hook did not run, the token is missing from the environment, or a shell/teammate needs the token wired up by hand. <example>GH_TOKEN isn't set even though github-app is configured</example> <example>the github-app SessionStart hook didn't run, set up the token manually</example> <example>wire the github app token into CLAUDE_ENV_FILE</example> <example>gh keeps falling back to the wrong account, isolate GH_CONFIG_DIR</example>
tools
Manually configure the GitHub App bot git identity the way the github-app plugin's SessionStart hook does — resolve the app slug and bot user ID, build the <slug>[bot] name and noreply email, set GIT_AUTHOR_*/GIT_COMMITTER_* env vars, and write an isolated GIT_CONFIG_GLOBAL with the gh auth git-credential helper. Use when commits are attributed to the wrong account, "Author identity unknown" appears, or git identity must be set up by hand. <example>my commits are showing up as the handler, not the bot</example> <example>git says Author identity unknown after the github-app hook ran</example> <example>configure the github app bot git identity manually</example> <example>set up the gh credential helper for git push</example>
tools
Manages spec files for requirements capture and validation
tools
# Bash Chaining Alternatives This skill teaches you how to work around the bash command chaining restriction enforced by this plugin. ## Why Chaining is Blocked The `bash-command-rejection` plugin blocks these operators: | Operator | Name | Why Blocked | | -------- | ---------- | ----------------------------------------------------------------------------------- | | `&&` | AND chain | Runs cmd2 only if cmd1 su