## Summary - implement the provider capability registry and derived capability evaluation flow - update provider connections, onboarding, required-permissions diagnostics, and provider blocker translation to use capability-first summaries - add bounded unit, feature, and browser test coverage plus the prepared Spec 283 artifacts ## Notes - branch: `283-provider-capability-registry` - commit: `74e75c3e` - no additional validation commands were run in this git/PR flow step Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #342
3.7 KiB
3.7 KiB
Quickstart: Provider Capability Registry
Purpose
Use this guide to review or later implement Spec 283 as one bounded provider-capability slice.
Preconditions
- Spec
281provider-boundary groundwork is already present on the implementation branch. - Work stays inside
apps/platformand this spec package. - No application implementation from adjacent Specs
284through287is pulled in.
Reviewer flow
- Read spec.md, plan.md, research.md, and data-model.md together.
- Confirm the package introduces one derived capability registry and no new persistence.
- Confirm the initial capability-key set stays bounded to current repo workflows only.
- Confirm provider-owned evidence such as raw Graph permission names remains nested, not primary operator vocabulary.
- Confirm provider-connections, onboarding, required-permissions diagnostics, blocked-operation messaging, and support guidance all point at the same capability contract.
Suggested implementation order
- Add the small provider capability registry, status enum, and evaluator.
- Map current provider-backed operations to capability keys in the shared provider operation registry.
- Update the shared provider-operation start gate and blocked-result context.
- Update provider-connections summaries and onboarding capability assist.
- Update required-permissions grouping and shared provider reason translation.
- Run the exact bounded proof commands below.
Narrow proof commands
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && REPO_ROOT="$(git rev-parse --show-toplevel)" && \
(cd "$REPO_ROOT/apps/platform" && ./vendor/bin/sail artisan test --compact \
tests/Unit/Providers/ProviderCapabilityRegistryTest.php \
tests/Unit/Verification/TenantPermissionCapabilityMappingTest.php)
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && REPO_ROOT="$(git rev-parse --show-toplevel)" && \
(cd "$REPO_ROOT/apps/platform" && ./vendor/bin/sail artisan test --compact \
tests/Feature/Providers/ProviderCapabilityEvaluationTest.php \
tests/Feature/Providers/ProviderOperationCapabilityGateTest.php \
tests/Feature/Filament/ProviderConnectionCapabilitySummaryTest.php \
tests/Feature/Onboarding/ManagedTenantOnboardingCapabilityAssistTest.php \
tests/Feature/RequiredPermissions/RequiredPermissionsCapabilityGroupingTest.php \
tests/Feature/SupportDiagnostics/ProviderCapabilityReasonTranslationTest.php)
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && REPO_ROOT="$(git rev-parse --show-toplevel)" && \
(cd "$REPO_ROOT/apps/platform" && ./vendor/bin/sail artisan test --compact \
tests/Browser/Spec283ProviderCapabilityRegistrySmokeTest.php)
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && REPO_ROOT="$(git rev-parse --show-toplevel)" && \
(cd "$REPO_ROOT/apps/platform" && ./vendor/bin/sail bin pint --dirty --format agent)
Expected smoke path
- Open one provider connection.
- Verify the page shows a capability-first summary for at least one workflow.
- Use the required-permissions or onboarding assist entry point.
- Confirm the diagnostic page shows the same capability label and supporting permission evidence.
- Trigger one blocked or allowed provider-backed workflow and confirm the shared start outcome uses the same capability language.
Stop conditions
- Stop if implementation tries to add a provider-capability table or provider ledger.
- Stop if new capability keys describe workflows that do not yet exist in repo truth.
- Stop if raw Graph permission names return as the primary operator-facing summary on the touched surfaces.
- Stop if the slice widens into routing, RBAC, taxonomy, copy, or quality-gate work reserved for later specs.