alessandrocampos224 / laravel-feature-docs
Generate technical and functional documentation from git diff changes in Laravel projects.
Package info
github.com/alessandrocampos224/laravel-feature-docs
pkg:composer/alessandrocampos224/laravel-feature-docs
Requires
- php: ^8.2
- ext-json: *
- illuminate/console: ^10.0|^11.0|^12.0|^13.0
- illuminate/contracts: ^10.0|^11.0|^12.0|^13.0
- illuminate/http: ^10.0|^11.0|^12.0|^13.0
- illuminate/support: ^10.0|^11.0|^12.0|^13.0
- symfony/process: ^6.4|^7.0
Requires (Dev)
- laravel/pint: ^1.13
- orchestra/testbench: ^8.0|^9.0|^10.0|^11.0
- pestphp/pest: ^2.34|^3.7
- phpunit/phpunit: ^10.5|^11.0
This package is auto-updated.
Last update: 2026-04-21 01:37:40 UTC
README
Package Laravel para gerar documentação técnica e funcional a partir de mudanças reais do código via git diff.
O que o package entrega
- Comando Artisan
docs:update-from-diff - Pipeline desacoplado por contratos (diff, classificação, contexto, IA, geração, escrita)
- Dois documentos Markdown por feature:
docs/technical/<feature-slug>.mddocs/client/<feature-slug>.md- Metadata rastreável em JSON:
docs/.meta/<feature-slug>.json- Atualização seletiva de docs existentes com prompt dedicado
- Config publicável e implementações sobrescrevíveis via container
Instalação
composer require alessandrocampos224/laravel-feature-docs
Publique config e prompts:
php artisan vendor:publish --tag=feature-docs-config php artisan vendor:publish --tag=feature-docs-prompts
Configuração
Arquivo config/feature-docs.php contém os grupos:
gitpathsfeaturesaigeneration
Provider de IA default no v1: openai (obrigatório configurar chave).
Variáveis principais:
FEATURE_DOCS_AI_PROVIDER=openaiFEATURE_DOCS_AI_MODEL=gpt-5FEATURE_DOCS_OPENAI_API_KEY=...FEATURE_DOCS_OPENAI_BASE_URL=https://api.openai.com/v1
Comando principal
php artisan docs:update-from-diff
php artisan docs:update-from-diff --base=origin/main --head=HEAD
php artisan docs:update-from-diff --stage=staged
php artisan docs:update-from-diff --files="app/Services/ProductService.php,routes/web.php"
php artisan docs:update-from-diff --feature=produtos/preco-promocional
php artisan docs:update-from-diff --only=technical
php artisan docs:update-from-diff --format=json
php artisan docs:update-from-diff --dry-run
Assinatura:
protected $signature = 'docs:update-from-diff {--base= : Git base reference} {--head=HEAD : Git head reference} {--stage= : unstaged|staged|all} {--feature= : Force feature slug} {--files= : Comma separated list of files} {--only= : technical|client|all} {--format=markdown : markdown|json} {--dry-run : Preview without writing files}';
Pipeline implementado
- Descobre escopo de comparação
- Lê diff do Git
- Converte alterações em DTOs
- Classifica impacto por heurística
- Resolve
feature_slug - Monta contexto consolidado
- Carrega prompts versionados do disco
- Gera docs técnica e cliente via IA
- Atualiza docs existentes quando houver
- Salva Markdown e metadata JSON
- Retorna resumo no console (
markdownoujson)
Contratos públicos
DiffReaderChangeClassifierFeatureResolverContextBuilderPromptRepositoryAiClientDocGeneratorDocWriter
Todos podem ser sobrescritos com bind no container do Laravel.
Estrutura de prompts
PromptRepository suporta nomes canônicos e fallback para variantes com acento.
Arquivos esperados:
prompt-base.mdprompt-de-classificacao-de-mudanca.md(fallback paraprompt-de-classificação-de-mudança.md)prompt-de-doc-tecnica.mdprompt-de-doc-cliente.mdprompt-de-atualizacao-de-doc-existente.md(fallback paraprompt-de-atualização-de-doc-existente.md)
Testes
Stack:
- Pest
- Orchestra Testbench
Rodar:
composer test
Cobertura base:
- leitura de diff
- classificação heurística
- resolução de feature
- carregamento de prompts
- geração de paths e escrita
- dry-run
- criação de docs novas
- atualização de docs existentes
Compatibilidade
- Laravel 10, 11, 12 e 13
- PHP 8.2+
Extensão futura
O núcleo não depende de Filament. Um plugin Filament pode ser criado depois para exibição e busca visual das docs geradas.