# Investigation & Remediation Handoff Report: UI Template Parentheticals Elimination

> **Agent**: `explorer_remediate_2` (Template Parentheticals Explorer)  
> **Parent**: `a8122c75-321a-4be0-bc44-2ff49f028481`  
> **Working Directory**: `c:\Projects\FreeExile\.agents\teamwork\explorer_remediate_2`  
> **Scope**: Detailed audit and exact drop-in replacements for the 16 parenthetical occurrences in UI templates & `index.html` identified by Challenger 1.  
> **Patch Artifact**: `c:\Projects\FreeExile\.agents\teamwork\explorer_remediate_2\parentheticals_remediation.patch`

---

## 1. Observation

### 1.1 Direct Observation of the 16 Occurrences
Executing `python .agents/teamwork/challenger_streamline_1/adversarial_ui_stress_test.py` and running the dedicated AST/DOM inspector (`audit_sections1_2.py`) confirmed exactly 16 occurrences of parenthetical substrings `(` or `)` in user-facing headings, labels, button titles/text, and input attributes across 5 files:

| # | File Path | Line | Element / Context | Verbatim Current Code |
|---|---|---|---|---|
| 1 | `client/webapp/index.html` | 34 | `<div id="hud-char-status-card">` `data-tooltip-title` | `data-tooltip-title="Tân Thủ Lưu Đày (Lv.1)"` |
| 2 | `client/webapp/js/ui/templates/template_catalog_activities.js` | 148 | `modal-web3` `<h3>` heading | `<h3 class="text-sm font-bold text-cyan-300">Thanh Toán Web3 Crypto (Non-Custodial)</h3>` |
| 3 | `client/webapp/js/ui/templates/template_catalog_auth.js` | 97 | `modal-account` `<label>` (Password) | `<label class="block text-stone-300 font-semibold mb-1">Mật Khẩu <span class="text-rose-400">* (Tối thiểu 8 ký tự)</span></label>` |
| 4 | `client/webapp/js/ui/templates/template_catalog_auth.js` | 102 | `modal-account` `<label>` (Username) | `<label class="block text-stone-300 font-semibold mb-1">Tên Nhân Vật / Hiệu Tự (Tùy chọn)</label>` |
| 5 | `client/webapp/js/ui/templates/template_catalog_auth.js` | 161 | `modal-account` `<label>` (OTP) | `<label class="block text-stone-300 text-xs font-semibold">Mã OTP Kích Hoạt (6 chữ số)</label>` |
| 6 | `client/webapp/js/ui/templates/template_catalog_auth.js` | 206 | `modal-account` `<label>` checkbox `<span>` | `<span class="text-xs">Ghi nhớ đăng nhập trên thiết bị (Lưu token an toàn)</span>` |
| 7 | `client/webapp/js/ui/templates/template_catalog_auth.js` | 224 | `modal-account` `<h3>` heading (OAuth) | `<h3 class="font-bold text-stone-200 text-sm flex items-center gap-2"><span>🌐</span> Đăng Nhập Bằng Tài Khoản Liên Kết (OAuth 2.0 / OIDC)</h3>` |
| 8 | `client/webapp/js/ui/templates/template_catalog_auth.js` | 317 | `modal-account` `<h4>` heading (Char list) | `<h4 class="font-bold text-xs text-amber-300/90 flex items-center gap-1.5"><span>⚔️</span> Danh Sách Nhân Vật (Cấp 1 & Mùa Giải)</h4>` |
| 9 | `client/webapp/js/ui/templates/template_catalog_auth.js` | 422 | `modal-char-create` `<label>` (Char name) | `<label class="block text-stone-300 font-semibold">Tên Nhân Vật (Hiệu Tự)</label>` |
| 10 | `client/webapp/js/ui/templates/template_catalog_auth.js` | 423 | `modal-char-create` `<input>` placeholder | `<input id="input-char-name" type="text" placeholder="Nhập tên nhân vật (3 - 24 ký tự)" ...>` |
| 11 | `client/webapp/js/ui/templates/template_catalog_inventory.js` | 139 | `modal-character` `<button>` `title` | `<button onclick="window.toggleBagModal()" ... title="Mở Túi Đồ Sinh Tồn (I / B)">` |
| 12 | `client/webapp/js/ui/templates/template_catalog_inventory.js` | 202 | `modal-bag` `<button>` `title` | `<button onclick="window.toggleCharacterModal()" ... title="Mở Đồ Đang Mặc (C)">` |
| 13 | `client/webapp/js/ui/templates/template_catalog_inventory.js` | 328 | `modal-loot-filter` `<label>` `<span>` | `<span class="text-stone-300">Tự động nhặt Trang Bị Cực Phẩm (Hoàng Kim):</span>` |
| 14 | `client/webapp/js/ui/templates/template_catalog_inventory.js` | 474 | `modal-forge` `<h3>` heading | `<h3 class="font-semibold text-xs text-stone-200 uppercase tracking-wide flex items-center gap-1.5"><span>💎</span> Ma Trận 15 Tiers Dòng Thuộc Tính (T1 - T15)</h3>` |
| 15 | `client/webapp/js/ui/templates/template_catalog_system.js` | 324 | `modal-feedback` `<button>` tab button | `<button id="tab-btn-feedback-history" ...><span>📜</span> Lịch Sử (<span id="txt-feedback-badge-count" class="text-amber-400/90 font-mono font-bold">0</span>)</button>` |
| 16 | `client/webapp/js/ui/templates/template_catalog_system.js` | 356 | `modal-feedback` `<label>` hint `<span>` | `<span class="text-[10px] text-stone-500 font-normal">(Tối thiểu 10 ký tự)</span>` |

