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 || ^11.0
- pestphp/pest: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
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
BuildPublicUrlRegistryActionDiscoverPublicPagesActionNormalizeSearchTextActionNormalizeTextActionReplacePhraseActionResolveTypoCorrectionActionScorePublicUrlCandidateAction
Data objects
DiscoverablePageDataPublicUrlCandidateScoreDataPublicUrlDataPublicUrlRegistryEntryData
Manifest action API
buildPublicUrlRegistry: Capell\DiscoveryFoundation\Actions\BuildPublicUrlRegistryActiondiscoverPublicPages: Capell\DiscoveryFoundation\Actions\DiscoverPublicPagesActionreplacePhrase: 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: no package permission declarations or Shield gates detected; host access rules still apply.
- 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. - 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.