Existing frontend: detect, report, then keep or restyle (ticket 03)

- templates/detect_frontend.py: finds plain HTML, React/Vue/Angular/Svelte apps
  and PyQt web views; prints location, stack, main colours, font and every
  token block (CSS custom properties, <style> tags, Tailwind config).
- templates/frontend.md: shared report / keep / restyle procedure, written
  so rpa-dashboard-ai can point to it.
- SKILL.md steps 1, 2 and 6 point to it.
- tests: detection self-check; fixture c-web-existing-frontend; eval entries
  c-keep and c-restyle (new pages only, per-question grading, checks on what
  changed in the existing files), both passing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
VasanthandClaude Opus 5.5 committed 2026-10-16 14:27:50 +05:30
1 parent 3eb3fdf00e
commit f11bddd958
15 files changed
+1210 -12

No files matched your search

+18
View File
@@ -0,0 +1,18 @@
/* Layout and components. Colours and fonts come from theme.css. */
* { box-sizing: border-box; margin: 0; }
body { font-family: var(--font-sans); background: var(--color-bg); color: var(--color-text); }
h1, h2 { font-family: var(--font-heading); }
.topbar { display: flex; align-items: center; gap: 16px; padding: 14px 24px; background: var(--color-brand); color: #ffffff; }
.topbar nav { margin-left: auto; display: flex; gap: 12px; }
.topbar a { color: #ffffff; text-decoration: none; }
.page { max-width: 960px; margin: 24px auto; padding: 0 16px; }
.card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius); padding: 20px; }
.button { background: var(--color-brand); color: #ffffff; border: 0; border-radius: var(--radius); padding: 8px 14px; cursor: pointer; }
.button.secondary { background: var(--color-brand-tint); color: var(--color-brand-strong); }
table { width: 100%; border-collapse: collapse; margin-top: 12px; }
th { text-align: left; background: var(--color-surface-alt); color: var(--color-text-muted); }
th, td { padding: 8px 10px; border-bottom: 1px solid var(--color-border); }
.tag { padding: 2px 8px; border-radius: 999px; color: #ffffff; font-size: 12px; }
.tag.ok { background: var(--color-success); }
.tag.late { background: var(--color-warning); }
.tag.failed { background: var(--color-danger); }
@@ -0,0 +1,33 @@
/* Field Ops Portal theme. Every colour and font the site uses comes from here. */
:root {
--color-brand: #0f766e;
--color-brand-strong: #115e59;
--color-brand-tint: #ccfbf1;
--color-bg: #f8fafc;
--color-surface: #ffffff;
--color-surface-alt: #f1f5f9;
--color-border: #e2e8f0;
--color-text: #0f172a;
--color-text-muted: #64748b;
--color-success: #15803d;
--color-warning: #b45309;
--color-danger: #b91c1c;
--font-sans: "Trebuchet MS", "Segoe UI", sans-serif;
--font-heading: Georgia, "Times New Roman", serif;
--radius: 6px;
}
[data-theme="dark"] {
--color-brand: #0d9488;
--color-brand-strong: #134e4a;
--color-brand-tint: #134e4a;
--color-bg: #0b1120;
--color-surface: #111827;
--color-surface-alt: #1f2937;
--color-border: #334155;
--color-text: #e2e8f0;
--color-text-muted: #94a3b8;
--color-success: #22c55e;
--color-warning: #f59e0b;
--color-danger: #ef4444;
}