| ID | Scenario | Category | Severity | v3 Status | Patterns | Update | Review |
|---|
| ID | Pattern | v3 Section | Status | Description | Fix |
|---|
| ID | Priority | Title | Section | What to Change | Fixes | Status |
|---|
A scenario is auto-marked Pass only if its Issue Identified or Additional Notes contains the phrase "No issues" or "No major issues". Everything else defaults to To Confirm. Use the dropdowns in the Coverage Matrix tab to manually set Pass / Fail / To Confirm. Roll-ups: a sub-category passes only if every scenario passes; a category passes only if every sub-category passes; any Fail propagates upward.
By Category
Top-level categories rolled up from sub-categories
By Sub-Category
Sub-categories rolled up from individual scenarios
By Sub-Sub-Category
Individual scenarios (the leaf level)
Pass / Fail by Category
Per-category counts of individual scenarios (not roll-ups). Sorted by Fail count descending.
Every scenario's Issue Identified field, checked against the saved Vera Joy prompt by AI. If the prompt already addresses an issue, it's marked Resolved with a green check and a quote from the prompt as evidence; otherwise it stays Open. Results are cached per-browser — re-run the check after updating the prompt.
All comments added in the Coverage Matrix, grouped by Category → Sub-category → Scenario. Comments are stored in this browser's localStorage. Use Export comments to share with the team.
Paste the current production Vera Joy prompt from Vapi below. This is the single source of truth used by the Optimize tab to compare against FAIL scenarios. Anyone signed in can update it; the server stores the latest version with author + timestamp.
AI-driven prompt optimizer. Runs Claude over every scenario currently marked Fail in the Coverage Matrix, compares them against the saved Vera Joy prompt, and produces prioritized P0/P1/P2 recommendations. Results are cached in this browser — click Run AI Analysis to refresh.
| Set | Title | # Scenarios | Summary |
|---|
Deploy this tracker at dcaagenttracker.teleperson.com
This file is fully self-contained — no backend, no build step. Pick one of the hosting options below.
Option 1: Cloudflare Pages (recommended)
1. Sign in to Cloudflare → Pages → Create project → Direct upload. 2. Drop in this single index.html file. 3. After deploy, go to: Pages → your project → Custom domains → Set up a custom domain → enter "dcaagenttracker.teleperson.com". 4. Cloudflare will give you a CNAME target. Add that as a CNAME in your DNS. 5. Cloudflare provisions an SSL cert automatically.
Option 2: Netlify
1. Netlify → Sites → Drop the index.html file into the upload area. 2. Site settings → Domain management → Add custom domain → "dcaagenttracker.teleperson.com". 3. Netlify gives you the DNS records (CNAME). SSL is automatic.
Option 3: AWS S3 + CloudFront / Option 4: GitHub Pages
S3+CloudFront: bucket → static hosting → CloudFront origin → ACM cert in us-east-1 → CNAME in DNS. GitHub Pages: push to repo → Settings → Pages → custom domain → CNAME to org.github.io.
DNS — at the Teleperson registrar
Type: CNAME Name: dcaagenttracker Value: (provided by your hosting choice above) TTL: 300
Updating the prompt — three workflows
1. Copy to clipboard (works anywhere). Click Update → Copy patch → paste into wherever the prompt lives.
2. Save directly to the local .md file. Open the tracker, click Link prompt file in the header, pick Vera_Joy_Prompt_v3_Optimized.md, grant write permission. Now Update → Append patch to file writes the change directly to disk as a marked block. Cowork picks up the change next time it reads the file. Works in Chrome and Edge only (Chromium File System Access API).
3. Push to Vapi (future). Vera Joy is deployed in Vapi. With a small Cloudflare Worker holding a Vapi API key, a button here could PATCH the assistant's system prompt directly. Sketch:
// worker.js (Cloudflare Worker — pseudocode)
export default {
async fetch(req, env) {
if (req.method !== 'POST') return new Response('', {status: 405});
if (req.headers.get('x-shared-secret') !== env.SHARED) return new Response('', {status: 401});
const { newSystemPrompt } = await req.json();
return fetch(`https://api.vapi.ai/assistant/${env.VAPI_ASSISTANT_ID}`, {
method: 'PATCH',
headers: { 'Authorization': `Bearer ${env.VAPI_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ model: { messages: [{ role: 'system', content: newSystemPrompt }] } })
});
}
}
Then the tracker would POST the new full prompt to the worker. Not built in this version — flagged as a follow-up because it requires a deployed worker, a Vapi API key, and a shared secret.
About the password gate
The password is enforced client-side using SHA-256 + salt. Appropriate for non-public internal use, not a real security boundary. For stronger control, put this page behind Cloudflare Access (free for small teams) or Netlify password protection.
Current password:
Persistence
Review status, applied flags, and user-added scenarios are stored in localStorage (per browser). Use Export added scenarios to share new findings as JSON. Linked file handle is stored in IndexedDB.