## Summary - add the structured subject-resolution foundation for baseline compare and baseline capture, including capability guards, subject descriptors, resolution outcomes, and operator action categories - persist structured evidence-gap subject records and update compare/capture surfaces, landing projections, and cleanup tooling to use the new contract - add Spec 163 artifacts and focused Pest coverage for classification, determinism, cleanup, and DB-only rendering ## Validation - `vendor/bin/sail bin pint --dirty --format agent` - `vendor/bin/sail artisan test --compact tests/Unit/Support/Baselines tests/Feature/Baselines tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php` ## Notes - verified locally that a fresh post-restart baseline compare run now writes structured `baseline_compare.evidence_gaps.subjects` records instead of the legacy broad payload shape - excluded the separate `docs/product/spec-candidates.md` worktree change from this branch commit and PR Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #193
26 lines
949 B
PHP
26 lines
949 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Support\Baselines;
|
|
|
|
enum ResolutionOutcome: string
|
|
{
|
|
case ResolvedPolicy = 'resolved_policy';
|
|
case ResolvedInventory = 'resolved_inventory';
|
|
case PolicyRecordMissing = 'policy_record_missing';
|
|
case InventoryRecordMissing = 'inventory_record_missing';
|
|
case FoundationInventoryOnly = 'foundation_inventory_only';
|
|
case ResolutionTypeMismatch = 'resolution_type_mismatch';
|
|
case UnresolvableSubject = 'unresolvable_subject';
|
|
case InvalidSupportConfig = 'invalid_support_config';
|
|
case PermissionOrScopeBlocked = 'permission_or_scope_blocked';
|
|
case AmbiguousMatch = 'ambiguous_match';
|
|
case InvalidSubject = 'invalid_subject';
|
|
case DuplicateSubject = 'duplicate_subject';
|
|
case RetryableCaptureFailure = 'retryable_capture_failure';
|
|
case CaptureFailed = 'capture_failed';
|
|
case Throttled = 'throttled';
|
|
case BudgetExhausted = 'budget_exhausted';
|
|
}
|