7.6 KiB
7.6 KiB
Plan: two RPA dashboard skills
Goal: build two Claude skills. Future RPA projects use them to create a dashboard page.
rpa-dashboard-no-ai: for RPA projects with no AI. Source project:D:\Tebra_Auto_Post.rpa-dashboard-ai: for RPA projects that use AI (LLM/OCR extraction). Source project:D:\Superbill_extRACTION.
Build both in D:\RPA SKILLS\<skill-name>\. The user installs them into Claude later.
Decisions (from the grill)
| # | Question | Decision |
|---|---|---|
| Q1 | Where the skills live | D:\RPA SKILLS only. The user installs them into Claude later. |
| Q2 | Tech stack | Detect, then adapt. Scan the project first. If a frontend exists, use its stack. If not, ask the user: Desktop (PyQt6 + QWebEngine HTML) or Web. Both skills support both. |
| Q3 | Colours when there's no frontend | Offer presets + custom: 1) Tebra Sky, 2) Superbill Ember, 3) Custom (user gives a primary/brand hex). Always produce light and dark token blocks. |
| Q4 | Frontend already exists | Report, then ask. Say "Frontend found at X, stack Y, colours Z". Then ask: keep the existing theme and add the dashboard in the same style, or restyle to a preset/custom palette. |
| Q5 | Sections | Core + ask for extras (see below). |
| Q6 | Reference code | Bundle templates inside each skill (templates/). Do not read the D:\ source projects at runtime. |
| Q7 | Data | Standard contract + wire it. One event/JSON contract. Wire it to the project's bot if one exists. Otherwise ship sample data so the page works on day one. |
Sections
Both skills, always built:
- Shell: sidebar, topbar, dark toggle, status dot
- KPI cards
- Status donut
- Run panel: progress bar, steps and live log
- Report table with search and Excel export
Both skills, optional (ask the user):
- Checkpoint tracker
- Admin/roles
- Login page
AI skill, also always built:
- Confidence bands. Scoring: green ≥0.95, amber 0.90–0.95, red <0.90. A field gets the worst word score. The band caveat text is shown to the user.
- Review split pane: source document next to the extracted fields. Edits stay drafts until Save. Each field has Verify. Approve is a gate enforced on the server.
- ROI/cost page: tokens (input/output/thinking) per run, cost per run, monthly spend, coverage pill, "vs by hand" assumptions.
AI skill, also optional:
- Model picker
- Retry on the other model
Skill workflow (each SKILL.md must follow this order)
- Scan the project. Look for an existing frontend:
*.html,web/,package.jsonwith react/vue, a PyQtQWebEngineView. Also find the bot entry point and any status/log output. - Report what you found, then ask Q4. Skip this step if there is no frontend.
- Ask for colours (Q3). Skip this step if the user chose to keep the existing theme.
- Ask the stack question (Q2). Only if there is no frontend.
- Ask which optional sections to build (Q5).
- Build. Copy the template, fill the
{{PLACEHOLDERS}}, apply the tokens, remove the sections the user didn't choose. - Wire the data. Connect to the bot using the contract. If there is no bot yet, use sample data.
- Verify. Open the page, check both light and dark mode, and check width ≤820px.
Theme presets (put in templates/themes.md in BOTH skills)
Tebra Sky. Glass cards on a gradient background. Segoe UI font.
- Light:
--bg-top:#8fc9e8; --bg-mid:#bfe3f2; --bg-bottom:#eaf6fb; --ink:#1c2b33; --muted:#5c7382; --accent-dark:#16202a; --accent:#3d9bd0; --accent-2:#5cb2e2; --ok:#1f9d57; --warn:#b7791f; --bad:#c0392b - Dark:
--bg-top:#0f1b26; --bg-mid:#13212e; --bg-bottom:#182a38; --ink:#e6eef4; --muted:#8fa6b4; --accent-dark:#2e5d80; --ok:#2fbf72; --warn:#d9a13c; --bad:#e05a4b
Superbill Ember. Flat surfaces. The brand gradient appears only on the header bar, primary buttons, the active nav row and the progress fill. Fonts: Sora for display, IBM Plex Sans for body.
- Light:
--ground:#f4f3f7; --surface:#ffffff; --surface-2:#f7f6fa; --line:#e2dfe9; --ink:#18151f; --ink-2:#3d3850; --muted:#66607a; --accent-1:#ff3049; --accent-2:#f26b21 - Dark:
--ground:#0a0912; --surface:#151220; --surface-2:#1b1727; --line:#2a2438; --ink:#f3f1f8; --ink-2:#c9c4d8; --muted:#8d87a0 - Band colours (AI only, semantic, never used on buttons):
--clean:#51a68f; --verify:#e39b34; --review:#de5243; --absent:#6b6580
Custom. Take the user's primary hex and derive from it:
--accent--accent-2: lighter--accent-dark: darker--accent-soft: tint- Keep ok/warn/bad unless the user gives their own.
- Check text contrast in both light and dark.
Status: what already exists
rpa-dashboard-no-ai/
templates/dashboard.html DONE: generic page, works in Qt (QWebChannel) or web (polling)
templates/contract.md DONE: event/JSON contract + Tebra lessons
templates/bridge.py DONE: minimal PyQt6 host + subprocess log tailing
templates/reference/ DONE: tebra_dashboard.html, tebra_bridge_part1/2.py (raw extracts)
rpa-dashboard-ai/
templates/reference/web/ DONE: Superbill index.css, DESIGN.md, bands.ts, theme.tsx, types.ts, api.ts,
components (BrandHeader, Sidebar, StatsBar, Donut, SplitPane,
RunPanel, ReviewPane, RoiTab, PdfPane, Tooltip, icons)
templates/reference/backend/ DONE: bands.py, gemini_cost.py (PRICING table + cost_for_call)
TODO for the implement skill
- Fix the lint error in
rpa-dashboard-no-ai/templates/bridge.py:15.STEPS = {{STEPS_PY}}is not valid Python, so the lint hook flags it (F821). Change it toSTEPS = ["{{STEP_1}}", "{{STEP_2}}"]or similar. - Write
rpa-dashboard-no-ai/SKILL.md.- Frontmatter
nameanddescription. The trigger should cover "RPA dashboard", "automation dashboard", "bot dashboard", and "without AI". - The workflow above.
- Point to
templates/*.
- Frontmatter
- Write
rpa-dashboard-ai/SKILL.md.- Trigger: "AI RPA dashboard", "extraction dashboard", "LLM/OCR review dashboard".
- The workflow above.
- Web path: React + Vite + Tailwind v4, adapted from
reference/web. - Desktop path: copy the no-AI
dashboard.html, then add the AI sections.
- Write
templates/themes.mdin both skills. Content is in the Theme presets section above. - Write
rpa-dashboard-ai/templates/contract.md. It extends the no-AI contract with:Run{job_id,status:pending|queued|running|done|failed,model,pages_done,pages_total,summary:{green,amber,red,unscored}}ReviewRow{row_id,field,value,band,score,reason,verified,corrected_value}RoiRun{model,input_tokens,output_tokens,thinking_tokens,total_cost}- Endpoints:
PATCH /review/{row_id},POST /runs/{id}/approve(server gate),GET /roi. - Polling: 1.5–2s only while a run is busy.
- Write
rpa-dashboard-ai/templates/ai-sections.html. Plain HTML/CSS/JS versions of the band legend, the review split pane and the ROI tiles, for the desktop path. - Strip project-specific bits from the AI reference files. Remove ECW/Tebra project names, SPB_* tables and patient/ticket wording, or mark them as such. Never ship real patient data (PHI), internal IPs or keys. The reference copies have already been checked for these, but check again after editing.
- Verify. Open
dashboard.htmlin a browser using sample data. Check light, dark and narrow width. Load each SKILL.md and make sure every path it references exists.
Done when
- Both folders have a SKILL.md and all the templates it references.
- In a fresh test project, each skill:
- asks the questions in order,
- reports any existing frontend,
- produces a working dashboard page that renders in light and dark.