Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Docudoodle Laravel Package

genericmilk/docudoodle

Docudoodle is an AI-powered PHP documentation generator that analyzes your codebase and writes Markdown docs. It supports OpenAI, Claude, Gemini, Azure and Ollama, with smart caching that only processes changed files and skips existing docs.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • Dev-time tooling only. Docudoodle is a Laravel service provider plus an Artisan command (docudoodle:generate) that reads source files and emits Markdown. There are no migrations, routes, queue workers, or request-lifecycle hooks described, so it does not couple to the runtime serving path. Install as composer require --dev and it stays out of production builds.
  • Output is plain Markdown in a configurable directory — naturally versionable, reviewable in PRs, and consumable by GitHub, static site generators, or a docs pipeline. This is the right artifact format for us.
  • Provider abstraction (OpenAI, Azure OpenAI, Claude, Gemini, Ollama) is the strongest architectural attribute. Ollama in particular makes an air-gapped/private-codebase path viable, and Azure gives us an enterprise contracting and data-residency route.
  • The AI layer appears to be hand-rolled per provider rather than built on Laravel's HTTP client; if true, we lose easy middleware for retries, logging, proxying, and rate-limit shaping. Worth confirming before committing.

Integration feasibility

  • Very low initial effort: publish config (vendor:publish --tag=docudoodle-config), set env keys, run one command. A time-boxed spike on a single bounded module should produce usable output in under a day.
  • Configuration surface is appropriate for our needs: file extensions, skip directories with wildcard support, custom prompt template with {FILE_PATH}/{FILE_CONTENT} variables, model selection, token ceiling, cache toggles, and CLI overrides (--no-cache, --force-rebuild, --cache-path).
  • Jira and Confluence publishing are additive but require Guzzle and write credentials to shared systems — treat as a phase-two capability, not part of the pilot.

Technical risk

  • Non-determinism. No evidence of temperature control or output validation. Regenerated docs will differ run-to-run, generating review noise and undermining diff-based gating.
  • Hallucination surface. The model documents what it can infer from a single file in isolation. Cross-file behavior, runtime config, and middleware interactions will be described incorrectly with high confidence.
  • Silent truncation. max_tokens defaults to 10,000 with no documented chunking strategy. Large service classes or config files may be partially read and documented as if complete — the worst failure mode for a documentation tool.
  • Source-code egress. Every processed file leaves the boundary unless Ollama or Azure-private deployment is used. Committed .env files, fixtures, and seeders in scope would leak secrets into a third-party prompt.
  • Supply-chain / vendor risk. 163 stars, zero dependents, low composite score, and a maintainer footprint that reads as a single author. There is no evidence of an external user base validating it at our scale.
  • Cache invalidation granularity. The _config_hash invalidates the entire cache on any model, provider, or prompt change. Prompt iteration — the thing we will do most — is therefore a full-cost rebuild every time.
  • Orphan cleanup is destructive by design. Deleted or renamed source files trigger deletion of the corresponding documentation file. Any hand-edited or human-augmented docs in that directory are at risk.