### 1.2 Inspection of Related DOM & JS Bindings
- In `index.html:34`, `#hud-char-status-card` defines `data-tooltip-title-key="char_status_tooltip_title"`. In `i18n_catalog.js`, `I18N_CATALOG.vi.char_status_tooltip_title` is `"Lưu Đày"`. The static fallback string `"Tân Thủ Lưu Đày (Lv.1)"` was out-of-sync with the dictionary and introduced `(Lv.1)`.
- In `template_catalog_system.js:324`, JavaScript `feedback.js:145` updates `txtBadge.innerText = history.length` on `#txt-feedback-badge-count`. The parentheses `(` and `)` are literal text characters directly wrapping the `<span>`, not generated dynamically. Removing the literal text preserves badge updating functionality 100%.
- In `template_catalog_auth.js:423`, the input element has `id="input-char-name"`. JavaScript queries this element to read `.value.trim()`. Changing the `placeholder` attribute does not impact event handlers or form submission.
- In `template_catalog_inventory.js:139,202`, both buttons have `onclick="window.toggleBagModal()"` and `onclick="window.toggleCharacterModal()"`. Modifying their `title` attributes does not affect event listeners or DOM structure.

---

## 2. Logic Chain

1. **Alignment with Requirements**:
   - Original User Request §R1 commands: *"Loại bỏ hoàn toàn định dạng nhãn song ngữ kép cồng kềnh `Tiếng Việt (English)` trên các nút bấm... 100% nhãn UI phải là thuật ngữ ngắn gọn từ 1 đến 2 từ."*
   - Acceptance Criteria dictates: *"Không còn bất kỳ nhãn UI nào chứa định dạng song ngữ kép dạng `A (B)`."*
   - Challenger 1 formulated the adversarial rule: Zero parenthetical substrings `(` or `)` in user-facing UI labels, headings, buttons, and target attributes.

2. **Analysis of Parenthetical Roles**:
   - **Hotkeys / Abbreviations**: `(Lv.1)`, `(I / B)`, `(C)`. Hotkeys are already rendered separately in keyboard tooltips (e.g. `data-tooltip-hotkey="C"`) or can be omitted from concise title microcopy.
   - **Explanatory Modifiers**: `(Non-Custodial)`, `(Tùy chọn)`, `(6 chữ số)`, `(Lưu token an toàn)`, `(OAuth 2.0 / OIDC)`, `(Cấp 1 & Mùa Giải)`, `(Hiệu Tự)`, `(Hoàng Kim)`, `(T1 - T15)`. These are parenthetical qualifiers that clutter UI headings and labels. Eliminating them yields crisp, modern microcopy.
   - **Input Constraints**: `(Tối thiểu 8 ký tự)`, `(3 - 24 ký tự)`, `(Tối thiểu 10 ký tự)`. The parentheses can either be removed leaving clean text (e.g. `Tối thiểu 10 ký tự`), or the constraint is sufficiently implied by input validation/placeholder without cluttering the label.
   - **Counter Wrappers**: `(<span id="txt-feedback-badge-count">0</span>)`. The parentheses enclosing the counter badge are purely decorative and violate the zero-parens rule. Removing them produces `Lịch Sử 0`, which is standard modern badge styling.

