---
name: bedrock-capacity-request
display_name: Bedrock Capacity Request (Matador / MS-Form)
description: "Fill Bedrock capacity/access forms: Matador allowlisting, MS-Form c-score upgrade, Matador capacity requests (iTPM/oTPM for OpenAI/GPT, On-Demand for Opus 4.7/Claude). If the user's c-score is unknown, this skill first invokes c-score check (Columbo → Baywatch) to determine the correct form. NEVER clicks Submit — fills the form and stops for the user to review and submit manually. After a capacity request is submitted and a SIM ticket is created, this skill offers to invoke the 'bedrock-capacity-tracker' skill to monitor the ticket for status changes. Use when the user says 'submit matador request', 'allowlist account', 'file capacity request', 'raise c-score via form', 'fill the bedrock form', 'request opus 4.7 access', or needs to unblock a customer on Bedrock models."
icon: "🐂"
trigger: submit bedrock form
depends-on: [browser]
inputs:
  - name: aws_account_id
    description: "12-digit AWS account ID for the customer"
    type: string
    required: true
  - name: customer_name
    description: "Customer or account name (for reference/confirmation)"
    type: string
    required: true
  - name: cscore
    description: "Customer's current c-score. If not provided, the skill will look it up via Columbo/Baywatch before proceeding."
    type: number
    required: false
  - name: request_type
    description: "Type of request: 'no_access' (c-score < 210, FIT RIVER), 'model_access' (c-score < 350, MS-Form for c-score upgrade), 'allowlist' (Matador allowlist for c-score 210–300), 'capacity_mantle' (iTPM/oTPM for OpenAI/GPT models on Mantle endpoint), or 'capacity_ondemand' (On-Demand RPM/TPM for Opus 4.7, Haiku 4.5, Claude). If not provided, the skill determines it from the c-score."
    type: string
    required: false
  - name: model
    description: "Target model. For capacity_mantle: GPT-5.4, GPT-5.5, Codex. For capacity_ondemand: Opus 4.7, Haiku 4.5, Claude 4, Sonnet 4.5. For model_access: model customer needs (Opus 4.7, Haiku 4.5, GPT-5.4, GPT-5.5)."
    type: string
    required: false
  - name: region
    description: "AWS region for capacity (e.g. us-east-1, eu-west-1). Required for capacity requests."
    type: string
    required: false
  - name: input_tpm
    description: "Requested input tokens per minute. For 'capacity_mantle' type."
    type: number
    required: false
  - name: output_tpm
    description: "Requested output tokens per minute. For 'capacity_mantle' type."
    type: number
    required: false
  - name: steady_state_tpm
    description: "Projected steady-state tokens per minute. For 'capacity_ondemand' type."
    type: number
    required: false
  - name: steady_state_rpm
    description: "Projected steady-state requests per minute. For 'capacity_ondemand' type."
    type: number
    required: false
  - name: peak_tpm
    description: "Projected peak tokens per minute. For 'capacity_ondemand' type."
    type: number
    required: false
  - name: peak_rpm
    description: "Projected peak requests per minute. For 'capacity_ondemand' type."
    type: number
    required: false
  - name: cris_enabled
    description: "Whether Cross-Region Inference is enabled (yes/no). For 'capacity_ondemand'. If no, justification required."
    type: string
    required: false
    default: "yes"
  - name: use_case
    description: "Brief workload/use-case description. For capacity requests."
    type: string
    required: false
  - name: allowlist_reason
    description: "Business justification for allowlisting. Required for 'allowlist' type."
    type: string
    required: false
tools: [run_python, browser_launch, browser_navigate, browser_click, browser_type, browser_scroll, browser_close_tab, browser_wait, browser_read_page, browser_screenshot, browser_new_tab, browser_run_js]
---

## Overview

This skill fills Bedrock capacity/access forms on behalf of the user. It covers five flows:

| Flow | When | Form |
|------|------|------|
| **No Access** | c-score < 210 | FIT RIVER workflow (guidance only — no form to fill) |
| **Model Access** | c-score 210–349 | Microsoft Form to request c-score upgrade to 350+ |
| **Allowlist** | c-score 210–300 | Matador allowlist so quota requests aren't auto-rejected |
| **Capacity: Mantle** | c-score 350+ | Matador form for GPT/OpenAI iTPM/oTPM (also Opus 4.7, Haiku 4.5) |
| **Capacity: On-Demand** | c-score 350+ | Standard Matador On-Demand form for RPM/TPM quotas |

**Critical rules:**
- ⛔ **NEVER click Submit/Send.** Fill the form and stop. The user reviews and clicks Submit manually in the browser.
- 🔘 **Matador forms are dynamic — click "External" FIRST.** On every Matador form (Allowlist, Mantle, On-Demand — Flows C, D, E), the input fields are hidden until you click the button labeled **"External"**. You MUST click it and confirm the fields have appeared *before* typing anything.
- If browser tools are not available, inform the user: "This skill requires browser automation. Please ensure the browser capability is enabled in Settings → Capabilities."

## Wiki Reference

**Source of truth:** `https://w.amazon.com/bin/view/BedrockLowCScoreQuotas`

Read this wiki page at activation to get:
- Current form URLs (may change)
- C-score threshold definitions and routing rules
- Model-specific requirements
- Any updated process steps or notes

## Workflow

### Step 0: Ensure C-Score is Known

**If `{{cscore}}` is provided** → use it directly, skip to Step 1.

**If `{{cscore}}` is NOT provided** → perform c-score lookup via Columbo (primary) → Columbo Search Form (fallback) → Baywatch (last resort).

**If c-score cannot be obtained from any source** → inform user and ask them to provide it manually.

### Step 1: Read Wiki for Form URLs and Routing
Navigate to: `https://w.amazon.com/bin/view/BedrockLowCScoreQuotas`

Extract form URLs, c-score routing rules, required fields per form type, and any updated instructions.

**On failure (wiki unreachable):** Use hardcoded fallback routing:
- c-score < 210 → FIT RIVER
- c-score 210–349 + needs Opus 4.7/Haiku 4.5/GPT → MS-Form c-score upgrade
- c-score 210–300 + needs quota → Matador allowlist
- c-score 350+ + OpenAI/GPT capacity → Matador Mantle form
- c-score 350+ + Opus/Claude capacity → Matador On-Demand form

### Step 2: Determine Request Type
Use c-score and `{{request_type}}` to route to the correct form.

### Step 3: Collect Missing Inputs
Ask for any missing required fields based on request_type.

### Step 4: Fill the Form
> 🔘 **Matador dynamic-form gate (Flows C, D, E):** MUST click "External" button and confirm fields are visible before typing.

### Step 5: User Review
Take screenshot → show user → **DO NOT click Submit**.

### Step 6: Offer to Track the Ticket (Capacity Flows Only)
After user confirms submission, offer to load `bedrock-capacity-tracker` skill with the ticket ID and context.

## Important Context

- C-score **350+** required for Opus 4.7 / Haiku 4.5 / GPT 5.4 / GPT 5.5
- Low c-score accounts (210–300) must be **allowlisted** in Matador before quota requests can be approved
- **CRIS** provides up to 2x burst capacity at no extra cost — quota requests without CRIS need L8 approval
- Questions: `cscore-sup-bedrock@amazon.com`

## Error Handling

- **Browser not available**: Inform user to enable browser tools in Settings → Capabilities.
- **Midway auth required**: Ask user to authenticate then continue.
- **Form URL changed**: Provide wiki link for manual lookup.
- **C-score unavailable**: Ask user to provide manually.
