Welcome to the Claude Code Showcase
Relevant source files
The following files were used as context for generating this wiki page:This project demonstrates a comprehensive configuration for Claude Code, transforming it into a highly effective AI-powered teammate. The core principle is to build a set of reusable "skills" and specialized "agents" to automate common development tasks, enforce coding conventions, and improve code quality. By leveraging a structured configuration system, Claude can understand project-specific patterns, integrate with external tools like JIRA, and participate in development workflows such as code reviews and scheduled maintenance.
The repository is a template showcasing how to configure Claude Code using a specific directory structure and a set of configuration files. These include project memory (CLAUDE.md), hooks and environment settings (.claude/settings.json), domain knowledge (Skills), specialized assistants (Agents), and integrations with external services (MCP Servers). This setup enables advanced automation, from blocking edits on the main branch to performing full PR reviews and managing JIRA tickets.
Sources: README.md:3-9, README.md:11-33
Directory Structure
The project's configuration is organized within the .claude/ directory at the root, alongside other key files like CLAUDE.md and .mcp.json. The .github/workflows/ directory contains automation scripts for CI/CD pipelines.
This diagram illustrates the key directories and files for configuring Claude Code.
Sources: README.md:88-124
Configuration Reference
CLAUDE.md - Project Memory
CLAUDE.md serves as Claude's persistent memory, loaded at the start of each session. It provides essential context about the project.
- Purpose: To inform Claude about the project's stack, key commands, code style, directory structure, and critical rules.
- Location: The file is resolved in the following order of precedence:
.claude/CLAUDE.md,./CLAUDE.md(root),~/.claude/CLAUDE.md(user-level). - Content:
- Stack, test/lint commands
- Key directories and their purpose
- Code style guidelines (e.g., TypeScript strict mode, no
any) - Git conventions (branch naming, commit format)
- Critical rules for error handling, UI states, and mutations.
Sources: README.md:183-195, CLAUDE.md
settings.json - Hooks & Environment
This is the main configuration file for defining hooks, environment variables, and permissions. It is located at .claude/settings.json. Hooks are scripts that trigger on specific events, allowing for automation like quality checks and workflow enforcement.
Sources: README.md:197-201
Hook Events
| Event | When It Fires | Use Case |
|---|---|---|
PreToolUse | Before tool execution | Block edits on main, validate commands |
PostToolUse | After tool completes | Auto-format, run tests, lint |
UserPromptSubmit | User submits prompt | Add context, suggest skills |
Stop | Agent finishes | Decide if Claude should continue |
Sources: README.md:203-211
Example: Blocking Edits on main
The following PreToolUse hook prevents Claude from editing files on the main branch.
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "[ \"$(git branch --show-current)\" != \"main\" ] || { echo '{\"block\": true, \"message\": \"Cannot edit on main branch\"}' >&2; exit 2; }",
"timeout": 5
}
]
}
]
}
}
This diagram shows the flow for the PreToolUse hook.
Sources: README.md:155-168, README.md:213-222
Skills - Domain Knowledge
Skills are markdown documents (SKILL.md) that teach Claude project-specific patterns, conventions, and domain knowledge. They are stored in .claude/skills/{skill-name}/.
The frontmatter of a SKILL.md file is critical for its discovery and application.
| Field | Required | Description |
|---|---|---|
name | Yes | Lowercase identifier (e.g., testing-patterns). Should match the directory name. |
description | Yes | Detailed explanation of what the skill does and when to use it. Used for matching. |
allowed-tools | No | Comma-separated list of tools Claude can use with this skill (e.g., Read, Grep). |
model | No | Specific model to use for this skill (e.g., claude-sonnet-4-20250514). |
Sources: README.md:465-474
An example SKILL.md for testing patterns:
---
name: testing-patterns
description: Jest testing patterns for this project. Use when writing tests, creating mocks, or following TDD workflow.
---
# Testing Patterns
## Test Structure
- Use `describe` blocks for grouping
- Use `it` for individual tests
- Follow AAA pattern: Arrange, Act, Assert
Sources: README.md:172-181
Agents - Specialized Assistants
Agents are AI assistants defined in markdown files with specific system prompts and purposes. They are located in .claude/agents/{agent-name}.md. An example is the code-reviewer.md agent, which follows a detailed checklist to review code changes.
An agent definition includes frontmatter for configuration and a markdown body for the system prompt.
---
name: code-reviewer
description: Reviews code for quality, security, and conventions. Use after writing or modifying code.
model: opus
---
# Agent System Prompt
You are a senior code reviewer...
Sources: README.md:498-511
Automation and Integration
Skill Evaluation Hooks
A powerful automation is the skill evaluation system, which runs on every UserPromptSubmit event. It analyzes the user's prompt and suggests relevant skills to activate.
This system works as follows:
- Prompt Analysis: The hook script (
skill-eval.shandskill-eval.js) analyzes the prompt for keywords, file paths, and intent patterns defined inskill-rules.json. - Scoring: Matches are scored based on their type (e.g., a directory match is worth more than a keyword match).
- Suggestion: Skills exceeding a confidence threshold are suggested to the user for activation.
This flow automates the process of selecting the right knowledge for a given task.
MCP Servers - External Integrations
MCP (Model Context Protocol) servers allow Claude to connect to external tools like JIRA, GitHub, and Slack. This is configured in the .mcp.json file in the project root. MCP servers act as a local bridge between Claude Code and external APIs.
The diagram below shows the high-level architecture of MCP integrations.
Sources: README.md:224-240
A common use case is integrating with JIRA to manage tickets. The /ticket command leverages this integration to read ticket requirements, implement the feature, and update the ticket status automatically.
The sequence diagram below illustrates the workflow for the /ticket PROJ-123 command.
Sources: README.md:270-289, .mcp.json
GitHub Actions Workflows
The repository includes several GitHub Actions to automate maintenance and quality control tasks. These workflows are defined in the .github/workflows/ directory.
| Workflow | Schedule | Purpose |
|---|---|---|
| PR Code Review | On pull_request | Automatically reviews PRs using the code-reviewer agent. |
| Code Quality | Weekly (Sunday) | Reviews random directories and auto-fixes issues. |
| Docs Sync | Monthly (1st) | Reads recent commits and ensures documentation is aligned with code changes. |
| Dependency Audit | Biweekly (1st & 15th) | Performs safe dependency updates and verifies them with tests. |
Sources: README.md:546-562, .github/workflows/pr-claude-code-review.yml
The PR review workflow is particularly notable. It triggers on new pull requests and uses the anthropics/claude-code-action@beta action to execute a review based on the code-reviewer agent.
# .github/workflows/pr-claude-code-review.yml
name: PR - Claude Code Review
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
model: claude-opus-4-5-20251101
prompt: |
Review this PR using .claude/agents/code-reviewer.md standards.
Run `git diff origin/main...HEAD` to see changes.
Sources: README.md:566-586, .github/workflows/pr-claude-code-review.yml
Summary
The Claude Code Showcase repository provides a powerful and extensible template for integrating an LLM agent into a software development lifecycle. By defining project context in CLAUDE.md, automating workflows with hooks in settings.json, encapsulating domain knowledge in skills, and creating specialized agents, developers can significantly offload repetitive tasks. Furthermore, integrations via MCP servers and GitHub Actions embed Claude directly into existing developer tools and CI/CD pipelines, creating a seamless and highly automated development environment.
Sources: README.md:3-9, README.md:593-611