3. **Validation of Proposed Replacements**:
   - All proposed replacements were tested against Challenger 1's adversarial test functions via `verify_replacements.py`.
   - **Result**: Parenthetical violations drop from **16 to 0**. Interactive controls word count violations remain **0**. Serif font violations remain **0**.

---

## 3. Exact Drop-In Replacements

### Item 1: `client/webapp/index.html` (Line 34)
- **Target**: `hud-char-status-card` tooltip title attribute.
- **Before**:
  ```html
  <div id="hud-char-status-card" class="pointer-events-auto flex items-center gap-2 bg-stone-950/85 backdrop-blur-md border border-amber-900/40 px-2.5 py-1.5 rounded-lg shadow-xl cursor-pointer" data-tooltip-title-key="char_status_tooltip_title" data-tooltip-desc-key="char_status_tooltip_desc" data-tooltip-title="Tân Thủ Lưu Đày (Lv.1)" data-tooltip-desc="Trạng thái sinh lực và thể phách nhân vật." data-tooltip-hotkey="C">
  ```
- **After**:
  ```html
  <div id="hud-char-status-card" class="pointer-events-auto flex items-center gap-2 bg-stone-950/85 backdrop-blur-md border border-amber-900/40 px-2.5 py-1.5 rounded-lg shadow-xl cursor-pointer" data-tooltip-title-key="char_status_tooltip_title" data-tooltip-desc-key="char_status_tooltip_desc" data-tooltip-title="Lưu Đày" data-tooltip-desc="Trạng thái sinh lực và thể phách nhân vật." data-tooltip-hotkey="C">
  ```
- **Rationale**: Synchronizes static fallback with `I18N_CATALOG.vi.char_status_tooltip_title` (`"Lưu Đày"`), respects 2-word microcopy, and eliminates `(Lv.1)`.

---

### Item 2: `client/webapp/js/ui/templates/template_catalog_activities.js` (Line 148)
- **Target**: Web3 Modal heading.
- **Before**:
  ```html
  <h3 class="text-sm font-bold text-cyan-300">Thanh Toán Web3 Crypto (Non-Custodial)</h3>
  ```
- **After**:
  ```html
  <h3 class="text-sm font-bold text-cyan-300">Thanh Toán Web3</h3>
  ```
- **Rationale**: Removes `Crypto (Non-Custodial)`. Clean 2-word microcopy, zero parens.

---

### Item 3: `client/webapp/js/ui/templates/template_catalog_auth.js` (Line 97)
- **Target**: Registration password label.
- **Before**:
  ```html
  <label class="block text-stone-300 font-semibold mb-1">Mật Khẩu <span class="text-rose-400">* (Tối thiểu 8 ký tự)</span></label>
  ```
- **After**:
  ```html
  <label class="block text-stone-300 font-semibold mb-1">Mật Khẩu <span class="text-rose-400">*</span></label>
  ```
- **Rationale**: Parallels Line 92 (`Email Tài Khoản <span class="text-rose-400">*</span>`), eliminates `(Tối thiểu 8 ký tự)`.

---

### Item 4: `client/webapp/js/ui/templates/template_catalog_auth.js` (Line 102)
- **Target**: Registration character name label.
- **Before**:
  ```html
  <label class="block text-stone-300 font-semibold mb-1">Tên Nhân Vật / Hiệu Tự (Tùy chọn)</label>
  ```
- **After**:
  ```html
  <label class="block text-stone-300 font-semibold mb-1">Tên Nhân Vật</label>
  ```
- **Rationale**: Streamlined to 2 words, eliminates dual naming and `(Tùy chọn)`. Line 103 placeholder already indicates optionality.

---

### Item 5: `client/webapp/js/ui/templates/template_catalog_auth.js` (Line 161)
- **Target**: OTP input label.
- **Before**:
  ```html
  <label class="block text-stone-300 text-xs font-semibold">Mã OTP Kích Hoạt (6 chữ số)</label>
  ```
