jordandalton/laravel-tackle/tackle
Claude Code and agent skill by jordandalton/laravel-tackle
- community
Checking that the SKILL.md file is still in the repository.
Configure, extend, and build on Laravel Tackle — an AI agent harness for Laravel (similar to Claude Code or Codex, but installed into the app via Composer). Use this skill when installing Tackle, writing custom tools or agents, configuring the self-healer, or opting jobs out of healing.
Install
npx vskill@latest install jordandalton/laravel-tackle/tackleSKILL.md
Laravel Tackle
Laravel Tackle is an AI agent harness for Laravel. It provides the runtime layer — tool infrastructure, safety boundaries (PathGuard, BudgetTracker, shell modes), and a CodingAgent contract — that agents run inside. The harness ships with three built-in agents and can be extended with custom tools and agents without forking the package.
When to use this skill
Use this skill when:
- Installing or configuring Laravel Tackle
- Writing a custom tool (
tackle:tool) or agent (tackle:agent) - Extending or swapping the coding agent
- Configuring the self-healing queue worker (modes, thresholds, GitHub tokens)
- Opting a job or scheduled task out of self-healing
- Running
ai:reviewfor code review - Querying the healing audit log
Installation
Add your API key to .env:
Available tools (DefaultCodingAgent)
| Tool | What it does | |
|---|---|---|
ReadFile | Read any file in the workspace | |
Glob | List files by pattern | |
SearchCode | Grep-style search — file, line, snippet | |
EditFile | str_replace edit — unique match required | |
WriteFile | Create a new file | |
RunArtisan | Run an artisan command (allowlist-gated) | |
RunTests | Run Pest / PHPUnit | |
RunPint | Format files with Laravel Pint | |
RunShell | General shell (governed by shell mode) | |
QueryDatabase | Read-only SELECT query → JSON (100 row cap) | |
ReadLog | Tail storage/logs/laravel.log with optional filter | |
ListRoutes | Registered routes — method, URI, name, action | |
GitDiff | Git diff — supports staged, commit, against, path, stat | |
ReadTelescopeEntry | Telescope exception entries — by job UUID or recent list | |
ReadSentryIssue | Fetch a Sentry issue by ID (exception, stacktrace, breadcrumbs, request). Omit ID to list recent unresolved issues. No-ops if SENTRY_AUTH_TOKEN/SENTRY_ORG unset. | |
ReadGitHubIssue | Fetch a GitHub issue by number (title, body, labels, all comments). Omit number to list recent open issues. No-ops if GITHUB_TOKEN/GITHUB_REPO unset. | |
AskUser | Present the user with a select() or multiselect() to choose between options | |
ConfirmAction | Ask the user to confirm() before a destructive or irreversible operation |
Generating tools and agents
Use the built-in generators to scaffold new classes:
Stubs can be published and customised:
Writing a custom tool
Extend Tackle\Tools\AbstractTool and implement description(), schema(), and handle().
Rules:
- Return a string from
handle()— the agent reads it as tool output. - To refuse an action, return a descriptive string rather than throwing.
- File access tools should accept a
Tackle\Support\PathGuardvia constructor injection.
Adding a tool to the agent
Extend DefaultCodingAgent and merge your tool into tools(), then rebind the contract.
Swapping the agent entirely
Implement Tackle\Contracts\CodingAgent directly (it extends laravel/ai's Agent, HasTools, and Conversational) and use the Promptable trait.
Self-healing queue workers
Setup
Start the healer on its own worker process:
Modes
| Mode | Behaviour | |
|---|---|---|
pr (default) | Pushes a fix branch and opens a GitHub pull request | |
patch | Merges the fix directly if tests pass; falls back to pr if they fail |
GitHub token resolution order
GITHUB_TOKENin.env- GitHub CLI — Tackle runs
gh auth tokenautomatically ifghis installed tackle.healing.github_tokeninconfig/tackle.php
Opting a job out of healing
Jobs without the attribute, or with #[Healable(true)], are healed normally.
Scheduled task healing
Tackle listens to ScheduledTaskFailed automatically when AI_CODE_HEALING_ENABLED=true. No extra configuration needed. Patched scheduled tasks are not re-dispatched — the fix takes effect on the next scheduled run.
Code review
The ReviewAgent is read-only — it has ReadFile, Glob, and SearchCode but no editing tools. It reads full files for context before commenting on any changed function.
Explain code
The ExplainAgent is read-only. It reads the full file and any related classes before explaining.
Generate tests
The TestWriterAgent reads the class, checks existing test conventions, writes a Pest test file, then runs the tests to confirm they pass. Test type is inferred from the path when no flag is given.
Health check
Checks: config published, API key set, git repo with commits, .env.testing present, and (if healing enabled) migration run and GitHub token available.
Replay a healing attempt
Healing audit log
Contextual attributes
Tackle provides three Laravel contextual attributes for constructor injection:
Common pitfalls
- `git worktree add failed` — the project must have at least one commit:
git add -A && git commit -m "initial". - Healer branch pushed but no PR — GitHub token not found. Run
gh auth statusor setGITHUB_TOKENin.env. - Tests always fail in sandbox — ensure
.envand.env.testingexist and are committed or that the project has them; the worktree symlinks them automatically. - Config not updated after publishing — run
php artisan config:clearafter editingconfig/tackle.php. - Healer skipping a job — check for
#[Healable(false)]on the job class or athresholdsetting higher than the current failure count.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingresources/boost/skills/tackle/SKILL.md
Popularity
- Repository stars
- 76
- Repository forks
- 7
- 7-day trend score
- 22
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/jordandalton/laravel-tackle/tackle)