stolt/list-skills-command
Drop-in Symfony Console command to list and introspect AI skill files from the CLI. Shows available skills, detailed metadata with verbose mode (name/version/description), basic validation, and filtering by tag or stable version.
llms.txt or similar skill definition format (e.g., SKILL.md files). This aligns well with modular CLI-driven PHP applications (e.g., tooling, automation, or AI agent frameworks).laravel/framework or standalone symfony/console). However, Laravel’s native Artisan CLI is not directly compatible without abstraction.spatie/laravel-artisan-commands or custom integration).php vendor/bin/list-skills) or wrapped in a Laravel command via a facade.ergebnis/agent-detector (lightweight, no known conflicts).stolt/skill-validator is a private package (dependency risk; may need forking or replacement).SKILL.md files in a project’s skills/ directory (or similar). Deviations (e.g., custom paths, naming) would require configuration overrides.stolt/skill-validator for SKILL.md parsing. If this package is abandoned or changes, the command may break.SKILL.md files, or would custom parsing logic be needed?php artisan list-skills) or a Laravel Artisan command (requiring a wrapper)?stolt/skill-validator acceptable as a dependency, or should validation logic be replicated?composer global require) and invoke via php vendor/bin/list-skills.skills/ directory to validate skill discovery and output formats.composer require conflicts).composer require stolt/list-skills-command).// app/Console/Commands/ListSkills.php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;
class ListSkills extends Command
{
protected $signature = 'skills:list {--verbose : Show skill metadata}';
protected $description = 'List AI skills in the project';
public function handle()
{
$process = new Process(['vendor/bin/list-skills', $this->option('verbose') ? '--verbose' : '']);
$process->run();
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
$this->output->write($process->getOutput());
}
}
stolt/skill-validator with a Laravel-compatible validator (e.g., using Laravel’s File facade).ListSkillsCommand to integrate with Laravel’s service container (e.g., for caching or event dispatching).config/skills.php) to override defaults.// config/skills.php
return [
'directory' => base_path('custom-skills'),
'validation' => env('SKILLS_VALIDATION', true),
];
Artisan::call) would need adaptation.$output = shell_exec('vendor/bin/list-skills --format-json');
$skills = json_decode($output, true);
stolt/skill-validator and ergebnis/agent-detector for breaking changes (both are niche packages with low activity).SKILL.md format changes (e.g., new metadata fields), the package may need updates. Forking or patching could be necessary.stolt/skill-validator.SKILL.md files or Symfony Console logs.cache()->remember()).skills table with name, version, description).How can I help you explore Laravel packages today?