- **After**:
  ```html
  <label class="block text-stone-300 text-xs font-semibold">Mã OTP Kích Hoạt</label>
  ```
- **Rationale**: Eliminates `(6 chữ số)`. Input already enforces `maxlength="6"` and `placeholder="000000"`.

---

### Item 6: `client/webapp/js/ui/templates/template_catalog_auth.js` (Line 206)
- **Target**: Remember login checkbox label text.
- **Before**:
  ```html
  <span class="text-xs">Ghi nhớ đăng nhập trên thiết bị (Lưu token an toàn)</span>
  ```
- **After**:
  ```html
  <span class="text-xs">Ghi nhớ đăng nhập</span>
  ```
- **Rationale**: Eliminates `(Lưu token an toàn)`. Clean microcopy.

---

### Item 7: `client/webapp/js/ui/templates/template_catalog_auth.js` (Line 224)
- **Target**: OAuth panel heading.
- **Before**:
  ```html
  <h3 class="font-bold text-stone-200 text-sm flex items-center gap-2">
    <span>🌐</span> Đăng Nhập Bằng Tài Khoản Liên Kết (OAuth 2.0 / OIDC)
  </h3>
  ```
- **After**:
  ```html
  <h3 class="font-bold text-stone-200 text-sm flex items-center gap-2">
    <span>🌐</span> Đăng Nhập Liên Kết
  </h3>
  ```
- **Rationale**: Eliminates `(OAuth 2.0 / OIDC)`. 2-word concise heading.

---

### Item 8: `client/webapp/js/ui/templates/template_catalog_auth.js` (Line 317)
- **Target**: Character list section heading.
- **Before**:
  ```html
  <h4 class="font-bold text-xs text-amber-300/90 flex items-center gap-1.5">
    <span>⚔️</span> Danh Sách Nhân Vật (Cấp 1 & Mùa Giải)
  </h4>
  ```
- **After**:
  ```html
  <h4 class="font-bold text-xs text-amber-300/90 flex items-center gap-1.5">
    <span>⚔️</span> Danh Sách Nhân Vật
  </h4>
  ```
- **Rationale**: Eliminates `(Cấp 1 & Mùa Giải)`. Standard heading.

---

### Item 9: `client/webapp/js/ui/templates/template_catalog_auth.js` (Line 422)
- **Target**: Character creation name input label.
- **Before**:
  ```html
  <label class="block text-stone-300 font-semibold">Tên Nhân Vật (Hiệu Tự)</label>
  ```
- **After**:
  ```html
  <label class="block text-stone-300 font-semibold">Tên Nhân Vật</label>
  ```
- **Rationale**: Eliminates `(Hiệu Tự)`. Exactly 2 words.

---

### Item 10: `client/webapp/js/ui/templates/template_catalog_auth.js` (Line 423)
- **Target**: Character creation name input placeholder.
- **Before**:
  ```html
  <input id="input-char-name" type="text" placeholder="Nhập tên nhân vật (3 - 24 ký tự)" class="w-full bg-stone-950 border border-stone-800 rounded-xl px-3.5 py-2 text-stone-200 font-bold focus:outline-none focus:border-stone-600">
  ```
- **After**:
  ```html
  <input id="input-char-name" type="text" placeholder="Nhập tên nhân vật" class="w-full bg-stone-950 border border-stone-800 rounded-xl px-3.5 py-2 text-stone-200 font-bold focus:outline-none focus:border-stone-600">
  ```
- **Rationale**: Eliminates `(3 - 24 ký tự)` from the placeholder attribute.

---

### Item 11: `client/webapp/js/ui/templates/template_catalog_inventory.js` (Line 139)
- **Target**: Toggle Bag button `title` attribute.
- **Before**:
  ```html
  <button onclick="window.toggleBagModal()" class="px-2 py-1 rounded-md bg-stone-900 border border-stone-700 hover:border-amber-500/60 text-stone-300 hover:text-amber-200 text-[10px] font-medium transition flex items-center gap-1 shadow-sm" title="Mở Túi Đồ Sinh Tồn (I / B)">
  ```
- **After**:
  ```html
  <button onclick="window.toggleBagModal()" class="px-2 py-1 rounded-md bg-stone-900 border border-stone-700 hover:border-amber-500/60 text-stone-300 hover:text-amber-200 text-[10px] font-medium transition flex items-center gap-1 shadow-sm" title="Túi Đồ">
  ```
