Host, Package, Or App Code
Use this page before adding a feature, guide, command, or extension point. Capell stays maintainable when each change lands where it is owned.
Decision Table
Section titled “Decision Table”| If the change… | Put it in… |
|---|---|
| Changes sites, pages, layouts, themes, media contracts, package discovery, install/upgrade primitives, or shared settings support | capell-4/packages/core |
| Changes the Filament panel, admin resources, dashboards, permissions, settings UI, admin bridges, or editor workflows | capell-4/packages/admin |
| Changes public request resolution, page rendering, render hooks, frontend settings, public HTML safety, or frontend package integration | capell-4/packages/frontend |
| Changes installer screens, install cleanup, or browser installer flow | capell-4/packages/installer |
| Changes Marketplace browsing, account linking, package acquisition, or install authorization records | capell-4/packages/marketplace |
| Adds a product feature that can be installed, disabled, versioned, or sold independently | ../capell-packages-4/packages/<package> |
| Adds one-off project glue for a client app | the consuming Laravel app |
| Documents a feature owned by a companion package | that companion package docs |
| Documents public marketing, brand, or sales copy | /Users/ben/Sites/packages/capell/docs |
Package Is The Default For Features
Section titled “Package Is The Default For Features”Create or update a package when the feature has its own:
- routes, commands, jobs, events, or settings;
- Filament resources, pages, widgets, or admin tools;
- public frontend output;
- migrations or package-owned data model;
- install command or Marketplace surface;
- tests and release cadence.
Do not hide optional feature behavior in Core, Admin, or Frontend just because those packages expose the extension point.
Host Repo Owns Contracts
Section titled “Host Repo Owns Contracts”The host repo should document contracts that packages consume:
- admin bridges and admin surface contributions;
- schema extenders and lifecycle events;
- render hooks and frontend asset registration;
- cache invalidation and static export hooks;
- public HTML safety rules;
- package discovery, manifests, and installer contracts.
The package repo should document the package feature itself.