chore: add Claude Code project automation#468
Merged
Conversation
Project-shared Claude Code configuration to reduce repeat instruction
overhead, catch the project's most common failure modes earlier, and
codify the patterns documented in ADR 010 and ADR 003.
- `.claude/settings.json` — hooks (php-cs-fixer / phpstan / prettier /
markdownlint / env coverage on edit; lint:container on stop; API-spec
drift + template-pair Stop hooks; PreToolUse guards blocking edits to
generated and locked files and `$this->addSql()` in migrations).
- `.claude/skills/` — guided workflows for the project's high-friction
multi-file changes (add-api-resource, add-migration, add-slide-template,
add-feed-type). User-invocable only.
- `.claude/agents/` — focused reviewers (api-resource-reviewer,
migration-portability-reviewer, slide-template-reviewer,
rtk-cache-invalidation-reviewer, feed-type-reviewer).
- `.mcp.json` + settings — auto-enables the context7 MCP (live Symfony /
Doctrine / API Platform docs), the php-lsp plugin (Intelephense), and
the playwright plugin (browser MCP).
- `CLAUDE.md` — project conventions for future Claude Code sessions
(Docker-only dev tooling, the /v2/ API is versioned and BC-frozen,
Schema-tool-only migrations, multi-tenancy, prerequisites).
- `scripts/claude-hook-check-{api-spec-drift,template-pairs}.sh` —
Stop-hook helpers.
- `.gitignore` — `anthropic/claude-code` block tracks
`.claude/{settings.json,agents,commands,skills}` while keeping
`settings.local.json` and other local state ignored. `.playwright-mcp/`
added to the Playwright block.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
turegjorup
force-pushed
the
feature/claude-code-project-config
branch
from
May 27, 2026 17:40
fa15cba to
ee8437a
Compare
tuj
approved these changes
May 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Project-shared Claude Code configuration: reduces repeat instruction overhead, catches the project's most common failure modes earlier, and codifies the patterns from ADR 003 and ADR 010. No runtime/functional changes — only tooling that Claude Code sessions read.
.claude/settings.json)lint:container, API-spec drift warning, slide-template pair check.composer.lock,package-lock.json,public/api-spec-v2.*,assets/shared/redux/generated-api.ts,vendor/,node_modules/) and reject$this->addSql()in migrations (ADR 010)..claude/skills/) — guided workflows for the project's high-friction multi-file changes:add-api-resource— Entity → migration → DTO → Provider/Processor → voter → spec regen → RTK enhancement.add-migration— Doctrine Schema tool API only,Types::*constants (ADR 010).add-slide-template—.jsx/.jsonpair,id()/config()/renderSlide()/slideDone()contract.add-feed-type—FeedTypeInterface7 methods, output-model mapping, error-cache contract..claude/agents/) — focused reviewers cross-checking the corresponding skills:api-resource-reviewer,migration-portability-reviewer,slide-template-reviewer,rtk-cache-invalidation-reviewer,feed-type-reviewer..mcp.json+enabledPlugins)context7— live Symfony / Doctrine / API Platform docs lookup.php-lsp@claude-plugins-official(Intelephense) — go-to-definition, find-references, inline diagnostics across the Entity ↔ DTO ↔ Provider/Processor chain. Prerequisite:npm install -g intelephense.playwright@claude-plugins-official— browser MCP for driving the admin / client during interactive debugging.npx-launched, no prerequisite./v2/API is BC-frozen (ADR 003), Schema-tool-only migrations (ADR 010), multi-tenancy, prerequisites..gitignore—anthropic/claude-codescoped block tracks.claude/{settings.json,agents,commands,skills}, keepssettings.local.jsonand other local state ignored..playwright-mcp/added to the Playwright block.Test plan
task code-analysispasses (verifies no PHPStan noise from the existing rule set is introduced by the new files).task coding-standards:checkpasses (markdownlint + prettier on the new docs/scripts).claude plugin listshowsphp-lsp@claude-plugins-officialandplaywright@claude-plugins-officialas project-scope enabled.claude mcp listshowscontext7connected..phpfile triggers the php-cs-fixer + phpstan PostToolUse hooks.$this->addSql(...)into amigrations/Version*.phpis rejected by the PreToolUse hook./add-api-resource,/add-migration,/add-slide-template,/add-feed-typeare discoverable.npm install -g intelephense) documented inCLAUDE.md"Claude Code prerequisites" section.🤖 Generated with Claude Code