- **Rationale**: Eliminates hotkey `(I / B)`. Replaces verbose title with clean 2-word microcopy `"Túi Đồ"`.

---

### Item 12: `client/webapp/js/ui/templates/template_catalog_inventory.js` (Line 202)
- **Target**: Toggle Character modal button `title` attribute.
- **Before**:
  ```html
  <button onclick="window.toggleCharacterModal()" class="px-2 py-1 rounded-md bg-stone-900 border border-stone-700 hover:border-amber-500/60 text-stone-300 hover:text-amber-200 text-[10px] font-medium transition flex items-center gap-1 shadow-sm" title="Mở Đồ Đang Mặc (C)">
  ```
- **After**:
  ```html
  <button onclick="window.toggleCharacterModal()" class="px-2 py-1 rounded-md bg-stone-900 border border-stone-700 hover:border-amber-500/60 text-stone-300 hover:text-amber-200 text-[10px] font-medium transition flex items-center gap-1 shadow-sm" title="Nhân Vật">
  ```
- **Rationale**: Eliminates hotkey `(C)`. Replaces verbose title with clean 2-word microcopy `"Nhân Vật"`.

---

### Item 13: `client/webapp/js/ui/templates/template_catalog_inventory.js` (Line 328)
- **Target**: Loot filter option label.
- **Before**:
  ```html
  <span class="text-stone-300">Tự động nhặt Trang Bị Cực Phẩm (Hoàng Kim):</span>
  ```
- **After**:
  ```html
  <span class="text-stone-300">Tự động nhặt Trang Bị Hoàng Kim:</span>
  ```
- **Rationale**: Eliminates `(Hoàng Kim)`. Unambiguously uses the in-game tier term "Hoàng Kim".

---

### Item 14: `client/webapp/js/ui/templates/template_catalog_inventory.js` (Line 474)
- **Target**: Forge tier matrix section heading.
- **Before**:
  ```html
  <h3 class="font-semibold text-xs text-stone-200 uppercase tracking-wide flex items-center gap-1.5">
    <span>💎</span> Ma Trận 15 Tiers Dòng Thuộc Tính (T1 - T15)
  </h3>
  ```
- **After**:
  ```html
  <h3 class="font-semibold text-xs text-stone-200 uppercase tracking-wide flex items-center gap-1.5">
    <span>💎</span> Ma Trận 15 Tiers Dòng Thuộc Tính
  </h3>
  ```
- **Rationale**: Eliminates `(T1 - T15)`. Preserves full technical title.

---

### Item 15: `client/webapp/js/ui/templates/template_catalog_system.js` (Line 324)
- **Target**: Feedback modal history tab button text.
- **Before**:
  ```html
  <button id="tab-btn-feedback-history" class="feedback-nav-btn px-3.5 py-1.5 rounded-lg bg-stone-900/80 hover:bg-stone-800 text-stone-400 border border-stone-800 transition flex items-center gap-1.5">
    <span>📜</span> Lịch Sử (<span id="txt-feedback-badge-count" class="text-amber-400/90 font-mono font-bold">0</span>)
  </button>
  ```
- **After**:
  ```html
  <button id="tab-btn-feedback-history" class="feedback-nav-btn px-3.5 py-1.5 rounded-lg bg-stone-900/80 hover:bg-stone-800 text-stone-400 border border-stone-800 transition flex items-center gap-1.5">
    <span>📜</span> Lịch Sử <span id="txt-feedback-badge-count" class="text-amber-400/90 font-mono font-bold">0</span>
  </button>
  ```
- **Rationale**: Eliminates the literal `(` and `)` wrapping the badge span. Preserves `#txt-feedback-badge-count` DOM element and JS update behavior in `feedback.js:146`.

---

### Item 16: `client/webapp/js/ui/templates/template_catalog_system.js` (Line 356)
- **Target**: Feedback content label character count hint.
- **Before**:
  ```html
  <span class="text-[10px] text-stone-500 font-normal">(Tối thiểu 10 ký tự)</span>
  ```
- **After**:
  ```html
  <span class="text-[10px] text-stone-500 font-normal">Tối thiểu 10 ký tự</span>
  ```
- **Rationale**: Eliminates `(` and `)`. Keeps the helpful character length guidance.

