diff --git a/app/Console/Commands/ImportDocumentBatch.php b/app/Console/Commands/ImportDocumentBatch.php
index 4f6542dd..f1b97cc9 100644
--- a/app/Console/Commands/ImportDocumentBatch.php
+++ b/app/Console/Commands/ImportDocumentBatch.php
@@ -254,7 +254,7 @@ class ImportDocumentBatch extends Command
throw new RuntimeException('File size is outside the 1 byte to 10 MiB import limit.');
}
$mime = (new \finfo(FILEINFO_MIME_TYPE))->file($path);
- $allowed = ['application/pdf', 'text/plain', 'text/csv', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
+ $allowed = ['application/pdf', 'application/json', 'text/plain', 'text/csv', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'image/png', 'image/jpeg', 'image/webp'];
if (! is_string($mime) || ! in_array($mime, $allowed, true)) {
throw new RuntimeException('Detected media type is not supported by the document library.');
diff --git a/app/Http/Controllers/InvestorPathController.php b/app/Http/Controllers/InvestorPathController.php
index 14a57c11..5a09262b 100644
--- a/app/Http/Controllers/InvestorPathController.php
+++ b/app/Http/Controllers/InvestorPathController.php
@@ -3,9 +3,11 @@
namespace App\Http\Controllers;
use App\Services\InvestorPath;
+use App\Services\LegacyContent;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
use Inertia\Inertia;
use Inertia\Response;
@@ -21,7 +23,20 @@ class InvestorPathController extends Controller
public function create(Request $request, InvestorPath $path): JsonResponse|RedirectResponse
{
- $id = $path->create($request->user(), $request->all());
+ $source = $request->input('content_resource_id');
+ if ($source !== null) {
+ abort_unless(filter_var($source, FILTER_VALIDATE_INT), 422);
+ app(LegacyContent::class)->articleForResource((int) $source);
+ }
+ $id = DB::transaction(function () use ($path, $request, $source): string {
+ $id = $path->create($request->user(), $request->all());
+ if ($source !== null) {
+ $case = $path->view($request->user(), $id)['case'];
+ app(LegacyContent::class)->attach($request->user(), $id, ['version' => $case['version'], 'resource_id' => (int) $source]);
+ }
+
+ return $id;
+ });
return $request->expectsJson() ? response()->json(['id' => $id], 201) : redirect('/investimentos/'.$id)->with('success', 'Investimento guardado no seu dossier.');
}
diff --git a/app/Http/Controllers/LegacyContentController.php b/app/Http/Controllers/LegacyContentController.php
new file mode 100644
index 00000000..ff13232b
--- /dev/null
+++ b/app/Http/Controllers/LegacyContentController.php
@@ -0,0 +1,70 @@
+validate(['q' => 'nullable|string|max:120']);
+ $articles = $legacy->articlesForGroup($sectorSlug);
+ $root = config('legacy_content.groups.'.$sectorSlug.'.root');
+ $article = $legacy->article($root);
+ $q = $filters['q'] ?? '';
+ $articles = array_values(array_filter($articles, fn ($item) => $q === ''
+ || str_contains(mb_strtolower(strip_tags($item['html'].' '.$item['title'])), mb_strtolower($q))));
+ $match = $articles !== [];
+
+ return Inertia::render('portal/legacy', ['article' => $article, 'articles' => $articles, 'view' => 'landing', 'query' => $q, 'match' => $match]);
+ }
+
+ public function article(Request $request, LegacyContent $legacy, string $legacySlug = 'agronegocio'): Response
+ {
+ return Inertia::render('portal/legacy', ['article' => $legacy->article($legacySlug), 'view' => 'article', 'contentContext' => $this->context($request)]);
+ }
+
+ public function start(Request $request, LegacyContent $legacy, InvestorPath $path, string $legacySlug = 'agronegocio'): Response
+ {
+ abort_unless($path->available(), 404);
+ $article = $legacy->article($legacySlug);
+
+ return Inertia::render('investor-path/index', ['contexts' => $path->contexts($request->user()), 'contentSource' => $article]);
+ }
+
+ public function attach(Request $request, string $id, LegacyContent $legacy): JsonResponse|RedirectResponse
+ {
+ $legacy->attach($request->user(), $id, $request->all());
+
+ return $request->expectsJson() ? response()->json(['saved' => true]) : redirect('/investimentos/'.$id)->with('success', 'Referência guardada no dossier.');
+ }
+
+ /** @return array{id: string, title: string}|null */
+ private function context(Request $request): ?array
+ {
+ $data = $request->validate(['context' => 'nullable|uuid']);
+ if (! $request->user() || empty($data['context'])) {
+ return null;
+ }
+ try {
+ $case = app(VirtualDesk::class)->case($request->user(), $data['context'], true);
+
+ return $case->closed_at ? null : ['id' => $case->id, 'title' => $case->title];
+ } catch (HttpException $error) {
+ if (! in_array($error->getStatusCode(), [403, 404], true)) {
+ throw $error;
+ }
+
+ return null; // Consultation stays public; an unauthorized private context is never returned.
+ }
+ }
+}
diff --git a/app/Http/Controllers/OpportunityManagementController.php b/app/Http/Controllers/OpportunityManagementController.php
index 1b88eb5c..f323d8c9 100644
--- a/app/Http/Controllers/OpportunityManagementController.php
+++ b/app/Http/Controllers/OpportunityManagementController.php
@@ -7,6 +7,7 @@ use App\Models\Opportunity;
use App\Models\Sector;
use App\Services\InvestmentGeography;
use App\Services\OpportunityCanonicalContract;
+use App\Services\OpportunityCanonicalResponse;
use App\Services\OpportunityManagement;
use App\Services\OpportunityManagementInstallation;
use App\Services\OpportunityMaturity;
@@ -126,6 +127,7 @@ class OpportunityManagementController extends Controller
'canonicalOptions' => ($record?->owner_user_id !== null || str_starts_with($request->path(), 'minhas-oportunidades')) ? app(OpportunityCanonicalContract::class)->options($request->user(), $record) : null,
'workflowState' => $record ? $access->state($record) : null,
'publicationState' => $record?->publicationPresentation(),
+ 'canonicalResponse' => $record?->owner_user_id !== null ? app(OpportunityCanonicalResponse::class)->read($request->user(), $record) : null,
'canEditDraft' => $record ? $access->canEdit($request->user(), $record) : false,
'workflowParticipants' => $record && $record->owner_user_id !== null ? app(OpportunityProfileWorkflow::class)->participants($request->user(), $record) : ['validators' => [], 'publishers' => []],
'workflowTasks' => $record && $record->owner_user_id !== null ? app(OpportunityWorkflowTasks::class)->listing($record) : [],
@@ -151,6 +153,12 @@ class OpportunityManagementController extends Controller
return response()->json(['id' => $record->id, 'etag' => $service->etag($record), 'message' => 'Rascunho guardado no servidor. Não foi submetido, aprovado ou publicado.'], $id ? 200 : 201)->header('ETag', '"'.$service->etag($record).'"');
}
+ public function canonicalResponse(Request $request, int $id, OpportunityCanonicalResponse $response): JsonResponse
+ {
+ return response()->json($response->read($request->user(), Opportunity::withTrashed()->findOrFail($id)))
+ ->header('Cache-Control', 'private, no-store');
+ }
+
public function lifecycle(Request $request, int $id, OpportunityManagement $service): JsonResponse
{
abort_unless($service->installed(), 503);
diff --git a/app/Http/Controllers/OpportunityResourceController.php b/app/Http/Controllers/OpportunityResourceController.php
index ea39ba01..2646a0e1 100644
--- a/app/Http/Controllers/OpportunityResourceController.php
+++ b/app/Http/Controllers/OpportunityResourceController.php
@@ -138,13 +138,20 @@ class OpportunityResourceController extends Controller
$districts = [];
foreach ($locations as $location) {
$p = $location->payload;
- if (empty($p['province_id']) || empty($p['district_id']) || empty($p['role'])) {
- $issues[] = 'Uma localização tem província, distrito ou papel pendente.';
+ $mozambican = empty($p['country_code']) || $p['country_code'] === 'MZ';
+ if ($mozambican && (empty($p['province_id']) || empty($p['district_id']))) {
+ $issues[] = 'Uma localização em Moçambique tem província ou distrito pendente.';
}
- if (! empty($p['district_id'])) {
+ if (! $mozambican && array_filter(array_intersect_key($p, array_flip(['province_id', 'district_id', 'admin_post_id', 'locality_id'])))) {
+ $issues[] = 'Uma localização noutro país conserva uma seleção territorial de Moçambique incompatível; corrigir explicitamente sem converter o histórico.';
+ }
+ if (empty($p['role'])) {
+ $issues[] = 'Uma localização tem papel pendente.';
+ }
+ if ($mozambican && ! empty($p['district_id'])) {
$districts[$p['district_id']] = true;
}
- if (! empty($p['province_id'])) {
+ if ($mozambican && ! empty($p['province_id'])) {
$provinces[$p['province_id']] = true;
}
if (($p['role'] ?? null) === 'other' && empty($p['role_description'])) {
@@ -164,7 +171,7 @@ class OpportunityResourceController extends Controller
$issues[] = 'Multidistrito/interprovincial exige fundamento operacional de 50–1000 caracteres.';
}
if ($locations) {
- $issues[] = 'Modo preparado: '.(count($locations) > 1 ? 'multiple' : 'single').'; âmbito derivado: '.(count($provinces) > 1 ? 'interprovincial' : (count($districts) > 1 ? 'multi_district' : 'district')).'. Sem conversão de contexto em implantação.';
+ $issues[] = 'Modo preparado: '.(count($locations) > 1 ? 'multiple' : 'single').'; âmbito administrativo moçambicano derivado: '.(count($provinces) > 1 ? 'interprovincial' : (count($districts) > 1 ? 'multi_district' : ($districts ? 'district' : 'sem seleção moçambicana'))).'. Sem conversão de contexto em implantação.';
}
foreach (['images', 'documents'] as $kind) {
foreach ($resources[$kind] as $r) {
diff --git a/app/Http/Controllers/PortalServicesController.php b/app/Http/Controllers/PortalServicesController.php
index 7b07a21d..cbcd2bb0 100644
--- a/app/Http/Controllers/PortalServicesController.php
+++ b/app/Http/Controllers/PortalServicesController.php
@@ -8,6 +8,7 @@ use App\Models\Sector;
use App\Services\CountryCatalogue;
use App\Services\IdempotencyConflict;
use App\Services\InterestSubmission;
+use App\Services\LegacyContent;
use App\Services\Malware\MalwareScanner;
use App\Services\VerifiedDocumentBinary;
use App\Services\VirtualDesk;
@@ -366,7 +367,7 @@ class PortalServicesController extends Controller
public function upload(Request $request): RedirectResponse
{
- $this->validateManagement($request, ['file' => ['required', 'file', 'mimetypes:application/pdf,text/plain,text/csv,image/jpeg,image/png,image/webp,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.oasis.opendocument.text', 'max:10240'],
+ $this->validateManagement($request, ['file' => ['required', 'file', 'mimetypes:application/pdf,text/plain,text/csv,image/jpeg,image/png,image/webp,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.oasis.opendocument.text'.(app(LegacyContent::class)->available() ? ',application/json' : ''), 'max:10240'],
'original_source' => ['nullable', 'url:https', 'max:2000'], 'issuer' => ['nullable', 'string', 'max:180']]);
$file = $request->file('file');
$checksum = hash_file('sha256', $file->getRealPath());
@@ -635,7 +636,9 @@ class PortalServicesController extends Controller
$data = $this->validateManagement($request, [
'document_id' => ['required', 'uuid'], 'title' => ['required', 'string', 'max:200'],
'description' => ['nullable', 'string', 'max:4000'], 'category' => ['required', 'string', 'max:80'],
- 'topic' => ['required', 'string', 'max:80'], 'document_type' => ['required', 'in:legislation,procedure,official_form,digital_adaptation,guidance_template,guide,study,reference_data,unknown'],
+ // QA legacy originals may have no theme (e.g. a shared image). Do not invent a sector to disclose an authorized original.
+ 'topic' => [app(\App\Services\LegacyContent::class)->available() ? 'nullable' : 'required', 'string', 'max:80'],
+ 'document_type' => ['required', 'in:legislation,procedure,official_form,digital_adaptation,guidance_template,guide,study,reference_data,unknown'],
'issuer' => ['nullable', 'string', 'max:180'], 'document_number' => ['nullable', 'string', 'max:120'],
'document_date' => ['nullable', 'date_format:Y-m-d'], 'source_url' => ['nullable', 'url:https', 'max:2000'],
'applicable_from' => ['nullable', 'date_format:Y-m-d'],
@@ -656,6 +659,7 @@ class PortalServicesController extends Controller
'associations.*.applicability' => ['required', 'in:required,conditional,support,optional_template,evidence'],
'associations.*.condition_text' => ['nullable', 'string', 'max:2000'], 'associations.*.basis_reference' => ['nullable', 'string', 'max:2000'],
]);
+ $data['topic'] = $data['topic'] ?? '';
if (! empty($data['applicable_from']) && ! empty($data['applicable_until']) && $data['applicable_until'] < $data['applicable_from']) {
throw $this->managementValidationException(['applicable_until' => 'A data final deve ser igual ou posterior à data inicial.']);
}
diff --git a/app/Http/Controllers/VirtualDeskController.php b/app/Http/Controllers/VirtualDeskController.php
index f078985a..b803d090 100644
--- a/app/Http/Controllers/VirtualDeskController.php
+++ b/app/Http/Controllers/VirtualDeskController.php
@@ -144,7 +144,7 @@ class VirtualDeskController extends Controller
}
}
$this->auditRead($request, 'desk_requests', $id);
- $data = ['countries' => app(CountryCatalogue::class)->all(), 'request' => [...(array) $row, 'payload' => $payload, 'submitted_snapshot' => $desk->decode($row->submitted_snapshot), 'editable_fields' => json_decode($row->editable_fields ?? '[]', true)],
+ $data = ['countries' => app(CountryCatalogue::class)->all(), 'toolPrefill' => $desk->requestToolPrefill($request->user(), $row), 'request' => [...(array) $row, 'payload' => $payload, 'submitted_snapshot' => $desk->decode($row->submitted_snapshot), 'editable_fields' => json_decode($row->editable_fields ?? '[]', true)],
'case' => ['id' => $case->id, 'title' => $case->title], 'caseVersion' => $case->version, 'definition' => $definition, 'territoryPaths' => $territoryPaths,
'serviceSource' => json_decode(DB::table('desk_service_versions')->where('id', $row->service_version_id)->value('source'), true),
'owner' => $desk->owns($request->user(), $case), 'manager' => $request->user()->can('manage-portal'), 'analyst' => (int) $row->analyst_id === $request->user()->id,
diff --git a/app/Http/Middleware/HandleInertiaRequests.php b/app/Http/Middleware/HandleInertiaRequests.php
index fe276580..40c9707a 100644
--- a/app/Http/Middleware/HandleInertiaRequests.php
+++ b/app/Http/Middleware/HandleInertiaRequests.php
@@ -3,6 +3,7 @@
namespace App\Http\Middleware;
use App\Services\InvestorPath;
+use App\Services\LegacyContent;
use App\Services\OpportunityManagement;
use App\Services\PortalProfileAccess;
use Illuminate\Http\Request;
@@ -51,6 +52,7 @@ class HandleInertiaRequests extends Middleware
'name' => config('app.name'),
'profileAccess' => app(PortalProfileAccess::class)->navigation($request->user()),
'portalOperator' => config('portal.operator_name'),
+ 'legacyContentEnabled' => app(LegacyContent::class)->available(),
'educationEnabled' => (bool) config('education.enabled', false),
'aiEnabled' => (bool) config('investmoz_ai.enabled', false),
'existingBusinessEnabled' => (bool) config('existing-business.enabled', false),
diff --git a/app/Services/InvestorPath.php b/app/Services/InvestorPath.php
index 21ec6d3e..ed68640e 100644
--- a/app/Services/InvestorPath.php
+++ b/app/Services/InvestorPath.php
@@ -131,6 +131,7 @@ final class InvestorPath
'canWrite' => $owner && ! $case->closed_at, 'canReview' => $manager && (int) $case->user_id !== $actor->id && ! $case->closed_at,
'next' => $next ? ['code' => $next['code'], 'title' => $next['title'], 'action' => 'Preparar', 'href' => '#'.$next['code']] : null,
'results' => $results, 'requests' => $requests, 'documents' => $documents,
+ 'content_sources' => ($owner || $manager) ? ($path['content_sources'] ?? []) : [],
'tasks' => DB::table('tasks')->where('desk_case_id', $id)
->whereNull('deleted_at')
->when(! $owner && ! $manager, fn ($q) => $q->where('assignee_user_id', $actor->id))
diff --git a/app/Services/LegacyContent.php b/app/Services/LegacyContent.php
new file mode 100644
index 00000000..6fa6f9b2
--- /dev/null
+++ b/app/Services/LegacyContent.php
@@ -0,0 +1,246 @@
+environment('testing')
+ || config('database.connections.pgsql.host') !== '127.0.0.1'
+ || config('database.connections.pgsql.url') || (int) config('database.connections.pgsql.port') !== 55441) {
+ return false;
+ }
+ $actual = DB::selectOne('SELECT current_database() AS database, inet_server_port() AS port');
+
+ return $actual && str_ends_with($actual->database, '_test') && (int) $actual->port === 55441
+ && $actual->database === config('database.connections.pgsql.database');
+ }
+
+ /** @return array */
+ public function article(string $slug = 'agronegocio'): array
+ {
+ abort_unless($this->available(), 404);
+ $identity = config('legacy_content.articles.'.$slug);
+ abort_unless(is_array($identity) && ($identity['publishable'] ?? false), 404);
+ $row = $this->publicResources()->where('d.external_id', $identity['external_id'])->first();
+ abort_unless($row !== null, 404);
+ $binary = app(VerifiedDocumentBinary::class)->respond($row);
+ $bytes = $binary instanceof BinaryFileResponse ? file_get_contents($binary->getFile()->getPathname()) : $binary->getContent();
+ abort_unless(is_string($bytes) && strlen($bytes) <= 10485760 && hash_equals(trim($row->sha256), hash('sha256', $bytes)), 404);
+ try {
+ $source = json_decode($bytes, true, 64, JSON_THROW_ON_ERROR);
+ } catch (\JsonException) {
+ abort(404);
+ }
+ abort_unless(is_array($source) && ($source['format'] ?? '') === 'investmoz-legacy-article-v1'
+ && ($source['source_url'] ?? '') === $row->source_url && $row->source_url === $identity['source_url']
+ && is_string($source['content_html'] ?? null) && trim(strip_tags($source['content_html'])) !== '', 404);
+ foreach (['title', 'author', 'legacy_category', 'published_at', 'modified_at'] as $key) {
+ abort_unless(is_string($source[$key] ?? null), 404);
+ }
+ abort_unless(is_int($source['legacy_id'] ?? null), 404);
+ $image = $this->publicResources()->where('d.sha256', $source['image_sha256'] ?? '')->where('d.media_type', 'image/png')->first();
+ $sector = Sector::where('slug', $identity['sector_slug'])->where('is_active', true)->first();
+ // These are independently published records in the same sector, not claims of article/project linkage.
+ $opportunities = $sector ? Opportunity::published()->where('sector_id', $sector->id)->latest('published_at')
+ ->limit(12)->get(['title', 'slug', 'province', 'summary']) : [];
+
+ return ['id' => (int) $row->resource_id, 'document_id' => $row->id, 'version' => (int) $row->metadata_version,
+ 'sha256' => trim($row->sha256), 'title' => $source['title'], 'author' => $source['author'],
+ 'legacy_id' => $source['legacy_id'], 'legacy_category' => $source['legacy_category'],
+ 'published_at' => $source['published_at'], 'modified_at' => $source['modified_at'], 'source_url' => $source['source_url'],
+ 'href' => '/'.$slug, 'html' => $this->localLinks($this->sanitize($source['content_html'])),
+ 'landing_href' => '/explorar/'.$identity['group'], 'start_href' => '/investimentos/a-partir-de/'.$slug,
+ 'group' => config('legacy_content.groups.'.$identity['group']),
+ 'related_articles' => $this->related($identity['group'], $slug),
+ 'image' => $image ? ['href' => '/documentos/'.$image->resource_id.'/view', 'sha256' => trim($image->sha256),
+ 'alt' => $slug === 'agronegocio' ? 'Campo agrícola ao pôr do sol; fotografia ilustrativa do artigo Agronegocio'
+ : 'Imagem ilustrativa original do artigo '.$source['title'], 'source_url' => $image->source_url] : null,
+ 'sector' => $sector?->only(['id', 'name', 'slug']), 'opportunities' => $opportunities,
+ 'territorial_references' => array_values(array_filter($slug === 'agronegocio' ? ['Pemba–Lichinga', 'Nacala', 'Vale do Zambeze', 'Beira', 'Limpopo', 'Maputo'] : [],
+ fn ($name) => str_contains(strip_tags($source['content_html']), $name))),
+ 'territorial_status' => 'Menções territoriais preservadas no artigo. Limites administrativos, parcelas e geometrias não associados automaticamente.',
+ 'library_href' => '/documentos/'.$row->resource_id,
+ 'consultation_state' => 'public', 'legal_state' => 'not_applicable', 'calculation_use' => false];
+ }
+
+ /** Resolve a library identity, preserving the already stored source URLs and versions. */
+ public function articleForResource(int $resourceId): array
+ {
+ abort_unless($this->available(), 404);
+ $externalId = $this->publicResources()->where('r.id', $resourceId)->first()?->external_id;
+ foreach (config('legacy_content.articles', []) as $slug => $identity) {
+ if ($identity['external_id'] === $externalId && $identity['publishable']) {
+ return $this->article($slug);
+ }
+ }
+ abort(422, 'Escolha um artigo disponível para consulta; a referência não foi guardada.');
+ }
+
+ /** @return list> */
+ public function articlesForGroup(string $group): array
+ {
+ abort_unless($this->available() && is_array(config('legacy_content.groups.'.$group)), 404);
+ $articles = [];
+ foreach ($this->related($group) as $item) {
+ $articles[] = $this->article($item['slug']);
+ }
+ abort_unless($articles !== [], 404);
+ return $articles;
+ }
+
+ /** @return list> */
+ private function related(string $group, ?string $except = null): array
+ {
+ $identities = array_filter(config('legacy_content.articles', []), fn ($identity, $slug) =>
+ $identity['group'] === $group && $identity['publishable'] && $slug !== $except, ARRAY_FILTER_USE_BOTH);
+ $resources = $this->publicResources()->whereIn('d.external_id', array_column($identities, 'external_id'))->get()->keyBy('external_id');
+ $result = [];
+ foreach ($identities as $slug => $identity) {
+ $row = $resources->get($identity['external_id']);
+ if ($row && $row->source_url === $identity['source_url']) {
+ $result[] = ['slug' => $slug, 'id' => (int) $row->resource_id, 'title' => $row->title, 'href' => '/'.$slug];
+ }
+ }
+ return $result;
+ }
+
+ private function localLinks(string $html): string
+ {
+ $public = $this->publicResources()->whereIn('d.external_id', array_column(config('legacy_content.articles', []), 'external_id'))
+ ->get()->keyBy('external_id');
+ $links = [];
+ foreach (config('legacy_content.articles', []) as $slug => $identity) {
+ if ($identity['publishable'] && $public->get($identity['external_id'])?->source_url === $identity['source_url']) {
+ $links[rtrim($identity['source_url'], '/')] = '/'.$slug;
+ }
+ }
+ $doc = new DOMDocument;
+ $old = libxml_use_internal_errors(true);
+ try {
+ $doc->loadHTML(''.$html.'', LIBXML_NONET);
+ foreach ($doc->getElementsByTagName('a') as $anchor) {
+ $href = $anchor->getAttribute('href');
+ if (isset($links[rtrim($href, '/')])) { $anchor->setAttribute('href', $links[rtrim($href, '/')]); }
+ }
+ $body = $doc->getElementsByTagName('body')->item(0);
+ return $body ? implode('', array_map(fn ($child) => $doc->saveHTML($child), iterator_to_array($body->childNodes))) : '';
+ } finally { libxml_clear_errors(); libxml_use_internal_errors($old); }
+ }
+
+ /** @param array $input */
+ public function attach(User $actor, string $caseId, array $input): void
+ {
+ $data = Validator::make($input, ['version' => 'required|integer|min:1', 'resource_id' => 'required|integer|min:1'])->validate();
+ $article = $this->articleForResource((int) $data['resource_id']);
+ abort_unless(app(InvestorPath::class)->available(), 404);
+ DB::transaction(function () use ($actor, $caseId, $data, $article): void {
+ $desk = app(VirtualDesk::class);
+ $case = $desk->case($actor, $caseId, true, true);
+ abort_if($case->closed_at, 409);
+ abort_unless(DB::table('investor_journeys')->where('id', $case->journey_id)->whereNotNull('path_definition_id')->whereNull('deleted_at')->exists(),
+ 409, 'Este dossier conserva outro roteiro; não foi convertido automaticamente.');
+ $payload = $desk->decode($case->payload);
+ foreach ($payload['investor_path']['content_sources'] ?? [] as $existing) {
+ if ($existing['resource_id'] === $article['id'] && $existing['sha256'] === $article['sha256']) {
+ return; // Same source/version replay: neither another reference nor another event.
+ }
+ }
+ abort_unless((int) $case->version === $data['version'], 409, 'O dossier foi alterado; recupere a versão atual.');
+ $payload['investor_path']['content_sources'][] = ['resource_id' => $article['id'], 'document_id' => $article['document_id'],
+ 'sha256' => $article['sha256'], 'metadata_version' => $article['version'], 'title' => $article['title'],
+ 'source_url' => $article['source_url'], 'return_href' => $article['href'], 'actor_id' => $actor->id,
+ 'saved_at' => now()->toIso8601String()];
+ DB::table('desk_cases')->where('id', $caseId)->update(['payload' => $desk->encode($payload), 'version' => $case->version + 1, 'updated_at' => now()]);
+ $desk->event($desk->case($actor, $caseId), $actor, 'legacy_content_referenced', ['resource_id' => $article['id'], 'sha256' => $article['sha256']]);
+ });
+ }
+
+ private function publicResources(): Builder
+ {
+ return DB::table('portal_resources as r')->join('documents as d', 'd.id', '=', 'r.document_id')
+ ->where('r.published', true)->where('r.rights_status', 'authorized')->where('d.rights_status', 'authorized')
+ ->where('d.status', 'active')->where('d.data_classification', 'public')->whereNull('d.deleted_at')
+ ->where('d.malware_scan_status', 'clean')->whereColumn('d.malware_scanned_sha256', 'd.sha256')
+ ->select(['d.*', 'r.id as resource_id', 'r.metadata_version', 'r.source_url', 'r.title']);
+ }
+
+ /** Allow presentation markup only. No scripts, styles, events, embeds or remote image execution. */
+ public function sanitize(string $html): string
+ {
+ $doc = new DOMDocument;
+ $old = libxml_use_internal_errors(true);
+ try {
+ $doc->loadHTML(''.$html.'', LIBXML_NONET);
+ $body = $doc->getElementsByTagName('body')->item(0);
+ // Preserve the source text and relative sections, but start the displayed
+ // article below the page h1. Originals and their hashes remain untouched.
+ $sourceLevels = [];
+ foreach (['h1', 'h2', 'h3', 'h4'] as $heading) {
+ if ($doc->getElementsByTagName($heading)->length > 0) {
+ $sourceLevels[] = (int) substr($heading, 1);
+ }
+ }
+ $headingOffset = 2 - (empty($sourceLevels) ? 2 : min($sourceLevels));
+ $previousHeading = 1;
+ $clean = function (DOMNode $node) use (&$clean, $doc, $headingOffset, &$previousHeading): void {
+ foreach (iterator_to_array($node->childNodes) as $child) {
+ if (! $child instanceof DOMElement) {
+ continue;
+ }
+ if (preg_match('/^h([1-4])$/i', $child->tagName, $level)) {
+ $displayLevel = max(2, min(6, (int) $level[1] + $headingOffset, $previousHeading + 1));
+ $previousHeading = $displayLevel;
+ $section = $doc->createElement('h'.$displayLevel);
+ while ($child->firstChild !== null) {
+ $section->appendChild($child->firstChild);
+ }
+ $node->replaceChild($section, $child);
+ $child = $section;
+ }
+ if (! in_array(strtolower($child->tagName), ['p', 'strong', 'b', 'em', 'i', 'ul', 'ol', 'li', 'br', 'h2', 'h3', 'h4', 'h5', 'h6', 'blockquote', 'a'], true)) {
+ $node->removeChild($child);
+
+ continue;
+ }
+ $href = $child->tagName === 'a' ? $child->getAttribute('href') : '';
+ foreach (iterator_to_array($child->attributes) as $attribute) {
+ $child->removeAttribute($attribute->nodeName);
+ }
+ if ($href !== '') {
+ if (str_starts_with($href, '/') && ! str_starts_with($href, '//')) {
+ $href = 'https://investemoz.tempo.co.mz'.$href;
+ }
+ if (filter_var($href, FILTER_VALIDATE_URL) && strtolower((string) parse_url($href, PHP_URL_SCHEME)) === 'https') {
+ $child->setAttribute('href', $href);
+ $child->setAttribute('rel', 'noopener noreferrer');
+ }
+ }
+ $clean($child);
+ }
+ };
+ if (! $body) {
+ return '';
+ }
+ $clean($body);
+
+ return implode('', array_map(fn ($child) => $doc->saveHTML($child), iterator_to_array($body->childNodes)));
+ } finally {
+ libxml_clear_errors();
+ libxml_use_internal_errors($old);
+ }
+ }
+}
diff --git a/app/Services/OpportunityCanonicalContract.php b/app/Services/OpportunityCanonicalContract.php
index b32e8635..34868dd0 100644
--- a/app/Services/OpportunityCanonicalContract.php
+++ b/app/Services/OpportunityCanonicalContract.php
@@ -6,6 +6,7 @@ use App\Models\Opportunity;
use App\Models\User;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
+use Illuminate\Support\Str;
use Illuminate\Validation\ValidationException;
use Opis\JsonSchema\CompliantValidator;
use Opis\JsonSchema\Errors\ErrorFormatter;
@@ -29,6 +30,7 @@ class OpportunityCanonicalContract
$schema['$defs'][$name.'Create']['allOf'] = $schema['$defs'][$name]['allOf'] ?? [];
}
$schema = app(OpportunityCategoryFields::class)->enrich($schema);
+ $schema = app(OpportunityModularProfiles::class)->extend($schema);
$schema = $this->writeSchema($schema, $draft);
$properties = &$schema['$defs']['opportunityCreate']['properties'];
unset($properties['mutation_context']); // Actor, audit reason and revision are server-owned.
@@ -240,6 +242,14 @@ class OpportunityCanonicalContract
ksort($payload);
$snapshot = ['adapter_version' => self::VERSION, 'schema_sha256' => hash_file('sha256', resource_path('data/investmoz-opportunity-modular.schema.json')),
'payload' => $payload, 'resources' => $resources];
+ if (isset(OpportunityModularProfiles::PROFILES[$record->opportunity_category]) || ($payload['module_profile_version'] ?? '') === OpportunityModularProfiles::HISTORY_VERSION) {
+ $snapshot['qa_extension'] = ['version' => OpportunityModularProfiles::VERSION, 'profile_version' => $payload['module_profile_version'],
+ 'functional_decision' => 'User recommendations accepted for QA, 10/10/2026; no active approval or security-holder nomination',
+ 'gates' => $this->gates($record)];
+ if ($record->opportunity_category === 'other') {
+ $snapshot['qa_extension']['subtype'] = config('portal.opportunity_other_qa_subtypes.'.($payload['module_details']['subtype'] ?? ''), []);
+ }
+ }
$snapshot['hash'] = hash('sha256', json_encode($snapshot, JSON_THROW_ON_ERROR));
return $snapshot;
@@ -253,9 +263,7 @@ class OpportunityCanonicalContract
private function categoryRules(array $p, Opportunity $record, array $resources, array &$errors): void
{
$category = $p['opportunity_category'];
- if (in_array($category, ['concession', 'financing', 'supply', 'other'], true)) {
- $errors['canonical.module_profile_version'] = '§25.4: não existe perfil modular aprovado/configurado. O rascunho permanece disponível; não inventar regras.';
- }
+ app(OpportunityModularProfiles::class)->validate($p, $resources, $errors);
foreach (['real_estate', 'land_rights', 'business_transaction'] as $module) {
$applicable = match ($module) {
'real_estate' => ['real_estate'], 'land_rights' => ['land_rights'], default => ['business_sale', 'business_partnership', 'franchise']
@@ -346,6 +354,7 @@ class OpportunityCanonicalContract
$p = $snapshot['payload'];
$errors = [];
app(OpportunityCategoryFields::class)->publication($p, $errors);
+ app(OpportunityModularProfiles::class)->publication($p, $errors);
foreach ($snapshot['resources']['documents'] ?? [] as $id => $document) {
if (! empty($document['payload']['valid_until']) && $document['payload']['valid_until'] < today()->toDateString()) {
$errors['documents.'.$id] = 'Documento incluído expirou; preserve o original e reveja a versão.';
@@ -400,7 +409,7 @@ class OpportunityCanonicalContract
'business_sale' => ['corporate_screening', 'financial_review', 'legal_tax_due_diligence', 'confidentiality_clearance'],
'business_partnership' => ['corporate_screening', 'financial_review', 'partnership_governance_review', 'legal_tax_due_diligence'],
'franchise' => ['brand_license_review', 'financial_review', 'franchise_legal_review', 'confidentiality_clearance'],
- default => [],
+ default => app(OpportunityModularProfiles::class)->gates($record),
};
}
@@ -411,7 +420,17 @@ class OpportunityCanonicalContract
{
$business = isset($payload['business_transaction']) && ($payload['visibility'] ?? '') === 'public';
- return ['title' => (string) ($payload['official_title'] ?? ''), 'summary' => (string) ($business ? ($payload['business_transaction']['teaser'] ?? '') : ($payload['executive_summary'] ?? '')),
+ $label = match ($payload['module_details']['mode'] ?? '') {
+ 'intention_call' => 'Intenção/chamada em preparação — não é direito atribuído. ',
+ 'awarded_right' => 'Concessão com ato competente documentado. ',
+ 'seeking_funding' => 'Procura de financiamento. ', 'funding_offer' => 'Oferta de financiamento — sujeita a análise do beneficiário. ',
+ 'purchase_request' => 'Pedido de compra. ', 'supply_offer' => 'Oferta de fornecimento. ', default => '',
+ };
+ if (($payload['module_details']['conditions_status'] ?? '') === 'proposed') {
+ $label .= 'Valores e condições propostos, sem compromisso assumido. ';
+ }
+
+ return ['title' => (string) ($payload['official_title'] ?? ''), 'summary' => Str::limit($label.(string) ($business ? ($payload['business_transaction']['teaser'] ?? '') : ($payload['executive_summary'] ?? '')), 499, '…'),
'description' => (string) ($business ? ($payload['business_transaction']['teaser'] ?? '') : ($payload['demand_statement'] ?? ''))];
}
@@ -427,7 +446,9 @@ class OpportunityCanonicalContract
->orWhereExists(fn ($i) => $i->selectRaw('1')->from('investor_contacts as ic')->join('investors as inv', 'inv.id', '=', 'ic.investor_id')->whereColumn('ic.contact_id', 'contacts.id')->whereIn('inv.organization_id', $orgs)->whereNull('inv.deleted_at'));
})->get(['id', 'full_name']);
- return ['version' => self::VERSION, 'schema' => $this->schema(true)['$defs']['opportunityCreate'],
+ return ['version' => self::VERSION, 'modularProfiles' => app(OpportunityModularProfiles::class)->enabled() ? OpportunityModularProfiles::PROFILES : [],
+ 'historyVersion' => app(OpportunityModularProfiles::class)->enabled() ? OpportunityModularProfiles::HISTORY_VERSION : null,
+ 'schema' => $this->schema(true)['$defs']['opportunityCreate'],
'definitions' => $this->schema(true)['$defs'],
'activities' => DB::table('economic_activities')->where('status', 'published')->get(['id', 'parent_id', 'sector_id', 'label_pt_mz', 'catalog_version_id']),
'contacts' => $contacts, 'countries' => app(CountryCatalogue::class)->all(),
diff --git a/app/Services/OpportunityCanonicalResponse.php b/app/Services/OpportunityCanonicalResponse.php
new file mode 100644
index 00000000..5b964bb8
--- /dev/null
+++ b/app/Services/OpportunityCanonicalResponse.php
@@ -0,0 +1,70 @@
+ */
+ public function read(User $actor, Opportunity $record): array
+ {
+ $access = app(PortalProfileAccess::class);
+ $access->authorize($actor, 'view', $record);
+ $payload = app(OpportunityManagement::class)->values($record)['canonical'] ?? [];
+ $context = $record->workflow_context ?? [];
+ $data = [...$payload, 'id' => $record->id, 'opportunity_code' => $record->reference,
+ 'opportunity_category' => $record->opportunity_category, 'status' => $access->state($record),
+ 'version' => (int) $record->management_version, 'is_deleted' => $record->trashed(),
+ 'deleted_at' => $record->deleted_at?->toIso8601String()];
+ foreach (['submitted' => 'submission', 'approved' => 'approval', 'published' => 'publication'] as $prefix => $key) {
+ $data[$prefix.'_by'] = $context[$key]['actor_id'] ?? null;
+ $data[$prefix.'_at'] = $context[$key]['at'] ?? null;
+ }
+ $references = [];
+ foreach (OpportunityResources::KINDS as $kind) {
+ $references[$kind] = $payload[$kind] ?? [];
+ $rows = [];
+ if (app(OpportunityResources::class)->installed()) {
+ foreach (app(OpportunityResources::class)->listing($record->id, $kind) as $row) {
+ $rows[$row->id] = $row;
+ }
+ }
+ $data[$kind] = array_map(function (string $id) use ($rows, $kind): array {
+ $row = $rows[$id] ?? null;
+ if ($row === null) {
+ return ['id' => $id, 'availability' => 'unavailable'];
+ }
+ $value = [...$row->payload, 'id' => $row->id, 'version' => (int) $row->version,
+ 'is_deleted' => $row->deleted_at !== null, 'deleted_at' => $row->deleted_at,
+ 'created_by' => $row->created_by, 'created_at' => $row->created_at, 'updated_at' => $row->updated_at];
+ if ($kind !== 'locations') {
+ $value['original_name'] = $row->file?->file_name;
+ $value['mime_type'] = $row->file?->media_type;
+ $value['sha256'] = $row->file?->sha256;
+ $value['scan_recorded_status'] = $row->file?->malware_scan_status;
+ }
+
+ return $value;
+ }, $references[$kind]);
+ }
+
+ return ['adapter_version' => self::VERSION,
+ 'source_schema_sha256' => hash_file('sha256', resource_path('data/investmoz-opportunity-modular.schema.json')),
+ 'data' => $data, 'resource_references' => $references,
+ 'validation_result' => ['scope' => 'recorded_submission_only', 'submission_hash' => $context['submission']['hash'] ?? null,
+ 'submitted_content_revision' => $context['submission']['content_revision'] ?? null,
+ 'current_content_revision' => $context['content_revision'] ?? 1,
+ 'revalidated_on_read' => false, 'external_decision' => 'not_inferred'],
+ 'publication' => $record->publicationPresentation(),
+ 'compatibility' => ['normative_response_complete' => false, 'opportunity_actor_sector_ids' => 'existing bigint, not converted to UUID',
+ 'opportunity_code' => 'existing reference preserved; no INV-MZ code invented',
+ 'states' => 'existing workflow values preserved; no implicit stage equivalence',
+ 'inline_modules' => 'management_draft canonical JSON with audited revisions; no parallel specialized tables',
+ 'metadata_gaps' => ['completion_percentage algorithm', 'inline item IDs and mutation metadata', 'resource updated_by/deleted_by recovery']]];
+ }
+}
diff --git a/app/Services/OpportunityCategoryFields.php b/app/Services/OpportunityCategoryFields.php
index 446415a6..d9f13825 100644
--- a/app/Services/OpportunityCategoryFields.php
+++ b/app/Services/OpportunityCategoryFields.php
@@ -194,6 +194,15 @@ class OpportunityCategoryFields
}
if (isset($p['land_rights'])) {
$lr = $p['land_rights'];
+ // §27: UNIQUE (opportunity_id, cadastral_number); absent numbers remain unknown.
+ $cadastralNumbers = [];
+ foreach ($lr['parcels'] ?? [] as $i => $parcel) {
+ $number = $parcel['cadastral_number'] ?? null;
+ if ($number !== null && $number !== '') {
+ $fail(! in_array($number, $cadastralNumbers, true), "land_rights.parcels.$i.cadastral_number", 'Número cadastral repetido nesta oportunidade; recupere e reconcilie a parcela existente.');
+ $cadastralNumbers[] = $number;
+ }
+ }
if (in_array($lr['duat_status'], ['provisional', 'definitive'], true)) {
$fail(! empty($lr['issuing_authority_id']), 'land_rights.issuing_authority_id', 'DUAT provisório/definitivo exige entidade emissora.');
if (! empty($lr['duat_number']) && ! empty($lr['issuing_authority_id'])) {
@@ -220,10 +229,20 @@ class OpportunityCategoryFields
$bt = $p['business_transaction'];
$type = $bt['transaction_type'];
$allowed = match ($p['opportunity_category']) {
- 'business_sale' => ['full_sale', 'partial_sale'],'business_partnership' => ['partnership', 'joint_venture'],'franchise' => ['franchise'],default => []
+ 'business_sale' => ['full_sale', 'partial_sale', 'succession'],'business_partnership' => ['partnership', 'joint_venture'],'franchise' => ['franchise'],default => []
};
$fail(in_array($type, $allowed, true), 'business_transaction.transaction_type', 'Modalidade incompatível com esta categoria.');
$years = array_column($bt['financial_periods'], 'year');
+ if (($bt['history_status'] ?? '') === 'no_completed_years') {
+ $fail(app(OpportunityModularProfiles::class)->enabled() && ($p['module_profile_version'] ?? '') === OpportunityModularProfiles::HISTORY_VERSION,
+ 'module_profile_version', 'Ausência de histórico requer a extensão QA v2 explícita; preserve o contrato original.');
+ $fail($bt['available_financial_years'] === 0 && $bt['financial_periods'] === [], 'business_transaction.financial_periods', 'Não misture projeções com exercícios financeiros realizados.');
+ foreach (['history_declaration', 'history_declaration_document_id', 'projections'] as $field) {
+ $fail(! empty($bt[$field]), 'business_transaction.'.$field, 'Entidade sem exercícios completos requer declaração e projeções identificadas.');
+ }
+ } else {
+ $fail($bt['available_financial_years'] >= 1 && $bt['financial_periods'] !== [], 'business_transaction.financial_periods', 'Use os exercícios existentes ou a declaração versionada de ausência de histórico.');
+ }
$fail(count($years) >= min(3, $bt['available_financial_years']) && count($years) === count(array_unique($years)), 'business_transaction.financial_periods', 'Inclua pelo menos três exercícios quando existentes, sem repetir anos.');
foreach ($years as $i => $year) {
$fail($year <= (int) today()->format('Y'), "business_transaction.financial_periods.$i.year", 'Não apresente um exercício futuro como demonstração realizada.');
diff --git a/app/Services/OpportunityModularProfiles.php b/app/Services/OpportunityModularProfiles.php
new file mode 100644
index 00000000..8e45035c
--- /dev/null
+++ b/app/Services/OpportunityModularProfiles.php
@@ -0,0 +1,247 @@
+ 'concession-qa-20261010-v1',
+ 'financing' => 'financing-qa-20261010-v1',
+ 'supply' => 'supply-qa-20261010-v1',
+ 'other' => 'other-qa-20261010-v1',
+ ];
+
+ public function enabled(): bool
+ {
+ if (! config('portal.opportunity_modular_profiles_qa_enabled') || ! app()->environment('testing')) {
+ return false;
+ }
+ $connection = DB::connection();
+ if ($connection->getDriverName() !== 'pgsql' || (string) $connection->getConfig('port') !== '55441'
+ || ! in_array($connection->getConfig('host'), ['127.0.0.1', 'localhost'], true)
+ || $connection->getConfig('url') || ! str_ends_with($connection->getDatabaseName(), '_test')) {
+ return false;
+ }
+ $actual = $connection->selectOne('SELECT current_database() AS database, inet_server_port() AS port');
+
+ return $actual->database === $connection->getDatabaseName() && (int) $actual->port === 55441;
+ }
+
+ /** @param array $schema
+ * @return array */
+ public function extend(array $schema): array
+ {
+ if (! $this->enabled()) {
+ return $schema;
+ }
+ $text = ['type' => 'string', 'minLength' => 1, 'maxLength' => 2000];
+ $doc = ['type' => 'string', 'format' => 'uuid'];
+ $positive = ['type' => 'number', 'exclusiveMinimum' => 0];
+ $date = ['type' => 'string', 'format' => 'date'];
+ $properties = [
+ 'mode' => ['enum' => ['intention_call', 'awarded_right', 'seeking_funding', 'funding_offer', 'purchase_request', 'supply_offer', 'classified_other']],
+ 'conditions_status' => ['enum' => ['proposed', 'binding']],
+ 'object' => $text, 'representation_document_id' => $doc, 'object_document_id' => $doc,
+ 'terms' => $text, 'source' => $text, 'scenario' => $text, 'terms_date' => $date,
+ 'commitment_document_id' => $doc, 'disclosure_authorization_document_id' => $doc,
+ 'granting_entity' => $text, 'procedure_regime' => $text, 'scope' => $text,
+ 'term_value' => $positive, 'term_unit' => ['enum' => ['days', 'months', 'years']],
+ 'remuneration_obligations' => $text, 'participation_conditions' => $text,
+ 'external_decision_document_id' => $doc, 'territorial_right_document_id' => $doc,
+ 'land_required' => ['type' => 'boolean'], 'construction_required' => ['type' => 'boolean'],
+ 'applicable_authorizations' => $text, 'construction_license_document_id' => $doc,
+ 'start_date' => $date, 'end_date' => $date,
+ 'instrument' => ['enum' => ['debt', 'equity', 'guarantee']],
+ 'use_of_funds' => $text, 'disbursement_calendar' => $text, 'repayment_periodicity' => $text,
+ 'financial_plan_document_id' => $doc, 'secured_evidence_document_id' => $doc,
+ 'offered_capacity' => $positive, 'eligibility_criteria' => $text, 'capacity_document_id' => $doc,
+ 'equity_percentage' => ['type' => 'number', 'exclusiveMinimum' => 0, 'maximum' => 100],
+ 'proposed_rights' => $text, 'quantity' => $positive, 'unit' => $text, 'destination' => $text,
+ 'acceptance_criteria' => $text, 'quotation_method' => $text, 'unit_price' => $positive, 'total_price' => $positive,
+ 'declared_taxes' => $text, 'advance_or_guarantee' => ['type' => 'boolean'],
+ 'subtype' => $text, 'purpose' => $text, 'recipients' => $text, 'expected_output' => $text, 'risks' => $text,
+ ];
+ $schema['$defs']['opportunityCreate']['properties']['module_details'] = [
+ 'type' => 'object', 'properties' => $properties, 'additionalProperties' => false,
+ ];
+ // Opt-in v2: a declaration/projection is not a fabricated completed financial year.
+ $business = &$schema['$defs']['businessTransactionCreate'];
+ $business['properties']['available_financial_years']['minimum'] = 0;
+ $business['properties']['financial_periods']['minItems'] = 0;
+ $business['properties'] += ['history_status' => ['enum' => ['existing_accounts', 'no_completed_years']],
+ 'history_declaration' => $text, 'history_declaration_document_id' => $doc,
+ 'projections' => ['type' => 'object', 'properties' => ['scenario' => $text, 'source' => $text, 'date' => $date, 'document_id' => $doc],
+ 'required' => ['scenario', 'source', 'date', 'document_id'], 'additionalProperties' => false]];
+ $business['allOf'][] = ['if' => ['properties' => ['history_status' => ['const' => 'no_completed_years']], 'required' => ['history_status']],
+ 'else' => ['properties' => ['financial_periods' => ['minItems' => 1], 'available_financial_years' => ['minimum' => 1]]]];
+
+ return $schema;
+ }
+
+ /** @param array $p
+ * @param array $resources
+ * @param array $errors */
+ public function validate(array $p, array $resources, array &$errors): void
+ {
+ $category = $p['opportunity_category'] ?? '';
+ if (! isset(self::PROFILES[$category])) {
+ if (isset($p['module_details'])) {
+ $errors['canonical.module_details'] = 'Detalhe modular incompatível com esta categoria.';
+ }
+
+ return;
+ }
+ if (! $this->enabled() || ($p['module_profile_version'] ?? '') !== self::PROFILES[$category]) {
+ $errors['canonical.module_profile_version'] = 'Use a versão QA explicitamente aprovada; versões anteriores permanecem rascunhos recuperáveis.';
+
+ return;
+ }
+ $m = $p['module_details'] ?? [];
+ $fail = function (bool $ok, string $path, string $message) use (&$errors): void {
+ if (! $ok) {
+ $errors['canonical.'.$path] = $message;
+ }
+ };
+ $require = function (array $fields) use ($m, $fail): void {
+ foreach ($fields as $field) {
+ $fail(isset($m[$field]) && $m[$field] !== '', 'module_details.'.$field, 'Preencha este campo aplicável antes de submeter.');
+ }
+ };
+ $require(['mode', 'object', 'representation_document_id', 'object_document_id']);
+ $modes = match ($category) {
+ 'concession' => ['intention_call', 'awarded_right'], 'financing' => ['seeking_funding', 'funding_offer'],
+ 'supply' => ['purchase_request', 'supply_offer'], default => ['classified_other'],
+ };
+ $fail(in_array($m['mode'] ?? '', $modes, true), 'module_details.mode', 'Selecione procura/oferta ou modalidade compatível com esta categoria.');
+ // Only references included in the current opportunity's verified resource snapshot are usable.
+ foreach ($m as $key => $value) {
+ if (str_ends_with($key, '_document_id') && $value !== null && $value !== '') {
+ $fail(isset($resources['documents'][$value]), 'module_details.'.$key, 'Associe documento ativo desta oportunidade incluído no contrato.');
+ }
+ }
+ if (! empty($m['start_date']) && ! empty($m['end_date'])) {
+ $fail($m['end_date'] >= $m['start_date'], 'module_details.end_date', 'O fim não pode anteceder o início.');
+ }
+ if ($category === 'concession') {
+ $require(['granting_entity', 'procedure_regime', 'scope', 'term_value', 'term_unit', 'remuneration_obligations', 'participation_conditions', 'land_required', 'construction_required']);
+ $fail(($m['term_value'] ?? 0) > 0, 'module_details.term_value', 'Declare duração positiva.');
+ if (($m['mode'] ?? '') === 'awarded_right') {
+ $require(['external_decision_document_id']);
+ }
+ if ($m['land_required'] ?? false) {
+ $require(['applicable_authorizations']);
+ if (($m['mode'] ?? '') === 'awarded_right') {
+ $require(['territorial_right_document_id']);
+ }
+ }
+ if ($m['construction_required'] ?? false) {
+ $require(['applicable_authorizations']);
+ }
+ }
+ if (in_array($category, ['financing', 'supply'], true)) {
+ $require(['conditions_status', 'terms']);
+ $fail(! empty($p['currency']), 'currency', 'Declare moeda sem converter valores implicitamente.');
+ if (($m['conditions_status'] ?? '') === 'proposed') {
+ $require(['scenario', 'source', 'terms_date']);
+ $fail(empty($m['terms_date']) || $m['terms_date'] <= today()->toDateString(), 'module_details.terms_date', 'A data da fonte não pode ser futura.');
+ } elseif (($m['conditions_status'] ?? '') === 'binding') {
+ $require(['commitment_document_id']);
+ }
+ }
+ if ($category === 'financing') {
+ $require(['instrument', 'disbursement_calendar']);
+ if (($m['mode'] ?? '') === 'seeking_funding') {
+ $require(['use_of_funds', 'financial_plan_document_id']);
+ foreach (['total_investment', 'investment_breakdown', 'secured_financing', 'funding_sought'] as $field) {
+ $fail(array_key_exists($field, $p), $field, 'Complete o cenário do projeto para a procura de financiamento.');
+ }
+ $total = $p['total_investment'] ?? 0;
+ $secured = array_sum(array_column($p['secured_financing'] ?? [], 'amount'));
+ $sum = array_sum(array_column($p['investment_breakdown'] ?? [], 'amount'));
+ $fail($total > 0 && abs($sum - $total) <= 0.010001, 'investment_breakdown', 'Rubricas devem reconciliar com o investimento total positivo.');
+ $fail($secured <= $total, 'secured_financing', 'Financiamento assegurado não pode exceder o investimento.');
+ $sought = $p['funding_sought'] ?? 0;
+ $fail($sought > 0 && $sought <= $total - $secured, 'funding_sought', 'Pedido positivo não pode exceder a necessidade remanescente do projeto.');
+ if ($secured > 0) {
+ $require(['secured_evidence_document_id']);
+ }
+ foreach (['investment_breakdown', 'secured_financing'] as $field) {
+ foreach ($p[$field] ?? [] as $i => $row) {
+ $fail(($row['currency'] ?? '') === ($p['currency'] ?? ''), "$field.$i.currency", 'Moedas diferentes exigem cenário explícito; não somar automaticamente.');
+ }
+ }
+ } elseif (($m['mode'] ?? '') === 'funding_offer') {
+ $require(['offered_capacity', 'eligibility_criteria', 'capacity_document_id']);
+ $fail(($m['offered_capacity'] ?? 0) > 0, 'module_details.offered_capacity', 'Declare capacidade oferecida positiva e documentada, sem aprovação automática de beneficiários.');
+ foreach (['total_investment', 'investment_breakdown', 'secured_financing', 'funding_sought'] as $field) {
+ $fail(! isset($p[$field]) || $p[$field] === [], $field, 'Oferta usa capacidade e critérios do financiador; preserve o cenário do projeto num percurso de procura.');
+ }
+ }
+ if (($m['instrument'] ?? '') === 'debt') {
+ $require(['term_value', 'term_unit', 'repayment_periodicity']);
+ $fail(($m['term_value'] ?? 0) > 0, 'module_details.term_value', 'Dívida exige prazo positivo.');
+ } elseif (($m['instrument'] ?? '') === 'equity') {
+ $require(['equity_percentage', 'proposed_rights']);
+ $fail(($m['equity_percentage'] ?? 0) > 0 && ($m['equity_percentage'] ?? 0) <= 100, 'module_details.equity_percentage', 'Percentagem deve estar entre zero exclusivo e 100.');
+ }
+ }
+ if ($category === 'supply') {
+ $require(['quantity', 'unit', 'destination', 'start_date', 'end_date', 'acceptance_criteria', 'advance_or_guarantee']);
+ $fail(($m['quantity'] ?? 0) > 0, 'module_details.quantity', 'Declare quantidade positiva.');
+ $fail(! empty($m['total_price']) || ! empty($m['quotation_method']), 'module_details.quotation_method', 'Declare preço total ou método de cotação.');
+ if (isset($m['unit_price'], $m['total_price'], $m['quantity'])) {
+ $fail(abs($m['quantity'] * $m['unit_price'] - $m['total_price']) <= 0.010001, 'module_details.total_price', 'Reconcilie quantidade × preço unitário, separando impostos declarados.');
+ }
+ if (($m['mode'] ?? '') === 'supply_offer') {
+ $require(['capacity_document_id']);
+ }
+ }
+ if ($category === 'other') {
+ $require(['subtype', 'purpose', 'recipients', 'expected_output', 'risks']);
+ $subtype = config('portal.opportunity_other_qa_subtypes.'.($m['subtype'] ?? ''));
+ $fail(is_array($subtype) && ($subtype['approved'] ?? false) && ! empty($subtype['version'])
+ && ! empty($subtype['gates']) && ! empty($subtype['decision_reference']), 'module_details.subtype', 'Subtipo ainda não aprovado: guarde e desenvolva a ideia; a submissão aguarda classificação funcional.');
+ }
+ }
+
+ /** @param array $p
+ * @param array $errors */
+ public function publication(array $p, array &$errors): void
+ {
+ $m = $p['module_details'] ?? [];
+ if (($p['opportunity_category'] ?? '') === 'concession') {
+ if (($m['mode'] ?? '') === 'intention_call' && empty($m['disclosure_authorization_document_id'])) {
+ $errors['module_details.disclosure_authorization_document_id'] = 'Chamada/intenção exige autorização de divulgação; não representa direito atribuído.';
+ }
+ if (($m['mode'] ?? '') === 'awarded_right' && empty($m['external_decision_document_id'])) {
+ $errors['module_details.external_decision_document_id'] = 'Direito atribuído exige o ato competente; aprovação interna não o substitui.';
+ }
+ if (($m['construction_required'] ?? false) && ($m['mode'] ?? '') === 'awarded_right' && empty($m['construction_license_document_id'])) {
+ $errors['module_details.construction_license_document_id'] = 'Construção aplicável exige licença antes da disponibilização como direito atribuído.';
+ }
+ }
+ }
+
+ /** @return list */
+ public function gates(Opportunity $record): array
+ {
+ $p = app(OpportunityManagement::class)->values($record)['canonical'] ?? [];
+ $m = $p['module_details'] ?? [];
+
+ return match ($record->opportunity_category) {
+ 'concession' => ['technical_review', 'legal_territorial_review'],
+ 'financing' => ['technical_review', 'financial_review', 'legal_tax_due_diligence'],
+ 'supply' => ['technical_review', 'legal_territorial_review', ...(($m['advance_or_guarantee'] ?? false) ? ['financial_review'] : [])],
+ 'other' => config('portal.opportunity_other_qa_subtypes.'.($m['subtype'] ?? '').'.gates', []),
+ default => [],
+ };
+ }
+}
diff --git a/app/Services/OpportunityResources.php b/app/Services/OpportunityResources.php
index 43ed81d2..d43fa89b 100644
--- a/app/Services/OpportunityResources.php
+++ b/app/Services/OpportunityResources.php
@@ -221,6 +221,10 @@ class OpportunityResources
}
$data = Validator::make($payload, $rules)->validate();
if ($kind === 'locations') {
+ if (! empty($data['country_code']) && $data['country_code'] !== 'MZ'
+ && array_filter(array_intersect_key($data, array_flip(['province_id', 'district_id', 'admin_post_id', 'locality_id'])))) {
+ throw ValidationException::withMessages(['country_code' => 'Os territórios desta hierarquia pertencem a Moçambique. Escolha Moçambique ou retire a seleção territorial para guardar uma localização noutro país.']);
+ }
app(InvestmentGeography::class)->selection($data, true);
if (! empty($data['geometry'])) {
$geometry = $data['geometry'];
diff --git a/app/Services/PortalProfileAccess.php b/app/Services/PortalProfileAccess.php
index eb849f92..6b6b6fa6 100644
--- a/app/Services/PortalProfileAccess.php
+++ b/app/Services/PortalProfileAccess.php
@@ -22,7 +22,7 @@ class PortalProfileAccess
app_path('Services/PortalProfileAdministration.php'), app_path('Services/PortalSuperusers.php'),
app_path('Services/OpportunityProfileWorkflow.php'), app_path('Http/Controllers/PortalProfileController.php'), app_path('Http/Controllers/DashboardController.php'),
app_path('Http/Controllers/OpportunityManagementController.php'),
- app_path('Services/OpportunityCanonicalContract.php'), app_path('Services/OpportunityCategoryFields.php'), app_path('Services/OpportunityWorkflowTasks.php'), base_path('composer.json'), base_path('composer.lock'),
+ app_path('Services/OpportunityCanonicalContract.php'), app_path('Services/OpportunityCanonicalResponse.php'), app_path('Services/OpportunityCategoryFields.php'), app_path('Services/OpportunityModularProfiles.php'), app_path('Services/OpportunityWorkflowTasks.php'), base_path('composer.json'), base_path('composer.lock'),
resource_path('data/investmoz-opportunity-modular.schema.json'), resource_path('js/components/opportunity-canonical-fields.tsx'), resource_path('js/components/opportunity-parcel-geometry.tsx'),
app_path('Http/Controllers/OpportunityResourceController.php'),
app_path('Http/Controllers/InvestmentTerritoryController.php'),
@@ -32,8 +32,14 @@ class PortalProfileAccess
database_path('migrations/2026_10_10_040000_create_portal_profile_authorization.php'), base_path('bootstrap/app.php'),
resource_path('js/pages/profiles/request.tsx'), resource_path('js/pages/profiles/administration.tsx'), resource_path('js/pages/profiles/audit.tsx'),
resource_path('js/components/profile-navigation.tsx'), resource_path('js/components/opportunity-profile-actions.tsx'),
+ resource_path('js/components/portal-grouped-menu.tsx'), resource_path('js/components/user-menu-content.tsx'),
resource_path('js/pages/management/opportunities.tsx'), resource_path('js/pages/management/opportunity-draft.tsx'),
resource_path('js/types/profile-access.ts'), resource_path('js/lib/profile-json.ts'), resource_path('js/pages/management/shared.tsx'),
+ resource_path('js/pages/dashboard.tsx'), resource_path('js/pages/PortalInvestidor.tsx'),
+ resource_path('js/layouts/portal-navigation.tsx'), resource_path('js/components/interactive-investment-map.tsx'),
+ resource_path('js/components/simulation-form.tsx'), resource_path('js/lib/simulation-form.ts'), app_path('Services/LegacyContent.php'),
+ resource_path('js/components/ui/sidebar.tsx'), resource_path('js/components/simulation-financial-tools.tsx'), resource_path('js/components/simulation-cashflow-planner.tsx'), resource_path('js/pages/investor-path/show.tsx'), resource_path('views/app.blade.php'),
+ resource_path('js/pages/management/opportunity-resources.tsx'),
app_path('Services/PortalProfileInstallation.php'), app_path('Http/Controllers/PortalProfileInstallationController.php'), config_path('portal_profiles.php'), resource_path('js/pages/profiles/installation.tsx')];
}
diff --git a/app/Services/VirtualDesk.php b/app/Services/VirtualDesk.php
index 857b5698..aa039154 100644
--- a/app/Services/VirtualDesk.php
+++ b/app/Services/VirtualDesk.php
@@ -204,6 +204,30 @@ class VirtualDesk
});
}
+ /** @return array */
+ public function requestToolPrefill(User $actor, \stdClass $request): ?array
+ {
+ $case = $this->case($actor, $request->case_id);
+ $payload = $this->decode($request->payload);
+ if (! config('investor-path.enabled') || (int) $case->user_id !== $actor->id || ! $case->simulation_id || $case->closed_at
+ || ! in_array($request->status, ['draft', 'returned'], true) || trim((string) ($payload['description'] ?? '')) !== ''
+ || ($request->status === 'returned' && ! in_array('description', json_decode($request->editable_fields ?? '[]', true), true))
+ || ! isset($this->definition($request)['fields']['description'])) {
+ return null;
+ }
+ $draftRequest = Request::create('/');
+ $draftRequest->setUserResolver(fn () => $actor);
+ $draft = app(SimulationFormDrafts::class)->find($case->simulation_id, $draftRequest);
+ $economic = SimulationFormDraft::decryptSnapshot($draft->economic_snapshot);
+ $description = (string) ($economic['project_summary'] ?? '');
+ if (trim($description) === '') {
+ return null;
+ }
+
+ return ['description' => $description, 'draft_id' => $draft->id, 'draft_version' => $draft->version_no,
+ 'snapshot_sha256' => $draft->snapshot_sha256];
+ }
+
/** @return array */
public function definition(\stdClass $request): array
{
@@ -277,7 +301,9 @@ class VirtualDesk
/** @param array $input */
public function save(User $actor, string $id, array $input, bool $submit = false): \stdClass
{
- $data = Validator::make($input, ['version' => 'required|integer|min:1', 'payload' => 'required|array', 'consent' => $submit ? 'accepted' : 'nullable|boolean', 'reason' => 'nullable|string|max:3000'])->validate();
+ $data = Validator::make($input, ['version' => 'required|integer|min:1', 'payload' => 'required|array', 'consent' => $submit ? 'accepted' : 'nullable|boolean', 'reason' => 'nullable|string|max:3000',
+ 'tool_prefill' => 'nullable|array:draft_id,draft_version,snapshot_sha256', 'tool_prefill.draft_id' => 'required_with:tool_prefill|uuid',
+ 'tool_prefill.draft_version' => 'required_with:tool_prefill|integer|min:1', 'tool_prefill.snapshot_sha256' => 'required_with:tool_prefill|string|size:64'])->validate();
return DB::transaction(function () use ($actor, $id, $data, $submit) {
$request = $this->request($actor, $id, true, true);
@@ -285,6 +311,16 @@ class VirtualDesk
return $request;
}
abort_unless(in_array($request->status, ['draft', 'returned'], true) && $request->version === (int) $data['version'], 409, 'Pedido alterado ou já submetido.');
+ $prefill = null;
+ if (! empty($data['tool_prefill'])) {
+ $prefill = $this->requestToolPrefill($actor, $request);
+ $source = $data['tool_prefill'];
+ if ($submit || ! $prefill || $source['draft_id'] !== $prefill['draft_id'] || (int) $source['draft_version'] !== $prefill['draft_version']
+ || ! hash_equals($prefill['snapshot_sha256'], $source['snapshot_sha256'])
+ || ($data['payload']['description'] ?? null) !== $prefill['description']) {
+ throw ValidationException::withMessages(['payload.description' => 'Recupere a descrição atual deste dossier. A reutilização só preenche um campo vazio num rascunho e não submete o pedido.']);
+ }
+ }
$payload = $this->validateFields($data['payload'], $this->definition($request), $submit);
if ($request->status === 'returned') {
$editable = json_decode($request->editable_fields ?? '[]', true);
@@ -310,6 +346,10 @@ class VirtualDesk
DB::table('desk_requests')->where('id', $id)->update($updates);
$request = DB::table('desk_requests')->where('id', $id)->firstOrFail();
$this->event($case, $actor, $submit ? 'submitted' : 'draft_saved', ['reason' => $data['reason'] ?? '', 'findings' => $findings], $request);
+ if ($prefill) {
+ $this->event($case, $actor, 'request_prefill_reused', ['draft_id' => $prefill['draft_id'], 'draft_version' => $prefill['draft_version'],
+ 'snapshot_sha256' => $prefill['snapshot_sha256'], 'fields' => ['description'], 'scope' => 'draft_preparation'], $request);
+ }
return $request;
});
diff --git a/config/legacy_content.php b/config/legacy_content.php
new file mode 100644
index 00000000..6a5e550d
--- /dev/null
+++ b/config/legacy_content.php
@@ -0,0 +1,32 @@
+ [
+ 'agronegocio' => ['root' => 'agronegocio', 'label' => 'Agronegócio', 'heading' => 'Investir no agronegócio'],
+ 'energia-mineracao' => ['root' => 'energia-mineracao', 'label' => 'Energia e Mineração', 'heading' => 'Explorar Energia e Mineração'],
+ 'turismo' => ['root' => 'turismo', 'label' => 'Turismo', 'heading' => 'Explorar Turismo'],
+ 'infraestruturas' => ['root' => 'infraestruturas', 'label' => 'Infraestruturas', 'heading' => 'Explorar Infraestruturas'],
+ 'mercado-financeiro' => ['root' => 'mercado-financeiro', 'label' => 'Mercado Financeiro', 'heading' => 'Explorar Mercado Financeiro'],
+ ],
+ 'articles' => [
+ 'agronegocio' => ['external_id' => 'legacy-tempo-post-171985-20260420', 'source_url' => 'https://investemoz.tempo.co.mz/agronegocio', 'group' => 'agronegocio', 'sector_slug' => 'agronegocio', 'publishable' => true],
+ 'energia-mineracao' => ['external_id' => 'legacy-tempo-post-171981-20260430', 'source_url' => 'https://investemoz.tempo.co.mz/energia-mineracao', 'group' => 'energia-mineracao', 'sector_slug' => 'energia', 'publishable' => true],
+ 'energia' => ['external_id' => 'legacy-tempo-post-172679-20260430', 'source_url' => 'https://investemoz.tempo.co.mz/energia/', 'group' => 'energia-mineracao', 'sector_slug' => 'energia-especifica', 'publishable' => true],
+ 'mineracao' => ['external_id' => 'legacy-tempo-post-172674-20260430', 'source_url' => 'https://investemoz.tempo.co.mz/mineracao', 'group' => 'energia-mineracao', 'sector_slug' => 'mineracao', 'publishable' => true],
+ 'turismo' => ['external_id' => 'legacy-tempo-post-171990-20260616', 'source_url' => 'https://investemoz.tempo.co.mz/turismo', 'group' => 'turismo', 'sector_slug' => 'turismo', 'publishable' => true],
+ 'provincia-da-zambezia-onde-os-corredores-de-mocambique-convergem-com-a-natureza-a-cultura-e-o-turismo-sustentavel' => ['external_id' => 'legacy-tempo-post-172263-20260414', 'source_url' => 'https://investemoz.tempo.co.mz/provincia-da-zambezia-onde-os-corredores-de-mocambique-convergem-com-a-natureza-a-cultura-e-o-turismo-sustentavel', 'group' => 'turismo', 'sector_slug' => 'turismo', 'publishable' => true],
+ 'provincia-de-sofala-onde-a-natureza-a-historia-e-o-futuro-do-turismo-convergem' => ['external_id' => 'legacy-tempo-post-172256-20260414', 'source_url' => 'https://investemoz.tempo.co.mz/provincia-de-sofala-onde-a-natureza-a-historia-e-o-futuro-do-turismo-convergem/', 'group' => 'turismo', 'sector_slug' => 'turismo', 'publishable' => true],
+ 'provincia-de-tete-onde-o-rio-zambeze-a-cultura-viva-e-a-conservacao-comunitaria-criam-o-futuro-do-turismo' => ['external_id' => 'legacy-tempo-post-172261-20260414', 'source_url' => 'https://investemoz.tempo.co.mz/provincia-de-tete-onde-o-rio-zambeze-a-cultura-viva-e-a-conservacao-comunitaria-criam-o-futuro-do-turismo/', 'group' => 'turismo', 'sector_slug' => 'turismo', 'publishable' => true],
+ 'provincia-de-manica-onde-o-turismo-de-montanha-natureza-e-cultura-encontra-o-proximo-ciclo-de-investimento' => ['external_id' => 'legacy-tempo-post-172258-20260417', 'source_url' => 'https://investemoz.tempo.co.mz/provincia-de-manica-onde-o-turismo-de-montanha-natureza-e-cultura-encontra-o-proximo-ciclo-de-investimento/', 'group' => 'turismo', 'sector_slug' => 'turismo', 'publishable' => true],
+ 'provincia-de-inhambane-um-destino-estrategico-para-investimento-turistico' => ['external_id' => 'legacy-tempo-post-172253-20260414', 'source_url' => 'https://investemoz.tempo.co.mz/provincia-de-inhambane-um-destino-estrategico-para-investimento-turistico/', 'group' => 'turismo', 'sector_slug' => 'turismo', 'publishable' => true],
+ 'maputo-cidade-plataforma-estrategica-de-turismo-negocios-e-investimento-sustentavel' => ['external_id' => 'legacy-tempo-post-172240-20260414', 'source_url' => 'https://investemoz.tempo.co.mz/maputo-cidade-plataforma-estrategica-de-turismo-negocios-e-investimento-sustentavel/', 'group' => 'turismo', 'sector_slug' => 'turismo', 'publishable' => true],
+ 'provincia-de-maputo-turismo' => ['external_id' => 'legacy-tempo-post-172237-20260417', 'source_url' => 'https://investemoz.tempo.co.mz/provincia-de-maputo-turismo/', 'group' => 'turismo', 'sector_slug' => 'turismo', 'publishable' => true],
+ 'provincia-de-gaza-oportunidades-mais-solidas-e-estrategicas-de-investimento-no-turismo-no-sul-de-mocambique' => ['external_id' => 'legacy-tempo-post-172233-20260417', 'source_url' => 'https://investemoz.tempo.co.mz/provincia-de-gaza-oportunidades-mais-solidas-e-estrategicas-de-investimento-no-turismo-no-sul-de-mocambique/', 'group' => 'turismo', 'sector_slug' => 'turismo', 'publishable' => true],
+ 'provincia-de-nampula-perfil-de-investimento-no-setor-do-turismo' => ['external_id' => 'legacy-tempo-post-172230-20260414', 'source_url' => 'https://investemoz.tempo.co.mz/provincia-de-nampula-perfil-de-investimento-no-setor-do-turismo/', 'group' => 'turismo', 'sector_slug' => 'turismo', 'publishable' => true],
+ 'cabo-delgado-pemba-a-capital-do-turismo-costeiro-do-norte-de-mocambique' => ['external_id' => 'legacy-tempo-post-172223-20260414', 'source_url' => 'https://investemoz.tempo.co.mz/cabo-delgado-pemba-a-capital-do-turismo-costeiro-do-norte-de-mocambique/', 'group' => 'turismo', 'sector_slug' => 'turismo', 'publishable' => true],
+ 'niassa-o-ultimo-grande-destino-virgem-do-turismo-africano' => ['external_id' => 'legacy-tempo-post-172219-20260414', 'source_url' => 'https://investemoz.tempo.co.mz/niassa-o-ultimo-grande-destino-virgem-do-turismo-africano/', 'group' => 'turismo', 'sector_slug' => 'turismo', 'publishable' => true],
+ 'infraestruturas' => ['external_id' => 'legacy-tempo-post-171992-20260430', 'source_url' => 'https://investemoz.tempo.co.mz/infraestruturas', 'group' => 'infraestruturas', 'sector_slug' => 'infraestruturas', 'publishable' => true],
+ 'mercado-financeiro' => ['external_id' => 'legacy-tempo-post-171994-20260417', 'source_url' => 'https://investemoz.tempo.co.mz/mercado-financeiro', 'group' => 'mercado-financeiro', 'sector_slug' => 'mercado-financeiro', 'publishable' => false],
+ ],
+];
diff --git a/config/portal.php b/config/portal.php
index 0a17eb40..2bb26b6f 100644
--- a/config/portal.php
+++ b/config/portal.php
@@ -1,10 +1,14 @@
env('PORTAL_LEGACY_CONTENT_QA_ENABLED', false),
'profile_access_enabled' => (bool) env('PORTAL_PROFILE_ACCESS_ENABLED', false),
// Prepared increment; enable only in QA until the authenticated rollout is approved.
'opportunity_dashboard_access_enabled' => env('PORTAL_OPPORTUNITY_DASHBOARD_ACCESS_ENABLED', false),
'opportunity_specialized_drafts_enabled' => env('PORTAL_OPPORTUNITY_SPECIALIZED_DRAFTS_ENABLED', false),
+ // Accepted first QA version, additionally guarded by the actual isolated database identity.
+ 'opportunity_modular_profiles_qa_enabled' => env('PORTAL_OPPORTUNITY_MODULAR_PROFILES_QA_ENABLED', false),
+ 'opportunity_other_qa_subtypes' => [],
'operator_name' => env('PORTAL_OPERATOR_NAME'),
'support' => [
'email' => env('PORTAL_SUPPORT_EMAIL'),
diff --git a/docs/investmoz/v2/auditoria-portal/backlog-priorizado.csv b/docs/investmoz/v2/auditoria-portal/backlog-priorizado.csv
index 7d5ccfdf..dc84fbbe 100644
--- a/docs/investmoz/v2/auditoria-portal/backlog-priorizado.csv
+++ b/docs/investmoz/v2/auditoria-portal/backlog-priorizado.csv
@@ -1,3355 +1,3394 @@
-"Prioridade","ID","Estado","Pendência","Correção/componentes","Dependência/pergunta","Aceitação","Ordem do próximo lote"
-"P0","AUD-OPS-01","parcial","Recursos030000 e percurso190000 ausentes no último retrato ativo; prévia ativa futura deve reconfirmar ledger. Mecanismo cartográfico C30 demonstrado em QA; disponível somente aí, e no ativo exige prova específica vinculada ao alvo/revisão/backup/restauro/UI. Revisão candidata não fixada: resultados manuais A/B e consumidores pendentes; backup final não renovado. Publicação é ação separada, não fornecida pelo importador.","OpportunityResourceInstallation; desk-activation-backup","A/B e consumidores na interface → backup/restauro/compatibilidade da revisão final → preview e ações autenticadas de instalações ausentes → flag separada; cartografia privada/divulgação separadas. Ativo fora da autorização atual.","AUD-OPS-01: Prova do código/destino atual; 288 tabelas/5 ficheiros restaurados; up/down QA; ação autenticada única","Critério individual; consultar backlog"
-"P0","AUD-OPS-02","concluído e demonstrado","Correção do tooling QA demonstrada; não é falha do portal nem aceitação funcional completa","Guarda de alvo + flock por host/porta/base antes da migração","Executável sem decisão humana; nenhum teste na base ativa","AUD-OPS-02: Segundo runner recusado antes de conexão/limpeza; suite sequencial passa; bases diferentes independentes","Critério individual; consultar backlog"
-"P0","AUD-OPS-03","concluído e demonstrado","Comparação temporal: 207 de 209 hashes iguais; cache/sessions diferem, causa não atribuída. Backup cobre todas as 288","Transação READ ONLY; hashes; snapshots privados; guardas QA","Manter configurações/dumps privados; leituras não autorizam restauro sobre novas escritas","AUD-OPS-03: Leitor READ ONLY; hashes de negócio/histórico preservados; alterações técnicas cache/sessions explicitadas; restauro verifica 288 tabelas","Critério individual; consultar backlog"
-"P1","RF-CLU-002","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","RF-CLU-002: As relações com projectos, negócios, empresas âncora, PME, fornecedores, compradores, financiadores, reguladores e instituições indicam papel, prioridade, período e estado, sem duplicar os registos de origem e com navegação nos dois sentidos.","Critério individual; consultar backlog"
-"P1","RF-COR-012","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","RF-COR-012: Reuniões, decisões, compromissos, prazos, conflitos e escalonamentos ficam registados; ninguém valida isoladamente a informação que submeteu.","Critério individual; consultar backlog"
-"P1","RF-CRM-003","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","RF-CRM-003: 1) O perfil pode ser criado progressivamente. 2) Sector, localização, instrumento e faixa financeira admitem múltiplas selecções priorizadas. 3) O gestor confirma ou corrige a sugestão e regista fundamento. 4) Alterações relevantes recalculam correspondências. 5) Campos altamente restritos obedecem a permissões.","Critério individual; consultar backlog"
-"P1","RF-EDU-002@UPGRADE","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","RF-EDU-002@UPGRADE: Submeter sem fonte, local, responsável ou distinguir estimativa de compromisso.","Critério individual; consultar backlog"
-"P1","RF-EDU-004@UPGRADE","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","RF-EDU-004@UPGRADE: Comparar unidades, períodos ou níveis incompatíveis sem conversão explícita.","Critério individual; consultar backlog"
-"P1","RF-EDU-013@UPGRADE","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","RF-EDU-013@UPGRADE: Ultrapassar orçamento ou comunicar elegibilidade não aprovada.","Critério individual; consultar backlog"
-"P1","RF-GEO-004","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","RF-GEO-004: O sistema aceita ponto, linha e polígono, valida formato, sistema de referência, extensão territorial e ficheiro.","Critério individual; consultar backlog"
-"P1","RF-MON-008","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","RF-MON-008: Entrada: transacção original, tipo de reversão, valor, motivo e anexos. Saída: nota de crédito, saldo revisto, comissão ajustada e caso de disputa.","Critério individual; consultar backlog"
-"P1","RF-EDU-018","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","RF-EDU-018: Oferta posterior à contratação não cobre lacuna na janela; sem geometria não inventa ponto","Critério individual; consultar backlog"
-"P1","RNF-EDU-011","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/EducationController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","RNF-EDU-011: Proposta backup diário cifrado; 100% recursos críticos incluídos; restauro trimestral verificado","Critério individual; consultar backlog"
-"P1","RNF-EDU-012","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/EducationController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","RNF-EDU-012: Proposta RPO <=24h e RTO <=8h; validar com impacto do negócio","Critério individual; consultar backlog"
-"P1","MASTER-9dee08d0-0015","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-9dee08d0-0015: Instruções claras sobre a obrigatoriedade de registo do capital de entrada junto do Banco de Moçambique para assegurar o direito de transferência de lucros, dividendos e capital investido de volta ao país de origem.","Critério individual; consultar backlog"
-"P1","MASTER-9dee08d0-0041","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/VirtualDesk.php; app/Services/Ai/InvestorGuidance.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-9dee08d0-0041: Nota de leitura: As barras de desempenho permitem visualizar rapidamente os pontos fortes e os pontos críticos do ciclo. O foco inicial deve recair sobre validação institucional, implementação e acompanhamento pós-investimento, por serem etapas com maior dependência de coordenação interinstitucional e maior impacto na experiência do investidor.","Critério individual; consultar backlog"
-"P1","MASTER-9dee08d0-0048","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/VirtualDesk.php; app/Services/Ai/InvestorGuidance.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-9dee08d0-0048: Conclusão estratégica: As recomendações devem ser implementadas de forma faseada, começando pelas acções de maior impacto imediato na previsibilidade, qualidade documental e coordenação institucional. A médio e longo prazo, a prioridade deve ser consolidar a monitoria digital, a integração entre entidades e o suporte pós-investimento como pilares permanentes da proposta de valor do portal.","Critério individual; consultar backlog"
-"P1","MASTER-9dee08d0-0057","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-9dee08d0-0057: Nota operacional: O sistema deve permitir guardar o formulário como rascunho, validar campos em tempo real, destacar erros antes da submissão e gerar um comprovativo electrónico com número de referência após o envio.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0006","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0006: Proposta de valor do país organizada por acesso a mercados, localização regional, recursos, corredores logísticos, base produtiva, capital humano, energia, zonas económicas, estabilidade institucional e oportunidades de transformação. Cada argumento deve ter fonte, data e contexto. | MASTER-e1169a77-0024: Proposta de valor do país organizada por acesso a mercados, localização regional, recursos, corredores logísticos, base produtiva, capital humano, energia, zonas económicas, estabilidade institucional e oportunidades de transformação. Cada argumento deve ter fonte, data e contexto. | MASTER-f70ce307-0007: Proposta de valor do país organizada por acesso a mercados, localização regional, recursos, corredores logísticos, base produtiva, capital humano, energia, zonas económicas, estabilidade institucional e oportunidades de transformação. Cada argumento deve ter fonte, data e contexto. | MASTER-51b8f0ad-0007: Proposta de valor do país organizada por acesso a mercados, localização regional, recursos, corredores logísticos, base produtiva, capital humano, energia, zonas económicas, estabilidade institucional e oportunidades de transformação. Cada argumento deve ter fonte, data e contexto. | MASTER-edece80c-0024: Proposta de valor do país organizada por acesso a mercados, localização regional, recursos, corredores logísticos, base produtiva, capital humano, energia, zonas económicas, estabilidade institucional e oportunidades de transformação. Cada argumento deve ter fonte, data e contexto.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0023","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0023: Permitir gravação como rascunho, actualização, suspensão, renovação e encerramento pelo utilizador ou por gestor autorizado. | MASTER-e1169a77-0172: Permitir gravação como rascunho, actualização, suspensão, renovação e encerramento pelo utilizador ou por gestor autorizado. | MASTER-f70ce307-0028: Permitir gravação como rascunho, actualização, suspensão, renovação e encerramento pelo utilizador ou por gestor autorizado. | MASTER-51b8f0ad-0108: Permitir gravação como rascunho, actualização, suspensão, renovação e encerramento pelo utilizador ou por gestor autorizado. | MASTER-edece80c-0172: Permitir gravação como rascunho, actualização, suspensão, renovação e encerramento pelo utilizador ou por gestor autorizado.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0028","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0028: Obrigatório. A localização deve identificar com precisão onde o investimento será realizado; projectos que abranjam vários locais devem indicar todos os territórios e distinguir a localização principal das áreas complementares. | MASTER-e1169a77-0177: Obrigatório. A localização deve identificar com precisão onde o investimento será realizado; projectos que abranjam vários locais devem indicar todos os territórios e distinguir a localização principal das áreas complementares. | MASTER-f70ce307-0033: Obrigatório. A localização deve identificar com precisão onde o investimento será realizado; projectos que abranjam vários locais devem indicar todos os territórios e distinguir a localização principal das áreas complementares. | MASTER-51b8f0ad-0113: Obrigatório. A localização deve identificar com precisão onde o investimento será realizado; projectos que abranjam vários locais devem indicar todos os territórios e distinguir a localização principal das áreas complementares. | MASTER-edece80c-0177: Obrigatório. A localização deve identificar com precisão onde o investimento será realizado; projectos que abranjam vários locais devem indicar todos os territórios e distinguir a localização principal das áreas complementares.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0038","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0038: País, região, província, distrito e localidade coerentes; pelo menos um território; coordenadas em formato válido; “nacional” ou “multiterritorial” exige lista das áreas abrangidas; localização principal obrigatória. | MASTER-e1169a77-0187: País, região, província, distrito e localidade coerentes; pelo menos um território; coordenadas em formato válido; “nacional” ou “multiterritorial” exige lista das áreas abrangidas; localização principal obrigatória. | MASTER-f70ce307-0043: País, região, província, distrito e localidade coerentes; pelo menos um território; coordenadas em formato válido; “nacional” ou “multiterritorial” exige lista das áreas abrangidas; localização principal obrigatória. | MASTER-51b8f0ad-0123: País, região, província, distrito e localidade coerentes; pelo menos um território; coordenadas em formato válido; “nacional” ou “multiterritorial” exige lista das áreas abrangidas; localização principal obrigatória. | MASTER-edece80c-0187: País, região, província, distrito e localidade coerentes; pelo menos um território; coordenadas em formato válido; “nacional” ou “multiterritorial” exige lista das áreas abrangidas; localização principal obrigatória.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0073","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0073: Província, distrito, posto, localidade, área em hectares e localização principal são obrigatórios; coordenadas ou polígono são validados e só publicados após autorização. | MASTER-e1169a77-0224: Província, distrito, posto, localidade, área em hectares e localização principal são obrigatórios; coordenadas ou polígono são validados e só publicados após autorização. | MASTER-f70ce307-0080: Província, distrito, posto, localidade, área em hectares e localização principal são obrigatórios; coordenadas ou polígono são validados e só publicados após autorização. | MASTER-51b8f0ad-0160: Província, distrito, posto, localidade, área em hectares e localização principal são obrigatórios; coordenadas ou polígono são validados e só publicados após autorização. | MASTER-edece80c-0224: Província, distrito, posto, localidade, área em hectares e localização principal são obrigatórios; coordenadas ou polígono são validados e só publicados após autorização.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0084","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0084: Obrigatório; geometria coerente com o título; fonte, sistema de referência e precisão registados; mapa público apenas após autorização. | MASTER-e1169a77-0235: Obrigatório; geometria coerente com o título; fonte, sistema de referência e precisão registados; mapa público apenas após autorização. | MASTER-f70ce307-0091: Obrigatório; geometria coerente com o título; fonte, sistema de referência e precisão registados; mapa público apenas após autorização. | MASTER-51b8f0ad-0171: Obrigatório; geometria coerente com o título; fonte, sistema de referência e precisão registados; mapa público apenas após autorização. | MASTER-edece80c-0235: Obrigatório; geometria coerente com o título; fonte, sistema de referência e precisão registados; mapa público apenas após autorização.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0109","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0109: Obrigatório; validar país, província, distrito, posto, localidade e localização principal. | MASTER-e1169a77-0262: Obrigatório; validar país, província, distrito, posto, localidade e localização principal. | MASTER-f70ce307-0118: Obrigatório; validar país, província, distrito, posto, localidade e localização principal. | MASTER-51b8f0ad-0198: Obrigatório; validar país, província, distrito, posto, localidade e localização principal. | MASTER-edece80c-0262: Obrigatório; validar país, província, distrito, posto, localidade e localização principal.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0112","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0112: A Tempo deverá manter um cadastro de pontos focais e pedidos de validação, com protocolo, entidade, destinatário, data de envio, prazo, resposta, anexos, decisão e validade. Até à recepção de evidência formal, as localizações desta versão permanecem classificadas como preliminares e não devem ser apresentadas como coordenadas oficiais. | MASTER-e1169a77-0265: A Tempo deverá manter um cadastro de pontos focais e pedidos de validação, com protocolo, entidade, destinatário, data de envio, prazo, resposta, anexos, decisão e validade. Até à recepção de evidência formal, as localizações desta versão permanecem classificadas como preliminares e não devem ser apresentadas como coordenadas oficiais. | MASTER-f70ce307-0121: A Tempo deverá manter um cadastro de pontos focais e pedidos de validação, com protocolo, entidade, destinatário, data de envio, prazo, resposta, anexos, decisão e validade. Até à recepção de evidência formal, as localizações desta versão permanecem classificadas como preliminares e não devem ser apresentadas como coordenadas oficiais. | MASTER-51b8f0ad-0201: A Tempo deverá manter um cadastro de pontos focais e pedidos de validação, com protocolo, entidade, destinatário, data de envio, prazo, resposta, anexos, decisão e validade. Até à recepção de evidência formal, as localizações desta versão permanecem classificadas como preliminares e não devem ser apresentadas como coordenadas oficiais. | MASTER-edece80c-0265: A Tempo deverá manter um cadastro de pontos focais e pedidos de validação, com protocolo, entidade, destinatário, data de envio, prazo, resposta, anexos, decisão e validade. Até à recepção de evidência formal, as localizações desta versão permanecem classificadas como preliminares e não devem ser apresentadas como coordenadas oficiais.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0122","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0122: Local do investimento: país, região, província, distrito, posto administrativo, localidade, município ou cidade, corredor, zona económica, parque industrial ou bacia, endereço ou referência e coordenadas geográficas, quando disponíveis. Projectos nacionais ou multiterritoriais devem listar cada área abrangida e indicar a localização principal. | MASTER-e1169a77-0275: Local do investimento: país, região, província, distrito, posto administrativo, localidade, município ou cidade, corredor, zona económica, parque industrial ou bacia, endereço ou referência e coordenadas geográficas, quando disponíveis. Projectos nacionais ou multiterritoriais devem listar cada área abrangida e indicar a localização principal. | MASTER-f70ce307-0131: Local do investimento: país, região, província, distrito, posto administrativo, localidade, município ou cidade, corredor, zona económica, parque industrial ou bacia, endereço ou referência e coordenadas geográficas, quando disponíveis. Projectos nacionais ou multiterritoriais devem listar cada área abrangida e indicar a localização principal. | MASTER-51b8f0ad-0211: Local do investimento: país, região, província, distrito, posto administrativo, localidade, município ou cidade, corredor, zona económica, parque industrial ou bacia, endereço ou referência e coordenadas geográficas, quando disponíveis. Projectos nacionais ou multiterritoriais devem listar cada área abrangida e indicar a localização principal. | MASTER-edece80c-0275: Local do investimento: país, região, província, distrito, posto administrativo, localidade, município ou cidade, corredor, zona económica, parque industrial ou bacia, endereço ou referência e coordenadas geográficas, quando disponíveis. Projectos nacionais ou multiterritoriais devem listar cada área abrangida e indicar a localização principal.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0123","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0123: Localização normalizada: país, âmbito nacional ou regional, província, distrito, posto administrativo, localidade, município ou cidade, corredor, zona económica, parque industrial ou bacia, endereço ou referência, latitude, longitude e localização principal. Registos multiterritoriais devem admitir múltiplas localizações relacionadas. | MASTER-e1169a77-0276: Localização normalizada: país, âmbito nacional ou regional, província, distrito, posto administrativo, localidade, município ou cidade, corredor, zona económica, parque industrial ou bacia, endereço ou referência, latitude, longitude e localização principal. Registos multiterritoriais devem admitir múltiplas localizações relacionadas. | MASTER-f70ce307-0132: Localização normalizada: país, âmbito nacional ou regional, província, distrito, posto administrativo, localidade, município ou cidade, corredor, zona económica, parque industrial ou bacia, endereço ou referência, latitude, longitude e localização principal. Registos multiterritoriais devem admitir múltiplas localizações relacionadas. | MASTER-51b8f0ad-0212: Localização normalizada: país, âmbito nacional ou regional, província, distrito, posto administrativo, localidade, município ou cidade, corredor, zona económica, parque industrial ou bacia, endereço ou referência, latitude, longitude e localização principal. Registos multiterritoriais devem admitir múltiplas localizações relacionadas. | MASTER-edece80c-0276: Localização normalizada: país, âmbito nacional ou regional, província, distrito, posto administrativo, localidade, município ou cidade, corredor, zona económica, parque industrial ou bacia, endereço ou referência, latitude, longitude e localização principal. Registos multiterritoriais devem admitir múltiplas localizações relacionadas.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0131","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/VirtualDesk.php; app/Services/Ai/InvestorGuidance.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0131: Gestão comercial: cada lead deve possuir origem, campanha, projecto, sector, país, perfil, capacidade indicativa, interesse, responsável, próxima acção, prazo e estado. O contacto inicial deve ocorrer dentro do nível de serviço aprovado; leads sem resposta entram em cadência de nutrição; leads qualificados seguem para reunião e validação institucional; nenhuma promessa, condição financeira ou acesso reservado pode ser comunicado sem autorização. A Direcção deve rever mensalmente o pipeline e trimestralmente o desempenho das campanhas. | MASTER-e1169a77-0284: Gestão comercial: cada lead deve possuir origem, campanha, projecto, sector, país, perfil, capacidade indicativa, interesse, responsável, próxima acção, prazo e estado. O contacto inicial deve ocorrer dentro do nível de serviço aprovado; leads sem resposta entram em cadência de nutrição; leads qualificados seguem para reunião e validação institucional; nenhuma promessa, condição financeira ou acesso reservado pode ser comunicado sem autorização. A Direcção deve rever mensalmente o pipeline e trimestralmente o desempenho das campanhas. | MASTER-f70ce307-0140: Gestão comercial: cada lead deve possuir origem, campanha, projecto, sector, país, perfil, capacidade indicativa, interesse, responsável, próxima acção, prazo e estado. O contacto inicial deve ocorrer dentro do nível de serviço aprovado; leads sem resposta entram em cadência de nutrição; leads qualificados seguem para reunião e validação institucional; nenhuma promessa, condição financeira ou acesso reservado pode ser comunicado sem autorização. A Direcção deve rever mensalmente o pipeline e trimestralmente o desempenho das campanhas. | MASTER-51b8f0ad-0220: Gestão comercial: cada lead deve possuir origem, campanha, projecto, sector, país, perfil, capacidade indicativa, interesse, responsável, próxima acção, prazo e estado. O contacto inicial deve ocorrer dentro do nível de serviço aprovado; leads sem resposta entram em cadência de nutrição; leads qualificados seguem para reunião e validação institucional; nenhuma promessa, condição financeira ou acesso reservado pode ser comunicado sem autorização. A Direcção deve rever mensalmente o pipeline e trimestralmente o desempenho das campanhas. | MASTER-edece80c-0284: Gestão comercial: cada lead deve possuir origem, campanha, projecto, sector, país, perfil, capacidade indicativa, interesse, responsável, próxima acção, prazo e estado. O contacto inicial deve ocorrer dentro do nível de serviço aprovado; leads sem resposta entram em cadência de nutrição; leads qualificados seguem para reunião e validação institucional; nenhuma promessa, condição financeira ou acesso reservado pode ser comunicado sem autorização. A Direcção deve rever mensalmente o pipeline e trimestralmente o desempenho das campanhas.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0134","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0134: Publicar a ficha e associá-la a sectores, territórios, campanhas e perfis de investidor. | MASTER-e1169a77-0287: Publicar a ficha e associá-la a sectores, territórios, campanhas e perfis de investidor. | MASTER-f70ce307-0143: Publicar a ficha e associá-la a sectores, territórios, campanhas e perfis de investidor. | MASTER-51b8f0ad-0223: Publicar a ficha e associá-la a sectores, territórios, campanhas e perfis de investidor. | MASTER-edece80c-0287: Publicar a ficha e associá-la a sectores, territórios, campanhas e perfis de investidor.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0159","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/CrmController.php; app/Services/DeclaredOriginStatistics.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0159: Os requisitos RF-CRM-001 a RF-CRM-012 são apresentados nas tabelas seguintes com regras de negócio, critérios de aceitação verificáveis, prioridade e dependências. Para aprovação do desenvolvimento, cada requisito deverá ser convertido em histórias de utilizador e casos de teste positivos, negativos, de autorização, auditoria e recuperação de falha. | MASTER-e1169a77-0312: Os requisitos RF-CRM-001 a RF-CRM-012 são apresentados nas tabelas seguintes com regras de negócio, critérios de aceitação verificáveis, prioridade e dependências. Para aprovação do desenvolvimento, cada requisito deverá ser convertido em histórias de utilizador e casos de teste positivos, negativos, de autorização, auditoria e recuperação de falha. | MASTER-f70ce307-0168: Os requisitos RF-CRM-001 a RF-CRM-012 são apresentados nas tabelas seguintes com regras de negócio, critérios de aceitação verificáveis, prioridade e dependências. Para aprovação do desenvolvimento, cada requisito deverá ser convertido em histórias de utilizador e casos de teste positivos, negativos, de autorização, auditoria e recuperação de falha. | MASTER-51b8f0ad-0248: Os requisitos RF-CRM-001 a RF-CRM-012 são apresentados nas tabelas seguintes com regras de negócio, critérios de aceitação verificáveis, prioridade e dependências. Para aprovação do desenvolvimento, cada requisito deverá ser convertido em histórias de utilizador e casos de teste positivos, negativos, de autorização, auditoria e recuperação de falha. | MASTER-edece80c-0312: Os requisitos RF-CRM-001 a RF-CRM-012 são apresentados nas tabelas seguintes com regras de negócio, critérios de aceitação verificáveis, prioridade e dependências. Para aprovação do desenvolvimento, cada requisito deverá ser convertido em histórias de utilizador e casos de teste positivos, negativos, de autorização, auditoria e recuperação de falha.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0169","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/CrmController.php; app/Services/DeclaredOriginStatistics.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0169: Critério transversal: todos os requisitos devem possuir testes positivos, negativos, de autorização, auditoria e recuperação de falha. Os valores, probabilidades e classificações produzidos pelo CRM são instrumentos de gestão e não substituem confirmação da entidade competente. | MASTER-e1169a77-0322: Critério transversal: todos os requisitos devem possuir testes positivos, negativos, de autorização, auditoria e recuperação de falha. Os valores, probabilidades e classificações produzidos pelo CRM são instrumentos de gestão e não substituem confirmação da entidade competente. | MASTER-f70ce307-0178: Critério transversal: todos os requisitos devem possuir testes positivos, negativos, de autorização, auditoria e recuperação de falha. Os valores, probabilidades e classificações produzidos pelo CRM são instrumentos de gestão e não substituem confirmação da entidade competente. | MASTER-51b8f0ad-0258: Critério transversal: todos os requisitos devem possuir testes positivos, negativos, de autorização, auditoria e recuperação de falha. Os valores, probabilidades e classificações produzidos pelo CRM são instrumentos de gestão e não substituem confirmação da entidade competente. | MASTER-edece80c-0322: Critério transversal: todos os requisitos devem possuir testes positivos, negativos, de autorização, auditoria e recuperação de falha. Os valores, probabilidades e classificações produzidos pelo CRM são instrumentos de gestão e não substituem confirmação da entidade competente.","Critério individual; consultar backlog"
-"P1","MASTER-471012ab-0173","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-471012ab-0173: Identificador único; nome e país obrigatórios; NUIT único quando aplicável; faixa financeira coerente; dados financeiros e beneficiário efectivo altamente restritos; alterações de verificação auditadas. | MASTER-e1169a77-0326: Identificador único; nome e país obrigatórios; NUIT único quando aplicável; faixa financeira coerente; dados financeiros e beneficiário efectivo altamente restritos; alterações de verificação auditadas. | MASTER-f70ce307-0182: Identificador único; nome e país obrigatórios; NUIT único quando aplicável; faixa financeira coerente; dados financeiros e beneficiário efectivo altamente restritos; alterações de verificação auditadas. | MASTER-51b8f0ad-0262: Identificador único; nome e país obrigatórios; NUIT único quando aplicável; faixa financeira coerente; dados financeiros e beneficiário efectivo altamente restritos; alterações de verificação auditadas. | MASTER-edece80c-0326: Identificador único; nome e país obrigatórios; NUIT único quando aplicável; faixa financeira coerente; dados financeiros e beneficiário efectivo altamente restritos; alterações de verificação auditadas.","Critério individual; consultar backlog"
-"P1","MASTER-e1169a77-0043","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1169a77-0043: O módulo de clusters deverá organizar oportunidades, projectos, empresas, fornecedores, compradores, financiadores, competências, infra-estruturas, reguladores e territórios em ecossistemas económicos coerentes. A sua finalidade é orientar o investidor para os elos da cadeia de valor e os locais onde o investimento apresenta maior complementaridade, procura, capacidade instalada e impacto potencial. O cluster não substitui a ficha individual do projecto: funciona como camada transversal de inteligência, coordenação, promoção e monitoria. | MASTER-51b8f0ad-0024: O módulo de clusters deverá organizar oportunidades, projectos, empresas, fornecedores, compradores, financiadores, competências, infra-estruturas, reguladores e territórios em ecossistemas económicos coerentes. A sua finalidade é orientar o investidor para os elos da cadeia de valor e os locais onde o investimento apresenta maior complementaridade, procura, capacidade instalada e impacto potencial. O cluster não substitui a ficha individual do projecto: funciona como camada transversal de inteligência, coordenação, promoção e monitoria. | MASTER-edece80c-0043: O módulo de clusters deverá organizar oportunidades, projectos, empresas, fornecedores, compradores, financiadores, competências, infra-estruturas, reguladores e territórios em ecossistemas económicos coerentes. A sua finalidade é orientar o investidor para os elos da cadeia de valor e os locais onde o investimento apresenta maior complementaridade, procura, capacidade instalada e impacto potencial. O cluster não substitui a ficha individual do projecto: funciona como camada transversal de inteligência, coordenação, promoção e monitoria.","Critério individual; consultar backlog"
-"P1","MASTER-e1169a77-0062","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1169a77-0062: O módulo de Corredores de Desenvolvimento deverá estruturar o território como uma rede integrada de infra-estruturas, projectos âncora, clusters económicos, cidades e plataformas logísticas, projectos complementares, fornecedores, compradores, financiadores e instituições. A unidade principal será o corredor, que agrega uma área de influência e liga explicitamente território → corredor → projecto âncora → cluster → cadeia de valor → projecto complementar → investidor. A inteligência artificial deverá monitorar dados, detectar alterações, antecipar riscos e propor acções, mantendo explicação, fonte, nível de confiança e validação humana obrigatória. | MASTER-51b8f0ad-0041: O módulo de Corredores de Desenvolvimento deverá estruturar o território como uma rede integrada de infra-estruturas, projectos âncora, clusters económicos, cidades e plataformas logísticas, projectos complementares, fornecedores, compradores, financiadores e instituições. A unidade principal será o corredor, que agrega uma área de influência e liga explicitamente território → corredor → projecto âncora → cluster → cadeia de valor → projecto complementar → investidor. A inteligência artificial deverá monitorar dados, detectar alterações, antecipar riscos e propor acções, mantendo explicação, fonte, nível de confiança e validação humana obrigatória. | MASTER-edece80c-0062: O módulo de Corredores de Desenvolvimento deverá estruturar o território como uma rede integrada de infra-estruturas, projectos âncora, clusters económicos, cidades e plataformas logísticas, projectos complementares, fornecedores, compradores, financiadores e instituições. A unidade principal será o corredor, que agrega uma área de influência e liga explicitamente território → corredor → projecto âncora → cluster → cadeia de valor → projecto complementar → investidor. A inteligência artificial deverá monitorar dados, detectar alterações, antecipar riscos e propor acções, mantendo explicação, fonte, nível de confiança e validação humana obrigatória.","Critério individual; consultar backlog"
-"P1","MASTER-e1169a77-0063","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1169a77-0063: O sistema permite propor, validar, publicar e acompanhar novos projectos ligados ao corredor, projecto âncora, cluster, elo e território. | MASTER-51b8f0ad-0042: O sistema permite propor, validar, publicar e acompanhar novos projectos ligados ao corredor, projecto âncora, cluster, elo e território. | MASTER-edece80c-0063: O sistema permite propor, validar, publicar e acompanhar novos projectos ligados ao corredor, projecto âncora, cluster, elo e território.","Critério individual; consultar backlog"
-"P1","MASTER-e1169a77-0093","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1169a77-0093: Exigir validação cadastral/fundiária, histórico de geometria, consulta aplicável e aviso de que publicação não constitui concessão. | MASTER-edece80c-0093: Exigir validação cadastral/fundiária, histórico de geometria, consulta aplicável e aviso de que publicação não constitui concessão.","Critério individual; consultar backlog"
-"P1","MASTER-e1169a77-0111","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1169a77-0111: Com base nas lições do programa de competitividade do Rwanda, o InvestMoz deverá tratar cada cluster como um programa económico coordenado e não apenas como uma categoria de conteúdo. A página, os dados, o CRM, os mapas, as campanhas, a governação e a inteligência artificial devem ligar projectos âncora, corredores, cadeias de valor, empresas, infra-estruturas, financiamento, competências, fornecedores, compradores, mercados e políticas públicas. Esta secção consolida os elementos necessários para transformar o desenho funcional existente num plano executável, evitando duplicações entre clusters, corredores e experiência integrada do investidor. | MASTER-51b8f0ad-0060: Com base nas lições do programa de competitividade do Rwanda, o InvestMoz deverá tratar cada cluster como um programa económico coordenado e não apenas como uma categoria de conteúdo. A página, os dados, o CRM, os mapas, as campanhas, a governação e a inteligência artificial devem ligar projectos âncora, corredores, cadeias de valor, empresas, infra-estruturas, financiamento, competências, fornecedores, compradores, mercados e políticas públicas. Esta secção consolida os elementos necessários para transformar o desenho funcional existente num plano executável, evitando duplicações entre clusters, corredores e experiência integrada do investidor. | MASTER-edece80c-0111: Com base nas lições do programa de competitividade do Rwanda, o InvestMoz deverá tratar cada cluster como um programa económico coordenado e não apenas como uma categoria de conteúdo. A página, os dados, o CRM, os mapas, as campanhas, a governação e a inteligência artificial devem ligar projectos âncora, corredores, cadeias de valor, empresas, infra-estruturas, financiamento, competências, fornecedores, compradores, mercados e políticas públicas. Esta secção consolida os elementos necessários para transformar o desenho funcional existente num plano executável, evitando duplicações entre clusters, corredores e experiência integrada do investidor.","Critério individual; consultar backlog"
-"P1","MASTER-e1169a77-0114","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1169a77-0114: Em qualquer percurso, o portal deverá responder de forma consistente: onde investir; em que elo da cadeia de valor; que infra-estruturas existem; que fornecedores, compradores e financiadores estão disponíveis; que projectos complementares são necessários; que incentivos, licenças, riscos e constrangimentos existem; quem coordena; e qual é a próxima acção do investidor. | MASTER-51b8f0ad-0063: Em qualquer percurso, o portal deverá responder de forma consistente: onde investir; em que elo da cadeia de valor; que infra-estruturas existem; que fornecedores, compradores e financiadores estão disponíveis; que projectos complementares são necessários; que incentivos, licenças, riscos e constrangimentos existem; quem coordena; e qual é a próxima acção do investidor. | MASTER-edece80c-0114: Em qualquer percurso, o portal deverá responder de forma consistente: onde investir; em que elo da cadeia de valor; que infra-estruturas existem; que fornecedores, compradores e financiadores estão disponíveis; que projectos complementares são necessários; que incentivos, licenças, riscos e constrangimentos existem; quem coordena; e qual é a próxima acção do investidor.","Critério individual; consultar backlog"
-"P1","MASTER-e1169a77-0115","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1169a77-0115: O ciclo de gestão do cluster deverá seguir dez passos: compreender o mercado; consultar empresas, compradores e financiadores; identificar constrangimentos; seleccionar prioridades; definir visão e metas; estruturar projectos complementares; atribuir responsáveis e orçamento; apoiar empresas e fornecedores; promover internacionalmente; medir resultados e corrigir a estratégia. O índice de prontidão do cluster deve medir carteira, infra-estruturas, licenciamento, capacidade institucional, fornecedores, competências, financiamento, mercados, riscos e coordenação. | MASTER-51b8f0ad-0064: O ciclo de gestão do cluster deverá seguir dez passos: compreender o mercado; consultar empresas, compradores e financiadores; identificar constrangimentos; seleccionar prioridades; definir visão e metas; estruturar projectos complementares; atribuir responsáveis e orçamento; apoiar empresas e fornecedores; promover internacionalmente; medir resultados e corrigir a estratégia. O índice de prontidão do cluster deve medir carteira, infra-estruturas, licenciamento, capacidade institucional, fornecedores, competências, financiamento, mercados, riscos e coordenação. | MASTER-edece80c-0115: O ciclo de gestão do cluster deverá seguir dez passos: compreender o mercado; consultar empresas, compradores e financiadores; identificar constrangimentos; seleccionar prioridades; definir visão e metas; estruturar projectos complementares; atribuir responsáveis e orçamento; apoiar empresas e fornecedores; promover internacionalmente; medir resultados e corrigir a estratégia. O índice de prontidão do cluster deve medir carteira, infra-estruturas, licenciamento, capacidade institucional, fornecedores, competências, financiamento, mercados, riscos e coordenação.","Critério individual; consultar backlog"
-"P1","MASTER-e1169a77-0123","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1169a77-0123: O submódulo deverá converter as lacunas de competências identificadas em projectos, clusters, corredores e territórios em oportunidades estruturadas de investimento na educação e formação profissional. O portal deverá ligar procura de trabalho e competências, oferta formativa, instituições, empregadores, financiadores, fornecedores de equipamento e investidores, preservando a responsabilidade das entidades competentes pela acreditação, certificação e validação curricular. A inteligência artificial poderá detectar lacunas, recomendar percursos e monitorar resultados, mas não poderá certificar instituições, cursos ou pessoas. | MASTER-51b8f0ad-0072: O submódulo deverá converter as lacunas de competências identificadas em projectos, clusters, corredores e territórios em oportunidades estruturadas de investimento na educação e formação profissional. O portal deverá ligar procura de trabalho e competências, oferta formativa, instituições, empregadores, financiadores, fornecedores de equipamento e investidores, preservando a responsabilidade das entidades competentes pela acreditação, certificação e validação curricular. A inteligência artificial poderá detectar lacunas, recomendar percursos e monitorar resultados, mas não poderá certificar instituições, cursos ou pessoas. | MASTER-edece80c-0123: O submódulo deverá converter as lacunas de competências identificadas em projectos, clusters, corredores e territórios em oportunidades estruturadas de investimento na educação e formação profissional. O portal deverá ligar procura de trabalho e competências, oferta formativa, instituições, empregadores, financiadores, fornecedores de equipamento e investidores, preservando a responsabilidade das entidades competentes pela acreditação, certificação e validação curricular. A inteligência artificial poderá detectar lacunas, recomendar percursos e monitorar resultados, mas não poderá certificar instituições, cursos ou pessoas.","Critério individual; consultar backlog"
-"P1","MASTER-e1169a77-0145","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1169a77-0145: Registar necessidade ligada a território, corredor, cluster, âncora, ocupação, quantidade e prazo. | MASTER-51b8f0ad-0094: Registar necessidade ligada a território, corredor, cluster, âncora, ocupação, quantidade e prazo. | MASTER-edece80c-0145: Registar necessidade ligada a território, corredor, cluster, âncora, ocupação, quantidade e prazo.","Critério individual; consultar backlog"
-"P1","MASTER-e1169a77-0151","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/CrmController.php; app/Services/DeclaredOriginStatistics.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1169a77-0151: Critério transversal de testes: cada RF-EDU deve possuir casos positivos, negativos, de autorização, auditoria, integração, recuperação de falhas e acessibilidade. A aceitação exige evidência, responsável, ambiente, dados de teste, resultado esperado, resultado observado, defeito, decisão e data. | MASTER-51b8f0ad-0100: Critério transversal de testes: cada RF-EDU deve possuir casos positivos, negativos, de autorização, auditoria, integração, recuperação de falhas e acessibilidade. A aceitação exige evidência, responsável, ambiente, dados de teste, resultado esperado, resultado observado, defeito, decisão e data. | MASTER-edece80c-0151: Critério transversal de testes: cada RF-EDU deve possuir casos positivos, negativos, de autorização, auditoria, integração, recuperação de falhas e acessibilidade. A aceitação exige evidência, responsável, ambiente, dados de teste, resultado esperado, resultado observado, defeito, decisão e data.","Critério individual; consultar backlog"
-"P1","MASTER-e1169a77-0254","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/VirtualDesk.php; app/Services/Ai/InvestorGuidance.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1169a77-0254: Os serviços devem ser organizados em níveis progressivos. O nível público disponibiliza informação, pesquisa, alertas e manifestação de interesse. O nível registado permite favoritos, comparação, dossiers e acompanhamento. O nível verificado habilita correspondência, reuniões e acesso condicionado a informação. O nível assistido oferece avaliação de localização, preparação de projecto, roteiro regulatório e coordenação institucional mediante contrato. O nível pós-investimento assegura resolução de constrangimentos, expansão e ligações empresariais. Cada nível deve definir elegibilidade, preço quando aplicável, prazo, responsável, entregáveis e limites de responsabilidade. | MASTER-f70ce307-0110: Os serviços devem ser organizados em níveis progressivos. O nível público disponibiliza informação, pesquisa, alertas e manifestação de interesse. O nível registado permite favoritos, comparação, dossiers e acompanhamento. O nível verificado habilita correspondência, reuniões e acesso condicionado a informação. O nível assistido oferece avaliação de localização, preparação de projecto, roteiro regulatório e coordenação institucional mediante contrato. O nível pós-investimento assegura resolução de constrangimentos, expansão e ligações empresariais. Cada nível deve definir elegibilidade, preço quando aplicável, prazo, responsável, entregáveis e limites de responsabilidade. | MASTER-51b8f0ad-0190: Os serviços devem ser organizados em níveis progressivos. O nível público disponibiliza informação, pesquisa, alertas e manifestação de interesse. O nível registado permite favoritos, comparação, dossiers e acompanhamento. O nível verificado habilita correspondência, reuniões e acesso condicionado a informação. O nível assistido oferece avaliação de localização, preparação de projecto, roteiro regulatório e coordenação institucional mediante contrato. O nível pós-investimento assegura resolução de constrangimentos, expansão e ligações empresariais. Cada nível deve definir elegibilidade, preço quando aplicável, prazo, responsável, entregáveis e limites de responsabilidade. | MASTER-edece80c-0254: Os serviços devem ser organizados em níveis progressivos. O nível público disponibiliza informação, pesquisa, alertas e manifestação de interesse. O nível registado permite favoritos, comparação, dossiers e acompanhamento. O nível verificado habilita correspondência, reuniões e acesso condicionado a informação. O nível assistido oferece avaliação de localização, preparação de projecto, roteiro regulatório e coordenação institucional mediante contrato. O nível pós-investimento assegura resolução de constrangimentos, expansão e ligações empresariais. Cada nível deve definir elegibilidade, preço quando aplicável, prazo, responsável, entregáveis e limites de responsabilidade.","Critério individual; consultar backlog"
-"P1","MASTER-e1169a77-0363","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1169a77-0363: • Validar schema, obrigatoriedade, domínios, referências, duplicados, geometria e classificação; inválidos seguem para quarantine. | MASTER-edece80c-0363: • Validar schema, obrigatoriedade, domínios, referências, duplicados, geometria e classificação; inválidos seguem para quarantine.","Critério individual; consultar backlog"
-"P1","MASTER-e1169a77-0366","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1169a77-0366: Códigos oficiais e versionados de país/província/distrito/posto; parent_code obrigatório quando aplicável. | MASTER-edece80c-0366: Códigos oficiais e versionados de país/província/distrito/posto; parent_code obrigatório quando aplicável.","Critério individual; consultar backlog"
-"P1","MASTER-b44ec86d-0003","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-b44ec86d-0003: Instruções claras sobre a obrigatoriedade de registo do capital de entrada junto do Banco de Moçambique, para assegurar o direito à transferência de lucros, dividendos e capital investido de volta ao país de origem. | MASTER-efd550fd-0015: Instruções claras sobre a obrigatoriedade de registo do capital de entrada junto do Banco de Moçambique, para assegurar o direito à transferência de lucros, dividendos e capital investido de volta ao país de origem. | MASTER-9f5719c8-0016: Instruções claras sobre a obrigatoriedade de registo do capital de entrada junto do Banco de Moçambique, para assegurar o direito à transferência de lucros, dividendos e capital investido de volta ao país de origem. | MASTER-626cae3d-0013: Instruções claras sobre a obrigatoriedade de registo do capital de entrada junto do Banco de Moçambique, para assegurar o direito à transferência de lucros, dividendos e capital investido de volta ao país de origem.","Critério individual; consultar backlog"
-"P1","MASTER-efd550fd-0055","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/VirtualDesk.php; app/Services/Ai/InvestorGuidance.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-efd550fd-0055: Nota de leitura: As barras de desempenho permitem visualizar rapidamente os pontos fortes e os pontos críticos do ciclo. O foco inicial deve recair sobre a validação institucional, a implementação e o acompanhamento pós-investimento, por serem etapas com maior dependência de coordenação interinstitucional e maior impacto na experiência do investidor. | MASTER-9f5719c8-0056: Nota de leitura: As barras de desempenho permitem visualizar rapidamente os pontos fortes e os pontos críticos do ciclo. O foco inicial deve recair sobre a validação institucional, a implementação e o acompanhamento pós-investimento, por serem etapas com maior dependência de coordenação interinstitucional e maior impacto na experiência do investidor. | MASTER-626cae3d-0101: Nota de leitura: As barras de desempenho permitem visualizar rapidamente os pontos fortes e os pontos críticos do ciclo. O foco inicial deve recair sobre a validação institucional, a implementação e o acompanhamento pós-investimento, por serem etapas com maior dependência de coordenação interinstitucional e maior impacto na experiência do investidor.","Critério individual; consultar backlog"
-"P1","MASTER-efd550fd-0065","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-efd550fd-0065: A estrutura deve separar claramente a camada de apresentação em React, a camada de API em Laravel e os domínios funcionais do portal: oportunidades, sectores, recursos legais, manifestações de interesse, estatísticas públicas e autenticação. Esta organização facilita manutenção, escalabilidade, testes e futura integração com entidades públicas. | MASTER-9f5719c8-0068: A estrutura deve separar claramente a camada de apresentação em React, a camada de API em Laravel e os domínios funcionais do portal: oportunidades, sectores, recursos legais, manifestações de interesse, estatísticas públicas e autenticação. Esta organização facilita manutenção, escalabilidade, testes e futura integração com entidades públicas.","Critério individual; consultar backlog"
-"P1","MASTER-efd550fd-0080","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-efd550fd-0080: O HomeController deve evitar lógica pesada dentro do controller. A recomendação é delegar a composição do payload para um serviço, por exemplo HomeService, que consulta sectores, oportunidades em destaque, estatísticas e blocos de conteúdo publicados. | MASTER-9f5719c8-0105: O HomeController deve evitar lógica pesada dentro do controller. A recomendação é delegar a composição do payload para um serviço, por exemplo HomeService, que consulta sectores, oportunidades em destaque, estatísticas e blocos de conteúdo publicados.","Critério individual; consultar backlog"
-"P1","MASTER-efd550fd-0089","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-efd550fd-0089: Campos do formulário: nome completo, email, telefone, tipo de investidor, país, sector de interesse, referência da oportunidade, faixa de investimento, mensagem e consentimento de privacidade. O botão de submissão deve ficar desactivado enquanto o pedido estiver a ser enviado. Após sucesso, apresentar: “Manifestação de interesse registada com sucesso” e a referência recebida, por exemplo IR-2026-000245. | MASTER-9f5719c8-0114: Campos do formulário: nome completo, email, telefone, tipo de investidor, país, sector de interesse, referência da oportunidade, faixa de investimento, mensagem e consentimento de privacidade. O botão de submissão deve ficar desactivado enquanto o pedido estiver a ser enviado. Após sucesso, apresentar: “Manifestação de interesse registada com sucesso” e a referência recebida, por exemplo IR-2026-000245.","Critério individual; consultar backlog"
-"P1","MASTER-efd550fd-0096","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-efd550fd-0096: Campos visíveis recomendados: Nome, email, telefone, país, empresa/organização, tipo de investidor, sector de interesse, oportunidade associada quando existir, faixa indicativa de investimento, mensagem e consentimento de privacidade. O botão principal deve chamar-se “Enviar manifestação de interesse”. | MASTER-9f5719c8-0121: Campos visíveis recomendados: Nome, email, telefone, país, empresa/organização, tipo de investidor, sector de interesse, oportunidade associada quando existir, faixa indicativa de investimento, mensagem e consentimento de privacidade. O botão principal deve chamar-se “Enviar manifestação de interesse”.","Critério individual; consultar backlog"
-"P1","MASTER-efd550fd-0104","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-efd550fd-0104: Código sugerido: importar React, useEffect e useState; definir API_BASE_URL com import.meta.env.VITE_API_URL; criar estado para homeData, loading, error e searchTerm; carregar dados com fetch(`${API_BASE_URL}/api/v1/home?locale=pt`); validar response.ok; guardar JSON em homeData; apresentar loading enquanto carrega; apresentar mensagem de erro se falhar; renderizar Header, hero, botões rápidos, pesquisa, sectores estratégicos, oportunidades em destaque, percurso do investidor, incentivos, estatísticas e footer. A navegação dos botões pode usar window.location.href ou React Router conforme a arquitectura adoptada. | MASTER-9f5719c8-0129: Código sugerido: importar React, useEffect e useState; definir API_BASE_URL com import.meta.env.VITE_API_URL; criar estado para homeData, loading, error e searchTerm; carregar dados com fetch(`${API_BASE_URL}/api/v1/home?locale=pt`); validar response.ok; guardar JSON em homeData; apresentar loading enquanto carrega; apresentar mensagem de erro se falhar; renderizar Header, hero, botões rápidos, pesquisa, sectores estratégicos, oportunidades em destaque, percurso do investidor, incentivos, estatísticas e footer. A navegação dos botões pode usar window.location.href ou React Router conforme a arquitectura adoptada.","Critério individual; consultar backlog"
-"P1","MASTER-efd550fd-0117","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/VirtualDesk.php; app/Services/Ai/InvestorGuidance.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-efd550fd-0117: Conclusão estratégica: As recomendações devem ser implementadas de forma faseada, começando pelas acções de maior impacto imediato na previsibilidade, na qualidade documental e na coordenação institucional. A médio e longo prazo, a prioridade deve ser consolidar a monitoria digital, a integração entre entidades e o suporte pós-investimento como pilares permanentes da proposta de valor do portal. | MASTER-9f5719c8-0142: Conclusão estratégica: As recomendações devem ser implementadas de forma faseada, começando pelas acções de maior impacto imediato na previsibilidade, na qualidade documental e na coordenação institucional. A médio e longo prazo, a prioridade deve ser consolidar a monitoria digital, a integração entre entidades e o suporte pós-investimento como pilares permanentes da proposta de valor do portal.","Critério individual; consultar backlog"
-"P1","MASTER-efd550fd-0126","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-efd550fd-0126: Nota operacional: O sistema deve permitir guardar o formulário como rascunho, validar os campos em tempo real, destacar os erros antes da submissão e gerar um comprovativo electrónico com um número de referência após o envio. | MASTER-9f5719c8-0151: Nota operacional: O sistema deve permitir guardar o formulário como rascunho, validar os campos em tempo real, destacar os erros antes da submissão e gerar um comprovativo electrónico com um número de referência após o envio. | MASTER-626cae3d-0063: Nota operacional: O sistema deve permitir guardar o formulário como rascunho, validar os campos em tempo real, destacar os erros antes da submissão e gerar um comprovativo electrónico com um número de referência após o envio.","Critério individual; consultar backlog"
-"P1","MASTER-efd550fd-0168","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-efd550fd-0168: 'country.required' => 'O país é obrigatório.', | MASTER-9f5719c8-0193: 'country.required' => 'O país é obrigatório.',","Critério individual; consultar backlog"
-"P1","MASTER-efd550fd-0182","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-efd550fd-0182: 'country.max' => 'O país não deve exceder 100 caracteres.', | MASTER-9f5719c8-0207: 'country.max' => 'O país não deve exceder 100 caracteres.',","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0001","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0001: Esta especificação define o contrato funcional e técnico do cadastro de oportunidades do InvestMoz, incluindo projectos de investimento, imobiliário, direitos fundiários, transacções de negócios e demais categorias configuradas. As secções seguintes constituem a fonte normativa única para campos, validações, multilocalização, imagens, persistência, estados, permissões e auditoria. Todos os campos com opções predefinidas devem usar componentes dropdown pesquisáveis, simples ou multisselecção conforme a cardinalidade; não devem aceitar variantes livres quando existir catálogo mestre. Os campos condicionais são apresentados apenas quando aplicáveis.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0008","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0008: Validar coerência cruzada: totais financeiros, datas, coordenadas, área, empregos, capacidade, financiamento e requisitos condicionais.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0010","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0010: Esta versão constitui o contrato funcional mínimo entre interface, API, base de dados e validação. Os nomes técnicos são estáveis, em inglês e no formato snake_case. “Obrigatório” significa exigido para submissão apenas quando o campo for aplicável à categoria seleccionada; o rascunho pode ser guardado incompleto. As secções 10 a 13 descrevem o núcleo comum e o módulo investment_project; as categorias especializadas obedecem às secções 24 a 26. As validações devem ser executadas no cliente e no servidor, prevalecendo sempre o servidor.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0012","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0012: Iniciar um rascunho e seleccionar a categoria.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0041","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0041: Mínimo 1; tipo domestic ou export; país obrigatório em export; procura maior que zero quando quantificada.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0049","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0049: Guardar rascunho automaticamente, indicar progresso por secção e permitir regressar sem perder dados.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0054","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0054: O termo funcional adoptado no portal é dropdown. Um campo com uma única opção permitida usa dropdown de selecção simples; um campo que admite várias opções usa dropdown multisselecção com pesquisa, selecção por teclado, remoção individual e apresentação das opções escolhidas. Caixas de texto livre só devem ser usadas para “Outro — especificar” ou quando não existir catálogo mestre aprovado.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0058","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0058: Permitir seleccionar vários distritos/localidades sem duplicação; cada localização mantém papel, principal, área, geometria e percentagem próprios.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0059","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0059: Após a selecção territorial, enquadrar o mapa na geometria oficial; permitir seleccionar ponto ou desenhar geometria apenas dentro do território escolhido; guardar identificadores territoriais e geometria EPSG:4326.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0060","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0060: Filtrar por território e estado activo; não criar relação automaticamente por sobreposição; exigir confirmação, tipo de relação e evidência.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0061","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0061: Todos os dropdowns devem carregar opções por API, com paginação e pesquisa no servidor para catálogos extensos.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0062","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0062: Cada opção deve transportar identificador estável, código, designação, estado, versão e, quando aplicável, parent_id e geometria de referência.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0063","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0063: Os dropdowns dependentes devem permanecer desactivados até à selecção do nível superior e devem ser limpos quando essa selecção mudar.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0064","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0064: Se a cartografia ou o catálogo estiver indisponível, o sistema deve permitir guardar rascunho, apresentar mensagem clara e bloquear a submissão; não deve substituir o dropdown por texto livre.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0066","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0066: A selecção no mapa e a selecção nos dropdowns devem ser bidireccionais: escolher território actualiza o mapa; seleccionar uma feição cartográfica propõe os dropdowns correspondentes, exigindo confirmação do utilizador.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0071","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0071: Permitida no rascunho ao utilizador autorizado; validar catálogo, relação com a oportunidade e campos mínimos do item.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0080","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0080: Motivo obrigatório; rascunho pode ser marcado deleted; submetido passa a archived.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0088","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0088: Validar geometria da oportunidade","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0095","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0095: Permite guardar rascunho, mostra erro recuperável e bloqueia submissão; não converte para texto livre.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0101","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0101: Mínimo 1 imagem publicada; máximo inicial de 20 por oportunidade, configurável. Permitir reordenar, substituir e remover no rascunho.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0115","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0115: As secções 10 a 13 definem os campos do núcleo comum e do módulo investment_project; a secção 16 define imagens; as secções 24 e 25 definem a activação e os campos especializados; a secção 26 contém o único JSON Schema exportável; as secções 15.4, 19 e 27 contêm o DDL canónico de catálogos, cartografia, núcleo e módulos especializados; e as secções 20 e 28 definem estados, permissões e etapas especializadas. Em caso de divergência, a implementação deve ser corrigida com base nesta hierarquia, sem criar definições paralelas.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0125","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0125: Validar hierarquia, geometria, multilocalização, terreno e associações territoriais.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0138","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0138: Não eliminar camada com feições activas; não publicar geometria inválida; rollback preserva versão anterior.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0157","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0157: ☐ Implementar RBAC + âmbito por entidade, sector e território, com negação por defeito.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0169","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0169: ☐ Criar, guardar automaticamente, retomar e arquivar um rascunho.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0187","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0187: Obrigatório para franchise; marca, território, prazo, taxa inicial, royalties, suporte, exclusividade e renovação.","Critério individual; consultar backlog"
-"P1","OP-9f173ed3-0193","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-9f173ed3-0193: Venda de terra, conflito impeditivo, geometria não validada, consulta obrigatória ausente ou autorização pendente.","Critério individual; consultar backlog"
-"P1","OP-5da580e3-0011","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-5da580e3-0011: Testes e validação: executar testes unitários, integração, contrato de API, interface, permissões, segurança, desempenho, acessibilidade, idiomas, migração e recuperação; validar cenários positivos e negativos com representantes dos quatro perfis de utilizador; corrigir vulnerabilidades e inconformidades antes da produção. | OP-a8b37ee5-0010: Testes e validação: executar testes unitários, integração, contrato de API, interface, permissões, segurança, desempenho, acessibilidade, idiomas, migração e recuperação; validar cenários positivos e negativos com representantes dos quatro perfis de utilizador; corrigir vulnerabilidades e inconformidades antes da produção.","Critério individual; consultar backlog"
-"P1","OP-5da580e3-0018","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-5da580e3-0018: Dado um investidor ou empregador autenticado e autorizado, o sistema deve permitir criar, guardar como rascunho, submeter, actualizar e arquivar uma necessidade de competências ligada, quando aplicável, a território, Corredor, Cluster, projecto âncora e fase, contendo ocupação, competência, quantidade, nível, prazo, localização genérica, fonte, confiança e responsável, e distinguindo estimativa de compromisso. | OP-a8b37ee5-0017: Dado um investidor ou empregador autenticado e autorizado, o sistema deve permitir criar, guardar como rascunho, submeter, actualizar e arquivar uma necessidade de competências ligada, quando aplicável, a território, Corredor, Cluster, projecto âncora e fase, contendo ocupação, competência, quantidade, nível, prazo, localização genérica, fonte, confiança e responsável, e distinguindo estimativa de compromisso.","Critério individual; consultar backlog"
-"P1","OP-5da580e3-0019","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/VirtualDesk.php; app/Services/Ai/InvestorGuidance.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-5da580e3-0019: Para cada campo obrigatório, catálogo, formato, intervalo, dependência, relação, fonte e regra de unicidade ou deduplicação definidos, o frontend deve orientar a correcção e o backend deve rejeitar a submissão inválida sem persistência parcial, mantendo o registo incompleto em rascunho quando o fluxo o permitir. | OP-a8b37ee5-0018: Para cada campo obrigatório, catálogo, formato, intervalo, dependência, relação, fonte e regra de unicidade ou deduplicação definidos, o frontend deve orientar a correcção e o backend deve rejeitar a submissão inválida sem persistência parcial, mantendo o registo incompleto em rascunho quando o fluxo o permitir.","Critério individual; consultar backlog"
-"P1","OP-5da580e3-0024","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-5da580e3-0024: A pesquisa deve suportar filtros simples e combinados por competência, ocupação, nível, período, território, Corredor, Cluster, projecto, instituição, curso e estado de validação, preservando relações bidireccionais, eliminando duplicados e aplicando consentimento, classificação e autorização antes da indexação e apresentação. | OP-a8b37ee5-0023: A pesquisa deve suportar filtros simples e combinados por competência, ocupação, nível, período, território, Corredor, Cluster, projecto, instituição, curso e estado de validação, preservando relações bidireccionais, eliminando duplicados e aplicando consentimento, classificação e autorização antes da indexação e apresentação.","Critério individual; consultar backlog"
-"P1","OP-5da580e3-0033","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/CrmController.php; app/Services/DeclaredOriginStatistics.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-5da580e3-0033: Antes de staging ou produção, não deve existir vulnerabilidade crítica ou elevada em aberto, exposição indevida, falha crítica de autorização, consentimento, acessibilidade, recuperação ou reconciliação, teste obrigatório falhado, quebra contratual não aprovada ou rollback inviável. Outros riscos residuais só podem avançar com responsável, mitigação, prazo, aprovador e decisão Go/No-Go registados.","Critério individual; consultar backlog"
-"P1","OP-5da580e3-0037","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-5da580e3-0037: Gate de segurança e Go/No-Go: consolidar testes obrigatórios, vulnerabilidades, privacidade, acessibilidade, contratos, recuperação, reconciliação, rollback e riscos residuais. | OP-a8b37ee5-0035: Gate de segurança e Go/No-Go: consolidar testes obrigatórios, vulnerabilidades, privacidade, acessibilidade, contratos, recuperação, reconciliação, rollback e riscos residuais.","Critério individual; consultar backlog"
-"P1","OP-5da580e3-0081","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-5da580e3-0081: Criar um formulário único, responsivo e acessível, com selecção obrigatória da modalidade de inscrição: individual ou por instituição de ensino. O formulário deve permitir guardar como rascunho, retomar, submeter para validação, actualizar e desactivar o registo, mantendo histórico, consentimento e auditoria.","Critério individual; consultar backlog"
-"P1","OP-5da580e3-0092","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-5da580e3-0092: Submissão válida é aceite; cada omissão obrigatória é rejeitada sem persistência parcial nem perda do rascunho.","Critério individual; consultar backlog"
-"P1","OP-5da580e3-0109","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-5da580e3-0109: Permitir criar, guardar como rascunho, retomar, submeter, actualizar e desactivar o perfil do candidato.","Critério individual; consultar backlog"
-"P1","OP-5da580e3-0110","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-5da580e3-0110: Recolher os campos comuns obrigatórios e impedir a submissão de registo incompleto, sem impedir o rascunho.","Critério individual; consultar backlog"
-"P1","OP-5da580e3-0142","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-5da580e3-0142: O investidor deve poder adicionar vários perfis pretendidos ao mesmo projecto, guardar como rascunho, duplicar um perfil para edição, submeter para validação, actualizar e arquivar. A descrição deve aceitar texto estruturado suficiente para indicar responsabilidades, requisitos obrigatórios aprovados, competências desejáveis e condições relevantes, sem recolher dados pessoais de candidatos. Cada perfil deve ficar ligado ao investidor, empresa, projecto, Cluster, Corredor e localização aplicáveis e alimentar, após validação, a matriz de procura de competências e o mecanismo de correspondência.","Critério individual; consultar backlog"
-"P1","OP-5da580e3-0151","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-5da580e3-0151: Não publicar coordenadas ou instalações exactas sem autorização.","Critério individual; consultar backlog"
-"P1","OP-183bfb88-0001","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-183bfb88-0001: Concebe, especifica e prepara a implementação, no Portal de Investimentos InvestMoz, do submódulo “Competências, Oportunidades de Absorção e Investimento no Reforço de Capacidades”. O submódulo não ministra formação nem se destina a ensinar os utilizadores a operar o portal. Destina-se a identificar, quantificar, localizar, validar e acompanhar a procura de mão-de-obra, as competências disponíveis e as lacunas associadas a clusters, corredores de desenvolvimento, projectos âncora e complementares, cadeias de valor, parques industriais, zonas económicas especiais, plataformas logísticas, investimentos públicos e privados, sectores, empresas e territórios.","Critério individual; consultar backlog"
-"P1","OP-183bfb88-0007","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-183bfb88-0007: A governação integra o Patrocinador, Dono do Produto, Comité Executivo, Comité de Arquitectura, Comité de IA e Dados, Secretariado de Dados, gestor do submódulo, coordenadores de clusters e corredores e responsáveis institucionais. A matriz RACI deve cobrir quem propõe, submete, valida, aprova, publica, corrige, suspende e audita dados, taxonomias, regras, modelos, integrações, conteúdos e decisões de expansão. Nenhum comité substitui a competência legal das entidades públicas responsáveis.","Critério individual; consultar backlog"
-"P1","OP-a8b37ee5-0032","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/CrmController.php; app/Services/DeclaredOriginStatistics.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-a8b37ee5-0032: Antes de staging ou produção, não deve existir vulnerabilidade crítica ou elevada sem tratamento aprovado, exposição indevida, falha crítica de autorização, consentimento, acessibilidade, recuperação ou reconciliação, teste obrigatório falhado, quebra contratual não aprovada ou rollback inviável. Riscos residuais só podem avançar com responsável, mitigação, prazo, aprovador e decisão Go/No-Go registados.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0011","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0011: A transformação será incremental para proteger dados e continuidade operacional, mas orientada pelo estado-alvo, e não pela perpetuação da arquitetura ou dos procedimentos anteriores. Os pilotos constituem recortes controlados para validar componentes transversais, regras, integrações e experiência do utilizador; não definem nem restringem o âmbito final do portal. Desde a primeira entrega, a arquitetura, o modelo de dados, a taxonomia e os serviços comuns deverão ser concebidos para suportar todos os setores, territórios, perfis e fases do investimento.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0013","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0013: A localização será um eixo crítico e transversal da plataforma. A inteligência territorial deverá permitir avaliar a evolução dos projetos e das áreas económicas, a utilização e disponibilidade de recursos, a capacidade das infraestruturas e as potencialidades de cada território. Corredores de desenvolvimento, projetos âncora, clusters multissetoriais, Zonas Económicas Especiais, Zonas Francas Industriais e parques industriais deverão ser inventariados e relacionados em PostgreSQL/PostGIS, sem limitar a identificação de oportunidades complementares dentro, na envolvente ou fora dessas áreas formalmente delimitadas.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0052","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0052: Recuperar contexto, selecionar ferramentas e produzir respostas.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0057","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0057: O dashboard deverá ser o ponto único para administrar conteúdos, dados mestres, regras, serviços, integrações e operações. Coordena qualidade, aprovação, publicação, revisão e auditoria sem substituir sistemas transacionais especializados.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0059","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0059: Editar em rascunho, testar, comparar e publicar.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0078","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0078: Guardar rascunho, validar, comparar, submeter e cancelar.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0112","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0112: A localização constitui uma componente crítica do ecossistema, porque permite avaliar simultaneamente a aptidão do território, o estado de evolução dos investimentos, a disponibilidade e utilização dos recursos, as infraestruturas existentes, as condicionantes e as potencialidades económicas de cada área. A análise territorial não deverá limitar-se às zonas formalmente delimitadas: o portal deve identificar oportunidades dentro, no entorno e fora dessas áreas, incluindo atividades complementares capazes de preencher lacunas das cadeias de valor.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0117","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0117: O PostgreSQL/PostGIS deverá funcionar como repositório geoespacial mestre, ligado aos dados transacionais do portal por identificadores únicos. As geometrias não devem ser armazenadas apenas como ficheiros ou imagens; deverão suportar consultas espaciais, histórico, qualidade, relações e análise multiescalar.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0118","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0118: Cada objeto deverá possuir identificador único; nome e tipo; geometria; sistema de referência; fonte; proprietário do dado; entidade validadora; base legal quando aplicável; data de recolha; data de validação; vigência; precisão; nível de confiança; estado; setor; território; descrição; capacidade; utilização; restrições; relações com projetos e cadeias; anexos; versão; visibilidade; próxima revisão e histórico de alterações.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0119","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0119: Validar geometria, atributos, vigência e responsabilidade com a fonte competente.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0124","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0124: Normalizar, validar geometria, metadados, topologia, escalas e análises.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0126","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0126: O modelo deverá separar dados mestres, geometrias, atributos temáticos, relações, séries temporais e proveniência. As tabelas transacionais do portal continuarão a referenciar os objetos territoriais por identificadores únicos; a geometria será mantida no PostGIS como fonte mestre, evitando cópias divergentes em módulos, ficheiros ou aplicações.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0127","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0127: Geometrias oficiais, interpretativas e calculadas devem ser distinguidas por tipo, fonte, versão e nível de confiança.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0137","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0137: Preservar versões de geometria, validade e razão da alteração.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0159","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0159: O portal deverá incorporar os polígonos oficiais de todas as áreas identificadas. A autenticação jurídica e a validação geoespacial são controlos relacionados, mas distintos: um ato governamental válido comprova a existência e os atributos que publica; a geometria só é considerada oficial quando o próprio ato, o respetivo anexo ou um ficheiro emitido pela entidade competente permite determinar inequivocamente o limite.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0160","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0160: Assim, a existência de uma lei, decreto, aviso ou outro documento governamental autêntico é suficiente para validar e autenticar apenas os factos que a entidade tinha competência para estabelecer e que o documento contém expressamente. Para aceitar um polígono legal, o documento deve incluir coordenadas, descrição perimetral ou cartografia determinável; caso contrário, é necessária confirmação geoespacial adicional.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0166","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0166: A matriz constitui o instrumento único de controlo para obtenção, autenticação, validação, carga em PostgreSQL/PostGIS e ativação das geometrias. Deve ser atualizada após cada contacto, receção, teste, decisão ou alteração de estado.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0178","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0178: A geometria digital derivada deve manter ligação ao anexo e validação topológica.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0187","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0187: Inventariada; base legal confirmada; geometria e vigência operacional por validar.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0189","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0189: Inventariada; geometria oficial e estado operacional por validar.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0198","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0198: O SQL/PostGIS integral encontra-se inserido na subseção 4.6.1.16 e deve ser tratado como especificação técnica executável. A implementação será realizada por migrations Laravel versionadas, em quatro lotes: extensões e esquemas; dados mestres e geometrias; oportunidades e avaliações; vistas, funções, segurança e auditoria. Cada lote deverá passar por validação sintática, criação em base vazia, migração sobre cópia anonimizada, rollback, teste de integridade referencial, teste espacial e reconciliação.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0199","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0199: Nota: valores de geometria, capacidade, procura, oferta e pontuação apresentados nos exemplos seguintes são dados sintéticos de demonstração. Os nomes e características gerais dos territórios baseiam-se em fontes públicas; nenhum valor simulado deve ser publicado como facto sem validação do dono do dado.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0203","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0203: Controlo: as coordenadas e métricas acima servem apenas para testar carga, geometria, formulários e algoritmo. Na passagem a homologação, devem ser substituídas por geometrias oficiais ou validadas, com precisão, licença, data e responsável.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0207","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0207: Criar triggers para atualizar updated_at, rejeitar geometrias inválidas e registar alterações materiais.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0242","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0242: O plano será executado como programa contínuo, com ondas trimestrais ou de duração aprovada pelo comité de governação. Cada onda combina manutenção da operação atual, evolução do núcleo transversal, melhoria dos pilotos e incorporação progressiva de novos setores ou territórios. A expansão não deverá aguardar a automação integral de um setor: poderá começar por conteúdo validado, oportunidades, orientação e encaminhamento, evoluindo depois para roteiros, integrações e acompanhamento completo.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0254","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0254: Para expansão, selecionar setor ou território seguinte pela matriz de prioridade e definir nível de cobertura pretendido.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0256","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0256: Para cada novo setor ou território deverá existir uma ficha de expansão contendo: patrocinador; problema; procura; nível de cobertura inicial; casos de uso; utilizadores; conteúdo e legislação; entidades e parceiros; dados específicos; diferenças face ao núcleo; integrações; riscos; orçamento; equipa; calendário; métricas; critérios de Go/No-Go; suporte; revisão e plano de saída. A ficha será anexada ao backlog de cobertura e aprovada antes da configuração.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0259","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0259: As notas devem ser propostas pelo responsável do critério e revistas pelo avaliador coordenador.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0265","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0265: Cada registo deverá conter título, número, tipo, órgão emissor, publicação, entrada em vigor, vigência, setor, território, artigos relevantes, obrigação ou benefício, evento acionador, entidade competente, serviço, requisitos, documentos, taxas, prazos, dependências, formulário, fonte oficial, versão, responsável pela validação e data da revisão.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0292","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0292: Cada item deverá conter, no mínimo: identificador; URL e localização de origem; tipo de ativo; título; resumo; idioma; público; setor; território; fase da jornada; tema; decisão apoiada; proprietário; entidade validadora; fonte; base legal quando aplicável; data de publicação; última atualização; vigência; nível de risco; estado de qualidade; ação proposta; justificação; relações e duplicados; URL de destino; redirecionamento; versão; aprovadores; evidências; próxima revisão; estado final e histórico.","Critério individual; consultar backlog"
-"P1","M2-d0c06a75-0319","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/VirtualDesk.php; app/Services/Ai/InvestorGuidance.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","M2-d0c06a75-0319: Portal Laravel como camada de experiência e orquestração; serviços de domínio para regras, processos e documentos; PostgreSQL/PostGIS para dados transacionais e geoespaciais; repositório documental com controlo de versões; motor de pesquisa; barramento de eventos; gateway de APIs; identidade e gestão de acessos; observabilidade; e camada analítica. O assistente inteligente deverá recuperar apenas conteúdos aprovados, apresentar a fonte e encaminhar casos ambíguos para validação humana.","Critério individual; consultar backlog"
-"P1","MASTER-f167d915-0009","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-f167d915-0009: Área de entrada e sessão Existe ponto de entrada público; implementação interna não verificada. Reutilizar autenticação e sessão existentes, sem criar credenciais paralelas. Fluxo de login/logout, recuperação, MFA, duração de sessão e mecanismo de autorização.","Critério individual; consultar backlog"
-"P1","MASTER-f167d915-0034","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-f167d915-0034: Workflow interno Distribuir processos às unidades ou perfis internos responsáveis pelas etapas da cadeia, com filas, prazos, pareceres e decisões. Matriz de perfis, estados, transições, SLA, segregação de funções e motivos obrigatórios. Coordenação interna de toda a cadeia sem troca automática com sistemas externos.","Critério individual; consultar backlog"
-"P1","MASTER-f167d915-0039","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-f167d915-0039: RF-03 Criação, gravação automática, rascunho, retoma, duplicação autorizada e cancelamento. O rascunho mantém versão e data, pode ser retomado noutro dispositivo e não é submetido sem acção expressa. Sessão e armazenamento / Líder técnico.","Critério individual; consultar backlog"
-"P1","MASTER-f167d915-0052","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-f167d915-0052: RF-16 Administração sem código de versões, campos, regras, textos, anexos, prazos e modelos de notificação. Alterações passam por rascunho, aprovação, publicação agendada e rollback, sem afectar submissões anteriores. Workflow de publicação / Product Owner e QA.","Critério individual; consultar backlog"
-"P1","MASTER-f167d915-0057","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/VirtualDesk.php; app/Services/Ai/InvestorGuidance.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-f167d915-0057: RF-21 Dossier único da empresa e do investimento, reutilizando internamente dados e documentos entre fases autorizadas. Dados comuns não são solicitados novamente; o utente confirma a reutilização; alterações propagam-se apenas a rascunhos e nunca modificam evidências já submetidas. Modelo de dados e consentimento / Líder técnico, Segurança e Equipa de Dados.","Critério individual; consultar backlog"
-"P1","MASTER-f167d915-0061","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-f167d915-0061: RF-03 Rascunho e retoma A C R C I C R C","Critério individual; consultar backlog"
-"P1","MASTER-f167d915-0080","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-f167d915-0080: RF-03 Rascunho é gravado, retomado e cancelado sem submissão implícita ou perda de versão. CT-03A interromper e retomar noutro dispositivo; CT-03B conflito de gravação; CT-03C cancelar. Última versão reconciliada; aviso de conflito; estado correcto no histórico.","Critério individual; consultar backlog"
-"P1","MASTER-f167d915-0093","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-f167d915-0093: RF-16 Alterações configuráveis passam por rascunho, aprovação, publicação e rollback sem afectar versões antigas. CT-16A publicar nova versão; CT-16B alteração não aprovada; CT-16C rollback; CT-16D pedido antigo. Só versão aprovada activa; rollback efectivo; submissões antigas preservadas.","Critério individual; consultar backlog"
-"P1","MASTER-f167d915-0105","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-f167d915-0105: Configurar dois a três formulários; implementar campos, regras condicionais, rascunho, anexos, pré-visualização, submissão, recibo, correcções, versões e notificações. Formulários versionados; regras; cofre documental; recibos; notificações; casos de teste e UAT. Product Owner APIEX e Donos dos Formulários Executa em paralelo parcial com Fase 2. G2B: formulários homologados.","Critério individual; consultar backlog"
-"P1","MASTER-5dbf82c2-0058","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-5dbf82c2-0058: 3–5 semanas Executar dry-run das alterações e migrações internas em PostgreSQL/PostGIS, preservar IDs e URLs, testar segurança, recuperação, desempenho, acessibilidade e UAT. Scripts idempotentes, reconciliação, plano de corte/rollback, evidências, piloto PT/EN, formação e runbook. Go: reconciliação aprovada, rollback ensaiado e zero defeito crítico.","Critério individual; consultar backlog"
-"P1","MASTER-5dbf82c2-0062","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-5dbf82c2-0062: RF-ZON-002 Gerir delimitação geográfica, subzonas, lotes e instalações. PostGIS aceita apenas geometrias válidas, não vazias, no SRID aprovado e com fonte e entidade validadora. Perímetros oficiais exigem diploma ou planta autorizada; conflitos e sobreposições são bloqueados ou remetidos para validação; versões anteriores permanecem consultáveis. MVP","Critério individual; consultar backlog"
-"P1","MASTER-5dbf82c2-0067","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-5dbf82c2-0067: RF-ZON-007 Gerir lotes, instalações, capacidade e ocupação. Cada unidade contém identificação, geometria, área, uso, disponibilidade, capacidade, utilities, acessos, titularidade, condições, preço autorizado, ocupante e contrato protegido. Impedir reservas concorrentes e exigir aprovação e histórico para mudanças. Fase 2","Critério individual; consultar backlog"
-"P1","MASTER-991d4b34-0004","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/SimulationTaxParameterResolver.php; resources/js/components/simulation-form.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-991d4b34-0004: Não criar outro simulador, formulário independente, plano financeiro paralelo ou duplicação de projectos. Reutilizar os componentes de ideia, localização, finanças, competências, marcos, rascunhos e exportação existentes.","Critério individual; consultar backlog"
-"P1","MASTER-991d4b34-0013","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-991d4b34-0013: Reutilizar países, CAE e base territorial existentes.","Critério individual; consultar backlog"
-"P1","MASTER-991d4b34-0025","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-991d4b34-0025: Preservar gravação, recuperação entre sessões, associação explícita à conta, permissões e privacidade existentes.","Critério individual; consultar backlog"
-"P1","MASTER-991d4b34-0026","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-991d4b34-0026: Guardar versões do questionário e das respostas. Manter compatibilidade com rascunhos anteriores.","Critério individual; consultar backlog"
-"P1","MASTER-b3e17bb1-0004","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-b3e17bb1-0004: O módulo deve suportar, no mínimo: venda de 100% da empresa; venda parcial de participação; aumento de capital; procura de investidor financeiro; procura de sócio estratégico; procura de comprador; cessão de posição; franchising; venda ou arrendamento de activos produtivos; transferência de unidade de negócio; joint venture; sucessão empresarial; oportunidades de recuperação, expansão ou internacionalização; negócios imobiliários; e oportunidades associadas a imóveis, propriedades, benfeitorias, investimentos agrícolas, direitos fundiários e licenças, incluindo licenças mineiras e florestais, sempre que a operação e a eventual cessão ou transmissão dos direitos envolvidos sejam legalmente admissíveis. | MASTER-d6055984-0005: O módulo deve suportar, no mínimo: venda de 100% da empresa; venda parcial de participação; aumento de capital; procura de investidor financeiro; procura de sócio estratégico; procura de comprador; cessão de posição; franchising; venda ou arrendamento de activos produtivos; transferência de unidade de negócio; joint venture; sucessão empresarial; oportunidades de recuperação, expansão ou internacionalização; negócios imobiliários; e oportunidades associadas a imóveis, propriedades, benfeitorias, investimentos agrícolas, direitos fundiários e licenças, incluindo licenças mineiras e florestais, sempre que a operação e a eventual cessão ou transmissão dos direitos envolvidos sejam legalmente admissíveis. | MASTER-06996499-0004: O módulo deve suportar, no mínimo: venda de 100% da empresa; venda parcial de participação; aumento de capital; procura de investidor financeiro; procura de sócio estratégico; procura de comprador; cessão de posição; franchising; venda ou arrendamento de activos produtivos; transferência de unidade de negócio; joint venture; sucessão empresarial; oportunidades de recuperação, expansão ou internacionalização; negócios imobiliários; e oportunidades associadas a imóveis, propriedades, benfeitorias, investimentos agrícolas, direitos fundiários e licenças, incluindo licenças mineiras e florestais, sempre que a operação e a eventual cessão ou transmissão dos direitos envolvidos sejam legalmente admissíveis. | MASTER-c32107c1-0004: O módulo deve suportar, no mínimo: venda de 100% da empresa; venda parcial de participação; aumento de capital; procura de investidor financeiro; procura de sócio estratégico; procura de comprador; cessão de posição; franchising; venda ou arrendamento de activos produtivos; transferência de unidade de negócio; joint venture; sucessão empresarial; oportunidades de recuperação, expansão ou internacionalização; negócios imobiliários; e oportunidades associadas a imóveis, propriedades, benfeitorias, investimentos agrícolas, direitos fundiários e licenças, incluindo licenças mineiras e florestais, sempre que a operação e a eventual cessão ou transmissão dos direitos envolvidos sejam legalmente admissíveis.","Critério individual; consultar backlog"
-"P1","MASTER-b3e17bb1-0011","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-b3e17bb1-0011: A ficha pública deve ser anonimizada ou agregada conforme a classificação. Não publique nome empresarial, endereço exacto, coordenadas exactas, marcos de delimitação, demonstrações financeiras, clientes, fornecedores, trabalhadores, contratos, propriedade intelectual, segredos, números integrais de títulos ou licenças, documentos de titularidade ou outros identificadores restritos. | MASTER-d6055984-0040: A ficha pública deve ser anonimizada ou agregada conforme a classificação. Não publique nome empresarial, endereço exacto, coordenadas exactas, marcos de delimitação, demonstrações financeiras, clientes, fornecedores, trabalhadores, contratos, propriedade intelectual, segredos, números integrais de títulos ou licenças, documentos de titularidade ou outros identificadores restritos. | MASTER-06996499-0038: A ficha pública deve ser anonimizada ou agregada conforme a classificação. Não publique nome empresarial, endereço exacto, coordenadas exactas, marcos de delimitação, demonstrações financeiras, clientes, fornecedores, trabalhadores, contratos, propriedade intelectual, segredos, números integrais de títulos ou licenças, documentos de titularidade ou outros identificadores restritos. | MASTER-c32107c1-0011: A ficha pública deve ser anonimizada ou agregada conforme a classificação. Não publique nome empresarial, endereço exacto, coordenadas exactas, marcos de delimitação, demonstrações financeiras, clientes, fornecedores, trabalhadores, contratos, propriedade intelectual, segredos, números integrais de títulos ou licenças, documentos de titularidade ou outros identificadores restritos.","Critério individual; consultar backlog"
-"P1","MASTER-b3e17bb1-0016","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/SimulationTaxParameterResolver.php; resources/js/components/simulation-form.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-b3e17bb1-0016: Aplicar autenticação forte, MFA para perfis privilegiados, autorização por função e atributo, menor privilégio, cifragem, gestão de segredos, segregação de ambientes, rate limiting, validação de ficheiros, protecção contra injecção, auditoria, monitoria, backup, recuperação e resposta a incidentes. Classificar dados como públicos, internos, confidenciais ou restritos; definir finalidade, base, proprietário, acesso, retenção, divulgação, anonimização e eliminação. Implementar sinais e fila de análise de fraude, sem decisão automática definitiva. | MASTER-d6055984-0045: Aplicar autenticação forte, MFA para perfis privilegiados, autorização por função e atributo, menor privilégio, cifragem, gestão de segredos, segregação de ambientes, rate limiting, validação de ficheiros, protecção contra injecção, auditoria, monitoria, backup, recuperação e resposta a incidentes. Classificar dados como públicos, internos, confidenciais ou restritos; definir finalidade, base, proprietário, acesso, retenção, divulgação, anonimização e eliminação. Implementar sinais e fila de análise de fraude, sem decisão automática definitiva. | MASTER-06996499-0043: Aplicar autenticação forte, MFA para perfis privilegiados, autorização por função e atributo, menor privilégio, cifragem, gestão de segredos, segregação de ambientes, rate limiting, validação de ficheiros, protecção contra injecção, auditoria, monitoria, backup, recuperação e resposta a incidentes. Classificar dados como públicos, internos, confidenciais ou restritos; definir finalidade, base, proprietário, acesso, retenção, divulgação, anonimização e eliminação. Implementar sinais e fila de análise de fraude, sem decisão automática definitiva. | MASTER-c32107c1-0016: Aplicar autenticação forte, MFA para perfis privilegiados, autorização por função e atributo, menor privilégio, cifragem, gestão de segredos, segregação de ambientes, rate limiting, validação de ficheiros, protecção contra injecção, auditoria, monitoria, backup, recuperação e resposta a incidentes. Classificar dados como públicos, internos, confidenciais ou restritos; definir finalidade, base, proprietário, acesso, retenção, divulgação, anonimização e eliminação. Implementar sinais e fila de análise de fraude, sem decisão automática definitiva.","Critério individual; consultar backlog"
-"P1","MASTER-b3e17bb1-0018","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-b3e17bb1-0018: É proibido declarar uma fase concluída sem evidência de testes; avançar automaticamente; executar produção; efectuar alterações destrutivas; activar integrações externas reais; publicar dados confidenciais ou coordenadas restritas; apresentar terra, direitos fundiários, propriedades, investimentos agrícolas ou licenças como livremente vendáveis ou transmissíveis sem validação jurídica; emitir contratos ou NDAs sem validação jurídica; cobrar comissões sem contrato; ou representar que a Tempo certifica, avalia, garante a titularidade, confirma a validade regulatória ou assegura a transmissibilidade do negócio, activo, direito ou licença. | MASTER-d6055984-0047: É proibido declarar uma fase concluída sem evidência de testes; avançar automaticamente; executar produção; efectuar alterações destrutivas; activar integrações externas reais; publicar dados confidenciais ou coordenadas restritas; apresentar terra, direitos fundiários, propriedades, investimentos agrícolas ou licenças como livremente vendáveis ou transmissíveis sem validação jurídica; emitir contratos ou NDAs sem validação jurídica; cobrar comissões sem contrato; ou representar que a Tempo certifica, avalia, garante a titularidade, confirma a validade regulatória ou assegura a transmissibilidade do negócio, activo, direito ou licença. | MASTER-06996499-0045: É proibido declarar uma fase concluída sem evidência de testes; avançar automaticamente; executar produção; efectuar alterações destrutivas; activar integrações externas reais; publicar dados confidenciais ou coordenadas restritas; apresentar terra, direitos fundiários, propriedades, investimentos agrícolas ou licenças como livremente vendáveis ou transmissíveis sem validação jurídica; emitir contratos ou NDAs sem validação jurídica; cobrar comissões sem contrato; ou representar que a Tempo certifica, avalia, garante a titularidade, confirma a validade regulatória ou assegura a transmissibilidade do negócio, activo, direito ou licença. | MASTER-c32107c1-0018: É proibido declarar uma fase concluída sem evidência de testes; avançar automaticamente; executar produção; efectuar alterações destrutivas; activar integrações externas reais; publicar dados confidenciais ou coordenadas restritas; apresentar terra, direitos fundiários, propriedades, investimentos agrícolas ou licenças como livremente vendáveis ou transmissíveis sem validação jurídica; emitir contratos ou NDAs sem validação jurídica; cobrar comissões sem contrato; ou representar que a Tempo certifica, avalia, garante a titularidade, confirma a validade regulatória ou assegura a transmissibilidade do negócio, activo, direito ou licença.","Critério individual; consultar backlog"
-"P1","MASTER-6e51cfcd-0003","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-6e51cfcd-0003: • Implementar o formulário de criação de oportunidade, público e administrativo, responsivo, acessível e dividido em etapas, com rascunho automático, retoma, validação progressiva, campos condicionais, anexos seguros, resumo e confirmação forte. | MASTER-24f36a01-0003: • Implementar o formulário de criação de oportunidade, público e administrativo, responsivo, acessível e dividido em etapas, com rascunho automático, retoma, validação progressiva, campos condicionais, anexos seguros, resumo e confirmação forte.","Critério individual; consultar backlog"
-"P1","MASTER-6e51cfcd-0015","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-6e51cfcd-0015: Define máquinas de estado explícitas para oportunidades e interesses. Cada transição deve indicar estado de origem, estado de destino, perfil autorizado, pré-condições, validações, acções automáticas, notificações, SLA, motivo obrigatório, evento de auditoria e possibilidade de reversão. Inclui, no mínimo, os estados rascunho, submetida, em triagem, pendente de informação, em revisão, em aprovação de nível 1, em aprovação de nível 2, aprovada, publicada, suspensa, rejeitada, cancelada e arquivada para oportunidades; e recebido, em qualificação, pendente, encaminhado, aceite para contacto, em diligência, em negociação, recusado, convertido, cancelado e encerrado para manifestações de interesse. Impede auto-aprovação, transições inválidas, actualizações concorrentes silenciosas e submissão duplicada. | MASTER-24f36a01-0015: Define máquinas de estado explícitas para oportunidades e interesses. Cada transição deve indicar estado de origem, estado de destino, perfil autorizado, pré-condições, validações, acções automáticas, notificações, SLA, motivo obrigatório, evento de auditoria e possibilidade de reversão. Inclui, no mínimo, os estados rascunho, submetida, em triagem, pendente de informação, em revisão, em aprovação de nível 1, em aprovação de nível 2, aprovada, publicada, suspensa, rejeitada, cancelada e arquivada para oportunidades; e recebido, em qualificação, pendente, encaminhado, aceite para contacto, em diligência, em negociação, recusado, convertido, cancelado e encerrado para manifestações de interesse. Impede auto-aprovação, transições inválidas, actualizações concorrentes silenciosas e submissão duplicada.","Critério individual; consultar backlog"
-"P1","MASTER-6e51cfcd-0017","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-6e51cfcd-0017: Implementar um formulário público e administrativo, responsivo, acessível e guiado por etapas, com gravação automática de rascunho, retoma posterior, validação progressiva e campos condicionais por modalidade. A submissão não deve publicar automaticamente a oportunidade: deve criar um registo em estado “submetido”, gerar código de acompanhamento e encaminhar para triagem, verificação e aprovação em dois níveis. | MASTER-24f36a01-0017: Implementar um formulário público e administrativo, responsivo, acessível e guiado por etapas, com gravação automática de rascunho, retoma posterior, validação progressiva e campos condicionais por modalidade. A submissão não deve publicar automaticamente a oportunidade: deve criar um registo em estado “submetido”, gerar código de acompanhamento e encaminhar para triagem, verificação e aprovação em dois níveis.","Critério individual; consultar backlog"
-"P1","MASTER-6e51cfcd-0018","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/CrmController.php; app/Services/DeclaredOriginStatistics.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-6e51cfcd-0018: 1. Identificação do proponente Tipo de proponente; nome ou denominação; NUIT/identificador; contactos; país; qualidade em que actua; organização representada. Autenticação obrigatória; validação de formato; deduplicação; consentimento; verificação de identidade conforme risco. | MASTER-24f36a01-0018: 1. Identificação do proponente Tipo de proponente; nome ou denominação; NUIT/identificador; contactos; país; qualidade em que actua; organização representada. Autenticação obrigatória; validação de formato; deduplicação; consentimento; verificação de identidade conforme risco.","Critério individual; consultar backlog"
-"P1","MASTER-6e51cfcd-0021","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-6e51cfcd-0021: 5. Localização e enquadramento Província; distrito; localidade; coordenadas ou geometria; Cluster; Corredor; ZEE; ZFI; parque industrial. Aplicar nível de precisão e classificação; coordenadas exactas nunca públicas sem autorização; validar geometria e referências externas. | MASTER-24f36a01-0021: 5. Localização e enquadramento Província; distrito; localidade; coordenadas ou geometria; Cluster; Corredor; ZEE; ZFI; parque industrial. Aplicar nível de precisão e classificação; coordenadas exactas nunca públicas sem autorização; validar geometria e referências externas.","Critério individual; consultar backlog"
-"P1","MASTER-6e51cfcd-0023","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-6e51cfcd-0023: Comportamento obrigatório: apresentar indicador de progresso; permitir guardar, editar e abandonar rascunhos; preservar dados válidos após erro; mostrar ajuda contextual; suportar PT/EN; aplicar validação no cliente e no servidor; bloquear dupla submissão; criar eventos idempotentes; emitir comprovativo com código, data, estado e canal de consulta; notificar o proponente; criar tarefa de triagem; e registar auditoria sem expor conteúdo sensível. | MASTER-24f36a01-0023: Comportamento obrigatório: apresentar indicador de progresso; permitir guardar, editar e abandonar rascunhos; preservar dados válidos após erro; mostrar ajuda contextual; suportar PT/EN; aplicar validação no cliente e no servidor; bloquear dupla submissão; criar eventos idempotentes; emitir comprovativo com código, data, estado e canal de consulta; notificar o proponente; criar tarefa de triagem; e registar auditoria sem expor conteúdo sensível.","Critério individual; consultar backlog"
-"P1","MASTER-7ee3460c-0003","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-7ee3460c-0003: Antes de gerar o código, apresente a arquitectura completa da base de dados da aplicação. A resposta deve conter, sem excepções: (1) lista de todos os esquemas e extensões; (2) catálogo de todas as tabelas por domínio; (3) para cada tabela, finalidade, nome de cada campo, tipo PostgreSQL exacto, tamanho ou precisão, nulabilidade, valor por defeito, chave primária, chave estrangeira com tabela e campo referenciados, regra onDelete/onUpdate, unicidade, checks, enumerações, campo calculado, timestamps, soft delete e observações; (4) todas as tabelas associativas e respectivas chaves compostas; (5) relações 1:1, 1:N e N:N; (6) índices simples, compostos, únicos, parciais, GIN, GiST e espaciais; (7) views, materialized views, sequences, funções, triggers, políticas de segurança e auditoria; (8) geometrias, tipo geométrico, SRID e regras de validade; e (9) dicionário de dados e ERD em Mermaid coerentes com as migrations. Inclua obrigatoriamente os campos técnicos e de negócio de cada tabela, tais como identificador, código, nome ou título, descrição, estado, ordenação, origem, metadados, datas de vigência, autoria, criação, actualização e eliminação lógica, apenas quando forem aplicáveis ao domínio. Não use expressões como “entre outros”, “campos adicionais”, “etc.” ou blocos omitidos.","Critério individual; consultar backlog"
-"P1","MASTER-2626df4c-0010","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-2626df4c-0010: Validar prioritariamente a componente geográfica ponta a ponta. Confirmar: hierarquia administrativa província → distrito → posto administrativo → localidade; chaves estáveis e integridade referencial; importação e reconciliação com fontes oficiais; suporte PostgreSQL/PostGIS; SRID e sistema de coordenadas documentados; tipos geometry/geography adequados; índices espaciais; prevenção de geometrias inválidas; pontos, linhas e polígonos; relações espaciais entre investimentos, corredores, clusters e infra-estruturas; pesquisa por proximidade, contenção e intersecção; filtros combinados; desempenho das consultas; visualização cartográfica; permissões; auditoria; versionamento; qualidade, proveniência e actualização dos dados. Inspeccionar migrações, seeders, scripts ETL, modelos, endpoints GeoJSON, validações, consultas espaciais, componentes de mapa e testes. Executar casos positivos, negativos e de fronteira e registar resultados, tempos, erros e causa-raiz das lacunas.","Critério individual; consultar backlog"
-"P1","MASTER-2626df4c-0013","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-2626df4c-0013: 4. Para cada funcionalidade, validar fluxo ponta a ponta: entrada, regras, autorização, persistência, resposta, interface, notificação, auditoria, falha e recuperação.","Critério individual; consultar backlog"
-"P1","MASTER-2626df4c-0016","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-2626df4c-0016: • Migrações e scripts críticos devem ser idempotentes quando aplicável, ter ordem documentada, validação pós-execução e procedimento de rollback ou recuperação.","Critério individual; consultar backlog"
-"P1","MASTER-2626df4c-0019","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/CrmController.php; app/Services/DeclaredOriginStatistics.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-2626df4c-0019: • A decisão final deve ser determinada por gates independentes de negócio, localização geográfica, segurança, integridade de dados, desempenho, operação, conformidade legal e recuperação. Classificar como Go apenas quando todos os gates críticos estiverem satisfeitos e não existirem bloqueadores; como Go condicionado quando as lacunas remanescentes não impedirem a operação segura, tiverem risco residual formalmente aceite, responsável, prazo e medida compensatória; e como No-Go quando existir requisito crítico não conforme ou não verificado, vulnerabilidade crítica, risco de perda ou corrupção de dados, falha de autorização, ausência de recuperação demonstrada ou impedimento legal. Apresentar a evidência de cada gate, a decisão derivada, as excepções aprovadas e a entidade competente para aceitar o risco residual.","Critério individual; consultar backlog"
-"P1","MASTER-62719366-0024","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/SimulationTaxParameterResolver.php; resources/js/components/simulation-form.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-62719366-0024: Permitir converter uma simulação escolhida num rascunho do formulário integrado do investidor, mediante consentimento.","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0001","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0001: Implementar o módulo de cartografia/GIS no projecto InvestMoz por meio do presente prompt mestre, em conformidade com a arquitectura PostgreSQL/PostGIS, os controlos de publicação de mapas, a georreferenciação, os corredores, os clusters, os projectos âncora, os requisitos RF-GEO e a validação institucional já definidos na documentação do projecto.","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0002","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0002: Âmbito de execução: este prompt cobre exclusivamente o desenho e a implementação incremental do módulo de cartografia/GIS. A execução deve ocorrer em branch própria, sem deploy automático, com revisão humana, testes, evidências reproduzíveis e decisão Go/No-Go em cada fase. Alterações ao modelo de dados, APIs, permissões, regras de publicação ou integrações que ultrapassem este âmbito devem ser interrompidas e submetidas à aprovação do Dono do Produto, Arquitectura, Dados, Segurança e Jurídico/Conformidade.","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0003","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0003: Implementar o módulo de cartografia/GIS do InvestMoz como componente transversal do portal de investimentos, integrado ao catálogo de oportunidades, carteira PII 2026–2030, clusters económicos, corredores de desenvolvimento, ZEE/ZFI/parques industriais, CRM, experiência do investidor, campanhas e painéis analíticos.","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0006","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0006: Não inventar nem inferir regras de negócio, fontes, coordenadas, códigos territoriais, limites administrativos, polígonos, traçados, sistemas de referência, entidades competentes ou autorizações. Quando um valor estiver ausente, inconsistente ou não validado, conservar o campo como pendente, registar a anomalia, identificar a fonte afectada e interromper a publicação ou transformação correspondente até existir decisão humana documentada.","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0008","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0008: O módulo deve suportar mapas públicos, mapas internos, geometrias oficiais, pontos aproximados, polígonos, linhas, camadas temáticas e pesquisa espacial.","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0013","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0013: 3. Confidencialidade por desenho: o sistema deve permitir publicar apenas província, distrito, ponto aproximado ou geometria completa, conforme autorização.","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0020","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0020: Cada localização deve poder possuir uma ou várias geometrias:","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0030","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0030: O sistema deve permitir vários projectos públicos ou privados associados ao mesmo local, sem duplicar a geometria.","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0033","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0033: RF-GEO-004 — Captura e validação de geometrias","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0035","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0035: Toda geometria deve validar formato, SRID, tipo, vazio, coerência territorial, fonte e precisão.","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0039","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0039: O sistema deve permitir publicar apenas país, província, distrito, ponto aproximado, ponto exacto, linha ou polígono, conforme classificação.","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0040","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0040: Utilizadores públicos nunca devem receber a geometria exacta quando a autorização permitir apenas informação agregada. A API, a pesquisa, a exportação, a cache, os logs e o frontend devem aplicar a mesma regra de generalização ou ocultação, impedindo a reconstrução do dado restrito por combinação de respostas.","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0047","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0047: O sistema deve permitir pesquisa por mapa, proximidade, território, corredor, zona económica, parque, bacia e sector.","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0052","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0052: Fases de execução: Fase 0 — inventariar o repositório, o ficheiro cartografia_moz.xlsx, as fontes geoespaciais, os sistemas de referência, as autorizações, os utilizadores, as integrações e a cobertura dos RF-GEO; Fase 1 — definir modelo canónico, dicionário, classificação, regras de qualidade, transformação, validação e publicação; Fase 2 — implementar migrations, serviços, APIs, importação, autorização e auditoria; Fase 3 — implementar mapa público, mapa interno, filtros, acessibilidade e integração com CRM; Fase 4 — executar migração piloto, reconciliação, testes, segurança e UAT; Fase 5 — preparar staging e produção. Parar no final de cada fase e emitir recomendação Go, Go condicionado ou No-Go, acompanhada de evidências, riscos, pendências e rollback.","Critério individual; consultar backlog"
-"P1","MASTER-4a12de1c-0054","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-4a12de1c-0054: Adoptar o SRID 4326 como formato canónico de intercâmbio e publicação Web. Preservar o sistema de referência original nos metadados da fonte; transformar geometrias apenas por procedimento documentado; registar o método, a precisão e o resultado da transformação; e rejeitar ou colocar em quarentena dados sem SRID identificável. Os restantes controlos técnicos obrigatórios constam da lista seguinte.","Critério individual; consultar backlog"
-"P1","MASTER-09933d0e-0003","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-09933d0e-0003: Especial Capital provincial Designação atribuída a uma unidade territorial Não deve ser duplicada como território autónomo. | MASTER-0755f56a-0003: Especial Capital provincial Designação atribuída a uma unidade territorial Não deve ser duplicada como território autónomo.","Critério individual; consultar backlog"
-"P1","MASTER-09933d0e-0004","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-09933d0e-0004: geo_district id, province_id, codigo, nome, geometry, centroid, valid_from, valid_to, estado Código único; geometria deve estar contida ou justificada face à província. | MASTER-0755f56a-0004: geo_district id, province_id, codigo, nome, geometry, centroid, valid_from, valid_to, estado Código único; geometria deve estar contida ou justificada face à província.","Critério individual; consultar backlog"
-"P1","MASTER-09933d0e-0007","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-09933d0e-0007: • Associações derivadas da geometria devem ser marcadas como calculadas; associações inseridas por um editor devem ser marcadas como declaradas. | MASTER-0755f56a-0008: • Associações derivadas da geometria devem ser marcadas como calculadas; associações inseridas por um editor devem ser marcadas como declaradas.","Critério individual; consultar backlog"
-"P1","MASTER-09933d0e-0012","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-09933d0e-0012: 6. Coerência espacial: um ponto deve situar-se no território declarado. Divergências geram bloqueio ou excepção aprovada com justificação. | MASTER-0755f56a-0022: 6. Coerência espacial: um ponto deve situar-se no território declarado. Divergências geram bloqueio ou excepção aprovada com justificação.","Critério individual; consultar backlog"
-"P1","MASTER-09933d0e-0014","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-09933d0e-0014: 8. Percentagem de cobertura: é opcional para pontos e obrigatória quando necessária para ordenar territórios atravessados ou abrangidos; o total deve ser coerente com a metodologia adoptada. | MASTER-0755f56a-0024: 8. Percentagem de cobertura: é opcional para pontos e obrigatória quando necessária para ordenar territórios atravessados ou abrangidos; o total deve ser coerente com a metodologia adoptada.","Critério individual; consultar backlog"
-"P1","MASTER-09933d0e-0016","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-09933d0e-0016: Corredor Geometria linear e territórios atravessados. Registar origem, destino, sequência e nós estratégicos. | MASTER-0755f56a-0026: Corredor Geometria linear e territórios atravessados. Registar origem, destino, sequência e nós estratégicos.","Critério individual; consultar backlog"
-"P1","MASTER-09933d0e-0017","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-09933d0e-0017: ZEE/ZFI Polígono oficial e território administrativo. Fonte legal, acto de criação, vigência e versão do limite obrigatórios. | MASTER-0755f56a-0027: ZEE/ZFI Polígono oficial e território administrativo. Fonte legal, acto de criação, vigência e versão do limite obrigatórios.","Critério individual; consultar backlog"
-"P1","MASTER-09933d0e-0018","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-09933d0e-0018: Formação/competências Local de oferta e território beneficiário. Permitir distância a investimentos, empregadores e projectos. | MASTER-0755f56a-0028: Formação/competências Local de oferta e território beneficiário. Permitir distância a investimentos, empregadores e projectos.","Critério individual; consultar backlog"
-"P1","MASTER-09933d0e-0019","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-09933d0e-0019: Indicadores mínimos: percentagem de territórios com código único; percentagem com fonte e checksum; geometrias válidas; registos sem pai; duplicados por nome normalizado; associações órfãs; divergências entre ponto e território; cobertura territorial dos objectos activos; tempo de resposta p95; taxa de erros da API; e data da última revisão. Dados pessoais não devem ser armazenados neste domínio, excepto identificadores de auditoria sujeitos às políticas de acesso e retenção. | MASTER-0755f56a-0029: Indicadores mínimos: percentagem de territórios com código único; percentagem com fonte e checksum; geometrias válidas; registos sem pai; duplicados por nome normalizado; associações órfãs; divergências entre ponto e território; cobertura territorial dos objectos activos; tempo de resposta p95; taxa de erros da API; e data da última revisão. Dados pessoais não devem ser armazenados neste domínio, excepto identificadores de auditoria sujeitos às políticas de acesso e retenção.","Critério individual; consultar backlog"
-"P1","MASTER-d6055984-0019","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-d6055984-0019: O modelo inicial deve utilizar UUID como identificador global, conservar identificadores legados numa tabela própria, aplicar created_at, updated_at e deleted_at quando aplicável, e incluir controlo optimista de versão nas entidades críticas. Chaves estrangeiras devem ser explícitas; valores monetários devem usar precisão definida e código ISO da moeda; geometrias devem usar SRID aprovado; estados e categorias devem ser referenciados, não gravados como texto livre. | MASTER-06996499-0018: O modelo inicial deve utilizar UUID como identificador global, conservar identificadores legados numa tabela própria, aplicar created_at, updated_at e deleted_at quando aplicável, e incluir controlo optimista de versão nas entidades críticas. Chaves estrangeiras devem ser explícitas; valores monetários devem usar precisão definida e código ISO da moeda; geometrias devem usar SRID aprovado; estados e categorias devem ser referenciados, não gravados como texto livre.","Critério individual; consultar backlog"
-"P1","MASTER-d6055984-0020","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-d6055984-0020: real_estates asset_id; property_type; area_value; area_unit; occupancy_status; use_status; conservation_status; geometry; geometry_precision 1:1 assets; 1:N unidades, benfeitorias, titularidades, ónus e restrições Geometria e precisão obrigatórias; coordenadas exactas classificadas.","Critério individual; consultar backlog"
-"P1","MASTER-d6055984-0023","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-d6055984-0023: Relações e índices mínimos: um negócio pode ter várias partes, activos, localizações, documentos, verificações e interesses; cada associação deve indicar papel, vigência e estado. Criar índices para código público, estado, modalidade, sector, validade, confidencialidade e chaves externas; índice GIST para geometrias; índices parciais para registos activos; e restrições únicas para identificadores globais, códigos públicos, checksums/versionamento documental e deduplicação de interesses. A eliminação deve ser restritiva nas relações probatórias e de auditoria, usando arquivo ou soft delete onde legalmente admissível. | MASTER-06996499-0022: Relações e índices mínimos: um negócio pode ter várias partes, activos, localizações, documentos, verificações e interesses; cada associação deve indicar papel, vigência e estado. Criar índices para código público, estado, modalidade, sector, validade, confidencialidade e chaves externas; índice GIST para geometrias; índices parciais para registos activos; e restrições únicas para identificadores globais, códigos públicos, checksums/versionamento documental e deduplicação de interesses. A eliminação deve ser restritiva nas relações probatórias e de auditoria, usando arquivo ou soft delete onde legalmente admissível.","Critério individual; consultar backlog"
-"P1","MASTER-d6055984-0036","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-d6055984-0036: Critérios físicos obrigatórios: todas as FKs devem definir explicitamente ON DELETE e ON UPDATE; usar RESTRICT para prova, auditoria, titularidade, direitos, licenças e facturação; usar CASCADE apenas em tabelas associativas sem valor probatório autónomo. Criar índices B-tree em todas as FKs e filtros operacionais, GIST nas geometrias e índices parciais para registos activos. Validar jsonb na aplicação e, quando estável, com CHECK. Particionar audit_events, negotiation_events e integration_outbox por período apenas após medição de volume. | MASTER-06996499-0034: Critérios físicos obrigatórios: todas as FKs devem definir explicitamente ON DELETE e ON UPDATE; usar RESTRICT para prova, auditoria, titularidade, direitos, licenças e facturação; usar CASCADE apenas em tabelas associativas sem valor probatório autónomo. Criar índices B-tree em todas as FKs e filtros operacionais, GIST nas geometrias e índices parciais para registos activos. Validar jsonb na aplicação e, quando estável, com CHECK. Particionar audit_events, negotiation_events e integration_outbox por período apenas após medição de volume.","Critério individual; consultar backlog"
-"P1","MASTER-d6055984-0060","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-d6055984-0060: • Integridade: confirmar índice B-tree completo em cada FK; validar geometrias; testar unicidade, intervalos, percentagens, moeda, datas e estados.","Critério individual; consultar backlog"
-"P1","MASTER-0755f56a-0009","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-0755f56a-0009: Em todos os formulários, tabelas de pesquisa, filtros e campos de associação territorial dos módulos de investimentos, clusters, corredores, projectos âncora, ZEE/ZFI, infra-estruturas e oportunidades de formação, implementar dropdowns pesquisáveis e dependentes na sequência Província → Distrito → Posto Administrativo → Localidade. A selecção de um nível deve limitar automaticamente as opções do nível seguinte ao território seleccionando, reduzindo erros de cadastro e melhorando a navegação.","Critério individual; consultar backlog"
-"P1","MASTER-0755f56a-0030","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-0755f56a-0030: O seed inicial deve carregar o país e as 11 unidades territoriais de primeiro nível usando códigos institucionais estáveis. As capitais são preparadas numa tabela de staging e apenas ligadas a geo_province_capital depois da importação e validação dos distritos, postos administrativos e localidades. Esta abordagem evita criar localidades artificiais ou relações administrativas não confirmadas.","Critério individual; consultar backlog"
-"P1","MASTER-0755f56a-0032","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-0755f56a-0032: Fonte de referência: Instituto Nacional de Estatística — Codificador da Divisão Político-Administrativa. A lista de províncias e capitais deve ser reconciliada com a versão oficial vigente antes de cada publicação.","Critério individual; consultar backlog"
-"P1","MASTER-0755f56a-0033","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-0755f56a-0033: A execução depende da disponibilização dos ficheiros oficiais ou oficialmente validados que contenham distritos, postos administrativos, localidades e, quando aplicável, limites geográficos. Para cada ficheiro, registar nome, entidade emissora, versão, data de referência, URL de origem, licença, formato, codificação, delimitador, sistema de coordenadas e checksum SHA-256. Interromper a publicação quando a fonte não possuir licença confirmada, versão identificável ou correspondência verificável com o codificador administrativo adoptado.","Critério individual; consultar backlog"
-"P1","MASTER-0755f56a-0039","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-0755f56a-0039: No final, executar e documentar: migração numa base vazia; rollback completo; nova migração; seed de Moçambique; importação de um lote válido; repetição do mesmo lote para comprovar idempotência; importação de um lote inválido para comprovar rejeição; testes das restrições hierárquicas e espaciais; testes de autorização; testes de todos os endpoints; validação do OpenAPI; análise estática; testes automatizados; e consulta dos indicadores de qualidade. A conclusão deve apresentar o comando executado, o resultado obtido e qualquer item não verificado. Não declarar a implementação concluída enquanto existir teste falhado, associação órfã, duplicação crítica, geometria inválida ou documentação divergente do código.","Critério individual; consultar backlog"
-"P1","MASTER-06996499-0019","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-06996499-0019: real_estates asset_id; property_type; area_value; area_unit; occupancy_status; use_status; conservation_status; geometry; geometry_precision 1:1 assets; 1:N real_estate_units, improvements, ownership_records, encumbrances e restrictions Coordenadas exactas classificadas; área positiva; precisão da geometria obrigatória.","Critério individual; consultar backlog"
-"P1","MASTER-574657f7-0003","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-574657f7-0003: Permitir guardar informação incompleta em rascunho. A publicação deve exigir os elementos documentais essenciais definidos para cada categoria, sem impor certificadores externos como requisito geral.","Critério individual; consultar backlog"
-"P1","MASTER-99e36a08-0007","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-99e36a08-0007: Para guardar e recuperar dados pessoais, utilizar autenticação ou mecanismo de retoma segura já suportado. Não disponibilizar documentos preenchidos através de ligações públicas previsíveis.","Critério individual; consultar backlog"
-"P1","MASTER-99e36a08-0019","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-99e36a08-0019: Confirmar a actualidade dos modelos antes de os disponibilizar para apresentação oficial. Não generalizar um modelo identificado com serviços provinciais a todo o país.","Critério individual; consultar backlog"
-"P1","MASTER-e1154155-0003","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1154155-0003: - Cadastros únicos: o modelo propõe tabelas que podem colidir com as existentes, incluindo opportunities. Deve referenciar contas, organizações, documentos, setores e territórios atuais.","Critério individual; consultar backlog"
-"P1","MASTER-e1154155-0004","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/VirtualDesk.php; app/Services/Ai/InvestorGuidance.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-e1154155-0004: - Requisitos proporcionais: o documento exige organização verificada para publicar e manifestar interesse. Precisamos de distinguir exploração e preparação de rascunhos das ações que justificam verificação, respeitando a tua orientação de evitar impedimentos arbitrários.","Critério individual; consultar backlog"
-"P1","MASTER-9f6dd1d9-0006","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-9f6dd1d9-0006: Permitir guardar rascunhos incompletos. O gestor autorizado deve conseguir consultar e editar documentos privados, mesmo quando ainda não possam aparecer publicamente.","Critério individual; consultar backlog"
-"P1","MASTER-9f6dd1d9-0009","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-9f6dd1d9-0009: Documentos nacionais aplicáveis devem permanecer acessíveis numa pesquisa provincial, claramente identificados. Não confundir localização da entidade emitente com território de aplicação.","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0011","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0011: 10. Testes e validação: executar testes unitários, integração, contrato de API, interface, permissões, segurança, desempenho, acessibilidade, idiomas, migração e recuperação; validar cenários positivos e negativos com representantes dos quatro perfis de utilizador; corrigir vulnerabilidades e inconformidades antes da produção.","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0016","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/CrmController.php; app/Services/DeclaredOriginStatistics.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0016: 6. Pesquisa, correspondência e integrações Indexar dados autorizados; configurar pesos e filtros; explicar correspondências; integrar fontes mestre e CRM por identificadores únicos; implementar idempotência, filas, repetição e reconciliação. Regras de correspondência versionadas; contratos de integração; logs; relatório de reconciliação; testes de falha e recuperação. Resultados reproduzíveis e explicáveis; ausência de duplicações; sincronização recuperável sem perda de dados.","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0018","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0018: CA-01 Dado um investidor ou empregador autenticado e autorizado, o sistema deve permitir criar, guardar como rascunho, submeter, actualizar e arquivar uma necessidade de competências ligada, quando aplicável, a território, Corredor, Cluster, projecto âncora e fase, contendo ocupação, competência, quantidade, nível, prazo, localização genérica, fonte, confiança e responsável, e distinguindo estimativa de compromisso. Casos positivos e negativos das transições; comparação entre submissão e persistência; vínculo aos IDs mestre; histórico de estado, actor e data/hora; prova de que registos incompletos permanecem em rascunho.","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0019","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/VirtualDesk.php; app/Services/Ai/InvestorGuidance.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0019: CA-02 Para cada campo obrigatório, catálogo, formato, intervalo, dependência, relação, fonte e regra de unicidade ou deduplicação definidos, o frontend deve orientar a correcção e o backend deve rejeitar a submissão inválida sem persistência parcial, mantendo o registo incompleto em rascunho quando o fluxo o permitir. Matriz campo–regra–mensagem; testes de fronteira, catálogos, relações, duplicação e dados em falta; resposta de erro conforme OpenAPI; confirmação de ausência de persistência parcial.","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0020","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0020: CA-03 Quando esta extensão estiver formalmente aprovada para a fase aplicável, um indivíduo autenticado deve poder criar, actualizar, pré-visualizar e desactivar o seu perfil profissional, currículo, competências, qualificações, experiência e disponibilidade, bem como carregar, pré-visualizar, substituir e remover documentos comprovativos da qualificação. Os ficheiros devem ser associados à qualificação correspondente, validados quanto a formato, tamanho, tipo real, integridade e malware, submetidos a controlo de acesso e ciclo de validação, sem que o portal emita certificação, reconheça qualificações ou prometa colocação. Decisão de fase e âmbito aprovada; comparação entre dados submetidos, apresentados e recuperados; histórico de versões; testes de visibilidade e desactivação; upload de ficheiros válidos e rejeição de extensão, tipo real, tamanho, integridade ou conteúdo malicioso inválidos; associação do comprovativo à qualificação; estados de validação e auditoria; documentos ocultos dos resultados públicos; avisos de não certificação e não garantia verificados.","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0024","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0024: CA-07 A pesquisa deve suportar filtros simples e combinados por competência, ocupação, nível, período, território, Corredor, Cluster, projecto, instituição, curso e estado de validação, preservando relações bidireccionais, eliminando duplicados e aplicando consentimento, classificação e autorização antes da indexação e apresentação. Conjunto de referência com resultados esperados; testes de filtros, relações, acentos, ordenação, paginação, ausência de resultados, deduplicação, autorização e ocultação de dados reservados; telemetria de pesquisas sem resultado quando aplicável.","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0033","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/CrmController.php; app/Services/DeclaredOriginStatistics.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0033: CA-16 Antes de staging ou produção, não deve existir vulnerabilidade crítica ou elevada em aberto, exposição indevida, falha crítica de autorização, consentimento, acessibilidade, recuperação ou reconciliação, teste obrigatório falhado, quebra contratual não aprovada ou rollback inviável. Outros riscos residuais só podem avançar com responsável, mitigação, prazo, aprovador e decisão Go/No-Go registados. Relatórios de SAST, dependências, configuração, DAST/intrusão, autorização, privacidade, acessibilidade e recuperação; lista de findings por severidade e estado; evidência de correcção e reteste; registo dos riscos residuais e aprovações formais.","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0037","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/CrmController.php; app/Services/DeclaredOriginStatistics.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0037: CT-16 Gate de segurança e Go/No-Go: consolidar testes obrigatórios, vulnerabilidades, privacidade, acessibilidade, contratos, recuperação, reconciliação, rollback e riscos residuais. Staging ou produção permanece bloqueado perante condição impeditiva, incluindo qualquer vulnerabilidade crítica ou elevada em aberto. Apenas outros riscos residuais admissíveis podem avançar com responsável, mitigação, prazo, aprovador e decisão formal. CA-16 / CA-01–CA-15","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0074","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0074: Criar um formulário único, responsivo e acessível, com selecção obrigatória da modalidade de inscrição: individual ou por instituição de ensino. O formulário deve permitir guardar como rascunho, retomar, submeter para validação, actualizar e desactivar o registo, mantendo histórico, consentimento e auditoria.","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0084","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/CrmController.php; app/Services/DeclaredOriginStatistics.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0084: RV-CAN-02 Nome completo, contacto confirmado, localização genérica, ocupação, resumo profissional, pelo menos uma competência, uma qualificação, disponibilidade, visibilidade e consentimento devem estar preenchidos antes da submissão. Registo incompleto pode ser guardado como rascunho, mas não pode ser submetido; os campos em falta são identificados de forma acessível. Submissão válida é aceite; cada omissão obrigatória é rejeitada sem persistência parcial nem perda do rascunho.","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0099","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0099: RF-CAN-01 Permitir seleccionar a inscrição individual ou por instituição de ensino e apresentar apenas os campos aplicáveis. RV-CAN-01; RV-CAN-02; RA-CAN-01 CA-02, CA-03, CA-04; CT-02, CT-03, CT-04 Capturas dos dois fluxos; respostas da API; comparação pedido–persistência; teste de valor inválido; rascunho preservado. Funcional e QA","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0100","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0100: RF-CAN-02 Permitir criar, guardar como rascunho, retomar, submeter, actualizar e desactivar o perfil do candidato. RV-CAN-02; RA-CAN-01 CA-03; CT-03 Histórico de estados; dados antes/depois; referência da submissão; prova de ausência do perfil desactivado na pesquisa. Funcional, QA e Produto","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0101","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0101: RF-CAN-03 Recolher os campos comuns obrigatórios e impedir a submissão de registo incompleto, sem impedir o rascunho. RV-CAN-02; RV-CAN-13; RA-CAN-01 CA-02, CA-03; CT-02, CT-03 Matriz campo–regra–mensagem; testes de omissão e fronteira; resposta conforme contrato; ausência de persistência parcial. Funcional e QA","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0139","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0139: O investidor deve poder adicionar vários perfis pretendidos ao mesmo projecto, guardar como rascunho, duplicar um perfil para edição, submeter para validação, actualizar e arquivar. A descrição deve aceitar texto estruturado suficiente para indicar responsabilidades, requisitos obrigatórios aprovados, competências desejáveis e condições relevantes, sem recolher dados pessoais de candidatos. Cada perfil deve ficar ligado ao investidor, empresa, projecto, Cluster, Corredor e localização aplicáveis e alimentar, após validação, a matriz de procura de competências e o mecanismo de correspondência.","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0147","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0147: Localização genérica Província de Sofala, área de influência do Corredor da Beira. Não publicar coordenadas ou instalações exactas sem autorização.","Critério individual; consultar backlog"
-"P1","MASTER-fd787802-0153","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-fd787802-0153: Estado do registo Rascunho em validação interna. Não publicar nem usar no matching até aprovação.","Critério individual; consultar backlog"
-"P1","MASTER-600240dd-0001","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/VirtualDesk.php; app/Services/Ai/InvestorGuidance.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-600240dd-0001: Propomos desenvolver o InvesteMoz como uma plataforma contínua de apoio ao investimento e ao empreendedorismo. O utilizador começa com uma ideia ou um negócio existente, constrói o seu projecto e acompanha a execução num dossier único. O plano de negócio, as estatísticas, as competências, o financiamento e os procedimentos devem partilhar informação e indicar sempre a próxima acção útil.","Critério individual; consultar backlog"
-"P1","MASTER-600240dd-0002","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/EducationController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-600240dd-0002: Mantemos os doze critérios e os pesos do draft para permitir continuidade da análise. As competências passam a ser avaliadas na cobertura do percurso e na correspondência entre necessidades e recursos; as estatísticas incluem tanto consulta de fontes como produção de indicadores do portal.","Critério individual; consultar backlog"
-"P1","MASTER-600240dd-0017","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-600240dd-0017: 2 Reutilizar identidade, dossier, países, CAE e território. Dados comuns preenchidos uma vez e editáveis.","Critério individual; consultar backlog"
-"P1","MASTER-600240dd-0031","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-600240dd-0031: O catálogo deve separar estatísticas oficiais, dados de outras fontes identificadas, dados declarados no portal e estimativas do projecto. O InvesteMoz pode produzir indicadores agregados da sua própria actividade, mas estes não representam automaticamente a economia ou a população de Moçambique.","Critério individual; consultar backlog"
-"P1","MASTER-6381a59f-0010","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-6381a59f-0010: Território administrativo — administrative_areas Por inventariar: províncias, distritos, postos administrativos, localidades e códigos oficiais. Validar hierarquia, códigos, nomes PT/EN, geometria, fonte e vigência. Por decidir. Conciliar códigos oficiais, relações pai-filho, SRID, geometrias inválidas e registos órfãos.","Critério individual; consultar backlog"
-"P1","MASTER-6381a59f-0015","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-6381a59f-0015: Geometrias — spatial_features Por inventariar: colunas espaciais, GeoJSON, ficheiros, serviços GIS e tabelas de mapas. Validar proprietário, tipo, SRID, geometria primária/secundária, fonte, versão e aprovação. Preferir o padrão GIS existente; evitar duplicar geometria na entidade e numa tabela auxiliar sem regra. Testar validade, vazio, SRID, índices espaciais, contagens e equivalência geométrica.","Critério individual; consultar backlog"
-"P1","MASTER-6381a59f-0016","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-6381a59f-0016: Instalações — facilities Por inventariar: lotes, instalações, infra-estruturas, utilities, armazéns e capacidade. Determinar se um supertipo é adequado ou se os módulos existentes devem permanecer separados. Por decidir com base na semântica e nos fluxos actuais. Conciliar códigos, áreas, capacidade, ocupação, disponibilidade e geometria; testar reservas concorrentes.","Critério individual; consultar backlog"
-"P1","MASTER-6381a59f-0019","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-6381a59f-0019: Indicadores — indicators Por inventariar: métricas, estatísticas, séries, metas, resultados e dashboards. Validar definição, fórmula, unidade, período, natureza, fonte e aprovação. Por decidir. Reconciliar valores por período e natureza, detectar divergências e testar agregações oficiais.","Critério individual; consultar backlog"
-"P1","MASTER-6381a59f-0021","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-6381a59f-0021: Versionamento — entity_versions Por inventariar: histórico, revisões, temporalidade, snapshots, eventos ou biblioteca de auditoria. Validar cobertura, granularidade, actor, motivo, imutabilidade e recuperação. Reutilizar mecanismo transversal existente sempre que suficiente. Testar sequência, reconstrução, concorrência, retenção e compatibilidade com versões anteriores.","Critério individual; consultar backlog"
-"P1","MASTER-6381a59f-0027","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-6381a59f-0027: O rollback deve ser gerado pelas migrations do stack real e ensaiado exclusivamente em ambiente controlado. A ordem lógica inversa de remoção é: índices; auditoria e versões; manifestações de interesse; indicadores; documentos; regras regulatórias; instalações; geometrias; dependências; relações; investimentos; entidades territoriais; áreas administrativas; organizações; diplomas; fontes. Quando a migration transformar, consolidar ou migrar dados, o plano deve ainda definir restauração de identificadores, reconciliação de registos, preservação do histórico e critérios de recuperação. Não usar DROP ... CASCADE nem remover extensões partilhadas sem inventário de dependências e aprovação explícita.","Critério individual; consultar backlog"
-"P1","MASTER-8ab2b0df-0003","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/CrmController.php; app/Services/DeclaredOriginStatistics.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-8ab2b0df-0003: 2. Perfil do promotor Tipo de pessoa; investidor nacional/estrangeiro; residente fiscal; entidade existente/em constituição; país; NUIT opcional na simulação e obrigatório quando legalmente exigido na manifestação. Quando autenticado, pré-preencher a partir do Perfil do Investidor; alterações não actualizam o cadastro mestre sem confirmação separada.","Critério individual; consultar backlog"
-"P1","MASTER-8ab2b0df-0008","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/SimulationTaxParameterResolver.php; resources/js/components/simulation-form.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-8ab2b0df-0008: 12. Revisão e submissão Resumo dos dados; lacunas; resultado fiscal; riscos; dados públicos/privados; declaração final. Guardar rascunho, validar, submeter ou regressar; submissão gera referência e bloqueia versão enviada.","Critério individual; consultar backlog"
-"P1","MASTER-8ab2b0df-0013","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/CrmController.php; app/Services/DeclaredOriginStatistics.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-8ab2b0df-0013: PATCH /api/v1/manifestations/{id} Guardar rascunho. Usa If-Match; não permite alterar versão já submetida.","Critério individual; consultar backlog"
-"P1","MASTER-8ab2b0df-0017","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-8ab2b0df-0017: • Usar listas oficiais para sectores, países e geografia; permitir pesquisa e selecção sem exigir conhecimento de códigos.","Critério individual; consultar backlog"
-"P1","MASTER-8ab2b0df-0029","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-8ab2b0df-0029: promoter.tax_residency_country País do catálogo ISO Obrigatório.","Critério individual; consultar backlog"
-"P1","MASTER-8ab2b0df-0039","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-8ab2b0df-0039: contact.phone Telefone internacional Obrigatório; código do país incluído.","Critério individual; consultar backlog"
-"P1","MASTER-8ab2b0df-0057","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/DashboardController.php; app/Services/CountryCatalogue.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-8ab2b0df-0057: financial.funds_origin_countries Lista de países Obrigatório se existir capital/dívida estrangeira.","Critério individual; consultar backlog"
-"P1","MASTER-c71ec7ad-0003","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-c71ec7ad-0003: Preservar localizações históricas e equivalências administrativas documentadas. Não inventar coordenadas, perímetros ou localidades.","Critério individual; consultar backlog"
-"P1","MASTER-f0da2b58-0001","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-f0da2b58-0001: final class SubmitOpportunity { public function handle(Opportunity $opportunity, string $idempotencyKey, string $correlationId, string $actorId):Opportunity { return DB::transaction(function() use($opportunity,$idempotencyKey,$correlationId,$actorId){ $locked=Opportunity::query()->whereKey($opportunity->id)->lockForUpdate()->firstOrFail(); if($locked->status!==OpportunityStatus::Draft){ throw ValidationException::withMessages(['status'=>'A oportunidade já foi submetida ou não está em rascunho.']); } if(!$locked->proposer_id || !$locked->public_title || !$locked->sector_code){ throw ValidationException::withMessages(['opportunity'=>'Dados obrigatórios incompletos.']); } $locked->forceFill(['status'=>OpportunityStatus::Submitted,'submitted_at'=>now(),'version'=>$locked->version+1,'next_action'=>'Triagem inicial','next_action_due_at'=>now()->addBusinessDays(3)])->save(); DB::table('business.workflow_transitions')->insert(['id'=>(string)str()->uuid(),'aggregate_type'=>'opportunity','aggregate_id'=>$locked->id,'from_status'=>'draft','to_status'=>'submitted','actor_id'=>$actorId,'correlation_id'=>$correlationId,'metadata'=>json_encode(['idempotency_key'=>$idempotencyKey]),'created_at'=>now()]); DB::table('business.outbox_messages')->insertOrIgnore(['id'=>(string)str()->uuid(),'topic'=>'opportunity.submitted','aggregate_type'=>'opportunity','aggregate_id'=>$locked->id,'payload'=>json_encode(['opportunity_id'=>$locked->id]),'idempotency_key'=>$idempotencyKey.':opportunity.submitted','created_at'=>now()]); return $locked->refresh(); },5); } }","Critério individual; consultar backlog"
-"P1","MASTER-2453530c-0004","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-2453530c-0004: - Guardar em rascunho apenas os elementos ainda não esclarecidos, sem bloquear os restantes registos.","Critério individual; consultar backlog"
-"P1","MASTER-2453530c-0006","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-2453530c-0006: Permitir rascunhos incompletos. Exigir para publicação os elementos essenciais definidos por categoria, com revisão documental proporcional, sem certificação externa obrigatória para cada campo.","Critério individual; consultar backlog"
-"P1","MASTER-149673c0-0004","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-149673c0-0004: Permitir marcar ou confirmar coordenadas. Oferecer a opção “Não conheço a localização exacta”.","Critério individual; consultar backlog"
-"P1","MASTER-149673c0-0009","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-149673c0-0009: Voltar · Guardar rascunho · Pré-visualizar · Submeter para revisão","Critério individual; consultar backlog"
-"P1","MASTER-55050f60-0007","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-55050f60-0007: Não confundir local de emissão com território de aplicação. Documentos nacionais aplicáveis devem continuar acessíveis numa pesquisa provincial, com o âmbito claramente identificado.","Critério individual; consultar backlog"
-"P1","MASTER-5dff89ad-0001","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-5dff89ad-0001: Stack de referência: backend Laravel/PHP com API REST, frontend React, base de dados PostgreSQL com PostGIS e importação a partir de C:\Mac\Home\Documents\eBAU\cartografia_moz.xlsx. Antes de implementar, confirme no repositório as versões, estrutura de pastas, bibliotecas, convenções, autenticação, componentes de formulário, cliente HTTP, framework de testes e nomes reais das entidades. Se o código actual divergir desta referência, adapte a solução ao que estiver efectivamente instalado e documente a divergência; não introduza uma segunda stack.","Critério individual; consultar backlog"
-"P1","MASTER-5dff89ad-0003","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-5dff89ad-0003: 4. Importação idempotente: crie ou corrija um comando Artisan/importador para inspeccionar as folhas e colunas reais de cartografia_moz.xlsx. Não presuma cabeçalhos. Normalize espaços e Unicode, trate acentos, diferenças de capitalização, células vazias e códigos numéricos convertidos em texto. Use upsert por código oficial ou chave natural estável no contexto do pai. A segunda execução deve resultar em zero duplicados. Produza contagens de lidos, inseridos, actualizados, ignorados e rejeitados, com ficheiro de erros e motivo.","Critério individual; consultar backlog"
-"P1","MASTER-5dff89ad-0005","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-5dff89ad-0005: 8. Dropdowns dependentes: no carregamento inicial, obtenha as Províncias; após seleccionar Província, carregue apenas os respectivos Distritos; após Distrito, apenas os Postos Administrativos; após Posto, apenas as Localidades. Desactive o campo descendente até existir pai válido. Ao alterar um pai, cancele pedidos pendentes, limpe imediatamente todos os descendentes e evite que respostas antigas repovoem opções incorrectas. Inclua carregamento, ausência de resultados, erro com nova tentativa e pesquisa quando o volume justificar.","Critério individual; consultar backlog"
-"P1","MASTER-5dff89ad-0006","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","resources/js/components/investment-territory.tsx; app/Http/Controllers/InvestmentTerritoryController.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","MASTER-5dff89ad-0006: Forma obrigatória de execução e entrega: faça as alterações directamente no repositório e não pare numa proposta. Antes de editar, apresente um resumo curto do diagnóstico e da causa raiz comprovada. Depois implemente a menor correcção completa, execute migrations num ambiente seguro, importe a cartografia e corra os testes e o build. No relatório final inclua: (1) causa raiz e evidência; (2) arquitectura encontrada, versões e diferenças face à stack de referência; (3) ficheiros alterados e finalidade de cada alteração; (4) esquema e relações antes/depois; (5) endpoints e exemplos reais de pedido/resposta; (6) comandos executados e resultados, incluindo primeira e segunda importação; (7) testes executados e evidências; (8) riscos, rollback e pendências reais. Não responda apenas com recomendações, pseudocódigo ou fragmentos isolados. Não declare sucesso sem demonstrar todos os critérios de aceitação. Se não puder executar alguma etapa, indique o comando, erro exacto, causa provável e acção necessária, sem simular resultados.","Critério individual; consultar backlog"
-"P1","OP-FIELD-localizedPublication-opportunity_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-localizedPublication-opportunity_id: Persistir, recuperar e validar localizedPublication.opportunity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationResponse-opportunity_id: Persistir, recuperar e validar localizedPublicationResponse.opportunity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-localizedPublication-language_code","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-localizedPublication-language_code: Persistir, recuperar e validar localizedPublication.language_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationCreate-language_code: Persistir, recuperar e validar localizedPublicationCreate.language_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationPatch-language_code: Persistir, recuperar e validar localizedPublicationPatch.language_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationResponse-language_code: Persistir, recuperar e validar localizedPublicationResponse.language_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-localizedPublication-title","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-localizedPublication-title: Persistir, recuperar e validar localizedPublication.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationCreate-title: Persistir, recuperar e validar localizedPublicationCreate.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationPatch-title: Persistir, recuperar e validar localizedPublicationPatch.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationResponse-title: Persistir, recuperar e validar localizedPublicationResponse.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-localizedPublication-summary","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-localizedPublication-summary: Persistir, recuperar e validar localizedPublication.summary segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationCreate-summary: Persistir, recuperar e validar localizedPublicationCreate.summary segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationPatch-summary: Persistir, recuperar e validar localizedPublicationPatch.summary segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationResponse-summary: Persistir, recuperar e validar localizedPublicationResponse.summary segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-localizedPublication-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-localizedPublication-id: Persistir, recuperar e validar localizedPublication.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationResponse-id: Persistir, recuperar e validar localizedPublicationResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-localizedPublication-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-localizedPublication-version: Persistir, recuperar e validar localizedPublication.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationResponse-version: Persistir, recuperar e validar localizedPublicationResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-localizedPublication-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-localizedPublication-is_deleted: Persistir, recuperar e validar localizedPublication.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationResponse-is_deleted: Persistir, recuperar e validar localizedPublicationResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-localizedPublication-deleted_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-localizedPublication-deleted_at: Persistir, recuperar e validar localizedPublication.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationResponse-deleted_at: Persistir, recuperar e validar localizedPublicationResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-localizedPublication-deleted_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-localizedPublication-deleted_by: Persistir, recuperar e validar localizedPublication.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationResponse-deleted_by: Persistir, recuperar e validar localizedPublicationResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-localizedPublication-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-localizedPublication-delete_reason: Persistir, recuperar e validar localizedPublication.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationResponse-delete_reason: Persistir, recuperar e validar localizedPublicationResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-localizedPublication-created_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-localizedPublication-created_by: Persistir, recuperar e validar localizedPublication.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationResponse-created_by: Persistir, recuperar e validar localizedPublicationResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-localizedPublication-created_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-localizedPublication-created_at: Persistir, recuperar e validar localizedPublication.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationResponse-created_at: Persistir, recuperar e validar localizedPublicationResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-localizedPublication-updated_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-localizedPublication-updated_by: Persistir, recuperar e validar localizedPublication.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationResponse-updated_by: Persistir, recuperar e validar localizedPublicationResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-localizedPublication-updated_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-localizedPublication-updated_at: Persistir, recuperar e validar localizedPublication.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-localizedPublicationResponse-updated_at: Persistir, recuperar e validar localizedPublicationResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-id","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-id: Persistir, recuperar e validar location.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-id: Persistir, recuperar e validar locationResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-version","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-version: Persistir, recuperar e validar location.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-version: Persistir, recuperar e validar locationResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-is_deleted","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-is_deleted: Persistir, recuperar e validar location.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-is_deleted: Persistir, recuperar e validar locationResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-deleted_at","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-deleted_at: Persistir, recuperar e validar location.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-deleted_at: Persistir, recuperar e validar locationResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-deleted_by","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-deleted_by: Persistir, recuperar e validar location.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-deleted_by: Persistir, recuperar e validar locationResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-delete_reason","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-delete_reason: Persistir, recuperar e validar location.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-delete_reason: Persistir, recuperar e validar locationResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-created_by","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-created_by: Persistir, recuperar e validar location.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-created_by: Persistir, recuperar e validar locationResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-created_at","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-created_at: Persistir, recuperar e validar location.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-created_at: Persistir, recuperar e validar locationResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-updated_by","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-updated_by: Persistir, recuperar e validar location.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-updated_by: Persistir, recuperar e validar locationResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-updated_at","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-updated_at: Persistir, recuperar e validar location.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-updated_at: Persistir, recuperar e validar locationResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-country_code","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-country_code: Persistir, recuperar e validar location.country_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationCreate-country_code: Persistir, recuperar e validar locationCreate.country_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationPatch-country_code: Persistir, recuperar e validar locationPatch.country_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-country_code: Persistir, recuperar e validar locationResponse.country_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-province_id","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-province_id: Persistir, recuperar e validar location.province_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationCreate-province_id: Persistir, recuperar e validar locationCreate.province_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationPatch-province_id: Persistir, recuperar e validar locationPatch.province_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-province_id: Persistir, recuperar e validar locationResponse.province_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-district_id","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-district_id: Persistir, recuperar e validar location.district_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationCreate-district_id: Persistir, recuperar e validar locationCreate.district_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationPatch-district_id: Persistir, recuperar e validar locationPatch.district_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-district_id: Persistir, recuperar e validar locationResponse.district_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-administrative_post_id","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-administrative_post_id: Persistir, recuperar e validar location.administrative_post_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationCreate-administrative_post_id: Persistir, recuperar e validar locationCreate.administrative_post_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationPatch-administrative_post_id: Persistir, recuperar e validar locationPatch.administrative_post_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-administrative_post_id: Persistir, recuperar e validar locationResponse.administrative_post_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-locality_id","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-locality_id: Persistir, recuperar e validar location.locality_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationCreate-locality_id: Persistir, recuperar e validar locationCreate.locality_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationPatch-locality_id: Persistir, recuperar e validar locationPatch.locality_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-locality_id: Persistir, recuperar e validar locationResponse.locality_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-geometry","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-geometry: Persistir, recuperar e validar location.geometry segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationCreate-geometry: Persistir, recuperar e validar locationCreate.geometry segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationPatch-geometry: Persistir, recuperar e validar locationPatch.geometry segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-geometry: Persistir, recuperar e validar locationResponse.geometry segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-area_value","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-area_value: Persistir, recuperar e validar location.area_value segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationCreate-area_value: Persistir, recuperar e validar locationCreate.area_value segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationPatch-area_value: Persistir, recuperar e validar locationPatch.area_value segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-area_value: Persistir, recuperar e validar locationResponse.area_value segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-area_unit","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-area_unit: Persistir, recuperar e validar location.area_unit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationCreate-area_unit: Persistir, recuperar e validar locationCreate.area_unit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationPatch-area_unit: Persistir, recuperar e validar locationPatch.area_unit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-area_unit: Persistir, recuperar e validar locationResponse.area_unit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-allocation_percentage","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-allocation_percentage: Persistir, recuperar e validar location.allocation_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationCreate-allocation_percentage: Persistir, recuperar e validar locationCreate.allocation_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationPatch-allocation_percentage: Persistir, recuperar e validar locationPatch.allocation_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-allocation_percentage: Persistir, recuperar e validar locationResponse.allocation_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-address","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-address: Persistir, recuperar e validar location.address segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationCreate-address: Persistir, recuperar e validar locationCreate.address segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationPatch-address: Persistir, recuperar e validar locationPatch.address segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-address: Persistir, recuperar e validar locationResponse.address segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-role","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-role: Persistir, recuperar e validar location.role segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationCreate-role: Persistir, recuperar e validar locationCreate.role segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationPatch-role: Persistir, recuperar e validar locationPatch.role segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-role: Persistir, recuperar e validar locationResponse.role segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-role_other","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-role_other: Persistir, recuperar e validar location.role_other segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationCreate-role_other: Persistir, recuperar e validar locationCreate.role_other segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationPatch-role_other: Persistir, recuperar e validar locationPatch.role_other segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-role_other: Persistir, recuperar e validar locationResponse.role_other segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-is_primary","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-is_primary: Persistir, recuperar e validar location.is_primary segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationCreate-is_primary: Persistir, recuperar e validar locationCreate.is_primary segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationPatch-is_primary: Persistir, recuperar e validar locationPatch.is_primary segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-is_primary: Persistir, recuperar e validar locationResponse.is_primary segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-location-active","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-location-active: Persistir, recuperar e validar location.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-locationResponse-active: Persistir, recuperar e validar locationResponse.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-product-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-product-id: Persistir, recuperar e validar product.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-product-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-product-version: Persistir, recuperar e validar product.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-product-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-product-is_deleted: Persistir, recuperar e validar product.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-product-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-product-delete_reason: Persistir, recuperar e validar product.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-product-name","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-product-name: Persistir, recuperar e validar product.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-productCreate-name: Persistir, recuperar e validar productCreate.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-product-code","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-product-code: Persistir, recuperar e validar product.code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-productCreate-code: Persistir, recuperar e validar productCreate.code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-product-category","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-product-category: Persistir, recuperar e validar product.category segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-productCreate-category: Persistir, recuperar e validar productCreate.category segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-product-quantity","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-product-quantity: Persistir, recuperar e validar product.quantity segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-productCreate-quantity: Persistir, recuperar e validar productCreate.quantity segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-product-unit","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-product-unit: Persistir, recuperar e validar product.unit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-productCreate-unit: Persistir, recuperar e validar productCreate.unit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-asset-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-asset-id: Persistir, recuperar e validar asset.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-asset-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-asset-version: Persistir, recuperar e validar asset.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-asset-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-asset-is_deleted: Persistir, recuperar e validar asset.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-asset-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-asset-delete_reason: Persistir, recuperar e validar asset.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-asset-name","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-asset-name: Persistir, recuperar e validar asset.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-assetCreate-name: Persistir, recuperar e validar assetCreate.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-asset-asset_type","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-asset-asset_type: Persistir, recuperar e validar asset.asset_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-assetCreate-asset_type: Persistir, recuperar e validar assetCreate.asset_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-asset-description","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-asset-description: Persistir, recuperar e validar asset.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-assetCreate-description: Persistir, recuperar e validar assetCreate.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-asset-value","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-asset-value: Persistir, recuperar e validar asset.value segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-assetCreate-value: Persistir, recuperar e validar assetCreate.value segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-asset-currency","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-asset-currency: Persistir, recuperar e validar asset.currency segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-assetCreate-currency: Persistir, recuperar e validar assetCreate.currency segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-employment-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-employment-id: Persistir, recuperar e validar employment.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-employment-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-employment-version: Persistir, recuperar e validar employment.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-employment-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-employment-is_deleted: Persistir, recuperar e validar employment.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-employment-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-employment-delete_reason: Persistir, recuperar e validar employment.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-employment-employment_type","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-employment-employment_type: Persistir, recuperar e validar employment.employment_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-employmentCreate-employment_type: Persistir, recuperar e validar employmentCreate.employment_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-employment-direct_jobs","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-employment-direct_jobs: Persistir, recuperar e validar employment.direct_jobs segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-employmentCreate-direct_jobs: Persistir, recuperar e validar employmentCreate.direct_jobs segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-employment-indirect_jobs","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-employment-indirect_jobs: Persistir, recuperar e validar employment.indirect_jobs segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-employmentCreate-indirect_jobs: Persistir, recuperar e validar employmentCreate.indirect_jobs segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-employment-female_percentage","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-employment-female_percentage: Persistir, recuperar e validar employment.female_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-employmentCreate-female_percentage: Persistir, recuperar e validar employmentCreate.female_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-employment-youth_percentage","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-employment-youth_percentage: Persistir, recuperar e validar employment.youth_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-employmentCreate-youth_percentage: Persistir, recuperar e validar employmentCreate.youth_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-impact-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-impact-id: Persistir, recuperar e validar impact.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-impact-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-impact-version: Persistir, recuperar e validar impact.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-impact-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-impact-is_deleted: Persistir, recuperar e validar impact.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-impact-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-impact-delete_reason: Persistir, recuperar e validar impact.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-impact-impact_type","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-impact-impact_type: Persistir, recuperar e validar impact.impact_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-impactCreate-impact_type: Persistir, recuperar e validar impactCreate.impact_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-impact-description","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-impact-description: Persistir, recuperar e validar impact.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-impactCreate-description: Persistir, recuperar e validar impactCreate.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-impact-indicator","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-impact-indicator: Persistir, recuperar e validar impact.indicator segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-impactCreate-indicator: Persistir, recuperar e validar impactCreate.indicator segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-impact-target","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-impact-target: Persistir, recuperar e validar impact.target segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-impactCreate-target: Persistir, recuperar e validar impactCreate.target segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-impact-unit","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-impact-unit: Persistir, recuperar e validar impact.unit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-impactCreate-unit: Persistir, recuperar e validar impactCreate.unit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-moneyItem-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-moneyItem-id: Persistir, recuperar e validar moneyItem.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-moneyItem-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-moneyItem-version: Persistir, recuperar e validar moneyItem.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-moneyItem-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-moneyItem-is_deleted: Persistir, recuperar e validar moneyItem.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-moneyItem-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-moneyItem-delete_reason: Persistir, recuperar e validar moneyItem.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-moneyItem-label","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-moneyItem-label: Persistir, recuperar e validar moneyItem.label segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-moneyItemCreate-label: Persistir, recuperar e validar moneyItemCreate.label segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-moneyItem-amount","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-moneyItem-amount: Persistir, recuperar e validar moneyItem.amount segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-moneyItemCreate-amount: Persistir, recuperar e validar moneyItemCreate.amount segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-moneyItem-currency","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-moneyItem-currency: Persistir, recuperar e validar moneyItem.currency segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-moneyItemCreate-currency: Persistir, recuperar e validar moneyItemCreate.currency segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-moneyItem-year","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-moneyItem-year: Persistir, recuperar e validar moneyItem.year segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-moneyItemCreate-year: Persistir, recuperar e validar moneyItemCreate.year segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-id: Persistir, recuperar e validar evidence.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-id: Persistir, recuperar e validar evidenceResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-version: Persistir, recuperar e validar evidence.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-version: Persistir, recuperar e validar evidenceResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-is_deleted: Persistir, recuperar e validar evidence.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-is_deleted: Persistir, recuperar e validar evidenceResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-delete_reason: Persistir, recuperar e validar evidence.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-delete_reason: Persistir, recuperar e validar evidenceResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-title","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-title: Persistir, recuperar e validar evidence.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceCreate-title: Persistir, recuperar e validar evidenceCreate.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidencePatch-title: Persistir, recuperar e validar evidencePatch.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-title: Persistir, recuperar e validar evidenceResponse.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-evidence_type","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-evidence_type: Persistir, recuperar e validar evidence.evidence_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceCreate-evidence_type: Persistir, recuperar e validar evidenceCreate.evidence_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidencePatch-evidence_type: Persistir, recuperar e validar evidencePatch.evidence_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-evidence_type: Persistir, recuperar e validar evidenceResponse.evidence_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-document_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-document_id: Persistir, recuperar e validar evidence.document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceCreate-document_id: Persistir, recuperar e validar evidenceCreate.document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidencePatch-document_id: Persistir, recuperar e validar evidencePatch.document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-document_id: Persistir, recuperar e validar evidenceResponse.document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-description","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-description: Persistir, recuperar e validar evidence.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceCreate-description: Persistir, recuperar e validar evidenceCreate.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidencePatch-description: Persistir, recuperar e validar evidencePatch.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-description: Persistir, recuperar e validar evidenceResponse.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-verified","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-verified: Persistir, recuperar e validar evidence.verified segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceCreate-verified: Persistir, recuperar e validar evidenceCreate.verified segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidencePatch-verified: Persistir, recuperar e validar evidencePatch.verified segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-verified: Persistir, recuperar e validar evidenceResponse.verified segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-deleted_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-deleted_at: Persistir, recuperar e validar evidence.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-deleted_at: Persistir, recuperar e validar evidenceResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-deleted_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-deleted_by: Persistir, recuperar e validar evidence.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-deleted_by: Persistir, recuperar e validar evidenceResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-created_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-created_by: Persistir, recuperar e validar evidence.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-created_by: Persistir, recuperar e validar evidenceResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-created_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-created_at: Persistir, recuperar e validar evidence.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-created_at: Persistir, recuperar e validar evidenceResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-updated_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-updated_by: Persistir, recuperar e validar evidence.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-updated_by: Persistir, recuperar e validar evidenceResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-evidence-updated_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-evidence-updated_at: Persistir, recuperar e validar evidence.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-evidenceResponse-updated_at: Persistir, recuperar e validar evidenceResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-id","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-id: Persistir, recuperar e validar document.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-id: Persistir, recuperar e validar documentResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-version","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-version: Persistir, recuperar e validar document.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-version: Persistir, recuperar e validar documentResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-is_deleted","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-is_deleted: Persistir, recuperar e validar document.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-is_deleted: Persistir, recuperar e validar documentResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-delete_reason","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-delete_reason: Persistir, recuperar e validar document.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-delete_reason: Persistir, recuperar e validar documentResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-title","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-title: Persistir, recuperar e validar document.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentCreate-title: Persistir, recuperar e validar documentCreate.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentPatch-title: Persistir, recuperar e validar documentPatch.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-title: Persistir, recuperar e validar documentResponse.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-mime_type","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-mime_type: Persistir, recuperar e validar document.mime_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentCreate-mime_type: Persistir, recuperar e validar documentCreate.mime_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentPatch-mime_type: Persistir, recuperar e validar documentPatch.mime_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-mime_type: Persistir, recuperar e validar documentResponse.mime_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-url","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-url: Persistir, recuperar e validar document.url segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentCreate-url: Persistir, recuperar e validar documentCreate.url segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentPatch-url: Persistir, recuperar e validar documentPatch.url segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-url: Persistir, recuperar e validar documentResponse.url segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-confidential","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-confidential: Persistir, recuperar e validar document.confidential segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentCreate-confidential: Persistir, recuperar e validar documentCreate.confidential segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentPatch-confidential: Persistir, recuperar e validar documentPatch.confidential segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-confidential: Persistir, recuperar e validar documentResponse.confidential segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-deleted_at","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-deleted_at: Persistir, recuperar e validar document.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-deleted_at: Persistir, recuperar e validar documentResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-deleted_by","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-deleted_by: Persistir, recuperar e validar document.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-deleted_by: Persistir, recuperar e validar documentResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-created_by","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-created_by: Persistir, recuperar e validar document.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-created_by: Persistir, recuperar e validar documentResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-created_at","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-created_at: Persistir, recuperar e validar document.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-created_at: Persistir, recuperar e validar documentResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-updated_by","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-updated_by: Persistir, recuperar e validar document.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-updated_by: Persistir, recuperar e validar documentResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-updated_at","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-updated_at: Persistir, recuperar e validar document.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-updated_at: Persistir, recuperar e validar documentResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-category","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-category: Persistir, recuperar e validar document.category segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentCreate-category: Persistir, recuperar e validar documentCreate.category segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentPatch-category: Persistir, recuperar e validar documentPatch.category segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-category: Persistir, recuperar e validar documentResponse.category segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-document-original_name","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-document-original_name: Persistir, recuperar e validar document.original_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentCreate-original_name: Persistir, recuperar e validar documentCreate.original_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentPatch-original_name: Persistir, recuperar e validar documentPatch.original_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-documentResponse-original_name: Persistir, recuperar e validar documentResponse.original_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-id","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-id: Persistir, recuperar e validar image.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-id: Persistir, recuperar e validar imageResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-version","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-version: Persistir, recuperar e validar image.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-version: Persistir, recuperar e validar imageResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-is_deleted","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-is_deleted: Persistir, recuperar e validar image.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-is_deleted: Persistir, recuperar e validar imageResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-delete_reason","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-delete_reason: Persistir, recuperar e validar image.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-delete_reason: Persistir, recuperar e validar imageResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-title","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-title: Persistir, recuperar e validar image.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageCreate-title: Persistir, recuperar e validar imageCreate.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imagePatch-title: Persistir, recuperar e validar imagePatch.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-title: Persistir, recuperar e validar imageResponse.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-url","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-url: Persistir, recuperar e validar image.url segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageCreate-url: Persistir, recuperar e validar imageCreate.url segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imagePatch-url: Persistir, recuperar e validar imagePatch.url segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-url: Persistir, recuperar e validar imageResponse.url segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-alt_text","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-alt_text: Persistir, recuperar e validar image.alt_text segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageCreate-alt_text: Persistir, recuperar e validar imageCreate.alt_text segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imagePatch-alt_text: Persistir, recuperar e validar imagePatch.alt_text segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-alt_text: Persistir, recuperar e validar imageResponse.alt_text segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-is_cover","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-is_cover: Persistir, recuperar e validar image.is_cover segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageCreate-is_cover: Persistir, recuperar e validar imageCreate.is_cover segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imagePatch-is_cover: Persistir, recuperar e validar imagePatch.is_cover segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-is_cover: Persistir, recuperar e validar imageResponse.is_cover segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-sort_order","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-sort_order: Persistir, recuperar e validar image.sort_order segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageCreate-sort_order: Persistir, recuperar e validar imageCreate.sort_order segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imagePatch-sort_order: Persistir, recuperar e validar imagePatch.sort_order segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-sort_order: Persistir, recuperar e validar imageResponse.sort_order segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-deleted_at","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-deleted_at: Persistir, recuperar e validar image.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-deleted_at: Persistir, recuperar e validar imageResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-deleted_by","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-deleted_by: Persistir, recuperar e validar image.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-deleted_by: Persistir, recuperar e validar imageResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-created_by","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-created_by: Persistir, recuperar e validar image.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-created_by: Persistir, recuperar e validar imageResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-created_at","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-created_at: Persistir, recuperar e validar image.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-created_at: Persistir, recuperar e validar imageResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-updated_by","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-updated_by: Persistir, recuperar e validar image.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-updated_by: Persistir, recuperar e validar imageResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-image-updated_at","parcial","Coleções de recursos privadas preparadas em QA; esquema ativo ausente. Correspondência integral deste campo com o contrato ainda não demonstrada.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Plano autenticado de recursos; scan por binário e GD para derivadas, sem bloquear metadados.","OP-FIELD-image-updated_at: Persistir, recuperar e validar image.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-imageResponse-updated_at: Persistir, recuperar e validar imageResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-id: Persistir, recuperar e validar realEstate.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-id: Persistir, recuperar e validar realEstateResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-version","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-version: Persistir, recuperar e validar realEstate.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-version: Persistir, recuperar e validar realEstateResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-is_deleted","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-is_deleted: Persistir, recuperar e validar realEstate.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-is_deleted: Persistir, recuperar e validar realEstateResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-deleted_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-deleted_at: Persistir, recuperar e validar realEstate.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-deleted_at: Persistir, recuperar e validar realEstateResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-deleted_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-deleted_by: Persistir, recuperar e validar realEstate.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-deleted_by: Persistir, recuperar e validar realEstateResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-delete_reason","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-delete_reason: Persistir, recuperar e validar realEstate.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-delete_reason: Persistir, recuperar e validar realEstateResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-created_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-created_by: Persistir, recuperar e validar realEstate.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-created_by: Persistir, recuperar e validar realEstateResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-created_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-created_at: Persistir, recuperar e validar realEstate.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-created_at: Persistir, recuperar e validar realEstateResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-updated_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-updated_by: Persistir, recuperar e validar realEstate.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-updated_by: Persistir, recuperar e validar realEstateResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-updated_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-updated_at: Persistir, recuperar e validar realEstate.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-updated_at: Persistir, recuperar e validar realEstateResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-transaction_type","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-transaction_type: Persistir, recuperar e validar realEstate.transaction_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-transaction_type: Persistir, recuperar e validar realEstateCreate.transaction_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-transaction_type: Persistir, recuperar e validar realEstatePatch.transaction_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-transaction_type: Persistir, recuperar e validar realEstateResponse.transaction_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-property_type","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-property_type: Persistir, recuperar e validar realEstate.property_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-property_type: Persistir, recuperar e validar realEstateCreate.property_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-property_type: Persistir, recuperar e validar realEstatePatch.property_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-property_type: Persistir, recuperar e validar realEstateResponse.property_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-construction_status","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-construction_status: Persistir, recuperar e validar realEstate.construction_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-construction_status: Persistir, recuperar e validar realEstateCreate.construction_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-construction_status: Persistir, recuperar e validar realEstatePatch.construction_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-construction_status: Persistir, recuperar e validar realEstateResponse.construction_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-property_condition","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-property_condition: Persistir, recuperar e validar realEstate.property_condition segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-property_condition: Persistir, recuperar e validar realEstateCreate.property_condition segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-property_condition: Persistir, recuperar e validar realEstatePatch.property_condition segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-property_condition: Persistir, recuperar e validar realEstateResponse.property_condition segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-land_area","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-land_area: Persistir, recuperar e validar realEstate.land_area segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-land_area: Persistir, recuperar e validar realEstateCreate.land_area segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-land_area: Persistir, recuperar e validar realEstatePatch.land_area segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-land_area: Persistir, recuperar e validar realEstateResponse.land_area segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-built_area","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-built_area: Persistir, recuperar e validar realEstate.built_area segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-built_area: Persistir, recuperar e validar realEstateCreate.built_area segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-built_area: Persistir, recuperar e validar realEstatePatch.built_area segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-built_area: Persistir, recuperar e validar realEstateResponse.built_area segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-area_unit","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-area_unit: Persistir, recuperar e validar realEstate.area_unit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-area_unit: Persistir, recuperar e validar realEstateCreate.area_unit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-area_unit: Persistir, recuperar e validar realEstatePatch.area_unit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-area_unit: Persistir, recuperar e validar realEstateResponse.area_unit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-units","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-units: Persistir, recuperar e validar realEstate.units segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-units: Persistir, recuperar e validar realEstateCreate.units segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-units: Persistir, recuperar e validar realEstatePatch.units segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-units: Persistir, recuperar e validar realEstateResponse.units segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-rooms","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-rooms: Persistir, recuperar e validar realEstate.rooms segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-rooms: Persistir, recuperar e validar realEstateCreate.rooms segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-rooms: Persistir, recuperar e validar realEstatePatch.rooms segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-rooms: Persistir, recuperar e validar realEstateResponse.rooms segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-floors","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-floors: Persistir, recuperar e validar realEstate.floors segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-floors: Persistir, recuperar e validar realEstateCreate.floors segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-floors: Persistir, recuperar e validar realEstatePatch.floors segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-floors: Persistir, recuperar e validar realEstateResponse.floors segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-amenities","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-amenities: Persistir, recuperar e validar realEstate.amenities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-amenities: Persistir, recuperar e validar realEstateCreate.amenities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-amenities: Persistir, recuperar e validar realEstatePatch.amenities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-amenities: Persistir, recuperar e validar realEstateResponse.amenities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-utilities","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-utilities: Persistir, recuperar e validar realEstate.utilities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-utilities: Persistir, recuperar e validar realEstateCreate.utilities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-utilities: Persistir, recuperar e validar realEstatePatch.utilities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-utilities: Persistir, recuperar e validar realEstateResponse.utilities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-occupancy_status","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-occupancy_status: Persistir, recuperar e validar realEstate.occupancy_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-occupancy_status: Persistir, recuperar e validar realEstateCreate.occupancy_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-occupancy_status: Persistir, recuperar e validar realEstatePatch.occupancy_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-occupancy_status: Persistir, recuperar e validar realEstateResponse.occupancy_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-title_type","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-title_type: Persistir, recuperar e validar realEstate.title_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-title_type: Persistir, recuperar e validar realEstateCreate.title_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-title_type: Persistir, recuperar e validar realEstatePatch.title_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-title_type: Persistir, recuperar e validar realEstateResponse.title_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-registration_number","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-registration_number: Persistir, recuperar e validar realEstate.registration_number segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-registration_number: Persistir, recuperar e validar realEstateCreate.registration_number segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-registration_number: Persistir, recuperar e validar realEstatePatch.registration_number segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-registration_number: Persistir, recuperar e validar realEstateResponse.registration_number segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-encumbrances","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-encumbrances: Persistir, recuperar e validar realEstate.encumbrances segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-encumbrances: Persistir, recuperar e validar realEstateCreate.encumbrances segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-encumbrances: Persistir, recuperar e validar realEstatePatch.encumbrances segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-encumbrances: Persistir, recuperar e validar realEstateResponse.encumbrances segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-price","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-price: Persistir, recuperar e validar realEstate.price segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-price: Persistir, recuperar e validar realEstateCreate.price segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-price: Persistir, recuperar e validar realEstatePatch.price segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-price: Persistir, recuperar e validar realEstateResponse.price segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-rent","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-rent: Persistir, recuperar e validar realEstate.rent segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-rent: Persistir, recuperar e validar realEstateCreate.rent segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-rent: Persistir, recuperar e validar realEstatePatch.rent segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-rent: Persistir, recuperar e validar realEstateResponse.rent segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-rent_periodicity","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-rent_periodicity: Persistir, recuperar e validar realEstate.rent_periodicity segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-rent_periodicity: Persistir, recuperar e validar realEstateCreate.rent_periodicity segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-rent_periodicity: Persistir, recuperar e validar realEstatePatch.rent_periodicity segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-rent_periodicity: Persistir, recuperar e validar realEstateResponse.rent_periodicity segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-deposit","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-deposit: Persistir, recuperar e validar realEstate.deposit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-deposit: Persistir, recuperar e validar realEstateCreate.deposit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-deposit: Persistir, recuperar e validar realEstatePatch.deposit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-deposit: Persistir, recuperar e validar realEstateResponse.deposit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-valuation","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-valuation: Persistir, recuperar e validar realEstate.valuation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-valuation: Persistir, recuperar e validar realEstateCreate.valuation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-valuation: Persistir, recuperar e validar realEstatePatch.valuation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-valuation: Persistir, recuperar e validar realEstateResponse.valuation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-viewing","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-viewing: Persistir, recuperar e validar realEstate.viewing segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-viewing: Persistir, recuperar e validar realEstateCreate.viewing segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-viewing: Persistir, recuperar e validar realEstatePatch.viewing segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-viewing: Persistir, recuperar e validar realEstateResponse.viewing segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-planning_permit_document_id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-planning_permit_document_id: Persistir, recuperar e validar realEstate.planning_permit_document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-planning_permit_document_id: Persistir, recuperar e validar realEstateCreate.planning_permit_document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-planning_permit_document_id: Persistir, recuperar e validar realEstatePatch.planning_permit_document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-planning_permit_document_id: Persistir, recuperar e validar realEstateResponse.planning_permit_document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-realEstate-use_license_document_id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-realEstate-use_license_document_id: Persistir, recuperar e validar realEstate.use_license_document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateCreate-use_license_document_id: Persistir, recuperar e validar realEstateCreate.use_license_document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstatePatch-use_license_document_id: Persistir, recuperar e validar realEstatePatch.use_license_document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-realEstateResponse-use_license_document_id: Persistir, recuperar e validar realEstateResponse.use_license_document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-id: Persistir, recuperar e validar landRights.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-id: Persistir, recuperar e validar landRightsResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-version","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-version: Persistir, recuperar e validar landRights.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-version: Persistir, recuperar e validar landRightsResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-is_deleted","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-is_deleted: Persistir, recuperar e validar landRights.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-is_deleted: Persistir, recuperar e validar landRightsResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-deleted_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-deleted_at: Persistir, recuperar e validar landRights.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-deleted_at: Persistir, recuperar e validar landRightsResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-deleted_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-deleted_by: Persistir, recuperar e validar landRights.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-deleted_by: Persistir, recuperar e validar landRightsResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-delete_reason","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-delete_reason: Persistir, recuperar e validar landRights.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-delete_reason: Persistir, recuperar e validar landRightsResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-created_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-created_by: Persistir, recuperar e validar landRights.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-created_by: Persistir, recuperar e validar landRightsResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-created_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-created_at: Persistir, recuperar e validar landRights.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-created_at: Persistir, recuperar e validar landRightsResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-updated_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-updated_by: Persistir, recuperar e validar landRights.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-updated_by: Persistir, recuperar e validar landRightsResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-updated_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-updated_at: Persistir, recuperar e validar landRights.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-updated_at: Persistir, recuperar e validar landRightsResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-operation_type","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-operation_type: Persistir, recuperar e validar landRights.operation_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-operation_type: Persistir, recuperar e validar landRightsCreate.operation_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-operation_type: Persistir, recuperar e validar landRightsPatch.operation_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-operation_type: Persistir, recuperar e validar landRightsResponse.operation_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-duat_status","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-duat_status: Persistir, recuperar e validar landRights.duat_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-duat_status: Persistir, recuperar e validar landRightsCreate.duat_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-duat_status: Persistir, recuperar e validar landRightsPatch.duat_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-duat_status: Persistir, recuperar e validar landRightsResponse.duat_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-duat_number","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","app/Services/OpportunityManagement.php; app/Services/OpportunityResources.php; resources/js/pages/management/opportunity-draft.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-duat_number: Persistir, recuperar e validar landRights.duat_number segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-duat_number: Persistir, recuperar e validar landRightsCreate.duat_number segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-duat_number: Persistir, recuperar e validar landRightsPatch.duat_number segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-duat_number: Persistir, recuperar e validar landRightsResponse.duat_number segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-holder_id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-holder_id: Persistir, recuperar e validar landRights.holder_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-holder_id: Persistir, recuperar e validar landRightsCreate.holder_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-holder_id: Persistir, recuperar e validar landRightsPatch.holder_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-holder_id: Persistir, recuperar e validar landRightsResponse.holder_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-holder_name","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-holder_name: Persistir, recuperar e validar landRights.holder_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-holder_name: Persistir, recuperar e validar landRightsCreate.holder_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-holder_name: Persistir, recuperar e validar landRightsPatch.holder_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-holder_name: Persistir, recuperar e validar landRightsResponse.holder_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-issuing_authority_id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-issuing_authority_id: Persistir, recuperar e validar landRights.issuing_authority_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-issuing_authority_id: Persistir, recuperar e validar landRightsCreate.issuing_authority_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-issuing_authority_id: Persistir, recuperar e validar landRightsPatch.issuing_authority_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-issuing_authority_id: Persistir, recuperar e validar landRightsResponse.issuing_authority_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-issue_date","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-issue_date: Persistir, recuperar e validar landRights.issue_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-issue_date: Persistir, recuperar e validar landRightsCreate.issue_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-issue_date: Persistir, recuperar e validar landRightsPatch.issue_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-issue_date: Persistir, recuperar e validar landRightsResponse.issue_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-expiry_date","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-expiry_date: Persistir, recuperar e validar landRights.expiry_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-expiry_date: Persistir, recuperar e validar landRightsCreate.expiry_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-expiry_date: Persistir, recuperar e validar landRightsPatch.expiry_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-expiry_date: Persistir, recuperar e validar landRightsResponse.expiry_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-authorized_purpose","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-authorized_purpose: Persistir, recuperar e validar landRights.authorized_purpose segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-authorized_purpose: Persistir, recuperar e validar landRightsCreate.authorized_purpose segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-authorized_purpose: Persistir, recuperar e validar landRightsPatch.authorized_purpose segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-authorized_purpose: Persistir, recuperar e validar landRightsResponse.authorized_purpose segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-exploitation_plan_document_id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-exploitation_plan_document_id: Persistir, recuperar e validar landRights.exploitation_plan_document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-exploitation_plan_document_id: Persistir, recuperar e validar landRightsCreate.exploitation_plan_document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-exploitation_plan_document_id: Persistir, recuperar e validar landRightsPatch.exploitation_plan_document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-exploitation_plan_document_id: Persistir, recuperar e validar landRightsResponse.exploitation_plan_document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-parcels","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-parcels: Persistir, recuperar e validar landRights.parcels segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-parcels: Persistir, recuperar e validar landRightsCreate.parcels segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-parcels: Persistir, recuperar e validar landRightsPatch.parcels segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-parcels: Persistir, recuperar e validar landRightsResponse.parcels segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-improvements","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-improvements: Persistir, recuperar e validar landRights.improvements segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-improvements: Persistir, recuperar e validar landRightsCreate.improvements segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-improvements: Persistir, recuperar e validar landRightsPatch.improvements segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-improvements: Persistir, recuperar e validar landRightsResponse.improvements segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-communities","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-communities: Persistir, recuperar e validar landRights.communities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-communities: Persistir, recuperar e validar landRightsCreate.communities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-communities: Persistir, recuperar e validar landRightsPatch.communities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-communities: Persistir, recuperar e validar landRightsResponse.communities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-community_consultation","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-community_consultation: Persistir, recuperar e validar landRights.community_consultation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-community_consultation: Persistir, recuperar e validar landRightsCreate.community_consultation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-community_consultation: Persistir, recuperar e validar landRightsPatch.community_consultation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-community_consultation: Persistir, recuperar e validar landRightsResponse.community_consultation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-overlaps_conflicts","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-overlaps_conflicts: Persistir, recuperar e validar landRights.overlaps_conflicts segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-overlaps_conflicts: Persistir, recuperar e validar landRightsCreate.overlaps_conflicts segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-overlaps_conflicts: Persistir, recuperar e validar landRightsPatch.overlaps_conflicts segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-overlaps_conflicts: Persistir, recuperar e validar landRightsResponse.overlaps_conflicts segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-required_authorizations","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-required_authorizations: Persistir, recuperar e validar landRights.required_authorizations segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-required_authorizations: Persistir, recuperar e validar landRightsCreate.required_authorizations segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-required_authorizations: Persistir, recuperar e validar landRightsPatch.required_authorizations segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-required_authorizations: Persistir, recuperar e validar landRightsResponse.required_authorizations segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-landRights-consideration","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-landRights-consideration: Persistir, recuperar e validar landRights.consideration segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsCreate-consideration: Persistir, recuperar e validar landRightsCreate.consideration segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsPatch-consideration: Persistir, recuperar e validar landRightsPatch.consideration segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-landRightsResponse-consideration: Persistir, recuperar e validar landRightsResponse.consideration segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-id: Persistir, recuperar e validar businessTransaction.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-id: Persistir, recuperar e validar businessTransactionResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-version","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-version: Persistir, recuperar e validar businessTransaction.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-version: Persistir, recuperar e validar businessTransactionResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-is_deleted","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-is_deleted: Persistir, recuperar e validar businessTransaction.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-is_deleted: Persistir, recuperar e validar businessTransactionResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-deleted_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-deleted_at: Persistir, recuperar e validar businessTransaction.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-deleted_at: Persistir, recuperar e validar businessTransactionResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-deleted_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-deleted_by: Persistir, recuperar e validar businessTransaction.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-deleted_by: Persistir, recuperar e validar businessTransactionResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-delete_reason","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-delete_reason: Persistir, recuperar e validar businessTransaction.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-delete_reason: Persistir, recuperar e validar businessTransactionResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-created_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-created_by: Persistir, recuperar e validar businessTransaction.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-created_by: Persistir, recuperar e validar businessTransactionResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-created_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-created_at: Persistir, recuperar e validar businessTransaction.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-created_at: Persistir, recuperar e validar businessTransactionResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-updated_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-updated_by: Persistir, recuperar e validar businessTransaction.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-updated_by: Persistir, recuperar e validar businessTransactionResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-updated_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-updated_at: Persistir, recuperar e validar businessTransaction.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-updated_at: Persistir, recuperar e validar businessTransactionResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-transaction_type","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-transaction_type: Persistir, recuperar e validar businessTransaction.transaction_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-transaction_type: Persistir, recuperar e validar businessTransactionCreate.transaction_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-transaction_type: Persistir, recuperar e validar businessTransactionPatch.transaction_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-transaction_type: Persistir, recuperar e validar businessTransactionResponse.transaction_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-legal_entity_id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-legal_entity_id: Persistir, recuperar e validar businessTransaction.legal_entity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-legal_entity_id: Persistir, recuperar e validar businessTransactionCreate.legal_entity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-legal_entity_id: Persistir, recuperar e validar businessTransactionPatch.legal_entity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-legal_entity_id: Persistir, recuperar e validar businessTransactionResponse.legal_entity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-legal_form","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-legal_form: Persistir, recuperar e validar businessTransaction.legal_form segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-legal_form: Persistir, recuperar e validar businessTransactionCreate.legal_form segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-legal_form: Persistir, recuperar e validar businessTransactionPatch.legal_form segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-legal_form: Persistir, recuperar e validar businessTransactionResponse.legal_form segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-percentage_offered","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-percentage_offered: Persistir, recuperar e validar businessTransaction.percentage_offered segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-percentage_offered: Persistir, recuperar e validar businessTransactionCreate.percentage_offered segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-percentage_offered: Persistir, recuperar e validar businessTransactionPatch.percentage_offered segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-percentage_offered: Persistir, recuperar e validar businessTransactionResponse.percentage_offered segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-asking_price","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-asking_price: Persistir, recuperar e validar businessTransaction.asking_price segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-asking_price: Persistir, recuperar e validar businessTransactionCreate.asking_price segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-asking_price: Persistir, recuperar e validar businessTransactionPatch.asking_price segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-asking_price: Persistir, recuperar e validar businessTransactionResponse.asking_price segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-valuation","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-valuation: Persistir, recuperar e validar businessTransaction.valuation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-valuation: Persistir, recuperar e validar businessTransactionCreate.valuation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-valuation: Persistir, recuperar e validar businessTransactionPatch.valuation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-valuation: Persistir, recuperar e validar businessTransactionResponse.valuation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-financial_periods","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-financial_periods: Persistir, recuperar e validar businessTransaction.financial_periods segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-financial_periods: Persistir, recuperar e validar businessTransactionCreate.financial_periods segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-financial_periods: Persistir, recuperar e validar businessTransactionPatch.financial_periods segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-financial_periods: Persistir, recuperar e validar businessTransactionResponse.financial_periods segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-assets_liabilities","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-assets_liabilities: Persistir, recuperar e validar businessTransaction.assets_liabilities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-assets_liabilities: Persistir, recuperar e validar businessTransactionCreate.assets_liabilities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-assets_liabilities: Persistir, recuperar e validar businessTransactionPatch.assets_liabilities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-assets_liabilities: Persistir, recuperar e validar businessTransactionResponse.assets_liabilities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-employees","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-employees: Persistir, recuperar e validar businessTransaction.employees segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-employees: Persistir, recuperar e validar businessTransactionCreate.employees segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-employees: Persistir, recuperar e validar businessTransactionPatch.employees segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-employees: Persistir, recuperar e validar businessTransactionResponse.employees segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-contracts_licenses","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-contracts_licenses: Persistir, recuperar e validar businessTransaction.contracts_licenses segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-contracts_licenses: Persistir, recuperar e validar businessTransactionCreate.contracts_licenses segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-contracts_licenses: Persistir, recuperar e validar businessTransactionPatch.contracts_licenses segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-contracts_licenses: Persistir, recuperar e validar businessTransactionResponse.contracts_licenses segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-litigation_contingencies","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-litigation_contingencies: Persistir, recuperar e validar businessTransaction.litigation_contingencies segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-litigation_contingencies: Persistir, recuperar e validar businessTransactionCreate.litigation_contingencies segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-litigation_contingencies: Persistir, recuperar e validar businessTransactionPatch.litigation_contingencies segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-litigation_contingencies: Persistir, recuperar e validar businessTransactionResponse.litigation_contingencies segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-reason_for_transaction","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-reason_for_transaction: Persistir, recuperar e validar businessTransaction.reason_for_transaction segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-reason_for_transaction: Persistir, recuperar e validar businessTransactionCreate.reason_for_transaction segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-reason_for_transaction: Persistir, recuperar e validar businessTransactionPatch.reason_for_transaction segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-reason_for_transaction: Persistir, recuperar e validar businessTransactionResponse.reason_for_transaction segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-partner_contribution","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","app/Services/SimulationTaxParameterResolver.php; resources/js/components/simulation-form.tsx — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-partner_contribution: Persistir, recuperar e validar businessTransaction.partner_contribution segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-partner_contribution: Persistir, recuperar e validar businessTransactionCreate.partner_contribution segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-partner_contribution: Persistir, recuperar e validar businessTransactionPatch.partner_contribution segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-partner_contribution: Persistir, recuperar e validar businessTransactionResponse.partner_contribution segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-governance_rights","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-governance_rights: Persistir, recuperar e validar businessTransaction.governance_rights segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-governance_rights: Persistir, recuperar e validar businessTransactionCreate.governance_rights segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-governance_rights: Persistir, recuperar e validar businessTransactionPatch.governance_rights segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-governance_rights: Persistir, recuperar e validar businessTransactionResponse.governance_rights segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-franchise_terms","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-franchise_terms: Persistir, recuperar e validar businessTransaction.franchise_terms segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-franchise_terms: Persistir, recuperar e validar businessTransactionCreate.franchise_terms segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-franchise_terms: Persistir, recuperar e validar businessTransactionPatch.franchise_terms segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-franchise_terms: Persistir, recuperar e validar businessTransactionResponse.franchise_terms segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-confidentiality_level","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-confidentiality_level: Persistir, recuperar e validar businessTransaction.confidentiality_level segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-confidentiality_level: Persistir, recuperar e validar businessTransactionCreate.confidentiality_level segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-confidentiality_level: Persistir, recuperar e validar businessTransactionPatch.confidentiality_level segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-confidentiality_level: Persistir, recuperar e validar businessTransactionResponse.confidentiality_level segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-businessTransaction-due_diligence_status","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-businessTransaction-due_diligence_status: Persistir, recuperar e validar businessTransaction.due_diligence_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionCreate-due_diligence_status: Persistir, recuperar e validar businessTransactionCreate.due_diligence_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionPatch-due_diligence_status: Persistir, recuperar e validar businessTransactionPatch.due_diligence_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-businessTransactionResponse-due_diligence_status: Persistir, recuperar e validar businessTransactionResponse.due_diligence_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-id: Persistir, recuperar e validar parcel.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-id: Persistir, recuperar e validar parcelResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-opportunity_id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-opportunity_id: Persistir, recuperar e validar parcel.opportunity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-opportunity_id: Persistir, recuperar e validar parcelResponse.opportunity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-version","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-version: Persistir, recuperar e validar parcel.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-version: Persistir, recuperar e validar parcelResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-active","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-active: Persistir, recuperar e validar parcel.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-active: Persistir, recuperar e validar parcelResponse.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-is_deleted","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-is_deleted: Persistir, recuperar e validar parcel.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-is_deleted: Persistir, recuperar e validar parcelResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-deleted_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-deleted_at: Persistir, recuperar e validar parcel.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-deleted_at: Persistir, recuperar e validar parcelResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-deleted_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-deleted_by: Persistir, recuperar e validar parcel.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-deleted_by: Persistir, recuperar e validar parcelResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-delete_reason","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-delete_reason: Persistir, recuperar e validar parcel.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-delete_reason: Persistir, recuperar e validar parcelResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-created_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-created_by: Persistir, recuperar e validar parcel.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-created_by: Persistir, recuperar e validar parcelResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-created_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-created_at: Persistir, recuperar e validar parcel.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-created_at: Persistir, recuperar e validar parcelResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-updated_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-updated_by: Persistir, recuperar e validar parcel.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-updated_by: Persistir, recuperar e validar parcelResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-updated_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-updated_at: Persistir, recuperar e validar parcel.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-updated_at: Persistir, recuperar e validar parcelResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-cadastral_number","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-cadastral_number: Persistir, recuperar e validar parcel.cadastral_number segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelCreate-cadastral_number: Persistir, recuperar e validar parcelCreate.cadastral_number segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelPatch-cadastral_number: Persistir, recuperar e validar parcelPatch.cadastral_number segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-cadastral_number: Persistir, recuperar e validar parcelResponse.cadastral_number segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-location_id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-location_id: Persistir, recuperar e validar parcel.location_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelCreate-location_id: Persistir, recuperar e validar parcelCreate.location_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelPatch-location_id: Persistir, recuperar e validar parcelPatch.location_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-location_id: Persistir, recuperar e validar parcelResponse.location_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-area","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-area: Persistir, recuperar e validar parcel.area segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelCreate-area: Persistir, recuperar e validar parcelCreate.area segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelPatch-area: Persistir, recuperar e validar parcelPatch.area segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-area: Persistir, recuperar e validar parcelResponse.area segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-geometry","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-geometry: Persistir, recuperar e validar parcel.geometry segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelCreate-geometry: Persistir, recuperar e validar parcelCreate.geometry segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelPatch-geometry: Persistir, recuperar e validar parcelPatch.geometry segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-geometry: Persistir, recuperar e validar parcelResponse.geometry segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-parcel-overlap_status","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-parcel-overlap_status: Persistir, recuperar e validar parcel.overlap_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelCreate-overlap_status: Persistir, recuperar e validar parcelCreate.overlap_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelPatch-overlap_status: Persistir, recuperar e validar parcelPatch.overlap_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-parcelResponse-overlap_status: Persistir, recuperar e validar parcelResponse.overlap_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-id: Persistir, recuperar e validar improvement.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-id: Persistir, recuperar e validar improvementResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-opportunity_id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-opportunity_id: Persistir, recuperar e validar improvement.opportunity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-opportunity_id: Persistir, recuperar e validar improvementResponse.opportunity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-version","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-version: Persistir, recuperar e validar improvement.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-version: Persistir, recuperar e validar improvementResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-active","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-active: Persistir, recuperar e validar improvement.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-active: Persistir, recuperar e validar improvementResponse.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-is_deleted","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-is_deleted: Persistir, recuperar e validar improvement.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-is_deleted: Persistir, recuperar e validar improvementResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-deleted_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-deleted_at: Persistir, recuperar e validar improvement.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-deleted_at: Persistir, recuperar e validar improvementResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-deleted_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-deleted_by: Persistir, recuperar e validar improvement.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-deleted_by: Persistir, recuperar e validar improvementResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-delete_reason","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-delete_reason: Persistir, recuperar e validar improvement.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-delete_reason: Persistir, recuperar e validar improvementResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-created_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-created_by: Persistir, recuperar e validar improvement.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-created_by: Persistir, recuperar e validar improvementResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-created_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-created_at: Persistir, recuperar e validar improvement.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-created_at: Persistir, recuperar e validar improvementResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-updated_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-updated_by: Persistir, recuperar e validar improvement.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-updated_by: Persistir, recuperar e validar improvementResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-updated_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-updated_at: Persistir, recuperar e validar improvement.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-updated_at: Persistir, recuperar e validar improvementResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-improvement_type","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-improvement_type: Persistir, recuperar e validar improvement.improvement_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementCreate-improvement_type: Persistir, recuperar e validar improvementCreate.improvement_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementPatch-improvement_type: Persistir, recuperar e validar improvementPatch.improvement_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-improvement_type: Persistir, recuperar e validar improvementResponse.improvement_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-owner_name","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-owner_name: Persistir, recuperar e validar improvement.owner_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementCreate-owner_name: Persistir, recuperar e validar improvementCreate.owner_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementPatch-owner_name: Persistir, recuperar e validar improvementPatch.owner_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-owner_name: Persistir, recuperar e validar improvementResponse.owner_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-assessed_value","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-assessed_value: Persistir, recuperar e validar improvement.assessed_value segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementCreate-assessed_value: Persistir, recuperar e validar improvementCreate.assessed_value segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementPatch-assessed_value: Persistir, recuperar e validar improvementPatch.assessed_value segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-assessed_value: Persistir, recuperar e validar improvementResponse.assessed_value segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-currency","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-currency: Persistir, recuperar e validar improvement.currency segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementCreate-currency: Persistir, recuperar e validar improvementCreate.currency segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementPatch-currency: Persistir, recuperar e validar improvementPatch.currency segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-currency: Persistir, recuperar e validar improvementResponse.currency segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-valuation_date","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-valuation_date: Persistir, recuperar e validar improvement.valuation_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementCreate-valuation_date: Persistir, recuperar e validar improvementCreate.valuation_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementPatch-valuation_date: Persistir, recuperar e validar improvementPatch.valuation_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-valuation_date: Persistir, recuperar e validar improvementResponse.valuation_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-document_id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-document_id: Persistir, recuperar e validar improvement.document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementCreate-document_id: Persistir, recuperar e validar improvementCreate.document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementPatch-document_id: Persistir, recuperar e validar improvementPatch.document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-document_id: Persistir, recuperar e validar improvementResponse.document_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-improvement-image_id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-improvement-image_id: Persistir, recuperar e validar improvement.image_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementCreate-image_id: Persistir, recuperar e validar improvementCreate.image_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementPatch-image_id: Persistir, recuperar e validar improvementPatch.image_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-improvementResponse-image_id: Persistir, recuperar e validar improvementResponse.image_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-id: Persistir, recuperar e validar community.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-id: Persistir, recuperar e validar communityResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-opportunity_id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-opportunity_id: Persistir, recuperar e validar community.opportunity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-opportunity_id: Persistir, recuperar e validar communityResponse.opportunity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-version","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-version: Persistir, recuperar e validar community.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-version: Persistir, recuperar e validar communityResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-active","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-active: Persistir, recuperar e validar community.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-active: Persistir, recuperar e validar communityResponse.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-is_deleted","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-is_deleted: Persistir, recuperar e validar community.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-is_deleted: Persistir, recuperar e validar communityResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-deleted_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-deleted_at: Persistir, recuperar e validar community.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-deleted_at: Persistir, recuperar e validar communityResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-deleted_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-deleted_by: Persistir, recuperar e validar community.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-deleted_by: Persistir, recuperar e validar communityResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-delete_reason","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-delete_reason: Persistir, recuperar e validar community.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-delete_reason: Persistir, recuperar e validar communityResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-created_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-created_by: Persistir, recuperar e validar community.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-created_by: Persistir, recuperar e validar communityResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-created_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-created_at: Persistir, recuperar e validar community.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-created_at: Persistir, recuperar e validar communityResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-updated_by","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-updated_by: Persistir, recuperar e validar community.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-updated_by: Persistir, recuperar e validar communityResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-updated_at","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-updated_at: Persistir, recuperar e validar community.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-updated_at: Persistir, recuperar e validar communityResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-name","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-name: Persistir, recuperar e validar community.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityCreate-name: Persistir, recuperar e validar communityCreate.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityPatch-name: Persistir, recuperar e validar communityPatch.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-name: Persistir, recuperar e validar communityResponse.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-location_id","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-location_id: Persistir, recuperar e validar community.location_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityCreate-location_id: Persistir, recuperar e validar communityCreate.location_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityPatch-location_id: Persistir, recuperar e validar communityPatch.location_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-location_id: Persistir, recuperar e validar communityResponse.location_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-consultation_status","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-consultation_status: Persistir, recuperar e validar community.consultation_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityCreate-consultation_status: Persistir, recuperar e validar communityCreate.consultation_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityPatch-consultation_status: Persistir, recuperar e validar communityPatch.consultation_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-consultation_status: Persistir, recuperar e validar communityResponse.consultation_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-consultation_date","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-consultation_date: Persistir, recuperar e validar community.consultation_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityCreate-consultation_date: Persistir, recuperar e validar communityCreate.consultation_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityPatch-consultation_date: Persistir, recuperar e validar communityPatch.consultation_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-consultation_date: Persistir, recuperar e validar communityResponse.consultation_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-representative_name","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-representative_name: Persistir, recuperar e validar community.representative_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityCreate-representative_name: Persistir, recuperar e validar communityCreate.representative_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityPatch-representative_name: Persistir, recuperar e validar communityPatch.representative_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-representative_name: Persistir, recuperar e validar communityResponse.representative_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-community-notes","não implementado","Contrato especializado no cadastro integrado de oportunidades ainda não implementado; módulos de negócios/fundiário existentes não preenchem automaticamente este contrato.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","Reconciliar objetos e direitos canónicos existentes com o contrato; dados ausentes permanecem pendentes.","OP-FIELD-community-notes: Persistir, recuperar e validar community.notes segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityCreate-notes: Persistir, recuperar e validar communityCreate.notes segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityPatch-notes: Persistir, recuperar e validar communityPatch.notes segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-communityResponse-notes: Persistir, recuperar e validar communityResponse.notes segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-mutationContext-operation","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-mutationContext-operation: Persistir, recuperar e validar mutationContext.operation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-mutationContext-actor_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-mutationContext-actor_id: Persistir, recuperar e validar mutationContext.actor_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-mutationContext-reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-mutationContext-reason: Persistir, recuperar e validar mutationContext.reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-mutationContext-if_match","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-mutationContext-if_match: Persistir, recuperar e validar mutationContext.if_match segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-mutationContext-requested_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-mutationContext-requested_at: Persistir, recuperar e validar mutationContext.requested_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-apiEnvelope-data","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-apiEnvelope-data: Persistir, recuperar e validar apiEnvelope.data segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-apiEnvelope-meta","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-apiEnvelope-meta: Persistir, recuperar e validar apiEnvelope.meta segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-paged-data","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-pagedResponse-data: Persistir, recuperar e validar pagedResponse.data segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-paged-page","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-pagedResponse-page: Persistir, recuperar e validar pagedResponse.page segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-paged-page_size","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-pagedResponse-page_size: Persistir, recuperar e validar pagedResponse.page_size segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-paged-total","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-pagedResponse-total: Persistir, recuperar e validar pagedResponse.total segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-error-error","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-errorResponse-error: Persistir, recuperar e validar errorResponse.error segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-error-request_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-errorResponse-request_id: Persistir, recuperar e validar errorResponse.request_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-createRequest-mutation_context","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-createRequest-mutation_context: Persistir, recuperar e validar createRequest.mutation_context segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-createRequest-item","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-createRequest-item: Persistir, recuperar e validar createRequest.item segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-updateRequest-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-updateRequest-id: Persistir, recuperar e validar updateRequest.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-updateRequest-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-updateRequest-version: Persistir, recuperar e validar updateRequest.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-updateRequest-mutation_context","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-updateRequest-mutation_context: Persistir, recuperar e validar updateRequest.mutation_context segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-updateRequest-changes","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-updateRequest-changes: Persistir, recuperar e validar updateRequest.changes segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-deleteRequest-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-deleteRequest-id: Persistir, recuperar e validar deleteRequest.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-deleteRequest-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-deleteRequest-version: Persistir, recuperar e validar deleteRequest.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-deleteRequest-mutation_context","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-deleteRequest-mutation_context: Persistir, recuperar e validar deleteRequest.mutation_context segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-restoreRequest-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-restoreRequest-id: Persistir, recuperar e validar restoreRequest.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-restoreRequest-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-restoreRequest-version: Persistir, recuperar e validar restoreRequest.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-restoreRequest-mutation_context","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-restoreRequest-mutation_context: Persistir, recuperar e validar restoreRequest.mutation_context segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-input-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-input-id: Persistir, recuperar e validar input.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-input-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-input-version: Persistir, recuperar e validar input.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-input-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-input-is_deleted: Persistir, recuperar e validar input.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-input-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-input-delete_reason: Persistir, recuperar e validar input.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-input-name","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-input-name: Persistir, recuperar e validar input.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-inputCreate-name: Persistir, recuperar e validar inputCreate.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-input-input_type","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-input-input_type: Persistir, recuperar e validar input.input_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-inputCreate-input_type: Persistir, recuperar e validar inputCreate.input_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-input-quantity","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-input-quantity: Persistir, recuperar e validar input.quantity segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-inputCreate-quantity: Persistir, recuperar e validar inputCreate.quantity segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-input-unit","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-input-unit: Persistir, recuperar e validar input.unit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-inputCreate-unit: Persistir, recuperar e validar inputCreate.unit segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-input-source_country","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-input-source_country: Persistir, recuperar e validar input.source_country segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-inputCreate-source_country: Persistir, recuperar e validar inputCreate.source_country segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-market-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-market-id: Persistir, recuperar e validar market.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-market-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-market-version: Persistir, recuperar e validar market.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-market-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-market-is_deleted: Persistir, recuperar e validar market.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-market-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-market-delete_reason: Persistir, recuperar e validar market.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-market-name","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-market-name: Persistir, recuperar e validar market.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-marketCreate-name: Persistir, recuperar e validar marketCreate.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-market-market_type","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-market-market_type: Persistir, recuperar e validar market.market_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-marketCreate-market_type: Persistir, recuperar e validar marketCreate.market_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-market-country_code","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-market-country_code: Persistir, recuperar e validar market.country_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-marketCreate-country_code: Persistir, recuperar e validar marketCreate.country_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-market-share_percentage","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-market-share_percentage: Persistir, recuperar e validar market.share_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-marketCreate-share_percentage: Persistir, recuperar e validar marketCreate.share_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-milestone-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-milestone-id: Persistir, recuperar e validar milestone.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-milestone-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-milestone-version: Persistir, recuperar e validar milestone.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-milestone-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-milestone-is_deleted: Persistir, recuperar e validar milestone.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-milestone-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-milestone-delete_reason: Persistir, recuperar e validar milestone.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-milestone-title","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-milestone-title: Persistir, recuperar e validar milestone.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-milestoneCreate-title: Persistir, recuperar e validar milestoneCreate.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-milestone-due_date","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-milestone-due_date: Persistir, recuperar e validar milestone.due_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-milestoneCreate-due_date: Persistir, recuperar e validar milestoneCreate.due_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-milestone-status","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-milestone-status: Persistir, recuperar e validar milestone.status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-milestoneCreate-status: Persistir, recuperar e validar milestoneCreate.status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-milestone-completion_percentage","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-milestone-completion_percentage: Persistir, recuperar e validar milestone.completion_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-milestoneCreate-completion_percentage: Persistir, recuperar e validar milestoneCreate.completion_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-license-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-license-id: Persistir, recuperar e validar license.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-license-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-license-version: Persistir, recuperar e validar license.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-license-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-license-is_deleted: Persistir, recuperar e validar license.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-license-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-license-delete_reason: Persistir, recuperar e validar license.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-license-name","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-license-name: Persistir, recuperar e validar license.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-licenseCreate-name: Persistir, recuperar e validar licenseCreate.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-license-authority","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-license-authority: Persistir, recuperar e validar license.authority segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-licenseCreate-authority: Persistir, recuperar e validar licenseCreate.authority segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-license-status","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-license-status: Persistir, recuperar e validar license.status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-licenseCreate-status: Persistir, recuperar e validar licenseCreate.status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-license-number","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-license-number: Persistir, recuperar e validar license.number segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-licenseCreate-number: Persistir, recuperar e validar licenseCreate.number segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-license-issued_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-license-issued_at: Persistir, recuperar e validar license.issued_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-licenseCreate-issued_at: Persistir, recuperar e validar licenseCreate.issued_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-license-expires_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-license-expires_at: Persistir, recuperar e validar license.expires_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-licenseCreate-expires_at: Persistir, recuperar e validar licenseCreate.expires_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-risk-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-risk-id: Persistir, recuperar e validar risk.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-risk-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-risk-version: Persistir, recuperar e validar risk.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-risk-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-risk-is_deleted: Persistir, recuperar e validar risk.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-risk-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-risk-delete_reason: Persistir, recuperar e validar risk.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-risk-title","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-risk-title: Persistir, recuperar e validar risk.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-riskCreate-title: Persistir, recuperar e validar riskCreate.title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-risk-category","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-risk-category: Persistir, recuperar e validar risk.category segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-riskCreate-category: Persistir, recuperar e validar riskCreate.category segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-risk-likelihood","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-risk-likelihood: Persistir, recuperar e validar risk.likelihood segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-riskCreate-likelihood: Persistir, recuperar e validar riskCreate.likelihood segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-risk-severity","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-risk-severity: Persistir, recuperar e validar risk.severity segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-riskCreate-severity: Persistir, recuperar e validar riskCreate.severity segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-risk-mitigation","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-risk-mitigation: Persistir, recuperar e validar risk.mitigation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-riskCreate-mitigation: Persistir, recuperar e validar riskCreate.mitigation segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-relation-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-relation-id: Persistir, recuperar e validar relation.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-relation-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-relation-version: Persistir, recuperar e validar relation.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-relation-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-relation-is_deleted: Persistir, recuperar e validar relation.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-relation-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-relation-delete_reason: Persistir, recuperar e validar relation.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-relation-related_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-relation-related_id: Persistir, recuperar e validar relation.related_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-relationCreate-related_id: Persistir, recuperar e validar relationCreate.related_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-relation-relation_type","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-relation-relation_type: Persistir, recuperar e validar relation.relation_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-relationCreate-relation_type: Persistir, recuperar e validar relationCreate.relation_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-relation-description","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-relation-description: Persistir, recuperar e validar relation.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-relationCreate-description: Persistir, recuperar e validar relationCreate.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-relation-evidence_ids","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-relation-evidence_ids: Persistir, recuperar e validar relation.evidence_ids segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-relationCreate-evidence_ids: Persistir, recuperar e validar relationCreate.evidence_ids segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-environmentalSocial-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-environmentalSocial-id: Persistir, recuperar e validar environmentalSocial.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-environmentalSocial-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-environmentalSocial-version: Persistir, recuperar e validar environmentalSocial.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-environmentalSocial-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-environmentalSocial-is_deleted: Persistir, recuperar e validar environmentalSocial.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-environmentalSocial-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-environmentalSocial-delete_reason: Persistir, recuperar e validar environmentalSocial.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-environmentalSocial-assessment_status","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-environmentalSocial-assessment_status: Persistir, recuperar e validar environmentalSocial.assessment_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-environmentalSocialCreate-assessment_status: Persistir, recuperar e validar environmentalSocialCreate.assessment_status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-environmentalSocial-environmental_category","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-environmentalSocial-environmental_category: Persistir, recuperar e validar environmentalSocial.environmental_category segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-environmentalSocialCreate-environmental_category: Persistir, recuperar e validar environmentalSocialCreate.environmental_category segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-environmentalSocial-social_risks","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-environmentalSocial-social_risks: Persistir, recuperar e validar environmentalSocial.social_risks segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-environmentalSocialCreate-social_risks: Persistir, recuperar e validar environmentalSocialCreate.social_risks segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-environmentalSocial-mitigation_plan","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-environmentalSocial-mitigation_plan: Persistir, recuperar e validar environmentalSocial.mitigation_plan segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-environmentalSocialCreate-mitigation_plan: Persistir, recuperar e validar environmentalSocialCreate.mitigation_plan segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-financialIndicators-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-financialIndicators-id: Persistir, recuperar e validar financialIndicators.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-financialIndicators-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-financialIndicators-version: Persistir, recuperar e validar financialIndicators.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-financialIndicators-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-financialIndicators-is_deleted: Persistir, recuperar e validar financialIndicators.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-financialIndicators-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-financialIndicators-delete_reason: Persistir, recuperar e validar financialIndicators.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-financialIndicators-currency","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-financialIndicators-currency: Persistir, recuperar e validar financialIndicators.currency segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-financialIndicators-capex","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-financialIndicators-capex: Persistir, recuperar e validar financialIndicators.capex segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-financialIndicators-opex","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-financialIndicators-opex: Persistir, recuperar e validar financialIndicators.opex segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-financialIndicators-revenue","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-financialIndicators-revenue: Persistir, recuperar e validar financialIndicators.revenue segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-financialIndicators-irr_percentage","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-financialIndicators-irr_percentage: Persistir, recuperar e validar financialIndicators.irr_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-financialIndicators-npv","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-financialIndicators-npv: Persistir, recuperar e validar financialIndicators.npv segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-id: Persistir, recuperar e validar opportunity.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-id: Persistir, recuperar e validar opportunityResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-opportunity_code","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-opportunity_code: Persistir, recuperar e validar opportunity.opportunity_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-opportunity_code: Persistir, recuperar e validar opportunityResponse.opportunity_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-opportunity_category","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-opportunity_category: Persistir, recuperar e validar opportunity.opportunity_category segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-opportunity_category: Persistir, recuperar e validar opportunityPatch.opportunity_category segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-opportunity_category: Persistir, recuperar e validar opportunityCreate.opportunity_category segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-opportunity_category: Persistir, recuperar e validar opportunityResponse.opportunity_category segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-official_title","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-official_title: Persistir, recuperar e validar opportunity.official_title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-official_title: Persistir, recuperar e validar opportunityPatch.official_title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-official_title: Persistir, recuperar e validar opportunityCreate.official_title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-official_title: Persistir, recuperar e validar opportunityResponse.official_title segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-alternative_name","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-alternative_name: Persistir, recuperar e validar opportunity.alternative_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-alternative_name: Persistir, recuperar e validar opportunityPatch.alternative_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-alternative_name: Persistir, recuperar e validar opportunityCreate.alternative_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-alternative_name: Persistir, recuperar e validar opportunityResponse.alternative_name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-promoter_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-promoter_id: Persistir, recuperar e validar opportunity.promoter_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-promoter_id: Persistir, recuperar e validar opportunityPatch.promoter_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-promoter_id: Persistir, recuperar e validar opportunityCreate.promoter_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-promoter_id: Persistir, recuperar e validar opportunityResponse.promoter_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-promoter_type","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-promoter_type: Persistir, recuperar e validar opportunity.promoter_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-promoter_type: Persistir, recuperar e validar opportunityPatch.promoter_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-promoter_type: Persistir, recuperar e validar opportunityCreate.promoter_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-promoter_type: Persistir, recuperar e validar opportunityResponse.promoter_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-internal_contact_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-internal_contact_id: Persistir, recuperar e validar opportunity.internal_contact_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-internal_contact_id: Persistir, recuperar e validar opportunityPatch.internal_contact_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-internal_contact_id: Persistir, recuperar e validar opportunityCreate.internal_contact_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-internal_contact_id: Persistir, recuperar e validar opportunityResponse.internal_contact_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-publish_contact","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-publish_contact: Persistir, recuperar e validar opportunity.publish_contact segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-publish_contact: Persistir, recuperar e validar opportunityPatch.publish_contact segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-publish_contact: Persistir, recuperar e validar opportunityCreate.publish_contact segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-publish_contact: Persistir, recuperar e validar opportunityResponse.publish_contact segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-public_contact_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-public_contact_id: Persistir, recuperar e validar opportunity.public_contact_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-public_contact_id: Persistir, recuperar e validar opportunityPatch.public_contact_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-public_contact_id: Persistir, recuperar e validar opportunityCreate.public_contact_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-public_contact_id: Persistir, recuperar e validar opportunityResponse.public_contact_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-sector_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-sector_id: Persistir, recuperar e validar opportunity.sector_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-sector_id: Persistir, recuperar e validar opportunityPatch.sector_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-sector_id: Persistir, recuperar e validar opportunityCreate.sector_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-sector_id: Persistir, recuperar e validar opportunityResponse.sector_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-subsector_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-subsector_id: Persistir, recuperar e validar opportunity.subsector_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-subsector_id: Persistir, recuperar e validar opportunityPatch.subsector_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-subsector_id: Persistir, recuperar e validar opportunityCreate.subsector_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-subsector_id: Persistir, recuperar e validar opportunityResponse.subsector_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-economic_activity_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-economic_activity_id: Persistir, recuperar e validar opportunity.economic_activity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-economic_activity_id: Persistir, recuperar e validar opportunityPatch.economic_activity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-economic_activity_id: Persistir, recuperar e validar opportunityCreate.economic_activity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-economic_activity_id: Persistir, recuperar e validar opportunityResponse.economic_activity_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-location_mode","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-location_mode: Persistir, recuperar e validar opportunity.location_mode segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-location_mode: Persistir, recuperar e validar opportunityPatch.location_mode segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-location_mode: Persistir, recuperar e validar opportunityCreate.location_mode segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-location_mode: Persistir, recuperar e validar opportunityResponse.location_mode segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-geographic_scope","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-geographic_scope: Persistir, recuperar e validar opportunity.geographic_scope segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-geographic_scope: Persistir, recuperar e validar opportunityPatch.geographic_scope segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-geographic_scope: Persistir, recuperar e validar opportunityCreate.geographic_scope segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-geographic_scope: Persistir, recuperar e validar opportunityResponse.geographic_scope segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-multi_district_rationale","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-multi_district_rationale: Persistir, recuperar e validar opportunity.multi_district_rationale segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-multi_district_rationale: Persistir, recuperar e validar opportunityPatch.multi_district_rationale segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-multi_district_rationale: Persistir, recuperar e validar opportunityCreate.multi_district_rationale segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-multi_district_rationale: Persistir, recuperar e validar opportunityResponse.multi_district_rationale segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-locations","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-locations: Persistir, recuperar e validar opportunity.locations segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-locations: Persistir, recuperar e validar opportunityPatch.locations segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-locations: Persistir, recuperar e validar opportunityCreate.locations segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-locations: Persistir, recuperar e validar opportunityResponse.locations segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-executive_summary","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-executive_summary: Persistir, recuperar e validar opportunity.executive_summary segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-executive_summary: Persistir, recuperar e validar opportunityPatch.executive_summary segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-executive_summary: Persistir, recuperar e validar opportunityCreate.executive_summary segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-executive_summary: Persistir, recuperar e validar opportunityResponse.executive_summary segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-demand_statement","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-demand_statement: Persistir, recuperar e validar opportunity.demand_statement segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-demand_statement: Persistir, recuperar e validar opportunityPatch.demand_statement segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-demand_statement: Persistir, recuperar e validar opportunityCreate.demand_statement segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-demand_statement: Persistir, recuperar e validar opportunityResponse.demand_statement segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-opportunity_type","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-opportunity_type: Persistir, recuperar e validar opportunity.opportunity_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-opportunity_type: Persistir, recuperar e validar opportunityPatch.opportunity_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-opportunity_type: Persistir, recuperar e validar opportunityCreate.opportunity_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-opportunity_type: Persistir, recuperar e validar opportunityResponse.opportunity_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-maturity_stage","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-maturity_stage: Persistir, recuperar e validar opportunity.maturity_stage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-maturity_stage: Persistir, recuperar e validar opportunityPatch.maturity_stage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-maturity_stage: Persistir, recuperar e validar opportunityCreate.maturity_stage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-maturity_stage: Persistir, recuperar e validar opportunityResponse.maturity_stage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-investment_modalities","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-investment_modalities: Persistir, recuperar e validar opportunity.investment_modalities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-investment_modalities: Persistir, recuperar e validar opportunityPatch.investment_modalities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-investment_modalities: Persistir, recuperar e validar opportunityCreate.investment_modalities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-investment_modalities: Persistir, recuperar e validar opportunityResponse.investment_modalities segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-investor_profiles","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-investor_profiles: Persistir, recuperar e validar opportunity.investor_profiles segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-investor_profiles: Persistir, recuperar e validar opportunityPatch.investor_profiles segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-investor_profiles: Persistir, recuperar e validar opportunityCreate.investor_profiles segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-investor_profiles: Persistir, recuperar e validar opportunityResponse.investor_profiles segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-products","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-products: Persistir, recuperar e validar opportunity.products segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-products: Persistir, recuperar e validar opportunityPatch.products segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-products: Persistir, recuperar e validar opportunityCreate.products segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-products: Persistir, recuperar e validar opportunityResponse.products segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-assets","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-assets: Persistir, recuperar e validar opportunity.assets segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-assets: Persistir, recuperar e validar opportunityPatch.assets segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-assets: Persistir, recuperar e validar opportunityCreate.assets segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-assets: Persistir, recuperar e validar opportunityResponse.assets segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-inputs","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-inputs: Persistir, recuperar e validar opportunity.inputs segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-inputs: Persistir, recuperar e validar opportunityPatch.inputs segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-inputs: Persistir, recuperar e validar opportunityCreate.inputs segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-inputs: Persistir, recuperar e validar opportunityResponse.inputs segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-markets","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-markets: Persistir, recuperar e validar opportunity.markets segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-markets: Persistir, recuperar e validar opportunityPatch.markets segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-markets: Persistir, recuperar e validar opportunityCreate.markets segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-markets: Persistir, recuperar e validar opportunityResponse.markets segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-competitive_advantage","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-competitive_advantage: Persistir, recuperar e validar opportunity.competitive_advantage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-competitive_advantage: Persistir, recuperar e validar opportunityPatch.competitive_advantage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-competitive_advantage: Persistir, recuperar e validar opportunityCreate.competitive_advantage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-competitive_advantage: Persistir, recuperar e validar opportunityResponse.competitive_advantage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-employment","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-employment: Persistir, recuperar e validar opportunity.employment segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-employment: Persistir, recuperar e validar opportunityPatch.employment segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-employment: Persistir, recuperar e validar opportunityCreate.employment segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-employment: Persistir, recuperar e validar opportunityResponse.employment segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-impact_indicators","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-impact_indicators: Persistir, recuperar e validar opportunity.impact_indicators segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-impact_indicators: Persistir, recuperar e validar opportunityPatch.impact_indicators segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-impact_indicators: Persistir, recuperar e validar opportunityCreate.impact_indicators segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-impact_indicators: Persistir, recuperar e validar opportunityResponse.impact_indicators segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-total_investment","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-total_investment: Persistir, recuperar e validar opportunity.total_investment segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-total_investment: Persistir, recuperar e validar opportunityPatch.total_investment segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-total_investment: Persistir, recuperar e validar opportunityCreate.total_investment segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-total_investment: Persistir, recuperar e validar opportunityResponse.total_investment segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-currency","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-currency: Persistir, recuperar e validar opportunity.currency segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-currency: Persistir, recuperar e validar opportunityPatch.currency segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-currency: Persistir, recuperar e validar opportunityCreate.currency segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-currency: Persistir, recuperar e validar opportunityResponse.currency segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-investment_breakdown","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-investment_breakdown: Persistir, recuperar e validar opportunity.investment_breakdown segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-investment_breakdown: Persistir, recuperar e validar opportunityPatch.investment_breakdown segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-investment_breakdown: Persistir, recuperar e validar opportunityCreate.investment_breakdown segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-investment_breakdown: Persistir, recuperar e validar opportunityResponse.investment_breakdown segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-secured_financing","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-secured_financing: Persistir, recuperar e validar opportunity.secured_financing segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-secured_financing: Persistir, recuperar e validar opportunityPatch.secured_financing segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-secured_financing: Persistir, recuperar e validar opportunityCreate.secured_financing segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-secured_financing: Persistir, recuperar e validar opportunityResponse.secured_financing segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-funding_sought","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-funding_sought: Persistir, recuperar e validar opportunity.funding_sought segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-funding_sought: Persistir, recuperar e validar opportunityPatch.funding_sought segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-funding_sought: Persistir, recuperar e validar opportunityCreate.funding_sought segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-funding_sought: Persistir, recuperar e validar opportunityResponse.funding_sought segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-financial_indicators","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-financial_indicators: Persistir, recuperar e validar opportunity.financial_indicators segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-financial_indicators: Persistir, recuperar e validar opportunityPatch.financial_indicators segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-financial_indicators: Persistir, recuperar e validar opportunityCreate.financial_indicators segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-financial_indicators: Persistir, recuperar e validar opportunityResponse.financial_indicators segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-milestones","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-milestones: Persistir, recuperar e validar opportunity.milestones segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-milestones: Persistir, recuperar e validar opportunityPatch.milestones segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-milestones: Persistir, recuperar e validar opportunityCreate.milestones segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-milestones: Persistir, recuperar e validar opportunityResponse.milestones segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-licenses","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-licenses: Persistir, recuperar e validar opportunity.licenses segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-licenses: Persistir, recuperar e validar opportunityPatch.licenses segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-licenses: Persistir, recuperar e validar opportunityCreate.licenses segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-licenses: Persistir, recuperar e validar opportunityResponse.licenses segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-environmental_social","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-environmental_social: Persistir, recuperar e validar opportunity.environmental_social segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-environmental_social: Persistir, recuperar e validar opportunityPatch.environmental_social segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-environmental_social: Persistir, recuperar e validar opportunityCreate.environmental_social segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-environmental_social: Persistir, recuperar e validar opportunityResponse.environmental_social segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-risks","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-risks: Persistir, recuperar e validar opportunity.risks segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-risks: Persistir, recuperar e validar opportunityPatch.risks segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-risks: Persistir, recuperar e validar opportunityCreate.risks segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-risks: Persistir, recuperar e validar opportunityResponse.risks segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-relations","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-relations: Persistir, recuperar e validar opportunity.relations segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-relations: Persistir, recuperar e validar opportunityPatch.relations segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-relations: Persistir, recuperar e validar opportunityCreate.relations segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-relations: Persistir, recuperar e validar opportunityResponse.relations segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-documents","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","app/Http/Controllers/PortalServicesController.php; app/Jobs/ScanDocumentForMalware.php — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-documents: Persistir, recuperar e validar opportunity.documents segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-documents: Persistir, recuperar e validar opportunityPatch.documents segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-documents: Persistir, recuperar e validar opportunityCreate.documents segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-documents: Persistir, recuperar e validar opportunityResponse.documents segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-evidences","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-evidences: Persistir, recuperar e validar opportunity.evidences segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-evidences: Persistir, recuperar e validar opportunityPatch.evidences segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-evidences: Persistir, recuperar e validar opportunityCreate.evidences segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-evidences: Persistir, recuperar e validar opportunityResponse.evidences segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-images","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-images: Persistir, recuperar e validar opportunity.images segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-images: Persistir, recuperar e validar opportunityPatch.images segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-images: Persistir, recuperar e validar opportunityCreate.images segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-images: Persistir, recuperar e validar opportunityResponse.images segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-publication_languages","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-publication_languages: Persistir, recuperar e validar opportunity.publication_languages segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-publication_languages: Persistir, recuperar e validar opportunityPatch.publication_languages segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-publication_languages: Persistir, recuperar e validar opportunityCreate.publication_languages segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-publication_languages: Persistir, recuperar e validar opportunityResponse.publication_languages segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-visibility","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-visibility: Persistir, recuperar e validar opportunity.visibility segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-visibility: Persistir, recuperar e validar opportunityPatch.visibility segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-visibility: Persistir, recuperar e validar opportunityCreate.visibility segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-visibility: Persistir, recuperar e validar opportunityResponse.visibility segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-review_due_date","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-review_due_date: Persistir, recuperar e validar opportunity.review_due_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-review_due_date: Persistir, recuperar e validar opportunityPatch.review_due_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-review_due_date: Persistir, recuperar e validar opportunityCreate.review_due_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-review_due_date: Persistir, recuperar e validar opportunityResponse.review_due_date segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-truth_declaration","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-truth_declaration: Persistir, recuperar e validar opportunity.truth_declaration segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-truth_declaration: Persistir, recuperar e validar opportunityPatch.truth_declaration segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-truth_declaration: Persistir, recuperar e validar opportunityCreate.truth_declaration segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-truth_declaration: Persistir, recuperar e validar opportunityResponse.truth_declaration segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-real_estate","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-real_estate: Persistir, recuperar e validar opportunity.real_estate segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-real_estate: Persistir, recuperar e validar opportunityPatch.real_estate segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-real_estate: Persistir, recuperar e validar opportunityCreate.real_estate segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-real_estate: Persistir, recuperar e validar opportunityResponse.real_estate segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-land_rights","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-land_rights: Persistir, recuperar e validar opportunity.land_rights segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-land_rights: Persistir, recuperar e validar opportunityPatch.land_rights segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-land_rights: Persistir, recuperar e validar opportunityCreate.land_rights segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-land_rights: Persistir, recuperar e validar opportunityResponse.land_rights segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-business_transaction","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-business_transaction: Persistir, recuperar e validar opportunity.business_transaction segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-business_transaction: Persistir, recuperar e validar opportunityPatch.business_transaction segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-business_transaction: Persistir, recuperar e validar opportunityCreate.business_transaction segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-business_transaction: Persistir, recuperar e validar opportunityResponse.business_transaction segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-module_profile_version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-module_profile_version: Persistir, recuperar e validar opportunity.module_profile_version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-module_profile_version: Persistir, recuperar e validar opportunityPatch.module_profile_version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-module_profile_version: Persistir, recuperar e validar opportunityCreate.module_profile_version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-module_profile_version: Persistir, recuperar e validar opportunityResponse.module_profile_version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-completion_percentage","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-completion_percentage: Persistir, recuperar e validar opportunity.completion_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-completion_percentage: Persistir, recuperar e validar opportunityResponse.completion_percentage segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-validation_result","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-validation_result: Persistir, recuperar e validar opportunity.validation_result segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-validation_result: Persistir, recuperar e validar opportunityResponse.validation_result segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-status","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-status: Persistir, recuperar e validar opportunity.status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-status: Persistir, recuperar e validar opportunityResponse.status segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-version: Persistir, recuperar e validar opportunity.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-version: Persistir, recuperar e validar opportunityResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-submitted_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-submitted_by: Persistir, recuperar e validar opportunity.submitted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-submitted_by: Persistir, recuperar e validar opportunityResponse.submitted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-submitted_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-submitted_at: Persistir, recuperar e validar opportunity.submitted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-submitted_at: Persistir, recuperar e validar opportunityResponse.submitted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-approved_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-approved_by: Persistir, recuperar e validar opportunity.approved_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-approved_by: Persistir, recuperar e validar opportunityResponse.approved_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-approved_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-approved_at: Persistir, recuperar e validar opportunity.approved_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-approved_at: Persistir, recuperar e validar opportunityResponse.approved_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-published_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-published_by: Persistir, recuperar e validar opportunity.published_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-published_by: Persistir, recuperar e validar opportunityResponse.published_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-published_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-published_at: Persistir, recuperar e validar opportunity.published_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-published_at: Persistir, recuperar e validar opportunityResponse.published_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-archived_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-archived_by: Persistir, recuperar e validar opportunity.archived_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-archived_by: Persistir, recuperar e validar opportunityResponse.archived_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-archived_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-archived_at: Persistir, recuperar e validar opportunity.archived_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-archived_at: Persistir, recuperar e validar opportunityResponse.archived_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-mutation_context","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-mutation_context: Persistir, recuperar e validar opportunity.mutation_context segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityPatch-mutation_context: Persistir, recuperar e validar opportunityPatch.mutation_context segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityCreate-mutation_context: Persistir, recuperar e validar opportunityCreate.mutation_context segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-mutation_context: Persistir, recuperar e validar opportunityResponse.mutation_context segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-deleted_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-deleted_at: Persistir, recuperar e validar opportunity.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-deleted_at: Persistir, recuperar e validar opportunityResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-deleted_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-deleted_by: Persistir, recuperar e validar opportunity.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-deleted_by: Persistir, recuperar e validar opportunityResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-delete_reason: Persistir, recuperar e validar opportunity.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-delete_reason: Persistir, recuperar e validar opportunityResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-opportunity-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-opportunity-is_deleted: Persistir, recuperar e validar opportunity.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-opportunityResponse-is_deleted: Persistir, recuperar e validar opportunityResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-createOpportunityRequest-data","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-createOpportunityRequest-data: Persistir, recuperar e validar createOpportunityRequest.data segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-updateOpportunityRequest-mutation_context","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-updateOpportunityRequest-mutation_context: Persistir, recuperar e validar updateOpportunityRequest.mutation_context segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-updateOpportunityRequest-changes","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-updateOpportunityRequest-changes: Persistir, recuperar e validar updateOpportunityRequest.changes segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-createResourceRequest-resource_type","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-createResourceRequest-resource_type: Persistir, recuperar e validar createResourceRequest.resource_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-createResourceRequest-data","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-createResourceRequest-data: Persistir, recuperar e validar createResourceRequest.data segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-updateResourceRequest-mutation_context","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-updateResourceRequest-mutation_context: Persistir, recuperar e validar updateResourceRequest.mutation_context segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-updateResourceRequest-resource_type","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-updateResourceRequest-resource_type: Persistir, recuperar e validar updateResourceRequest.resource_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-updateResourceRequest-changes","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-updateResourceRequest-changes: Persistir, recuperar e validar updateResourceRequest.changes segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-id: Persistir, recuperar e validar catalogDefinition.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-id: Persistir, recuperar e validar catalogDefinitionResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-version: Persistir, recuperar e validar catalogDefinition.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-version: Persistir, recuperar e validar catalogDefinitionResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-is_deleted: Persistir, recuperar e validar catalogDefinition.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-is_deleted: Persistir, recuperar e validar catalogDefinitionResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-deleted_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-deleted_at: Persistir, recuperar e validar catalogDefinition.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-deleted_at: Persistir, recuperar e validar catalogDefinitionResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-deleted_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-deleted_by: Persistir, recuperar e validar catalogDefinition.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-deleted_by: Persistir, recuperar e validar catalogDefinitionResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-delete_reason: Persistir, recuperar e validar catalogDefinition.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-delete_reason: Persistir, recuperar e validar catalogDefinitionResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-created_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-created_by: Persistir, recuperar e validar catalogDefinition.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-created_by: Persistir, recuperar e validar catalogDefinitionResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-created_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-created_at: Persistir, recuperar e validar catalogDefinition.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-created_at: Persistir, recuperar e validar catalogDefinitionResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-updated_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-updated_by: Persistir, recuperar e validar catalogDefinition.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-updated_by: Persistir, recuperar e validar catalogDefinitionResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-updated_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-updated_at: Persistir, recuperar e validar catalogDefinition.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-updated_at: Persistir, recuperar e validar catalogDefinitionResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-code","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-code: Persistir, recuperar e validar catalogDefinition.code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionCreate-code: Persistir, recuperar e validar catalogDefinitionCreate.code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionPatch-code: Persistir, recuperar e validar catalogDefinitionPatch.code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-code: Persistir, recuperar e validar catalogDefinitionResponse.code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-name","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-name: Persistir, recuperar e validar catalogDefinition.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionCreate-name: Persistir, recuperar e validar catalogDefinitionCreate.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionPatch-name: Persistir, recuperar e validar catalogDefinitionPatch.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-name: Persistir, recuperar e validar catalogDefinitionResponse.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-description","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-description: Persistir, recuperar e validar catalogDefinition.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionCreate-description: Persistir, recuperar e validar catalogDefinitionCreate.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionPatch-description: Persistir, recuperar e validar catalogDefinitionPatch.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-description: Persistir, recuperar e validar catalogDefinitionResponse.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-is_hierarchical","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-is_hierarchical: Persistir, recuperar e validar catalogDefinition.is_hierarchical segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionCreate-is_hierarchical: Persistir, recuperar e validar catalogDefinitionCreate.is_hierarchical segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionPatch-is_hierarchical: Persistir, recuperar e validar catalogDefinitionPatch.is_hierarchical segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-is_hierarchical: Persistir, recuperar e validar catalogDefinitionResponse.is_hierarchical segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogDefinition-active","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogDefinition-active: Persistir, recuperar e validar catalogDefinition.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogDefinitionResponse-active: Persistir, recuperar e validar catalogDefinitionResponse.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-id: Persistir, recuperar e validar catalogOption.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-id: Persistir, recuperar e validar catalogOptionResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-version: Persistir, recuperar e validar catalogOption.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-version: Persistir, recuperar e validar catalogOptionResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-is_deleted: Persistir, recuperar e validar catalogOption.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-is_deleted: Persistir, recuperar e validar catalogOptionResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-deleted_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-deleted_at: Persistir, recuperar e validar catalogOption.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-deleted_at: Persistir, recuperar e validar catalogOptionResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-deleted_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-deleted_by: Persistir, recuperar e validar catalogOption.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-deleted_by: Persistir, recuperar e validar catalogOptionResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-delete_reason: Persistir, recuperar e validar catalogOption.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-delete_reason: Persistir, recuperar e validar catalogOptionResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-created_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-created_by: Persistir, recuperar e validar catalogOption.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-created_by: Persistir, recuperar e validar catalogOptionResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-created_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-created_at: Persistir, recuperar e validar catalogOption.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-created_at: Persistir, recuperar e validar catalogOptionResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-updated_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-updated_by: Persistir, recuperar e validar catalogOption.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-updated_by: Persistir, recuperar e validar catalogOptionResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-updated_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-updated_at: Persistir, recuperar e validar catalogOption.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-updated_at: Persistir, recuperar e validar catalogOptionResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-code","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-code: Persistir, recuperar e validar catalogOption.code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionCreate-code: Persistir, recuperar e validar catalogOptionCreate.code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionPatch-code: Persistir, recuperar e validar catalogOptionPatch.code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-code: Persistir, recuperar e validar catalogOptionResponse.code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-label","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-label: Persistir, recuperar e validar catalogOption.label segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionCreate-label: Persistir, recuperar e validar catalogOptionCreate.label segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionPatch-label: Persistir, recuperar e validar catalogOptionPatch.label segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-label: Persistir, recuperar e validar catalogOptionResponse.label segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-sort_order","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-sort_order: Persistir, recuperar e validar catalogOption.sort_order segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionCreate-sort_order: Persistir, recuperar e validar catalogOptionCreate.sort_order segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionPatch-sort_order: Persistir, recuperar e validar catalogOptionPatch.sort_order segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-sort_order: Persistir, recuperar e validar catalogOptionResponse.sort_order segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-active","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-active: Persistir, recuperar e validar catalogOption.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-active: Persistir, recuperar e validar catalogOptionResponse.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-catalog_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-catalog_id: Persistir, recuperar e validar catalogOption.catalog_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionCreate-catalog_id: Persistir, recuperar e validar catalogOptionCreate.catalog_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionPatch-catalog_id: Persistir, recuperar e validar catalogOptionPatch.catalog_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-catalog_id: Persistir, recuperar e validar catalogOptionResponse.catalog_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogOption-parent_option_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogOption-parent_option_id: Persistir, recuperar e validar catalogOption.parent_option_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionCreate-parent_option_id: Persistir, recuperar e validar catalogOptionCreate.parent_option_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionPatch-parent_option_id: Persistir, recuperar e validar catalogOptionPatch.parent_option_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogOptionResponse-parent_option_id: Persistir, recuperar e validar catalogOptionResponse.parent_option_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogTranslation-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogTranslation-id: Persistir, recuperar e validar catalogTranslation.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationResponse-id: Persistir, recuperar e validar catalogTranslationResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogTranslation-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogTranslation-version: Persistir, recuperar e validar catalogTranslation.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationResponse-version: Persistir, recuperar e validar catalogTranslationResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogTranslation-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogTranslation-is_deleted: Persistir, recuperar e validar catalogTranslation.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationResponse-is_deleted: Persistir, recuperar e validar catalogTranslationResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogTranslation-deleted_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogTranslation-deleted_at: Persistir, recuperar e validar catalogTranslation.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationResponse-deleted_at: Persistir, recuperar e validar catalogTranslationResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogTranslation-deleted_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogTranslation-deleted_by: Persistir, recuperar e validar catalogTranslation.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationResponse-deleted_by: Persistir, recuperar e validar catalogTranslationResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogTranslation-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogTranslation-delete_reason: Persistir, recuperar e validar catalogTranslation.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationResponse-delete_reason: Persistir, recuperar e validar catalogTranslationResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogTranslation-created_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogTranslation-created_by: Persistir, recuperar e validar catalogTranslation.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationResponse-created_by: Persistir, recuperar e validar catalogTranslationResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogTranslation-created_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogTranslation-created_at: Persistir, recuperar e validar catalogTranslation.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationResponse-created_at: Persistir, recuperar e validar catalogTranslationResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogTranslation-updated_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogTranslation-updated_by: Persistir, recuperar e validar catalogTranslation.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationResponse-updated_by: Persistir, recuperar e validar catalogTranslationResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogTranslation-updated_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogTranslation-updated_at: Persistir, recuperar e validar catalogTranslation.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationResponse-updated_at: Persistir, recuperar e validar catalogTranslationResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogTranslation-catalog_option_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogTranslation-catalog_option_id: Persistir, recuperar e validar catalogTranslation.catalog_option_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationCreate-catalog_option_id: Persistir, recuperar e validar catalogTranslationCreate.catalog_option_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationPatch-catalog_option_id: Persistir, recuperar e validar catalogTranslationPatch.catalog_option_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationResponse-catalog_option_id: Persistir, recuperar e validar catalogTranslationResponse.catalog_option_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogTranslation-language_code","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogTranslation-language_code: Persistir, recuperar e validar catalogTranslation.language_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationCreate-language_code: Persistir, recuperar e validar catalogTranslationCreate.language_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationPatch-language_code: Persistir, recuperar e validar catalogTranslationPatch.language_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationResponse-language_code: Persistir, recuperar e validar catalogTranslationResponse.language_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogTranslation-label","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogTranslation-label: Persistir, recuperar e validar catalogTranslation.label segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationCreate-label: Persistir, recuperar e validar catalogTranslationCreate.label segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationPatch-label: Persistir, recuperar e validar catalogTranslationPatch.label segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationResponse-label: Persistir, recuperar e validar catalogTranslationResponse.label segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-catalogTranslation-description","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-catalogTranslation-description: Persistir, recuperar e validar catalogTranslation.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationCreate-description: Persistir, recuperar e validar catalogTranslationCreate.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationPatch-description: Persistir, recuperar e validar catalogTranslationPatch.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-catalogTranslationResponse-description: Persistir, recuperar e validar catalogTranslationResponse.description segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-id: Persistir, recuperar e validar geoLayer.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-id: Persistir, recuperar e validar geoLayerResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-version: Persistir, recuperar e validar geoLayer.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-version: Persistir, recuperar e validar geoLayerResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-is_deleted: Persistir, recuperar e validar geoLayer.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-is_deleted: Persistir, recuperar e validar geoLayerResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-deleted_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-deleted_at: Persistir, recuperar e validar geoLayer.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-deleted_at: Persistir, recuperar e validar geoLayerResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-deleted_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-deleted_by: Persistir, recuperar e validar geoLayer.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-deleted_by: Persistir, recuperar e validar geoLayerResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-delete_reason: Persistir, recuperar e validar geoLayer.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-delete_reason: Persistir, recuperar e validar geoLayerResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-created_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-created_by: Persistir, recuperar e validar geoLayer.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-created_by: Persistir, recuperar e validar geoLayerResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-created_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-created_at: Persistir, recuperar e validar geoLayer.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-created_at: Persistir, recuperar e validar geoLayerResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-updated_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-updated_by: Persistir, recuperar e validar geoLayer.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-updated_by: Persistir, recuperar e validar geoLayerResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-updated_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-updated_at: Persistir, recuperar e validar geoLayer.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-updated_at: Persistir, recuperar e validar geoLayerResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-code","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-code: Persistir, recuperar e validar geoLayer.code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerCreate-code: Persistir, recuperar e validar geoLayerCreate.code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerPatch-code: Persistir, recuperar e validar geoLayerPatch.code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-code: Persistir, recuperar e validar geoLayerResponse.code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-name","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-name: Persistir, recuperar e validar geoLayer.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerCreate-name: Persistir, recuperar e validar geoLayerCreate.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerPatch-name: Persistir, recuperar e validar geoLayerPatch.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-name: Persistir, recuperar e validar geoLayerResponse.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-srid","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-srid: Persistir, recuperar e validar geoLayer.srid segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerCreate-srid: Persistir, recuperar e validar geoLayerCreate.srid segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerPatch-srid: Persistir, recuperar e validar geoLayerPatch.srid segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-srid: Persistir, recuperar e validar geoLayerResponse.srid segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-version_label","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-version_label: Persistir, recuperar e validar geoLayer.version_label segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerCreate-version_label: Persistir, recuperar e validar geoLayerCreate.version_label segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerPatch-version_label: Persistir, recuperar e validar geoLayerPatch.version_label segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-version_label: Persistir, recuperar e validar geoLayerResponse.version_label segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-active","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-active: Persistir, recuperar e validar geoLayer.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-active: Persistir, recuperar e validar geoLayerResponse.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoLayer-feature_type","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoLayer-feature_type: Persistir, recuperar e validar geoLayer.feature_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerCreate-feature_type: Persistir, recuperar e validar geoLayerCreate.feature_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerPatch-feature_type: Persistir, recuperar e validar geoLayerPatch.feature_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoLayerResponse-feature_type: Persistir, recuperar e validar geoLayerResponse.feature_type segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-id: Persistir, recuperar e validar geoFeature.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-id: Persistir, recuperar e validar geoFeatureResponse.id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-version","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-version: Persistir, recuperar e validar geoFeature.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-version: Persistir, recuperar e validar geoFeatureResponse.version segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-is_deleted","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-is_deleted: Persistir, recuperar e validar geoFeature.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-is_deleted: Persistir, recuperar e validar geoFeatureResponse.is_deleted segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-deleted_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-deleted_at: Persistir, recuperar e validar geoFeature.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-deleted_at: Persistir, recuperar e validar geoFeatureResponse.deleted_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-deleted_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-deleted_by: Persistir, recuperar e validar geoFeature.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-deleted_by: Persistir, recuperar e validar geoFeatureResponse.deleted_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-delete_reason","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-delete_reason: Persistir, recuperar e validar geoFeature.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-delete_reason: Persistir, recuperar e validar geoFeatureResponse.delete_reason segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-created_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-created_by: Persistir, recuperar e validar geoFeature.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-created_by: Persistir, recuperar e validar geoFeatureResponse.created_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-created_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-created_at: Persistir, recuperar e validar geoFeature.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-created_at: Persistir, recuperar e validar geoFeatureResponse.created_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-updated_by","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-updated_by: Persistir, recuperar e validar geoFeature.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-updated_by: Persistir, recuperar e validar geoFeatureResponse.updated_by segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-updated_at","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-updated_at: Persistir, recuperar e validar geoFeature.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-updated_at: Persistir, recuperar e validar geoFeatureResponse.updated_at segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-layer_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-layer_id: Persistir, recuperar e validar geoFeature.layer_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureCreate-layer_id: Persistir, recuperar e validar geoFeatureCreate.layer_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeaturePatch-layer_id: Persistir, recuperar e validar geoFeaturePatch.layer_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-layer_id: Persistir, recuperar e validar geoFeatureResponse.layer_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-parent_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-parent_id: Persistir, recuperar e validar geoFeature.parent_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureCreate-parent_id: Persistir, recuperar e validar geoFeatureCreate.parent_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeaturePatch-parent_id: Persistir, recuperar e validar geoFeaturePatch.parent_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-parent_id: Persistir, recuperar e validar geoFeatureResponse.parent_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-name","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-name: Persistir, recuperar e validar geoFeature.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureCreate-name: Persistir, recuperar e validar geoFeatureCreate.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeaturePatch-name: Persistir, recuperar e validar geoFeaturePatch.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-name: Persistir, recuperar e validar geoFeatureResponse.name segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-geometry","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-geometry: Persistir, recuperar e validar geoFeature.geometry segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureCreate-geometry: Persistir, recuperar e validar geoFeatureCreate.geometry segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeaturePatch-geometry: Persistir, recuperar e validar geoFeaturePatch.geometry segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-geometry: Persistir, recuperar e validar geoFeatureResponse.geometry segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-properties","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-properties: Persistir, recuperar e validar geoFeature.properties segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureCreate-properties: Persistir, recuperar e validar geoFeatureCreate.properties segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeaturePatch-properties: Persistir, recuperar e validar geoFeaturePatch.properties segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-properties: Persistir, recuperar e validar geoFeatureResponse.properties segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-active","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-active: Persistir, recuperar e validar geoFeature.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-active: Persistir, recuperar e validar geoFeatureResponse.active segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoFeature-official_code","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoFeature-official_code: Persistir, recuperar e validar geoFeature.official_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureCreate-official_code: Persistir, recuperar e validar geoFeatureCreate.official_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeaturePatch-official_code: Persistir, recuperar e validar geoFeaturePatch.official_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final | OP-FIELD-geoFeatureResponse-official_code: Persistir, recuperar e validar geoFeatureResponse.official_code segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoValidationRequest-geometry","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoValidationRequest-geometry: Persistir, recuperar e validar geoValidationRequest.geometry segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoValidationRequest-srid","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoValidationRequest-srid: Persistir, recuperar e validar geoValidationRequest.srid segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoValidationRequest-layer","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoValidationRequest-layer: Persistir, recuperar e validar geoValidationRequest.layer segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoValidationRequest-parent_id","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoValidationRequest-parent_id: Persistir, recuperar e validar geoValidationRequest.parent_id segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","OP-FIELD-geoValidationRequest-checks","parcial","Verificar individualmente este critério no contrato e percurso aplicável; a matriz inicial conserva texto/fonte sem o promover a aceitação.","AGENTS.md — componentes do domínio encontrados; correspondência integral deste requisito não presumida","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","OP-FIELD-geoValidationRequest-checks: Persistir, recuperar e validar geoValidationRequest.checks segundo o schema da categoria; nunca bloquear rascunho apenas por exigência final","Critério individual; consultar backlog"
-"P1","AUD-FIELD-001","parcial","Inspeção visual individual ainda não executada; inventário de chamada não demonstra pesquisa/recuperação/uso cartográfico.","resources/js/components/interactive-investment-map.tsx:38; const map = useRef(null);","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","AUD-FIELD-001: Demonstração individual em 1440 e 390 px; selecção respeita pai e ID guardado; ausência de geometria mantém indeterminação","3"
-"P1","AUD-FIELD-002","parcial","Inspeção visual individual ainda não executada; inventário de chamada não demonstra pesquisa/recuperação/uso cartográfico.","resources/js/components/interactive-investment-map.tsx:62; '© OpenStreetMap contributors',","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","AUD-FIELD-002: Demonstração individual em 1440 e 390 px; selecção respeita pai e ID guardado; ausência de geometria mantém indeterminação","3"
-"P1","AUD-FIELD-003","parcial","Inspeção visual individual ainda não executada; inventário de chamada não demonstra pesquisa/recuperação/uso cartográfico.","resources/js/components/investment-map-panel.tsx:51; ","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","AUD-FIELD-003: Demonstração individual em 1440 e 390 px; selecção respeita pai e ID guardado; ausência de geometria mantém indeterminação","3"
-"P1","AUD-FIELD-004","parcial","Inspeção visual individual ainda não executada; inventário de chamada não demonstra pesquisa/recuperação/uso cartográfico.","resources/js/components/investment-territory.tsx:160; form.setData('payload', { ...form.data.payload, declared_origin_country_code: value })} />","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","AUD-FIELD-009: Demonstração individual em 1440 e 390 px; selecção respeita pai e ID guardado; ausência de geometria mantém indeterminação","3"
-"P1","AUD-FIELD-010","parcial","Inspeção visual individual ainda não executada; inventário de chamada não demonstra pesquisa/recuperação/uso cartográfico.","resources/js/pages/desk/request.tsx:186; }","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","AUD-FIELD-019: Demonstração individual em 1440 e 390 px; selecção respeita pai e ID guardado; ausência de geometria mantém indeterminação","3"
-"P1","AUD-FIELD-020","parcial","Inspeção visual individual ainda não executada; inventário de chamada não demonstra pesquisa/recuperação/uso cartográfico.","resources/js/pages/investment/profile.tsx:152; {key.endsWith('_country_code') ? form.setData('payload', { ...form.data.payload, [key]: value })} /> :","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","AUD-FIELD-020: Demonstração individual em 1440 e 390 px; selecção respeita pai e ID guardado; ausência de geometria mantém indeterminação","3"
-"P1","AUD-FIELD-021","parcial","Inspeção visual individual ainda não executada; inventário de chamada não demonstra pesquisa/recuperação/uso cartográfico.","resources/js/pages/investment/submission.tsx:363; form.setData('payload', { ...form.data.payload, [key]: value })} />","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","AUD-FIELD-021: Demonstração individual em 1440 e 390 px; selecção respeita pai e ID guardado; ausência de geometria mantém indeterminação","3"
-"P1","AUD-FIELD-022","parcial","Inspeção visual individual ainda não executada; inventário de chamada não demonstra pesquisa/recuperação/uso cartográfico.","resources/js/pages/investment/zone.tsx:856; ","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","AUD-FIELD-024: Demonstração individual em 1440 e 390 px; selecção respeita pai e ID guardado; ausência de geometria mantém indeterminação","3"
-"P1","AUD-FIELD-025","parcial","Inspeção visual individual ainda não executada; inventário de chamada não demonstra pesquisa/recuperação/uso cartográfico.","resources/js/pages/investment/zones.tsx:223; ","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","AUD-FIELD-025: Demonstração individual em 1440 e 390 px; selecção respeita pai e ID guardado; ausência de geometria mantém indeterminação","3"
-"P1","AUD-FIELD-026","parcial","Inspeção visual individual ainda não executada; inventário de chamada não demonstra pesquisa/recuperação/uso cartográfico.","resources/js/pages/investment/zones.tsx:362; ","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","AUD-FIELD-026: Demonstração individual em 1440 e 390 px; selecção respeita pai e ID guardado; ausência de geometria mantém indeterminação","3"
-"P1","AUD-FIELD-027","parcial","Inspeção visual individual ainda não executada; inventário de chamada não demonstra pesquisa/recuperação/uso cartográfico.","resources/js/pages/land-assistance/form.tsx:1122; ","QA de UI quando browser disponível; reutilizar o domínio existente. Dados/decisões específicos no backlog, sem segunda validação de fonte oficial.","AUD-FIELD-033: Demonstração individual em 1440 e 390 px; selecção respeita pai e ID guardado; ausência de geometria mantém indeterminação","3"
-"P1","AUD-FIELD-034","parcial","Inspeção visual individual ainda não executada; inventário de chamada não demonstra pesquisa/recuperação/uso cartográfico.","resources/js/pages/partnerships/editor.tsx:259;
diff --git a/resources/js/components/opportunity-canonical-fields.tsx b/resources/js/components/opportunity-canonical-fields.tsx
index 1ee5628c..af4f166d 100644
--- a/resources/js/components/opportunity-canonical-fields.tsx
+++ b/resources/js/components/opportunity-canonical-fields.tsx
@@ -27,6 +27,8 @@ function resourceTerritory(resource?: Resource) {
}
export type CanonicalOptions = {
version: string;
+ modularProfiles?: Record;
+ historyVersion?: string | null;
schema: Schema;
definitions: Record;
contacts: { id: string; full_name: string }[];
@@ -70,6 +72,53 @@ const labels: Record = {
real_estate: "Imobiliário",
land_rights: "DUAT e direitos fundiários",
business_transaction: "Negócio",
+ module_profile_version: "Versão do contrato QA (seleção explícita)",
+ module_details: "Condições do módulo",
+ mode: "Percurso: procura, oferta ou modalidade",
+ conditions_status: "Condições propostas ou compromisso documentado",
+ object: "Objeto",
+ representation_document_id: "Documento de representação",
+ object_document_id: "Documento do objeto/procedimento",
+ disclosure_authorization_document_id: "Autorização de divulgação da intenção/chamada",
+ external_decision_document_id: "Ato competente do direito atribuído",
+ granting_entity: "Entidade concedente declarada",
+ procedure_regime: "Regime/procedimento declarado",
+ scope: "Âmbito territorial ou digital",
+ term_value: "Duração ou prazo",
+ term_unit: "Unidade da duração",
+ remuneration_obligations: "Remuneração e obrigações",
+ participation_conditions: "Condições de participação",
+ land_required: "Precisa de terra?",
+ construction_required: "Inclui construção?",
+ applicable_authorizations: "Autorizações aplicáveis e situação",
+ instrument: "Instrumento de financiamento",
+ offered_capacity: "Capacidade oferecida pelo financiador",
+ eligibility_criteria: "Critérios declarados do financiador",
+ capacity_document_id: "Evidência da capacidade declarada",
+ financial_plan_document_id: "Plano financeiro do projeto",
+ secured_evidence_document_id: "Evidência do financiamento assegurado",
+ use_of_funds: "Finalidade do financiamento procurado",
+ disbursement_calendar: "Calendário proposto de desembolso",
+ repayment_periodicity: "Periodicidade de reembolso",
+ proposed_rights: "Direitos propostos",
+ equity_percentage: "Percentagem de capital proposta",
+ terms: "Condições",
+ scenario: "Cenário identificado",
+ source: "Fonte identificada",
+ terms_date: "Data da fonte/condições",
+ commitment_document_id: "Documento do compromisso assumido",
+ acceptance_criteria: "Critérios de aceitação do fornecimento",
+ quotation_method: "Método de cotação",
+ total_price: "Preço total (impostos identificados separadamente)",
+ declared_taxes: "Impostos declarados, sem cálculo implícito",
+ advance_or_guarantee: "Há adiantamento ou garantia?",
+ subtype: "Subtipo para classificação funcional",
+ recipients: "Destinatários",
+ expected_output: "Resultado esperado",
+ history_status: "Situação do histórico financeiro",
+ history_declaration: "Declaração de ausência de exercícios completos",
+ history_declaration_document_id: "Documento da declaração",
+ projections: "Projeções identificadas — não são contas realizadas",
transaction_type: "Modalidade",
property_type: "Tipo de imóvel",
construction_status: "Estado construtivo",
@@ -173,12 +222,10 @@ const labels: Record = {
direct_jobs: "Empregos diretos",
employment_type: "Tipo de emprego",
geometry: "Geometria da parcela",
- module_profile_version: "Perfil modular aprovado",
start_date: "Data de início",
end_date: "Data de fim",
responsible_name: "Responsável declarado",
dependencies: "Marcos dos quais depende",
- scenario: "Cenário analisado",
npv: "Valor atual líquido",
irr: "Taxa interna de retorno (%)",
payback_years: "Prazo de retorno (anos)",
@@ -568,7 +615,7 @@ export default function OpportunityCanonicalFields({
: ["business_sale", "business_partnership", "franchise"].includes(
category,
)
- ? ["business_transaction"]
+ ? ["module_profile_version", "business_transaction"]
: category === "investment_project"
? [
"opportunity_type",
@@ -594,7 +641,18 @@ export default function OpportunityCanonicalFields({
"risks",
"relations",
]
- : ["module_profile_version"];
+ : ["module_profile_version", "module_details", ...(category === "financing" ? ["total_investment", "investment_breakdown", "secured_financing", "funding_sought"] : [])];
+ const details = (value.module_details ?? {}) as Data;
+ const mode = String(details.mode ?? "");
+ const modularFields = ["mode", "object", "representation_document_id", "object_document_id",
+ ...(category === "concession" ? ["granting_entity", "procedure_regime", "scope", "term_value", "term_unit", "remuneration_obligations", "participation_conditions", "land_required", "construction_required", "applicable_authorizations", "start_date", "end_date", "disclosure_authorization_document_id", "external_decision_document_id", "territorial_right_document_id", "construction_license_document_id"] : []),
+ ...(["financing", "supply"].includes(category) ? ["conditions_status", "terms", "scenario", "source", "terms_date", "commitment_document_id"] : []),
+ ...(category === "financing" ? ["instrument", "disbursement_calendar", "term_value", "term_unit", "repayment_periodicity", "equity_percentage", "proposed_rights",
+ ...(mode === "funding_offer" ? ["offered_capacity", "eligibility_criteria", "capacity_document_id"] : ["use_of_funds", "financial_plan_document_id", "secured_evidence_document_id"])] : []),
+ ...(category === "supply" ? ["quantity", "unit", "destination", "start_date", "end_date", "acceptance_criteria", "quotation_method", "unit_price", "total_price", "declared_taxes", "advance_or_guarantee", ...(mode === "supply_offer" ? ["capacity_document_id"] : [])] : []),
+ ...(category === "other" ? ["subtype", "purpose", "recipients", "expected_output", "risks"] : []),
+ ];
+ const modes = category === "concession" ? ["intention_call", "awarded_right"] : category === "financing" ? ["seeking_funding", "funding_offer"] : category === "supply" ? ["purchase_request", "supply_offer"] : ["classified_other"];
return (
);
}
- const schema = options.schema.properties?.[key];
+ let schema = options.schema.properties?.[key];
+ if (key === "module_details" && schema?.properties) {
+ schema = { ...schema, properties: Object.fromEntries(Object.entries(schema.properties).filter(([field]) => modularFields.includes(field))) };
+ schema.properties!.mode = { enum: modes };
+ }
return schema ? (
(null);
const [branch, setBranch] = useState(null);
const [offset, setOffset] = useState(0);
+ const [loggingOut, setLoggingOut] = useState(false);
const root = useRef(null);
const id = useId();
useEffect(() => {
@@ -150,6 +158,33 @@ export function PortalGroupedMenu() {
)}
+ {props.auth?.user && (
+
+ )}