Context
When Boost generates the <laravel-boost-guidelines> block (via vendor/laravel/boost/.ai/foundation.blade.php), it emits a ## Skills Activation section that lists every registered skill along with its full description: frontmatter:
- `laravel-best-practices` — Apply this skill whenever writing, reviewing, or refactoring Laravel PHP code. This includes creating or modifying controllers, models, migrations, form requests, policies, jobs, scheduled commands, service classes, and Eloquent queries. Triggers for N+1 and query performance issues...
- `configuring-horizon` — Use this skill whenever the user mentions Horizon by name in a Laravel context. Covers the full Horizon lifecycle: installing Horizon (horizon:install, Sail setup), configuring config/horizon.php (supervisor blocks, queue assignments, balancing strategies, minProcesses/maxProcesses)...
On my project, this section alone is ~30 lines / ~5 KB of CLAUDE.md.
The concern
In every supported agent harness I'm aware of (Claude Code, Copilot CLI, Gemini CLI), the skill name + description: is already surfaced to the agent at session start via the platform's own skill-discovery mechanism (e.g., Claude Code's system reminder listing available skills with their descriptions). So the Skills Activation section duplicates information the agent already has — but at the cost of tokens on every turn, plus pushing CLAUDE.md closer to the "large file" warning threshold (~40 KB in Claude Code).
Suggestions (any of these would help)
In rough order of preference:
- Remove the section entirely. The agent already gets skill metadata from the harness; Boost doesn't need to re-supply it.
- Trim it to a one-line pointer. e.g.
"Domain-specific skills are available in .claude/skills/ and .ai/skills/ — invoke the relevant skill when the task matches."
- Keep names only, drop descriptions.
- `laravel-best-practices` instead of the full description — still a useful "table of contents" but no duplication.
- Make it opt-out via config. Something like
'foundation' => ['include_skills_activation' => false] in config/boost.php, mirroring the existing guidelines.exclude pattern.
Why I'm not just editing the generated output
Editing CLAUDE.md manually is whack-a-mole — the next boost:update regenerates the block from the blade template and the section returns. A config option or upstream trim would make this durable.
Template reference
The relevant template is vendor/laravel/boost/.ai/foundation.blade.php, lines 21–29:
@if($assist->hasSkillsEnabled() && $assist->skills()->isNotEmpty())
## Skills Activation
This project has domain-specific skills available. You MUST activate the relevant skill whenever you work in that domain—don't wait until you're stuck.
@foreach($assist->skills() as $skill)
- `{{ $skill->name }}` — {{ $skill->description }}
@endforeach
@endif
Happy to open a PR if the direction is agreed.
Context
When Boost generates the
<laravel-boost-guidelines>block (viavendor/laravel/boost/.ai/foundation.blade.php), it emits a## Skills Activationsection that lists every registered skill along with its fulldescription:frontmatter:On my project, this section alone is ~30 lines / ~5 KB of CLAUDE.md.
The concern
In every supported agent harness I'm aware of (Claude Code, Copilot CLI, Gemini CLI), the skill name +
description:is already surfaced to the agent at session start via the platform's own skill-discovery mechanism (e.g., Claude Code's system reminder listing available skills with their descriptions). So the Skills Activation section duplicates information the agent already has — but at the cost of tokens on every turn, plus pushing CLAUDE.md closer to the "large file" warning threshold (~40 KB in Claude Code).Suggestions (any of these would help)
In rough order of preference:
"Domain-specific skills are available in .claude/skills/ and .ai/skills/ — invoke the relevant skill when the task matches."- `laravel-best-practices`instead of the full description — still a useful "table of contents" but no duplication.'foundation' => ['include_skills_activation' => false]inconfig/boost.php, mirroring the existingguidelines.excludepattern.Why I'm not just editing the generated output
Editing CLAUDE.md manually is whack-a-mole — the next
boost:updateregenerates the block from the blade template and the section returns. A config option or upstream trim would make this durable.Template reference
The relevant template is
vendor/laravel/boost/.ai/foundation.blade.php, lines 21–29:Happy to open a PR if the direction is agreed.