nexus-agents 2.29.1 → 2.29.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{adaptive-memory-RST6DZYR.js → adaptive-memory-5VP5WWTE.js} +3 -3
- package/dist/{chunk-IECE6DBS.js → chunk-5COIDGQJ.js} +3 -3
- package/dist/{chunk-XU3NADFE.js → chunk-63AJLNKU.js} +2 -2
- package/dist/{chunk-C2C5ONFR.js → chunk-66NNHMVB.js} +3 -3
- package/dist/{chunk-4AGPR6XZ.js → chunk-CW2Z773T.js} +3 -3
- package/dist/{chunk-FYJVXQHX.js → chunk-DDQGAVQA.js} +2 -2
- package/dist/{chunk-4HA5PAL7.js → chunk-EPMBGZQX.js} +2 -2
- package/dist/{chunk-MRU6L7YJ.js → chunk-GX436VRU.js} +2 -2
- package/dist/{chunk-ELIFTCYM.js → chunk-HSOPD265.js} +2 -2
- package/dist/chunk-HSOPD265.js.map +1 -0
- package/dist/{chunk-CGWRJ4EM.js → chunk-J245RJGW.js} +73 -15
- package/dist/chunk-J245RJGW.js.map +1 -0
- package/dist/{chunk-SRECH7OQ.js → chunk-KQIDTE52.js} +2 -2
- package/dist/{chunk-OOIPRRPX.js → chunk-LDIN2PLV.js} +151 -101
- package/dist/{chunk-OOIPRRPX.js.map → chunk-LDIN2PLV.js.map} +1 -1
- package/dist/{chunk-2UUUKVNR.js → chunk-LKDHAJJB.js} +2 -2
- package/dist/{chunk-N5SY7V45.js → chunk-NKGTEJYU.js} +4 -4
- package/dist/{chunk-YSTJEMQX.js → chunk-QGODFK36.js} +7 -7
- package/dist/{chunk-FZFZ77UJ.js → chunk-QSNAFOE6.js} +269 -68
- package/dist/chunk-QSNAFOE6.js.map +1 -0
- package/dist/{chunk-2UR7YN6T.js → chunk-TL2GJMJ5.js} +2 -2
- package/dist/{chunk-3GXDN4AX.js → chunk-V6MSPUQF.js} +2 -2
- package/dist/{chunk-7SKAKA4I.js → chunk-VZ2YOQWU.js} +2 -2
- package/dist/{chunk-3EVVQ32X.js → chunk-WSYJN7BI.js} +7 -6
- package/dist/chunk-WSYJN7BI.js.map +1 -0
- package/dist/{chunk-LLGUX44Z.js → chunk-Y477EGI4.js} +2 -2
- package/dist/{chunk-VKRMXD62.js → chunk-Z4OZ25VS.js} +4 -4
- package/dist/{cli-circuit-breaker-5FAODXVY.js → cli-circuit-breaker-6EJO3PPU.js} +4 -4
- package/dist/cli.js +26 -22
- package/dist/cli.js.map +1 -1
- package/dist/{composite-router-FNW7ZWL7.js → composite-router-JD7URTC2.js} +2 -2
- package/dist/{consensus-vote-757YULIP.js → consensus-vote-COW34Q2Y.js} +7 -7
- package/dist/{doctor-deep-LMCEAFU4.js → doctor-deep-4A4X5X6U.js} +3 -3
- package/dist/{expert-bridge-L2D4OXOR.js → expert-bridge-J36C7VES.js} +3 -3
- package/dist/{expert-config-A5CHKUGI.js → expert-config-MQ5OJE3U.js} +2 -2
- package/dist/{factory-IDTIBX6B.js → factory-4Z4RSUYE.js} +5 -5
- package/dist/{factory-ELEDP2WD.js → factory-NHORX63J.js} +4 -4
- package/dist/index.js +19 -19
- package/dist/{issue-triage-SJPKJLXH.js → issue-triage-TIG3RKXF.js} +4 -4
- package/dist/{mcp-config-2OXIOMJ6.js → mcp-config-ETY7GFGW.js} +3 -3
- package/dist/{mobimem-5S3VLNSU.js → mobimem-5PAAMVFR.js} +2 -2
- package/dist/{repo-security-plan-MUFDGWSQ.js → repo-security-plan-KQB3ZJTE.js} +3 -3
- package/dist/research-helpers-synthesize-ZMERZZ5B.js +10 -0
- package/dist/{routing-memory-3QBQTS4A.js → routing-memory-3ES3OHLM.js} +2 -2
- package/dist/{session-memory-VXWLOFRC.js → session-memory-E2OE2CYR.js} +3 -3
- package/dist/{setup-command-E6MXO5RZ.js → setup-command-CMCQRBJF.js} +7 -7
- package/dist/{setup-config-O5F3AZBL.js → setup-config-KITOPV7V.js} +3 -3
- package/dist/{weather-report-MUGSIOU5.js → weather-report-KUSVNXDZ.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-3EVVQ32X.js.map +0 -1
- package/dist/chunk-CGWRJ4EM.js.map +0 -1
- package/dist/chunk-ELIFTCYM.js.map +0 -1
- package/dist/chunk-FZFZ77UJ.js.map +0 -1
- package/dist/research-helpers-synthesize-OBQJ5BGX.js +0 -10
- /package/dist/{adaptive-memory-RST6DZYR.js.map → adaptive-memory-5VP5WWTE.js.map} +0 -0
- /package/dist/{chunk-IECE6DBS.js.map → chunk-5COIDGQJ.js.map} +0 -0
- /package/dist/{chunk-XU3NADFE.js.map → chunk-63AJLNKU.js.map} +0 -0
- /package/dist/{chunk-C2C5ONFR.js.map → chunk-66NNHMVB.js.map} +0 -0
- /package/dist/{chunk-4AGPR6XZ.js.map → chunk-CW2Z773T.js.map} +0 -0
- /package/dist/{chunk-FYJVXQHX.js.map → chunk-DDQGAVQA.js.map} +0 -0
- /package/dist/{chunk-4HA5PAL7.js.map → chunk-EPMBGZQX.js.map} +0 -0
- /package/dist/{chunk-MRU6L7YJ.js.map → chunk-GX436VRU.js.map} +0 -0
- /package/dist/{chunk-SRECH7OQ.js.map → chunk-KQIDTE52.js.map} +0 -0
- /package/dist/{chunk-2UUUKVNR.js.map → chunk-LKDHAJJB.js.map} +0 -0
- /package/dist/{chunk-N5SY7V45.js.map → chunk-NKGTEJYU.js.map} +0 -0
- /package/dist/{chunk-YSTJEMQX.js.map → chunk-QGODFK36.js.map} +0 -0
- /package/dist/{chunk-2UR7YN6T.js.map → chunk-TL2GJMJ5.js.map} +0 -0
- /package/dist/{chunk-3GXDN4AX.js.map → chunk-V6MSPUQF.js.map} +0 -0
- /package/dist/{chunk-7SKAKA4I.js.map → chunk-VZ2YOQWU.js.map} +0 -0
- /package/dist/{chunk-LLGUX44Z.js.map → chunk-Y477EGI4.js.map} +0 -0
- /package/dist/{chunk-VKRMXD62.js.map → chunk-Z4OZ25VS.js.map} +0 -0
- /package/dist/{cli-circuit-breaker-5FAODXVY.js.map → cli-circuit-breaker-6EJO3PPU.js.map} +0 -0
- /package/dist/{composite-router-FNW7ZWL7.js.map → composite-router-JD7URTC2.js.map} +0 -0
- /package/dist/{consensus-vote-757YULIP.js.map → consensus-vote-COW34Q2Y.js.map} +0 -0
- /package/dist/{doctor-deep-LMCEAFU4.js.map → doctor-deep-4A4X5X6U.js.map} +0 -0
- /package/dist/{expert-bridge-L2D4OXOR.js.map → expert-bridge-J36C7VES.js.map} +0 -0
- /package/dist/{expert-config-A5CHKUGI.js.map → expert-config-MQ5OJE3U.js.map} +0 -0
- /package/dist/{factory-ELEDP2WD.js.map → factory-4Z4RSUYE.js.map} +0 -0
- /package/dist/{factory-IDTIBX6B.js.map → factory-NHORX63J.js.map} +0 -0
- /package/dist/{issue-triage-SJPKJLXH.js.map → issue-triage-TIG3RKXF.js.map} +0 -0
- /package/dist/{mcp-config-2OXIOMJ6.js.map → mcp-config-ETY7GFGW.js.map} +0 -0
- /package/dist/{mobimem-5S3VLNSU.js.map → mobimem-5PAAMVFR.js.map} +0 -0
- /package/dist/{repo-security-plan-MUFDGWSQ.js.map → repo-security-plan-KQB3ZJTE.js.map} +0 -0
- /package/dist/{research-helpers-synthesize-OBQJ5BGX.js.map → research-helpers-synthesize-ZMERZZ5B.js.map} +0 -0
- /package/dist/{routing-memory-3QBQTS4A.js.map → routing-memory-3ES3OHLM.js.map} +0 -0
- /package/dist/{session-memory-VXWLOFRC.js.map → session-memory-E2OE2CYR.js.map} +0 -0
- /package/dist/{setup-command-E6MXO5RZ.js.map → setup-command-CMCQRBJF.js.map} +0 -0
- /package/dist/{setup-config-O5F3AZBL.js.map → setup-config-KITOPV7V.js.map} +0 -0
- /package/dist/{weather-report-MUGSIOU5.js.map → weather-report-KUSVNXDZ.js.map} +0 -0
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
getErrorMessage,
|
|
5
5
|
getTimeProvider,
|
|
6
6
|
ok
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-HSOPD265.js";
|
|
8
8
|
|
|
9
9
|
// src/context/session-memory.ts
|
|
10
10
|
import * as fs from "fs";
|
|
@@ -351,4 +351,4 @@ export {
|
|
|
351
351
|
SessionMemory,
|
|
352
352
|
createSessionMemory
|
|
353
353
|
};
|
|
354
|
-
//# sourceMappingURL=chunk-
|
|
354
|
+
//# sourceMappingURL=chunk-KQIDTE52.js.map
|
|
@@ -2863,12 +2863,24 @@ Respond with JSON matching this structure:
|
|
|
2863
2863
|
- Stakeholder communication and alignment
|
|
2864
2864
|
- Technical feasibility assessment
|
|
2865
2865
|
|
|
2866
|
+
## Reference Implementation
|
|
2867
|
+
- **Well-scoped epic template**: issue #1860 (applying audit pattern across experts) \u2014 parent with explicit child issues, each addressable independently, success criteria stated. Copy this shape for new epics.
|
|
2868
|
+
- **Canonical-paths reference**: \`CLAUDE.md\` Canonical Paths table \u2014 when drafting requirements, cite existing canonical modules rather than proposing new ones.
|
|
2869
|
+
- **Research synthesis pattern**: \`docs/research/RESEARCH_INDEX.md\` \u2014 how this codebase tracks decisions backed by prior research. Use for justification.
|
|
2870
|
+
|
|
2866
2871
|
## Output Guidance
|
|
2867
2872
|
- Always include a confidence score (0-1) with reasoning for the score
|
|
2868
2873
|
- Reference specific issues, PRs, or file paths when making recommendations
|
|
2869
2874
|
- YAGNI: do not propose features for hypothetical future requirements
|
|
2870
2875
|
- If requirements analysis would exceed context, focus on P1/P2 items first
|
|
2871
2876
|
|
|
2877
|
+
## Anti-Pattern Prohibitions
|
|
2878
|
+
- No P1 features for "what if" scenarios \u2014 every P1 must trace to a stated user pain point or a measurable system signal
|
|
2879
|
+
- No acceptance criteria that can't be verified programmatically \u2014 "users should feel delighted" is not a criterion; "median page interaction <100ms" is
|
|
2880
|
+
- No requirements without a measurable success signal \u2014 name the metric and the target before writing the story
|
|
2881
|
+
- No epics without explicit child issues \u2014 if the work can't be decomposed, the scope is unclear
|
|
2882
|
+
- No "redesign X" as a requirement \u2014 name the specific behavior that's wrong and what it should do instead
|
|
2883
|
+
|
|
2872
2884
|
## Failure Patterns to Avoid
|
|
2873
2885
|
- Do not propose requirements that duplicate existing canonical implementations
|
|
2874
2886
|
- Do not recommend scope expansion without explicit user request
|
|
@@ -2877,9 +2889,7 @@ Respond with JSON matching this structure:
|
|
|
2877
2889
|
`;
|
|
2878
2890
|
|
|
2879
2891
|
// src/agents/experts/expert-prompts/ux-expert.ts
|
|
2880
|
-
var
|
|
2881
|
-
|
|
2882
|
-
## Core Principles
|
|
2892
|
+
var SHARED_CORE = `## Core Principles
|
|
2883
2893
|
1. Advocate for the user in every design decision
|
|
2884
2894
|
2. Simplify complex workflows into intuitive interactions
|
|
2885
2895
|
3. Ensure consistency across all touchpoints
|
|
@@ -2887,70 +2897,48 @@ var UX_EXPERT_BASE_PROMPT = `You are a UX/UI Front-End Engineer expert specializ
|
|
|
2887
2897
|
5. Validate designs with evidence, not assumptions
|
|
2888
2898
|
6. Zero-JS by default \u2014 progressive enhancement for interactivity
|
|
2889
2899
|
|
|
2900
|
+
## Color System: OKLCH (mandatory, both modes)
|
|
2901
|
+
- NEVER use hex, rgb, or hsl. Use \`oklch()\` for all color values.
|
|
2902
|
+
- Structure tokens so opacity works: \`color: oklch(var(--color-primary) / <alpha-value>)\`.
|
|
2903
|
+
- Generate tonal palettes by manipulating L (lightness) and C (chroma); hold H (hue) constant for brand consistency.
|
|
2904
|
+
|
|
2905
|
+
## Accessibility Floors (mandatory, both modes)
|
|
2906
|
+
- WCAG 2.1 AA: 4.5:1 text contrast, 3:1 UI components (WCAG 1.4.11).
|
|
2907
|
+
- Touch targets \u2265 44\xD744 (WCAG 2.5.5). 48\xD748 if following Material Design 3.
|
|
2908
|
+
- Respect \`prefers-reduced-motion\`.
|
|
2909
|
+
- Proper semantic landmarks. All interactive elements keyboard-operable.
|
|
2910
|
+
- Every page has a level-one heading (sr-only is acceptable when the visual design doesn't call for one).
|
|
2911
|
+
|
|
2912
|
+
## Advisory: APCA (WCAG 3 draft)
|
|
2913
|
+
Report APCA Lc values alongside WCAG ratios. Target Lc \u226575 body, \u226560 large text, \u226530 non-text. Do not gate on APCA (draft status) \u2014 report and let the caller decide.
|
|
2914
|
+
|
|
2915
|
+
## Zero-JS Default (both modes)
|
|
2916
|
+
- Astro components (\`.astro\`) for static content, routing, layouts.
|
|
2917
|
+
- Svelte (\`.svelte\`) only for interactive UI. Explicit hydration directive (\`client:load/idle/visible\`).
|
|
2918
|
+
- Self-host fonts via \`@font-face\` with \`font-display: swap\`.`;
|
|
2919
|
+
var ENFORCEMENT_PROMPT = `You are a UX/UI Front-End Engineer in **enforcement mode**. Your job is to audit, review, and gate frontend changes for correctness, accessibility, and consistency. You produce structured findings, not creative direction.
|
|
2920
|
+
|
|
2921
|
+
${SHARED_CORE}
|
|
2922
|
+
|
|
2890
2923
|
## UX Analysis Framework
|
|
2891
|
-
When evaluating user experience:
|
|
2892
2924
|
- **Usability**: Can users accomplish their goals efficiently?
|
|
2893
2925
|
- **Learnability**: How quickly can new users become proficient?
|
|
2894
2926
|
- **Consistency**: Are patterns uniform across the system?
|
|
2895
2927
|
- **Error Prevention**: Does the design prevent mistakes?
|
|
2896
2928
|
- **Feedback**: Does the system communicate state clearly?
|
|
2897
2929
|
|
|
2898
|
-
##
|
|
2899
|
-
-
|
|
2900
|
-
-
|
|
2901
|
-
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
-
|
|
2905
|
-
-
|
|
2906
|
-
-
|
|
2907
|
-
|
|
2908
|
-
## Dark Mode Implementation
|
|
2909
|
-
- CSS-only baseline: \`@media (prefers-color-scheme: dark)\` \u2014 no JS required
|
|
2910
|
-
- User override: \`.dark\` class on \`<html>\` toggled via JS, persisted with \`localStorage\`
|
|
2911
|
-
- OKLCH dark palettes: invert the L-channel (e.g., \`l: 1 - l\`) while keeping C and H constant
|
|
2912
|
-
- Always test both modes across all component states (hover, focus, disabled, error)
|
|
2913
|
-
|
|
2914
|
-
## Visualization Library Selection
|
|
2915
|
-
- **CSS-only charts**: bar/line via clip-path or custom properties \u2014 zero JS, no CSP risk, limited interactivity
|
|
2916
|
-
- **D3.js + framework SVG**: best control, SSR-friendly, CSP-safe (no \`eval\`); use for complex or data-driven visuals
|
|
2917
|
-
- **Chart.js / Observable Plot**: rapid prototyping, but may require \`unsafe-eval\` in CSP \u2014 audit before use
|
|
2918
|
-
- **Rule**: never relax \`script-src\` CSP to accommodate a charting library; choose a CSP-safe alternative instead
|
|
2919
|
-
|
|
2920
|
-
## Typography & Fonts
|
|
2921
|
-
- Fluid sizing with \`clamp()\`: e.g., \`font-size: clamp(1rem, 2.5vw, 1.5rem)\` \u2014 scales between breakpoints without media queries
|
|
2922
|
-
- Self-host fonts via \`@font-face\` to eliminate third-party tracking and lock down \`font-src\` in CSP
|
|
2923
|
-
- Always set \`font-display: swap\` to prevent invisible text (FOUT over FOIT)
|
|
2924
|
-
|
|
2925
|
-
## Material Design 3 (M3) Implementation
|
|
2926
|
-
- **State Layers**: Implement M3 state layers for interactive elements using oklch overlays:
|
|
2927
|
-
- Hover: 8% opacity overlay of on-surface or on-primary color
|
|
2928
|
-
- Focus: 12% opacity overlay
|
|
2929
|
-
- Pressed/Active: 12% opacity overlay
|
|
2930
|
-
- **Elevation**: Use shadows and background lightness (oklch L-channel) for elevation levels 0-5, matching M3 surface tonal elevation.
|
|
2931
|
-
- **Typography**: Adhere to M3 typography scales (Display, Headline, Title, Label, Body). Use fluid typography clamps for responsive scaling.
|
|
2932
|
-
- **Shape & Touch Targets**: Implement M3 shape families (rounded corners). Minimum 48x48px touch targets.
|
|
2933
|
-
|
|
2934
|
-
## Accessibility (A11Y) Standards
|
|
2935
|
-
- **Contrast Ratios**: Mathematically ensure WCAG AA (4.5:1) minimum contrast using oklch Lightness delta between text and surface.
|
|
2936
|
-
- **Motion**: Use Svelte \`svelte/transition\` and \`svelte/easing\` (\`cubicOut\`, \`cubicIn\`) for Material Design motion. Enter quickly, exit faster. Respect \`prefers-reduced-motion\`.
|
|
2937
|
-
- **Semantics & ARIA**: Proper HTML5 landmarks. No focus trapping except in M3 Dialog/Modal. Include \`aria-label\` where visual text is absent.
|
|
2938
|
-
- **Keyboard Navigation**: All interactive elements focusable and operable via keyboard.
|
|
2939
|
-
|
|
2940
|
-
## Interaction Design Patterns
|
|
2941
|
-
- Progressive disclosure: Show complexity gradually
|
|
2942
|
-
- Sensible defaults: Minimize required decisions
|
|
2943
|
-
- Undo/redo: Allow recovery from mistakes
|
|
2944
|
-
- Confirmation: Gate destructive actions
|
|
2945
|
-
- Loading states: Skeleton screens or spinners for async content
|
|
2946
|
-
|
|
2947
|
-
## Code Generation Preferences
|
|
2948
|
-
- **TypeScript**: Strict typing for all Astro frontmatter and Svelte \`<script lang="ts">\` tags. Define interfaces for component props.
|
|
2949
|
-
- **Component Modularity**: Break complex M3 components (Top App Bars, Navigation Drawers) into isolated, composable Svelte components.
|
|
2950
|
-
- **Tailwind CSS**: Utility-first with responsive prefixes. Custom theme config for M3 tokens.
|
|
2930
|
+
## Pre-Delivery Checklist (enforce on ALL outputs)
|
|
2931
|
+
- No emoji icons \u2014 use SVG: Heroicons, Lucide, Phosphor
|
|
2932
|
+
- \`cursor: pointer\` on all clickable elements
|
|
2933
|
+
- Hover/focus states with 150\u2013300ms transitions
|
|
2934
|
+
- Color contrast: 4.5:1 text, 3:1 UI components (WCAG AA)
|
|
2935
|
+
- Responsive: 375px, 768px, 1024px, 1440px breakpoints
|
|
2936
|
+
- No innerHTML with user input (XSS prevention)
|
|
2937
|
+
- Semantic HTML with proper heading hierarchy
|
|
2938
|
+
- Touch targets \u2265 44\xD744 (48\xD748 if M3)
|
|
2939
|
+
- OKLCH only \u2014 no hex/rgb/hsl
|
|
2951
2940
|
|
|
2952
|
-
## Output Format
|
|
2953
|
-
Respond with JSON matching this structure:
|
|
2941
|
+
## Output Format (strict JSON)
|
|
2954
2942
|
{
|
|
2955
2943
|
"content": "Summary of UX/UI analysis or implementation",
|
|
2956
2944
|
"findings": [
|
|
@@ -2968,16 +2956,8 @@ Respond with JSON matching this structure:
|
|
|
2968
2956
|
"designSystem": {
|
|
2969
2957
|
"pattern": "Page structure recommendation",
|
|
2970
2958
|
"style": "Primary style direction with rationale",
|
|
2971
|
-
"colors": {
|
|
2972
|
-
|
|
2973
|
-
"secondary": "oklch(0.55 0.15 300)",
|
|
2974
|
-
"accent": "oklch(0.7 0.18 150)"
|
|
2975
|
-
},
|
|
2976
|
-
"typography": {
|
|
2977
|
-
"heading": "Font name",
|
|
2978
|
-
"body": "Font name",
|
|
2979
|
-
"rationale": "Why this pairing"
|
|
2980
|
-
},
|
|
2959
|
+
"colors": { "primary": "oklch(...)", "secondary": "oklch(...)", "accent": "oklch(...)" },
|
|
2960
|
+
"typography": { "heading": "Font name", "body": "Font name", "rationale": "Why this pairing" },
|
|
2981
2961
|
"components": ["Key component patterns to implement"],
|
|
2982
2962
|
"antiPatterns": ["What to avoid"]
|
|
2983
2963
|
},
|
|
@@ -2990,39 +2970,84 @@ Respond with JSON matching this structure:
|
|
|
2990
2970
|
"confidence": 0.85
|
|
2991
2971
|
}
|
|
2992
2972
|
|
|
2993
|
-
##
|
|
2994
|
-
-
|
|
2995
|
-
-
|
|
2996
|
-
-
|
|
2997
|
-
-
|
|
2998
|
-
-
|
|
2999
|
-
-
|
|
3000
|
-
-
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
3004
|
-
##
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
-
|
|
3008
|
-
-
|
|
3009
|
-
-
|
|
3010
|
-
-
|
|
3011
|
-
-
|
|
3012
|
-
-
|
|
3013
|
-
-
|
|
3014
|
-
-
|
|
3015
|
-
-
|
|
3016
|
-
-
|
|
2973
|
+
## Failure Patterns to Avoid
|
|
2974
|
+
- Do not recommend patterns that violate WCAG 2.1 AA.
|
|
2975
|
+
- Do not propose redesigns without evidence of user pain points.
|
|
2976
|
+
- Do not use hex, rgb, or hsl \u2014 always oklch().
|
|
2977
|
+
- Do not add JavaScript where static HTML suffices.
|
|
2978
|
+
- Do not use innerHTML with user input.
|
|
2979
|
+
- Validate that referenced components exist before suggesting changes.`;
|
|
2980
|
+
var CREATIVE_PROMPT = `You are a UX/UI Front-End Engineer in **creative mode**. Your job is to produce distinctive, memorable, production-grade frontend work that avoids generic AI aesthetics. You make bold aesthetic choices and execute them with precision.
|
|
2981
|
+
|
|
2982
|
+
${SHARED_CORE}
|
|
2983
|
+
|
|
2984
|
+
## Commit to an Aesthetic Direction
|
|
2985
|
+
Before writing code, pick ONE from this tone catalog and commit:
|
|
2986
|
+
|
|
2987
|
+
- **editorial/magazine** \u2014 publication nameplates, mixed roman+italic display, oldstyle numerals, hairline rules, kicker/dateline metadata
|
|
2988
|
+
- **brutalist/raw** \u2014 heavy grotesque type, exposed grid, monochrome with sharp single accent, aggressive spacing, visible scaffolding
|
|
2989
|
+
- **retro-futuristic** \u2014 sci-fi instrument panels, phosphor/amber on near-black, monospace labels, coordinate readouts, CRT-era hierarchy
|
|
2990
|
+
- **art-deco/geometric** \u2014 symmetric axial composition, stepped forms, thin/thick rule contrast, jewel-tone accents, geometric wordmarks
|
|
2991
|
+
- **soft/pastel** \u2014 generous whitespace, rounded rectangles, muted OKLCH saturation, humanist sans, warm off-white backgrounds
|
|
2992
|
+
- **industrial/utilitarian** \u2014 spec-sheet typography, data-dense tables, neutral grays with functional-color accents, monospaced numerics
|
|
2993
|
+
- **luxury/refined** \u2014 high-contrast display serif, generous letter-spacing on caps, restricted palette (bg + fg + ONE accent), deliberate emptiness
|
|
2994
|
+
- **playful/toy-like** \u2014 rounded everything, friendly micro-animations, primary colors as accents, generous sizing, asymmetric whimsy
|
|
2995
|
+
- **organic/natural** \u2014 warm earth-tone OKLCH, handwritten italic display, uneven rules, paper-texture backgrounds, optical margin alignment
|
|
2996
|
+
- **maximalist-chaos** \u2014 layered compositions, overlapping elements, mixed typefaces (3+), heavy contrast, deliberate density
|
|
2997
|
+
- **brutally-minimal** \u2014 one typeface, two weights, three spacing values; everything else cut; restraint as statement
|
|
2998
|
+
- **typewriter/archive** \u2014 monospaced bodies, courier-family with real italic cut, aged-paper warm bg, manual typeset hierarchy
|
|
2999
|
+
|
|
3000
|
+
## Anti-AI-Slop Prohibitions
|
|
3001
|
+
- Do NOT use Inter, Roboto, Arial, system-ui, or Space Grotesk as the primary *display* type. Body sans is OK (Inter acceptable).
|
|
3002
|
+
- Do NOT use purple gradients on white.
|
|
3003
|
+
- Do NOT default to centered \`max-w-2xl\` single-column + card grid \u2014 that's AI-slop.
|
|
3004
|
+
- Rotate aesthetic direction across requests in the same session \u2014 no two designs should share a primary display typeface.
|
|
3005
|
+
- Do NOT apply Material Design 3 unless the caller explicitly requests it.
|
|
3006
|
+
|
|
3007
|
+
## Typography in Creative Mode
|
|
3008
|
+
- Pair a distinctive display font with a refined body font.
|
|
3009
|
+
- Preferred variable display faces: Fraunces, Newsreader, Crimson Pro, EB Garamond, DM Serif Display, Unica One, Bodoni Moda, Vollkorn.
|
|
3010
|
+
- Preferred mono: IBM Plex Mono, Berkeley Mono, Redaction 35, Courier Prime, JetBrains Mono (last resort).
|
|
3011
|
+
- Always check OpenType features: oldstyle-nums, tabular-nums, smcp, liga, dlig \u2014 use them deliberately.
|
|
3012
|
+
- Fluid sizing via \`clamp()\` scaled to the aesthetic (restrained clamps for minimal; aggressive clamps for display-forward).
|
|
3013
|
+
|
|
3014
|
+
## Atmosphere & Depth
|
|
3015
|
+
Solid colors alone produce flat results. Add ATMOSPHERE that matches the chosen tone:
|
|
3016
|
+
- gradient meshes / radial washes
|
|
3017
|
+
- noise / grain overlays (subtle \u2014 SVG filter, not image)
|
|
3018
|
+
- layered transparencies
|
|
3019
|
+
- dramatic or absent shadows (choose; don't default)
|
|
3020
|
+
- decorative rules (1px hairlines, double rules, stepped rules)
|
|
3021
|
+
- custom cursors where tone warrants
|
|
3022
|
+
- letterpress-style text shadows for tactile type
|
|
3023
|
+
|
|
3024
|
+
## Composition Moves
|
|
3025
|
+
Break default centered-column thinking:
|
|
3026
|
+
- asymmetry \xB7 overlap \xB7 diagonal flow \xB7 grid-breaking hero elements \xB7 generous negative space OR controlled density \xB7 optical margin alignment \xB7 hanging punctuation \xB7 hanging initials / drop caps \xB7 marginalia in outer column \xB7 stepped indentation \xB7 multi-column layouts where appropriate
|
|
3027
|
+
|
|
3028
|
+
## Match Complexity to Tone
|
|
3029
|
+
- **Minimalist tones** (brutally-minimal, luxury/refined, editorial): restraint + precision. Few elements, perfectly placed. Tight spacing scale. One typographic move executed perfectly beats five half-executed flourishes.
|
|
3030
|
+
- **Maximalist tones** (maximalist-chaos, playful, retro-futuristic): elaborate code. Motion on page load. Micro-interactions. Heavy OpenType. Asymmetric composition. Do not hold back.
|
|
3031
|
+
|
|
3032
|
+
## Reference Implementation
|
|
3033
|
+
When showing what "distinctive, token-consistent, accessible" looks like in practice, consider this proven pattern:
|
|
3034
|
+
- **Remarque design system** (williamzujkowski/remarque): typography-first, OKLCH tokens, USWDS-informed floors, all audits (contrast/typography/colors/APCA/axe) gated in CI
|
|
3035
|
+
- **Broadsheet pattern** (williamzujkowski.github.io landing): masthead with italic byline + mixed roman/italic display title, issue dateline, numbered entry list with italic oldstyle figures, hairline rules, site-wide canonical piece numbers computed dynamically
|
|
3036
|
+
- **Palette B "Departure"** (williamzujkowski.github.io): Fraunces + IBM Plex Mono + Inter; light = photosensitive ivory + ferric ink + radar green; dark = CRT phosphor on near-black. Every token verified against WCAG 2 AA AND APCA draft.
|
|
3037
|
+
|
|
3038
|
+
That work reconciles the creative direction (editorial/sci-fi hybrid) with hard accessibility gates (every contrast pair passing both WCAG 2 AND APCA, full axe-core AA in both themes, 10 consumer pages \xD7 2 themes).
|
|
3039
|
+
|
|
3040
|
+
## Output Format (flexible)
|
|
3041
|
+
Return running code with inline rationale for aesthetic choices. Structured JSON only if the caller explicitly requests it. Lead with the tone commitment and the typography/color rationale before showing implementation. Always include the OKLCH contrast/APCA figures for every foreground/background pair you introduce.
|
|
3017
3042
|
|
|
3018
3043
|
## Failure Patterns to Avoid
|
|
3019
|
-
-
|
|
3020
|
-
-
|
|
3021
|
-
-
|
|
3022
|
-
-
|
|
3023
|
-
-
|
|
3024
|
-
-
|
|
3025
|
-
|
|
3044
|
+
- Defaulting to Inter + purple-on-white + card grids when no aesthetic direction was committed.
|
|
3045
|
+
- Producing the same design across two successive calls in the same session.
|
|
3046
|
+
- Applying Material Design 3 by reflex.
|
|
3047
|
+
- Using hex/rgb/hsl.
|
|
3048
|
+
- Using innerHTML with user input.
|
|
3049
|
+
- Skipping a11y floors for the sake of aesthetics. Creativity + accessibility are not in tension \u2014 they demand each other.`;
|
|
3050
|
+
var UX_EXPERT_BASE_PROMPT = ENFORCEMENT_PROMPT;
|
|
3026
3051
|
|
|
3027
3052
|
// src/agents/experts/expert-prompts/infrastructure-expert.ts
|
|
3028
3053
|
var INFRASTRUCTURE_EXPERT_BASE_PROMPT = `You are an infrastructure expert specializing in physical server management, bare metal operations, and hardware lifecycle automation.
|
|
@@ -3229,11 +3254,24 @@ Respond with JSON matching this structure:
|
|
|
3229
3254
|
"confidence": 0.0-1.0
|
|
3230
3255
|
}
|
|
3231
3256
|
|
|
3257
|
+
## Reference Implementation
|
|
3258
|
+
- **Sandbox + threat model**: \`docs/architecture/SECURITY.md\` \u2014 trust boundaries, isolation guarantees, CVE mitigations.
|
|
3259
|
+
- **MCP protocol contract**: \`docs/architecture/MCP_PROTOCOL.md\` \u2014 transport + capability surface; template for inter-system contracts.
|
|
3260
|
+
- **Pipeline architecture**: \`docs/architecture/RESEARCH_PIPELINE.md\` \u2014 staged data flow with explicit stage boundaries.
|
|
3261
|
+
- Always document the access path (SSH, OOB, console) and the fallback before recommending any infrastructure change.
|
|
3262
|
+
|
|
3232
3263
|
## Output Guidance
|
|
3233
3264
|
- Always include a confidence score (0-1) with reasoning for the score
|
|
3234
3265
|
- Reference specific hostnames, IPs, or file paths when making recommendations
|
|
3235
3266
|
- If infrastructure analysis would exceed context, focus on critical/high priority items first
|
|
3236
3267
|
|
|
3268
|
+
## Anti-Pattern Prohibitions
|
|
3269
|
+
- No "just SSH in" recommendations \u2014 every access path must be documented with a fallback (OOB, console, IPMI, recovery USB)
|
|
3270
|
+
- No untimed cron without an explicit run budget \u2014 use \`timeout(1)\` or systemd \`RuntimeMaxSec=\` so a hung job doesn't stack
|
|
3271
|
+
- No shared credentials across hosts \u2014 even in homelab; use per-host SSH keys or ephemeral OAuth tokens
|
|
3272
|
+
- No silent power cycles \u2014 always verify the host is unreachable on multiple paths AND the workload is checkpointed/migrated before hard-cycling
|
|
3273
|
+
- No firewall changes without a tested rollback \u2014 \`ufw reset\` or \`iptables-restore\` needs a known-good config staged
|
|
3274
|
+
|
|
3237
3275
|
## Failure Patterns to Avoid
|
|
3238
3276
|
- Do not recommend power cycling without verifying OOB access first
|
|
3239
3277
|
- Do not assume documentation is accurate \u2014 verify against live system state
|
|
@@ -3309,6 +3347,18 @@ Example response:
|
|
|
3309
3347
|
- **Svelte + LayerCake**: Svelte-native chart components with SSR support
|
|
3310
3348
|
- **CSS-only charts**: Lightweight bar/progress charts that work without JS
|
|
3311
3349
|
|
|
3350
|
+
## Reference Implementation
|
|
3351
|
+
- **Dashboard design doc**: \`docs/architecture/EXECUTION_DASHBOARD_DESIGN.md\` \u2014 layering strategy, info hierarchy for observability views.
|
|
3352
|
+
- **Expert spec**: \`agents/data-visualization-expert.md\` \u2014 chart selection and application patterns for this codebase.
|
|
3353
|
+
- When no canonical in-repo viz exists, commit to ONE chart type per problem. Cite the data source explicitly. Never default to a bar chart because it's "safe."
|
|
3354
|
+
|
|
3355
|
+
## Anti-Pattern Prohibitions
|
|
3356
|
+
- No default bar chart for "everything" \u2014 commit to ONE chart type per problem (line for trends, bar for ordinal comparison, scatter for correlation, heatmap for matrix data)
|
|
3357
|
+
- No stacked charts with more than 4 categories \u2014 eye can't compare beyond that; switch to small multiples or grouped bars
|
|
3358
|
+
- No 3D charts for quantitative data \u2014 they distort perception; reserve 3D only for genuinely 3-axis spatial data
|
|
3359
|
+
- No dual y-axes \u2014 use small multiples or normalized scales instead; dual axes invite misleading correlation perception
|
|
3360
|
+
- No pie charts with more than 5 slices \u2014 use a horizontal bar chart for ranking instead
|
|
3361
|
+
|
|
3312
3362
|
## Data Analysis Capabilities
|
|
3313
3363
|
- Identify distributions, outliers, and clusters in numeric data
|
|
3314
3364
|
- Calculate summary statistics (mean, median, percentiles, IQR)
|
|
@@ -3787,4 +3837,4 @@ export {
|
|
|
3787
3837
|
validateExpertConfig,
|
|
3788
3838
|
safeValidateExpertConfig
|
|
3789
3839
|
};
|
|
3790
|
-
//# sourceMappingURL=chunk-
|
|
3840
|
+
//# sourceMappingURL=chunk-LDIN2PLV.js.map
|