npx claudepluginhub lachtan/nicecode --plugin coreClaude Code workflow tips from Boris Cherny (creator of Claude Code) and the Claude Code team. Use when: setting up Claude Code, optimizing workflows, running parallel sessions, configuring CLAUDE.md, using skills/commands, subagents, hooks, MCP integrations, or learning best practices. Covers: git worktrees, plan mode, verification, permissions, Slack MCP, BigQuery, prompting tips, plugins, custom agents, sandboxing, keybindings, status lines, output styles, customization, /simplify for code quality, /batch for parallel code migrations, /loop for scheduled tasks, code review agents, /btw for mid-task questions, /effort max reasoning, remote control sessions, voice mode, setup scripts, session naming, /color, and PostCompact hook.
Use when committing changes to git — provides commit message formatting rules and an interactive commit workflow.
Thoroughly examine and analyze a file or module — what it does, how it connects, and how it could break.
Constrain Claude to answer without opening any additional files.
Use when installing Python packages, creating virtual environments, managing Python dependencies, or setting up Python projects. Triggers on: pip, pip3, python -m pip, python -m venv, pipx, easy_install, "add dependency", "install package", "set up Python project".
Summarize the conversation and save it to a markdown file.
Best practices for writing clean, readable, and simple code with Claude Code. Simplicity first.
C#, PowerShell, Python, Bash, Rust
/plugin marketplace add lachtan/nicecode
/plugin install core@nicecode
Per project:
claude plugin marketplace add lachtan/nicecode --scope=project
claude plugin install core@nicecode --scope=project
The plugin system does not load plugin rules automatically. A SessionStart hook creates a symlink so Claude Code picks them up as local project rules:
.claude/rules/plugins/nicecode/core -> <plugin-install-dir>/rules/
A ConfigChange hook handles the reverse: when the plugin is explicitly disabled in project settings, it removes the symlink.
Known limitation: When the plugin is uninstalled (not just disabled), the symlink becomes broken but is not actively cleaned up. Broken symlinks are harmless (Claude Code cannot load rules from a nonexistent target) but remain on disk until manually removed.
The symlink target is an absolute path specific to each machine. Add it to .gitignore:
.claude/rules/plugins/
Set NICECODE_DEBUG=1 to enable logging. The log is written to $TMPDIR/install-rules.log.
The guiding principle is simplicity first, inspired by Code Simplicity by Max Kanat-Alexander: the most important property of software is simplicity, and complexity is the root cause of most bugs and maintenance cost.
Professional coding assistant principles inspired by Uncle Bob
Executes bash commands
Hook triggers when Bash tool is used
Modifies files
Hook triggers on file write and edit operations
Uses power tools
Uses Bash, Write, or Edit tools
Share bugs, ideas, or general feedback.
Injects coding best practices from Philosophy of Software Design and The Art of Readable Code at session start
Initialize or update CLAUDE.md coding standards for any project by auto-detecting tech stack and assembling rules from the claude-rules template library. Use when user says 'init rules', 'generate CLAUDE.md', or wants to set up coding standards.
Object-Oriented Programming principles, design patterns, and best practices.
Automatic code review on session stop with configurable rules
Complete developer toolkit for Claude Code