Condensed context for AI sub-agents working on this repository. See CLAUDE.md for the full version.
php artisan boost:add-skill soviann/deploy-tasks-bundle
Save this content to: AGENTS.md
# AGENTS.md
Condensed context for AI sub-agents working on this repository. See `CLAUDE.md` for the full version.
## Project
DeployTasksBundle — Symfony bundle for one-time deploy tasks (data migrations, cache warmups, seed scripts) via CLI. PHP 8.2+ (8.4+ for Symfony 8), Symfony 6.4/7.x/8.x.
## Architecture
Single namespace `Soviann\DeployTasksBundle\` mapped to `src/`. Flat layout: role-based folders (`Attribute/`, `Command/`, `DependencyInjection/Compiler/`, `Event/`, `Exception/`) and domain-based folders (`Identifier/`, `Runner/`, `Sorting/`, `Storage/` with `Dbal/`, `Filesystem/`, `InMemory/` sub-namespaces). Root-level public API: `DeployTaskInterface`, `SoviannDeployTasksBundle`, `TaskResult`.
## Namespaces
- `Soviann\DeployTasksBundle\` — all bundle classes (under `src/`)
- `Soviann\DeployTasksBundle\Tests\` — tests (under `tests/`)
## Service Registration
- Tasks tagged `soviann_deploy_tasks.task` via autoconfiguration on `DeployTaskInterface`
- `#[AsDeployTask(id, priority, env, timeout, slowTaskThreshold, transactional, description, groups)]` carries task metadata; `AsDeployTask::of()` is the **single attribute reader**, `AsDeployTask::groupsOf()` returns declared groups. `id` and `description` attributes are the fallback when the interface method returns an empty string
- Autowirable aliases: `TaskStorageInterface`, `TransactionalStorageInterface`, `TaskIdGeneratorInterface`, `TaskSorterInterface`, `TaskRegistry`, `TaskRunner`
## Console Commands
`deploytasks:run`, `:status`, `:show`, `:skip`, `:reset`, `:prune`, `:rollup`, `:generate`, `:create-schema` (only for storages implementing `SchemaManageableInterface`, e.g. database storage), `:host:install`, `:host:generate`, `:host:skip`, `:host:reset`, `:host:rollup`, `:host:config`.
## Coding Standards
- `@Symfony` CS Fixer ruleset, PHPStan level 9
- Backslash-prefix native functions: `\array_map()`, `\sprintf()`, `\count()`
- Yoda conditions: `null === $var`
- All classes `final` unless designed for extension; properties `readonly` where possible
- Method order: `__construct` → public → protected → private
## Commands
```
vendor/bin/phpunit # all tests
vendor/bin/phpstan analyse # static analysis (level 9)
vendor/bin/php-cs-fixer fix # fix code style
vendor/bin/php-cs-fixer fix --dry-run # check code style
```
## Git
English, `<type>: description` — no scope. 3rd-person present-tense imperative. No `Co-authored-by` trailer.
Condensed context for AI sub-agents working on this repository. See CLAUDE.md for the full version.
DeployTasksBundle — Symfony bundle for one-time deploy tasks (data migrations, cache warmups, seed scripts) via CLI. PHP 8.2+ (8.4+ for Symfony 8), Symfony 6.4/7.x/8.x.
Single namespace Soviann\DeployTasksBundle\ mapped to src/. Flat layout: role-based folders (Attribute/, Command/, DependencyInjection/Compiler/, Event/, Exception/) and domain-based folders (Identifier/, Runner/, Sorting/, Storage/ with Dbal/, Filesystem/, InMemory/ sub-namespaces). Root-level public API: DeployTaskInterface, SoviannDeployTasksBundle, TaskResult.
Soviann\DeployTasksBundle\ — all bundle classes (under src/)Soviann\DeployTasksBundle\Tests\ — tests (under tests/)soviann_deploy_tasks.task via autoconfiguration on DeployTaskInterface#[AsDeployTask(id, priority, env, timeout, slowTaskThreshold, transactional, description, groups)] carries task metadata; AsDeployTask::of() is the single attribute reader, AsDeployTask::groupsOf() returns declared groups. id and description attributes are the fallback when the interface method returns an empty stringTaskStorageInterface, TransactionalStorageInterface, TaskIdGeneratorInterface, TaskSorterInterface, TaskRegistry, TaskRunnerdeploytasks:run, :status, :show, :skip, :reset, :prune, :rollup, :generate, :create-schema (only for storages implementing SchemaManageableInterface, e.g. database storage), :host:install, :host:generate, :host:skip, :host:reset, :host:rollup, :host:config.
@Symfony CS Fixer ruleset, PHPStan level 9\array_map(), \sprintf(), \count()null === $varfinal unless designed for extension; properties readonly where possible__construct → public → protected → privatevendor/bin/phpunit # all tests
vendor/bin/phpstan analyse # static analysis (level 9)
vendor/bin/php-cs-fixer fix # fix code style
vendor/bin/php-cs-fixer fix --dry-run # check code style
English, <type>: description — no scope. 3rd-person present-tense imperative. No Co-authored-by trailer.
How can I help you explore Laravel packages today?