Key questions

  1. Does it use Laravel's HTTP client, or raw cURL per provider? Can we route through an internal gateway for logging, retry, and spend caps?
  2. How are files exceeding the token budget handled — chunking, summarization, or silent truncation?
  3. Is processing serial or concurrent? What is wall-clock time and cost for a 2,000-file codebase?
  4. Is there an allow-list (include-only) mode, or only skip directories? Scoping by inclusion is far safer for a pilot.
  5. Does the prompt template support a system message or output-format contract, or is it a single string substitution?
  6. Are Jira/Confluence writes idempotent on re-run, or do they create duplicate issues/pages?
  7. Does orphan cleanup distinguish generated files from human-edited ones?
  8. What is the maintainer's bus factor and security-response posture for dependency CVEs?
  9. Are API failures surfaced as non-zero exit codes suitable for CI gating, and is partial output marked as partial?
  10. Is composer.json constrained tightly enough (illuminate/* only?) to avoid dependency conflicts in our application?

Integration Approach

Stack fit

  • Laravel-native Artisan command with illuminate/console and illuminate/support as the only framework touchpoints — a minimal footprint that will not fight our existing service providers.
  • v2.3.0 adds Laravel 13 and PHP 8.5 support, indicating the maintainer tracks framework releases quickly. Confirm the minimum PHP floor against our lowest-supported runtime before adoption.
  • Runs comfortably in a CI job or a developer container. No infrastructure prerequisites beyond outbound HTTPS (or a reachable Ollama host).

Migration path

  • This is greenfield documentation generation, not a migration — there is no data or schema to move. The realistic entry scenario is a brownfield application with thin or absent docs, which is exactly the README's stated use case.
  • Land output in a dedicated, previously empty directory (e.g. docs/generated/) so orphan cleanup can never touch curated, human-authored documentation.
  • Keep the package as a dev dependency and the cache file (.docudoodle_cache.json) git-ignored, or explicitly pinned to a CI cache path via --cache-path.

Compatibility

  • Pin to ^2.3.0 at minimum — earlier versions have a skip-directory matching defect that could have documented vendor/ and node_modules/, which is both a cost and a confidentiality problem.
  • Optional Guzzle requirement for Jira/Confluence means those integrations add a dependency we would otherwise not carry; defer until justified.
  • Ollama support gives us a fallback integration path for regulated repositories without changing tooling.

Sequencing

  1. Spike (1 week). Run against one bounded module with gpt-4o-mini. Measure cost per 1k LOC, output quality, and wall-clock time. Compare one cloud provider against Ollama on the same module.
  2. Prompt standardization. Author a custom template that matches our documentation standard (purpose, public surface, dependencies, sequence/class diagrams, known caveats). Accept that each prompt change is a full cache rebuild and budget accordingly.
  3. CI integration, scheduled first. Nightly or weekly job on a branch that opens a PR with generated docs. Do not run on every PR initially — cost and diff noise.
  4. Human review gate. Every generated doc merges through review. Track acceptance rate; if reviewers rewrite more than they accept, the tool is not yet earning its keep.
  5. Coverage expansion. Add modules one at a time, tracking cost, runtime, and reviewer acceptance per module.
  6. Publishing integrations last. Enable Jira/Confluence only once the Markdown flow is trusted, and only with a service account scoped to a single space/project.

Operational Impact

Maintenance

  • Assume we own this code. With zero dependents and a small contributor base, there is no community backstop. Budget a named owner and a small recurring allocation (order of a few hours per month) for version bumps, prompt tuning, and issue triage.
  • Maintain a fork-or-vendor contingency: pin the version, mirror the repository internally, and be prepared to patch provider API drift ourselves. Claude and Gemini request/response handling has already changed once between releases.
  • Prompt templates are configuration, but they are effectively production assets — version them in-repo and review changes like code.

Support

  • No vendor SLA. Support is GitHub issues on a volunteer basis. Do not place this on a critical path where a broken provider API blocks a release.
  • Security exposure is narrow but real: the package handles API keys for four providers plus Atlassian tokens. Enforce secret injection via CI secret stores, never commit keys, and prefer short-lived or scoped Atlassian tokens.
  • Watch upstream dependencies (Guzzle, whichever HTTP layer is used) for CVEs; there is no indication of automated dependency scanning.

Scaling

  • Cost and runtime scale linearly with file count and file size. If calls are serial, a large monolith will produce CI jobs measured in tens of minutes to hours. Plan to shard by directory across parallel CI jobs with separate cache paths.
  • Caching is the primary cost lever, but it is all-or-nothing at the configuration level. Model or prompt changes trigger full re-spend — schedule prompt iteration deliberately rather than ad hoc.
  • Provider rate limits (429s) are the practical ceiling for cloud providers; Ollama shifts the ceiling to local GPU capacity.
  • Establish a per-run spend budget and an alert. The failure mode is not a crash, it is a quiet $400 nightly job.

Failure modes

Failure Impact Mitigation
Provider outage or rate limit mid-run Partial, inconsistent docs Idempotent re-run; verify exit codes; cache makes retries cheap
Token truncation on large files Confidently wrong documentation Cap processed file size; split large classes; spot-check output
Prompt/model change Full rebuild, cost spike Batch prompt changes; run with --no-cache knowingly, not accidentally
Source file rename Orphan cleanup deletes the doc Keep generated docs in a dedicated directory; review cleanup diffs
Cache file lost or corrupted Full reprocessing Persist cache in CI cache; pin --cache-path explicitly
Hallucinated behavior in docs Team trusts incorrect documentation Mandatory human review; label generated docs as AI-authored with a run timestamp
Secrets in scanned files Credential leak to third-party API Restrict extensions and skip dirs; exclude .env, fixtures, seeders; prefer Ollama/Azure for sensitive repos
Duplicate Jira/Confluence artifacts on re-run Wiki and backlog pollution Validate idempotency before enabling; scope to a dedicated space

Ramp-up

  • Technically trivial: one command, one config publish, one env key. A developer is productive in under an hour.
  • Organizationally non-trivial: the real cost is establishing trust in AI-generated documentation and assigning ownership of prompt quality. Without a review gate and a prompt owner, output degrades into unreviewed noise that the team stops reading — the most common outcome for tools in this category.
  • Recommended success metrics for the first quarter: cost per 1k LOC documented, documentation coverage percentage, reviewer acceptance rate, and reduction in onboarding questions attributable to generated docs. If acceptance rate stays low after two prompt iterations, treat the pilot as failed and fall back to conventional documentation tooling rather than expanding coverage.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
ably/pubsub-server
mstfkhazaal/defender
mfonte/base62x
karnoweb/metapilot
tobya/bcsapiwrapper
swalker2/cpanel
vish4395/laravel-translation-manager
morningtrain/economic
teksite/systeminfo-laravel
atomcms/voting
run6/weather
siokas/laravelembeddirectives
adamlien/pkuuids
gilsonsouza/lara-doc-generator
manelgavalda/enrollment_mobile
unabomber/timezone
delatbabel/contacts
astritzeqiri/g-recaptcha
kevinongko/laravel-genode
developeruz/laravel-analytics