This repository is the source of truth for the public PHPinnacle package collection. Each directory under packages/ is an independently releasable Composer package with its own dependencies, tests, and documentation.
| Package | Description |
|---|---|
phpinnacle/babylon |
Filament panel localization with session middleware, locale selection, and profile integration. |
phpinnacle/canvio |
Framework-agnostic PHP client for the Canvas LMS REST API with typed core resources and generic endpoint access. |
phpinnacle/casus |
Application exception recorder and Filament browser for failures, request context, and recurring exceptions. |
phpinnacle/cerber |
Filament authentication and authorization for users, roles, permissions, OAuth, API tokens, and impersonation. |
phpinnacle/chronica |
Auditable Eloquent activity history and Filament timelines built on Spatie Activitylog. |
phpinnacle/comments |
Polymorphic discussion threads with Livewire and Filament integrations, policies, and pruning. |
phpinnacle/common |
Shared Laravel and Filament utilities, including ranges, filters, columns, and reusable concerns. |
phpinnacle/dendros |
Hierarchical Eloquent and Filament building blocks using materialized paths and tree-aware interfaces. |
phpinnacle/eidos |
JSON Schema generation, Laravel validation rules, Eloquent introspection, and Filament schema, mapping, and binding fields. |
phpinnacle/franz |
Framework-agnostic PHP client for the Kafka Connect REST API with typed connector management. |
phpinnacle/grimoire |
Project-specific linter rules and analyzer extensions for Mago. |
phpinnacle/iconic |
Searchable Filament icon picker backed by Phosphor icons. |
phpinnacle/intl |
Symfony Intl-backed country, language, locale, and timezone dictionaries with Laravel and Filament integration. |
phpinnacle/jason |
Framework-independent JSON Schema values, builders, traversal, local references, and canonical JSONPath codecs. |
phpinnacle/langcat |
Framework-agnostic PHP client for the LangLion API with typed requests and responses. |
phpinnacle/midas |
Laravel and Filament payment orchestration for methods, plans, cards, intents, adjustments, and providers. |
phpinnacle/money |
Integer-based money value object with currency metadata, formatting, Eloquent, Livewire, and Filament support. |
phpinnacle/palette |
Color palette utilities and a Filament color picker supporting Tailwind, Filament, and custom sources. |
phpinnacle/pinax |
Polymorphic Filament media library with uploads, galleries, folders, ordering, and marks. |
phpinnacle/porta |
Webhook integration management for Filament with transforms, queued processing, retries, and handler registration. |
phpinnacle/razor |
Template-driven document generation for Filament with Twig and Handlebars engines, previews, and history. |
phpinnacle/recens |
Tracks recently visited Filament pages per user and renders a recent-items menu. |
phpinnacle/rosetta |
Framework-independent reader and mapper for 1C:Enterprise infobase metadata. |
phpinnacle/sequentia |
Atomic scoped, bucketed, and date-aware sequence numbers for Laravel models. |
phpinnacle/settings |
Registry-driven Filament settings with groups, nested navigation, persistence, and per-user preferences. |
phpinnacle/signum |
Persistent record-scoped alerts with severity, actions, policies, and Filament components. |
phpinnacle/skeleton |
Starter template for PHPinnacle Filament plugins. |
phpinnacle/stylus |
Filament rich editor extensions for semantic HTML, description lists, conditions, and structured Twig templates. |
phpinnacle/tags |
Reusable polymorphic tagging with Filament input, column, filter, and bulk assignment components. |
phpinnacle/tempo |
Date and time utilities, Filament pickers and filters, clocks, calendars, and recurrence expansion. |
Packages are governed by the license declared in their own directory under packages/.
Work inside the package that owns the behavior and use its README and composer.json for package-specific setup and verification. Consumer applications should install these packages through Composer and must not modify copies under vendor/.
Install the monorepo development tools and run the PHP checks from the repository root:
composer install
composer lint
composer testcomposer test runs all package PHPUnit and Pest suites.
CI runs on pushes to any branch. A new run cancels any unfinished CI run for the same branch.
Run the Update Agent Skills workflow manually to refresh the generated Laravel,
Filament, Livewire, Tailwind, and testing skills in .agents/skills. It creates a
temporary Laravel application using the framework, Filament, Livewire, and Pest
versions from this repository's composer.lock, installs Boost 2, and generates the skills through
boost:install --skills. When skills change, the workflow creates an
agent-skills-{UTC timestamp}-{run ID} branch from the selected branch, commits
and pushes the changes using GITHUB_TOKEN, and opens a pull request targeting
the selected branch. The run summary includes the branch and pull request URL.
Enable Allow GitHub Actions to create and approve pull requests under
Settings > Actions > General > Workflow permissions for this repository.
These pushes do not trigger the push-based CI workflow. Keep repository-specific
rules in AGENTS.md because the generated skill directories are replaced on update.
Run composer format to apply the repository's Mago formatting rules.
Run composer phpstan to run PHPStan level 6 static analysis across all package sources.
composer lint also runs stricter analysis for the following package groups. Each group can be checked separately:
| Command | Level | Packages |
|---|---|---|
composer phpstan:level10 |
10 | babylon, canvio, casus, comments, eidos, ferry, franz, iconic, intl, jason, langcat, palette, recens, rosetta, sequentia, signum, tags |
Packages are available from Packagist and require no custom Composer repository.
The CD workflow splits each publishable package to its generated GitHub repository on master. Package mirrors update Packagist automatically and are deployment artifacts; changes belong in this monorepo. The skeleton package remains monorepo-only as the template for new packages.
Active development packages are published as dev-master with a 1.x-dev branch alias.
Require the active development line explicitly:
composer config minimum-stability dev
composer config prefer-stable true
composer require phpinnacle/common:1.x-devStable snapshots are published from master with the manual Release workflow. Enter one semantic version without a v prefix and optionally a package name. When no package is selected, the workflow tags every publishable package mirror at the same version.