GOAABox UAT Read blocker note first

Project Stage Tagging — UAT Guide

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:

  1. Open Issue Fields and permanently Erase any Deleted Fields named like Identified Readiness/Construction Phase, Phase Stamp Source/Confidence.
  2. 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.
  3. 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.

Quick links

ProjectReadinessConstruction
Sample P1X-Style ProjectOrganizingPlanning
Terminal C P1X Gates 250-253TransitionSubstantial Completion
P1X Gates 250-253PlanningConstruction

Contents

1. Permission set — Phase Stamp Edit

Platform users need FLS to see/edit stamp fields. GOAA_Phase_Stamp_Edit was assigned to all 40 active Salesforce Platform license users in GOAABox.
  1. Open Permission Sets and confirm GOAA Phase Stamp Edit exists (also Read + Backfill).
  2. 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.
  1. Open Project Object Manager → Fields → Construction Phase → Set History Tracking (or Object History settings).
  2. Confirm Construction Phase is checked for history. (Deploy already set IsFieldHistoryTracked = true.)
  3. 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).
  1. Open Sample P1X-Style Project (Readiness = Organizing, Construction = Planning).
  2. 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.
  3. 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.
  4. 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.
  5. On the Issue record, find fields near Project / Date Identified (Stakeholder Issue layout): Identified Readiness Phase and Identified Construction Phase.
    Expected: Readiness = Organizing, Construction = Planning, Source ≈ Automation, Confidence ≈ Medium.
  6. Optional prefix test: create another Issue named Post Opening - UAT prefix on the same project.
    Expected: Identified Readiness = Post-Opening, Source = Prefix (prefix wins).

4. Create Risk from Project via quick action

Same stamping rules; as-of date is CITIRI__Log_Date__c. Quick action label: New Risk (Log_Risk).
  1. Stay on Sample P1X-Style Project (or reopen it).
  2. From the action bar, click New Risk.
  3. Name: UAT Stamp Risk — Sample. Confirm Log Date is today. Save.
  4. Open the new Risk from the save redirect or from the Project Risks related list/tab.
  5. Confirm stamp fields on the Stakeholder Risk layout (near Project).
    Expected: Readiness = Organizing, Construction = Planning.

5. Create Task from Project via quick action

Standard Task (not Project Task). Quick action: New Task. As-of = Date_Recorded__c. Also verify Blocking checkbox and Owner.
  1. On Sample P1X-Style Project, click New Task in the action bar.
  2. 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.
  3. Find the Task: Project → Open Activities / Activity related list, or global Task tab search.
  4. On Task (Task Layout / Stakeholder Layout), confirm: Identified Readiness / Construction, Blocking = true, Owner is populated.
    Expected: Organizing + Planning stamps; Blocking checked; Owner shown.

6. Page layouts & field editability

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.
  1. 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.
  2. Repeat on Risk and Task for Identified Construction Phase and (Task) Blocking.
  3. As a user without Edit PS (if available): stamps should be read-only or hidden (FLS).
  4. Confirm layout placement: stamps appear near Project / identified-or-log/recorded date — not buried only in System Information.

7. List views

List views give Jackie stage filtering without dashboards (v1).
  1. Open Issues list → list-view picker → Needs Identified Phase and By Identified Readiness Phase.
    Needs view: blank readiness only. By Readiness: columns include both stamp fields.
  2. Repeat for Risks.
  3. Open Tasks → Open Blocking Tasks and Needs Identified Phase.
    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.
  1. Confirm stamp fields are queryable (section 0 complete) and Apex classes exist.
  2. In Developer Console / VS Code / Anonymous Apex (GOAABox), run sequentially:
    Database.executeBatch(new PhaseStampBackfillBatch('Issue', true), 200);
    // wait until Async Apex Job completes, then:
    Database.executeBatch(new PhaseStampBackfillBatch('Risk', true), 200);
    Database.executeBatch(new PhaseStampBackfillBatch('Task', true), 200);
  3. Spot-check a known “Post Opening - …” Issue: readiness should be Post-Opening, Source = Prefix.
  4. 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.
  1. Open Reports → New Report.
  2. 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).
  3. 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.
  4. Report C — Needs Identified Phase: Issues where Identified Readiness Phase equals blank (cleanup queue after backfill).
  5. Run each report and confirm row counts roughly match list views / expectations for P1X projects.

10. Sign-off checklist

Soft-deleted fields erased; stamp fields queryable
Apex triggers stamp on New Issue / New Risk / New Task
Prefix “Post Opening” maps to Post-Opening
Manual edit of stamps works with Edit PS
List views work (Needs / By Readiness / Open Blocking)
Backfill completed for Issue, Risk, Task
Reports usable for Jackie
Construction Phase history confirmed on Project

Tester: ______________    Date: ______________    Org: GOAABox