capell-app / discovery-foundation
Shared public URL registry and deterministic discovery matching primitives for Capell.
Package info
github.com/capell-app/discovery-foundation
pkg:composer/capell-app/discovery-foundation
Requires
- php: ^8.4
- capell-app/core: ^1.0.25
- lorisleiva/laravel-actions: ^2.8
- spatie/laravel-data: ^4.5
- spatie/laravel-package-tools: ^1.14.1
Requires (Dev)
- orchestra/testbench: ^9.0
- pestphp/pest: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
This package is auto-updated.
Last update: 2026-08-14 17:23:45 UTC
README
What This Plugin Adds
Discovery Foundation is an Available, No schema impact Capell package in the Capell Foundation product group. It ships as capell-app/discovery-foundation and extends these surfaces: shared.
Discovery Foundation provides the shared public URL registry and deterministic matching primitives used by Capell discovery features.
First-party packages can contribute scoped, indexable URLs without duplicating registry or text-matching logic.
Evidence: src/Actions/BuildPublicUrlRegistryAction.php, src/Actions/ScorePublicUrlCandidateAction.php, src/Contracts/PublicUrlContributor.php, src/Health/DiscoveryFoundationHealthCheck.php, src/Actions/DiscoverPublicPagesAction.php, tests/Integration/Actions/BuildPublicUrlRegistryActionTest.php.
Status details:
- Status: Available
- Tier: free
- Bundle: foundation
- Composer package:
capell-app/discovery-foundation - Namespace:
Capell\DiscoveryFoundation - Theme key: not applicable
Why It Matters
For developers: Typed contracts keep URL discovery neutral while compatibility shims let existing Site Discovery consumers migrate across the current major version.
For teams: Teams get consistent sitemap, search, SEO, and 404 discovery inputs without analytics, AI calls, or public authoring data.
Evidence: src/Data/PublicUrlRegistryEntryData.php, src/Contracts/PublicUrlContributor.php, src/Actions/BuildPublicUrlRegistryAction.php, src/Providers/DiscoveryFoundationServiceProvider.php.
Screens And Workflow
Docs gap: add docs/screenshots.json before promoting this package with visual workflow claims.
- Admin index screen if the package has a Filament resource.
- Create/edit screen if editors create records.
- Settings/configuration screen when settings exist.
- Frontend output when the package renders public pages.
- Package detail or install intent screen when marketplace-owned.
Technical Shape
- Service providers:
Capell\DiscoveryFoundation\Providers\DiscoveryFoundationServiceProvider. - Extension contracts:
PublicUrlContributor. - Actions:
BuildPublicUrlRegistryAction,DiscoverPublicPagesAction,NormalizeSearchTextAction,NormalizeTextAction,ReplacePhraseAction,ResolveTypoCorrectionAction,ScorePublicUrlCandidateAction. - Data objects:
DiscoverablePageData,PublicUrlCandidateScoreData,PublicUrlData,PublicUrlRegistryEntryData. - Manifest action API:
buildPublicUrlRegistry: Capell\DiscoveryFoundation\Actions\BuildPublicUrlRegistryAction,discoverPublicPages: Capell\DiscoveryFoundation\Actions\DiscoverPublicPagesAction,replacePhrase: Capell\DiscoveryFoundation\Actions\ReplacePhraseAction. - Manifest contributions:
health-check: Capell\DiscoveryFoundation\Health\DiscoveryFoundationHealthCheck. - Health checks:
Capell\DiscoveryFoundation\Health\DiscoveryFoundationHealthCheck. - Cache tags:
discovery-foundation.
Data Model
- Required tables:
pages,sites,site_domains. - Migration impact: run host migrations through the package install flow before opening package surfaces.
- Deletion/retention behaviour: Docs gap: migrations and manifest contributions do not prove a cascade, pruning command, or timed retention policy.
Install Impact
- Required packages:
capell-app/core. - Admin navigation: no admin page or resource contribution is declared.
- Admin/editor extensions: none declared.
- Permissions: none declared in
capell.json. - Public routes: none declared.
- Database changes: no package migrations declared.
- Config: no package config files.
- Settings: no package settings declared.
- Queues or schedules: none declared.
- Cache tags:
discovery-foundation. - Commands: none declared.
Common Pitfalls
- Keep required Capell packages on compatible v4 releases:
capell-app/core. - Custom write integrations must preserve invalidation for
discovery-foundationcache tags.
Troubleshooting
| Symptom | Likely cause | Check | Fix |
|---|---|---|---|
| Package surface is missing after install | Provider or manifest is not loaded | Confirm capell.json, package composer.json, and provider registration |
Reinstall the package, refresh Composer autoload, and clear host caches |
Quick Start
- Install the package:
composer require capell-app/discovery-foundation. - No package-specific setup command or migrations are declared.
- Verify the package provider and manifest contributions are registered in the host app.
Next Steps
- Package docs
- Overview
- Troubleshooting
- Screenshot contract
- Capell content language plan
- Capell documentation design system
- Capell and package ERD notes
- Focused tests:
vendor/bin/pest packages/discovery-foundation/tests --configuration=phpunit.xml.