Validate Identified Readiness / Construction Phase stamps on Issues, Risks, and Tasks,
plus Task Blocking, layouts, list views, and reports in
GOAABox.
0. Before you start — org blocker (required)
As of 3 Aug 2026 afternoon, Metadata API deploys of new custom fields to GOAABox
report Success, but fields do not become queryable/describable (including a simple Account text canary).
Soft-deleted prior stamp fields also remain in the Deleted Fields recycle bin
(*_del / *_del1), and Tooling erase returns
insufficient access for this user.
Do this once in Setup before UAT of stamps:
Open Issue Fields and permanently Erase any Deleted Fields named like
Identified Readiness/Construction Phase, Phase Stamp Source/Confidence.
Create one test text field on Issue via the New button in Setup
(not Metadata). If that field appears on a record page / is queryable, create the remaining stamp fields
(or ask Faizan to redeploy from source). Required APIs:
Identified_Readiness_Phase__c
Identified_Construction_Phase__c
Phase_Stamp_Source__c
Phase_Stamp_Confidence__c
on Issue + Risk; same four + Is_Blocking__c on Activity/Task.
Use Global Value Sets CITIRI__Project_Phases_Readiness and
CITIRI__Project_Phases_Construction for the phase picklists.
After fields are live, redeploy Apex (PhaseStampService + triggers + batch) and permission sets,
then run backfill (section 8). Until then, automation / list views / reports that depend on stamps cannot pass.
Open GOAA Phase Stamp Edit → Manage Assignments and spot-check a Platform user
(e.g. an ORAT PM). They should appear in the assigned list.
Expected: Edit grants read/edit on both Identified phase fields, audit stamps, and Task Blocking.
2. Field History — Project Construction Phase
Historic Construction stamps were blank because history was off. Going forward, history must track
CITIRI__Construction_Phase__c so later backfills can interpolate.
Open Project Object Manager → Fields → Construction Phase → Set History Tracking
(or Object History settings).
Confirm Construction Phase is checked for history. (Deploy already set
IsFieldHistoryTracked = true.)
Optional smoke: on Sample P1X project, temporarily change Construction Phase, Save, then change it back.
Open Related → Project History (or field history related list) and confirm both changes logged.
3. Create Issue from Project via quick action
Forward automation stamps phases on before insert when Project is set and as-of date is today
(uses current Project phases). Quick action on Project: New Issue
((Log_Issue).
Open Sample P1X-Style Project (Readiness = Organizing, Construction = Planning).
On the record page highlights / button bar (top right), open the actions menu if needed
(▼ / Show more actions) and click New Issue.
If you don’t see New Issue
Confirm you are on the GOAA Project Page Lightning page and your profile has the
Project quick action Log_Issue. Admins: App Builder → GOAA Project Page →
Mobile & Lightning Actions.
In the create panel / modal, enter:
Issue Name:UAT Stamp Issue — Sample (do not use a Post Opening prefix)
Date Identified: today (or leave default if prefilled)
Project should already be the current project
Save.
After save, Salesforce usually opens the new Issue. If not: on the Project, open the
Issues related list / tab and click the Issue you just created.
On the Issue record, find fields near Project / Date Identified (Stakeholder Issue layout):
Identified Readiness Phase and Identified Construction Phase.
Subject: UAT Stamp Task — Sample.
Set Status / Due Date as required by the layout.
Check Blocking if visible on the create form; otherwise set it after save on the Task layout.
Save.
Find the Task: Project → Open Activities / Activity related list, or global Task tab search.
On Task (Task Layout / Stakeholder Layout), confirm:
Identified Readiness / Construction, Blocking = true, Owner is populated.
Users with Edit PS should be able to manually override stamps (automation does not fight later Project Path changes).
Layouts updated in source: Issue Layout (Stakeholder), Stakeholder Risk, Task Layout, Task Stakeholder Layout.
Packaged CITIRI Issue/Risk layouts cannot be retrieved/overwritten via Metadata in this org; Platform users
typically use the Stakeholder layouts.
Open your UAT Issue → click Edit.
Change Identified Readiness Phase to a different value (e.g. Transition). Save.
Expected: Save succeeds; value sticks; Project Path change later does not overwrite it.
Repeat on Risk and Task for Identified Construction Phase and (Task) Blocking.
As a user without Edit PS (if available): stamps should be read-only or hidden (FLS).
Confirm layout placement: stamps appear near Project / identified-or-log/recorded date — not buried only in System Information.
Open Blocking shows your UAT task with Blocking = true and Status not Completed.
8. Historic backfill
Batch fills existing Issue/Risk/Task stamps from name prefix (wins) then Project Readiness history.
Construction historic stays blank until history accumulates. Bulkified batch:
PhaseStampBackfillBatch.
Confirm stamp fields are queryable (section 0 complete) and Apex classes exist.
In Developer Console / VS Code / Anonymous Apex (GOAABox), run sequentially:
Spot-check a known “Post Opening - …” Issue: readiness should be Post-Opening, Source = Prefix.
Spot-check records on a project with Readiness history (Terminal C P1X): readiness should match
phase at Date Identified / CreatedDate, not necessarily current Project phase.
9. Reports on existing records
v1 reporting is standard reports (no dashboard). Build once fields are live.
Report A — Issues by Identified Readiness: report type Issues (or Issues with Project).
Group by Identified Readiness Phase; columns: Issue Name, Project, Date Identified, Status, Identified Construction Phase, Phase Stamp Source.
Filter Status ≠ Closed (optional).
Report B — Open Blocking Tasks by Owner: Tasks report.
Filters: Blocking = True, Status ≠ Completed.
Group by Assigned To; show Subject, Project, Identified Readiness, Due Date.
Report C — Needs Identified Phase: Issues where Identified Readiness Phase equals blank
(cleanup queue after backfill).
Run each report and confirm row counts roughly match list views / expectations for P1X projects.