---

## 4. Caveats

1. **Scope Boundary**:
   - The 16 target occurrences represent **100%** of the violations detected by Challenger 1's adversarial harness, which strictly audits headings (`<h1>`-`<h6>`), form `<label>` tags, interactive controls (`<button>`, `<a>`), and specific attributes (`data-tooltip-title`, `title`, `aria-label`, `placeholder`).
2. **Additional Non-Heading/Non-Label Occurrences in Body Text**:
   - Our broader audit (`audit_parentheticals.py`) revealed several secondary parentheticals in informational body paragraphs (`<p>`), technical data badges (`<span>`), and dropdown select elements (`<option>`), such as:
     - `template_catalog_activities.js: modal-season`: `<p>` mentioning `Tab Chỉ Rút (Remove-Only)`.
     - `template_catalog_activities.js: modal-agent-orb`: `<option>` descriptions such as `Lõi Phản Xạ Cục Bộ (0ms, Miễn Phí)`, `DeepSeek V3 (Chiến thuật cao)`, etc.
     - `template_catalog_inventory.js: modal-vault`: `<span>` stat summaries such as `4,820 (Giảm 62% ST)`, `75% (Tối đa)`.
     - `template_catalog_world.js: modal-hideout`: `<option>` zone levels like `Tier 1: Bờ Đá Tàn Xương (Lv. 68)`.
   - **Recommendation**: These elements do not fail Challenger 1's test because they are descriptive data values or select options rather than button/tab labels or headings. If the orchestrator wishes to eliminate all parentheticals from `<option>` and `<p>` tags as well, a second follow-up remediation can be applied without breaking gameplay.
3. **No Direct Source Modification**:
   - In accordance with the Explorer archetype read-only rules, no edits were applied directly to files in `client/` or `server/`. All proposed changes have been verified in-memory and encapsulated into `parentheticals_remediation.patch`.

---

## 5. Conclusion

- **Assessment**: The 16 parenthetical occurrences identified by Challenger 1 are verified and fully reproducible.
- **Feasibility**: All 16 can be cleanly remediated with zero side effects. The proposed replacements eliminate `(` and `)` completely, preserve all DOM IDs, classes, and JS behaviors, and strictly adhere to the $\le 2$ words microcopy standard.
- **Deliverable**: A clean, unified, machine-applicable patch file is ready at `c:\Projects\FreeExile\.agents\teamwork\explorer_remediate_2\parentheticals_remediation.patch`.
- **Verdict**: Applying this patch will flip Challenger 1's adversarial verdict from `REQUEST_CHANGES` to **`APPROVE`**.

---

## 6. Verification Method

### 6.1 Independent Verification of Proposed Patch
To verify that the proposed replacements resolve all 16 violations:

1. **Run In-Memory Simulation Harness**:
   ```bash
   python .agents/teamwork/explorer_remediate_2/verify_replacements.py
   ```
   **Expected Output**:
   ```text
   Testing In-Memory Modified Code Against Challenger 1 Rules...
   Total Remaining Parenthetical Violations: 0
   SUCCESS! Zero parenthetical violations remain in headings, labels, buttons, or target attributes!
   Total Remaining Interactive Word Count Violations: 0
   SUCCESS! Zero interactive word count violations remain!
   ```

2. **Applying the Patch (for Implementer Agent)**:
   ```bash
   git apply .agents/teamwork/explorer_remediate_2/parentheticals_remediation.patch
   ```

3. **Re-running Challenger 1's Adversarial Stress Test**:
   ```bash
   python .agents/teamwork/challenger_streamline_1/adversarial_ui_stress_test.py
   ```
   **Expected Output**:
   ```text
   Total Interactive Word Count Violations: 0
   Total Parenthetical Violations: 0
   Total Serif Font Violations: 0
   pytest E2E: PASS (exit 0)
   unittest Localization: PASS (exit 0)
   FINAL ADVERSARIAL VERDICT: APPROVE
   ```

4. **Running Standard Regression Suites**:
   ```bash
   pytest tests/e2e/test_ui_typography_i18n_wiki_streamlining_e2e.py -v
   python -m unittest tests/unit/test_webapp_localization_engine.py -v
   python tools/lint/check_code_and_doc_hygiene.py --strict
   ```
   **Expected Output**: All suites exit code 0.
