@ryuenn3123/agentic-senior-core 6.15.0 → 6.16.0
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/.agents/plugins/agentic-senior-core/.codex-plugin/plugin.json +1 -1
- package/.agents/plugins/agentic-senior-core/commands/asc-reference.md +1 -1
- package/.agents/plugins/agentic-senior-core/commands/asc-reference.toml +2 -3
- package/.agents/plugins/agentic-senior-core/commands/asc-test.md +2 -0
- package/.agents/plugins/agentic-senior-core/commands/asc-test.toml +3 -0
- package/.agents/plugins/agentic-senior-core/hooks/lib/known-ui-slop-patterns.json +81 -1
- package/.agents/plugins/agentic-senior-core/plugin.json +1 -1
- package/.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md +3 -2
- package/.agents/plugins/agentic-senior-core/skills/asc/SKILL.md +15 -6
- package/.agents/plugins/agentic-senior-core/skills/asc/references/writing-skills.md +72 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-develop/SKILL.md +3 -4
- package/.agents/plugins/agentic-senior-core/skills/asc-reference/SKILL.md +55 -67
- package/.agents/plugins/agentic-senior-core/skills/asc-reference/references/api.md +108 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-reference/references/database.md +97 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-reference/references/infrastructure.md +102 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-reference/references/resilience.md +87 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-review/SKILL.md +20 -7
- package/.agents/plugins/agentic-senior-core/skills/asc-test/SKILL.md +104 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-test/references/e2e-playwright.md +89 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-test/references/flaky-tests.md +96 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-test/references/regression-proof.md +58 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-test/references/tdd-cycle.md +62 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-test/references/test-design.md +75 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-test/references/uat.md +62 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/SKILL.md +61 -127
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/accessibility.md +102 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/copy-i18n.md +103 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/craft/browser-surfaces.md +69 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/craft/color-surfaces.md +46 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/craft/motion.md +55 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/craft/typography.md +49 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/divergence.md +127 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/mobile-responsive.md +115 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/modes/experience.md +27 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/modes/operate.md +53 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/modes/persuade.md +72 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/modes/read.md +43 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/redesign-audit.md +71 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/reflexes.md +59 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/states-feedback.md +148 -0
- package/README.md +1 -1
- package/gemini-extension.json +1 -1
- package/package.json +1 -1
- package/plugin.yaml +3 -1
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Surface Mode: Persuade (Marketing, Landing & Conversion)
|
|
2
|
+
|
|
3
|
+
Use for: Landing pages, marketing websites, product launch pages, and pricing screens.
|
|
4
|
+
|
|
5
|
+
> **Core Principle:** The visitor decides and acts; design is the product. Earn attention and conversion with bold, authentic conviction. Ambition is expressed through scale, typographic contrast, and proof of reality—never through fluffy filler or generic card stacks.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. The Viewport Budget & The 80-Word Rule
|
|
10
|
+
|
|
11
|
+
- **The Above-the-Fold Law:**
|
|
12
|
+
- At a standard desktop viewport (1280x800), the hero headline, one concise supporting sentence, and the primary call-to-action **MUST** be fully visible without scrolling.
|
|
13
|
+
- Keep visible text in the first viewport under **80 words**. Fullness comes from scale, whitespace, and high-fidelity product imagery, never from extra paragraphs.
|
|
14
|
+
- **Hero Posture Options:**
|
|
15
|
+
1. *Stage:* Headline and CTA anchor the left 5–7 columns; a live interactive widget or full-fidelity product preview occupies the right 5–7 columns.
|
|
16
|
+
2. *Split:* Balanced 50/50 composition with high-contrast narrative on one side and direct visual evidence on the other.
|
|
17
|
+
3. *Product-Led:* The live product interface or interactive sandbox leads the canvas; the headline and navigation sit tightly framed around it.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. In-Memory Direction Dealer (4 Structural Postures)
|
|
22
|
+
|
|
23
|
+
When building or redesigning a Persuade surface, never let the LLM default to the statistical average of marketing pages. Choose one of four researched structural postures based on the project's real material:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
┌────────────────────────────────────────────────────────────────────────┐
|
|
27
|
+
│ THE 4 STRUCTURAL POSTURES │
|
|
28
|
+
├────────────────────────────────────────────────────────────────────────┤
|
|
29
|
+
│ 1. Asymmetric Stage (65/35 Split): Left-anchored heavy typography │
|
|
30
|
+
│ offset against an interactive preview, ROI calculator, or live UI. │
|
|
31
|
+
│ 2. The Monolith Ledger: Single-column dense reading measure with │
|
|
32
|
+
│ full-bleed horizontal rows, hairline dividers, and deep ink. │
|
|
33
|
+
│ 3. Product-Led Canvas: Live application interface or CLI terminal │
|
|
34
|
+
│ dominates the first viewport; copy recedes to tightly frame it. │
|
|
35
|
+
│ 4. Kinetic Proof Stream: Alternating proof blocks driven by verifiable │
|
|
36
|
+
│ benchmarks, architectural diagrams, and real data payloads. │
|
|
37
|
+
└────────────────────────────────────────────────────────────────────────┘
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- **Posture Selection Protocol:**
|
|
41
|
+
- If real software or CLI exists $\to$ **Posture 3 (Product-Led Canvas)**.
|
|
42
|
+
- If quantitative savings or enterprise value proposition $\to$ **Posture 1 (Asymmetric Stage)**.
|
|
43
|
+
- If technical documentation, whitepaper, or architectural manifesto $\to$ **Posture 2 (The Monolith Ledger)**.
|
|
44
|
+
- If performance benchmarks, protocol comparisons, or telemetry proof $\to$ **Posture 4 (Kinetic Proof Stream)**.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 3. Anti-Cardocalypse & Visual Pacing
|
|
49
|
+
|
|
50
|
+
- **Banned 3-Card Symmetrical Grid:**
|
|
51
|
+
- Never default to a 3-column grid where every card has identical dimensions, a Lucide icon in a pastel square, a bold title, and two lines of gray text.
|
|
52
|
+
- Instead, vary composition according to content weight:
|
|
53
|
+
- *Flagship Feature:* Full-width container or asymmetric 8/4 split showing the primary capability in action.
|
|
54
|
+
- *Supporting Capabilities:* Compact 2-column checklist or a structured comparison table.
|
|
55
|
+
- **The Signature Element:**
|
|
56
|
+
- Every Persuade surface must feature exactly **one memorable signature element** on the first screen:
|
|
57
|
+
- An interactive pricing slider that recalculates savings in real time.
|
|
58
|
+
- A live terminal code editor running the SDK quickstart.
|
|
59
|
+
- An unedited, high-resolution product screenshot showing real user data.
|
|
60
|
+
- A giant counter of marks or animated numbers is a decorative reflex, not a signature.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 3. Material Honesty & Proof of Reality
|
|
65
|
+
|
|
66
|
+
- **Zero Fabricated Evidence:**
|
|
67
|
+
- Never invent customer quotes, fake partner logos ("Acme Corp, Pied Piper"), or fabricated performance metrics ("10,000+ teams trust us").
|
|
68
|
+
- If quotes or logos are not provided in the project brief, leave them out. A page built around genuine product capabilities is far more persuasive than one filled with synthetic social proof.
|
|
69
|
+
- **Action Semantics:**
|
|
70
|
+
- Primary CTA must use an imperative verb + noun: `Start Free Trial`, `Download CLI`, `Book Demo` (never generic `Submit` or `Get Started` without context).
|
|
71
|
+
- Limit the header to at most 1 primary action button and 1 ghost link.
|
|
72
|
+
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Surface Mode: Read (Documentation, Knowledge & Articles)
|
|
2
|
+
|
|
3
|
+
Use for: Documentation, API references, technical blogs, guides, knowledge bases, and changelogs.
|
|
4
|
+
|
|
5
|
+
> **Core Principle:** The visitor understands something. Structure for sustained comprehension, visual calm, and rapid scanning. The reading experience must minimize eye fatigue while providing effortless navigation through dense hierarchies.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Ergonomic Reading Measure & Spacing
|
|
10
|
+
|
|
11
|
+
- **Optimal Line Measure:**
|
|
12
|
+
- Cap prose line length strictly at **65–75 characters per line** (`max-w-prose` / ~680px). Unbounded line lengths cause cognitive fatigue and line-tracking errors.
|
|
13
|
+
- Generous body line height: `leading-relaxed` (1.625) to `leading-loose` (1.75).
|
|
14
|
+
- Body font size: 16px minimum (`text-base`). Never drop body prose below 16px on desktop.
|
|
15
|
+
- **Asymmetric Vertical Rhythm:**
|
|
16
|
+
- Headings must have noticeably more breathing room above than below:
|
|
17
|
+
- `H2`: `mt-10` to `mt-12`, `mb-3` to `mb-4`.
|
|
18
|
+
- `H3`: `mt-6` to `mt-8`, `mb-2`.
|
|
19
|
+
- This anchors the heading visually to the paragraph it introduces, preventing it from floating ambiguously between sections.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2. Navigation & Wayfinding
|
|
24
|
+
|
|
25
|
+
- **Dual-Rail Navigation:**
|
|
26
|
+
- *Left Sidebar:* Hierarchical navigation tree (collapsible categories, active section indicator with bold text and subtle left border or background pill).
|
|
27
|
+
- *Right Rail:* Table of contents ("On this page") highlighting current scroll position via `IntersectionObserver`.
|
|
28
|
+
- Top breadcrumb path for orientation: `Docs / Authentication / OAuth2 Providers`.
|
|
29
|
+
- **In-Content Anchor Links:**
|
|
30
|
+
- Headings must carry permalink anchor buttons (`#`) visible on hover, allowing users to copy direct section URLs.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 3. Code Blocks & Callout Discipline
|
|
35
|
+
|
|
36
|
+
- **Code Block Engineering:**
|
|
37
|
+
- Wrap code blocks in dedicated horizontal scroll containers (`overflow-x-auto`) to prevent viewport blowout.
|
|
38
|
+
- Provide a one-click "Copy Code" button with visual feedback (`Copied!`).
|
|
39
|
+
- Monospace font paired with consistent syntax highlighting; never use hardcoded inline style colors.
|
|
40
|
+
- **Callout Hierarchy:**
|
|
41
|
+
- Use GitHub-style or standard alert cards (`[!NOTE]`, `[!TIP]`, `[!WARNING]`, `[!IMPORTANT]`) with subtle background tints and 1px borders.
|
|
42
|
+
- Never nest callouts inside callouts or place 3 consecutive callout boxes in a row.
|
|
43
|
+
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Structured UI Audit & Redesign Protocols
|
|
2
|
+
|
|
3
|
+
Modifying an existing interface requires clear intent. Audits must provide actionable engineering findings rather than subjective aesthetic commentary.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Refinement vs. Redesign Semantics
|
|
8
|
+
|
|
9
|
+
Before touching code, explicitly classify the scope of work:
|
|
10
|
+
|
|
11
|
+
| Mode | Objective | What Stays Intact | What Changes |
|
|
12
|
+
|---|---|---|---|
|
|
13
|
+
| **Refinement** | Polish craft, fix accessibility, eliminate slop, align spacing. | Layout structure, component APIs, color tokens, DOM tree, established brand identity. | Padding rhythm, contrast ratios, missing hover/focus rings, microcopy concision, state quad completeness. |
|
|
14
|
+
| **Redesign** | Overhaul visual hierarchy, modernize surface mode, eliminate fundamental architectural flaws. | Functional data bindings, event handlers, business rules, routing. | Visual posture, typography system, component composition, spatial elevation, color distribution. |
|
|
15
|
+
|
|
16
|
+
> [!WARNING]
|
|
17
|
+
> Never perform an unprompted redesign when asked to "fix", "clean up", or "refine" a component. Respect existing design tokens and architectural patterns unless the user explicitly mandates a redesign.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. Structured Audit Matrix
|
|
22
|
+
|
|
23
|
+
When auditing an existing interface or PR, generate a structured findings table categorized by severity:
|
|
24
|
+
|
|
25
|
+
| Severity | Definition | Examples |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| `CRITICAL` | Breaks usability, violates WCAG AA contrast floors, or clips content horizontally. | 2.5:1 text contrast, missing `:focus-visible`, button overflow on mobile, form submission with no pending state. |
|
|
28
|
+
| `MAJOR` | Degrades scannability, lacks essential states, or violates design token consistency. | Missing empty or error states, hardcoded hex colors, generic modal instead of inline drawer, layout shift during load. |
|
|
29
|
+
| `MINOR` | Polish deficiency, verbose marketing copy, or suboptimal rhythm. | Verbose button label ("Click here to save"), slight margin imbalance, decorative character banners in code. |
|
|
30
|
+
|
|
31
|
+
### Audit Output Template
|
|
32
|
+
```markdown
|
|
33
|
+
### UI Audit Findings
|
|
34
|
+
|
|
35
|
+
| Severity | Location / Element | Finding | Root Cause | Concrete Remediation |
|
|
36
|
+
|---|---|---|---|---|
|
|
37
|
+
| CRITICAL | `BillingTable.tsx:42` | Primary CTA lacks focus ring | `outline-none` stripped default ring | Add `focus-visible:ring-2 focus-visible:ring-primary` |
|
|
38
|
+
| MAJOR | `ProjectList.tsx:110` | Empty state shows 4-paragraph essay | Marketing copy inserted into app view | Replace with 1-sentence description + "Create project" CTA |
|
|
39
|
+
| MINOR | `UserProfile.tsx:18` | Button fixed width `w-[120px]` | Rigid dimension causes German overflow | Change to `px-4 min-w-[5rem]` |
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 3. Systematic Audit Checklist
|
|
45
|
+
|
|
46
|
+
Audit screens systematically against four engineering vectors:
|
|
47
|
+
|
|
48
|
+
### 3.1 Ergonomics & Responsiveness
|
|
49
|
+
- [ ] Render at `375px` width (mobile viewport) and `1280px` (desktop viewport).
|
|
50
|
+
- [ ] Verify zero horizontal scrollbars on mobile (`overflow-x: clip`).
|
|
51
|
+
- [ ] Confirm all touch targets meet minimum $44 \times 44\text{px}$ bounding box.
|
|
52
|
+
- [ ] Verify mobile layout uses `dvh` instead of `vh` to prevent browser chrome clipping.
|
|
53
|
+
|
|
54
|
+
### 3.2 Accessibility & Contrast (WCAG 2.2 AA)
|
|
55
|
+
- [ ] Check normal text against backgrounds ($\ge 4.5:1$).
|
|
56
|
+
- [ ] Check input borders, active toggles, and large headings ($\ge 3:1$).
|
|
57
|
+
- [ ] Cycle through entire screen using `Tab` and `Shift+Tab` with mouse disconnected.
|
|
58
|
+
- [ ] Press `Escape` while dialog/modal is open; verify closure and focus restoration.
|
|
59
|
+
|
|
60
|
+
### 3.3 State Quad Coverage
|
|
61
|
+
- [ ] Inspect loading state: does it use proportional skeletons matching final dimensions?
|
|
62
|
+
- [ ] Inspect empty state: is it actionable with a 1-sentence explanation?
|
|
63
|
+
- [ ] Inspect error state: does it diagnose the issue and provide an inline retry button?
|
|
64
|
+
- [ ] Inspect mutation triggers: do buttons lock and display spinners during network latency?
|
|
65
|
+
|
|
66
|
+
### 3.4 Microcopy & Token Hygiene
|
|
67
|
+
- [ ] Run 50% word reduction sweep across headings and explanatory paragraphs.
|
|
68
|
+
- [ ] Confirm all buttons follow `Verb + Noun` grammar.
|
|
69
|
+
- [ ] Verify zero banned buzzwords (*seamless*, *empower*, *robust*).
|
|
70
|
+
- [ ] Verify zero hardcoded hex codes (`#...`) or arbitrary pixel values in style markup.
|
|
71
|
+
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Reflexes & Waivable Defaults Catalog
|
|
2
|
+
|
|
3
|
+
Grounded in: Hallmark Reflex Gates and Impeccable Refusal Catalog.
|
|
4
|
+
|
|
5
|
+
> **Definition:** A reflex is an unthinking default that models and junior designers fall into out of habit. Unlike absolute bans (The Floor), reflexes **can be earned** by a specific product brief or technical necessity. However, using a reflex without a deliberate reason is a design defect.
|
|
6
|
+
>
|
|
7
|
+
> **The Waiver Protocol:** When an interface genuinely requires one of these patterns, document the operational rationale in code:
|
|
8
|
+
> ```typescript
|
|
9
|
+
> // ASC-WAIVER: [pattern-id] [concrete operational reason why this default was earned]
|
|
10
|
+
> ```
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 1. Page Scaffold Reflexes
|
|
15
|
+
|
|
16
|
+
### 1.1 Identical Card Grids (`card-grid-reflex`)
|
|
17
|
+
- **The Reflex:** Defaulting every section to 3 or 4 identical rounded cards with an icon, title, and 2 lines of text.
|
|
18
|
+
- **Why It's a Reflex:** Cards are the lazy container. They flatten information hierarchy, making secondary features look identical in importance to core capabilities.
|
|
19
|
+
- **When Allowed (Waived):** Only when displaying truly homogeneous peer entities (e.g., 3 subscription pricing tiers, or a grid of user avatar cards).
|
|
20
|
+
|
|
21
|
+
### 1.2 The Hero-Metric Template (`hero-metric-reflex`)
|
|
22
|
+
- **The Reflex:** Placing a giant number (e.g. `99.9%`, `10M+`) next to a tiny label as the primary visual hook.
|
|
23
|
+
- **Why It's a Reflex:** Models use giant numbers as a shortcut for visual mass when they have no real product screenshots or narrative.
|
|
24
|
+
- **When Allowed (Waived):** When the core value proposition is fundamentally a mathematical guarantee (e.g., SLA guarantee on an infrastructure status page).
|
|
25
|
+
|
|
26
|
+
### 1.3 Modal Dialogs for Simple Tasks (`modal-reflex`)
|
|
27
|
+
- **The Reflex:** Popping a modal dialog for every sub-task, form, or setting.
|
|
28
|
+
- **Why It's a Reflex:** It isolates the task on a blank canvas so the model doesn't have to design layout coexistence.
|
|
29
|
+
- **When Allowed (Waived):** Only when user action is strictly interruptive, irreversible (destructive account deletion), or requires focused authentication.
|
|
30
|
+
|
|
31
|
+
### 1.4 Dark Mode by Habit (`dark-mode-habit`)
|
|
32
|
+
- **The Reflex:** Making every page dark with indigo accents because it looks "tech".
|
|
33
|
+
- **Why It's a Reflex:** Models over-represent developer tool aesthetics on consumer or business products.
|
|
34
|
+
- **When Allowed (Waived):** When the target user operates in low-light environments (IDE, code editor, video grading, night terminal) or brand guidelines mandate it.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 2. Surface & Decoration Reflexes
|
|
39
|
+
|
|
40
|
+
### 2.1 Side-Stripe Colored Borders (`side-stripe-border`)
|
|
41
|
+
- **The Reflex:** Adding `border-l-4 border-blue-500` to random cards, list items, or callouts.
|
|
42
|
+
- **Why It's a Reflex:** A cheap visual crutch to make a plain card look designed without establishing real typography or spacing.
|
|
43
|
+
- **When Allowed (Waived):** High-priority operational system alerts (info/warn/error alert banners).
|
|
44
|
+
|
|
45
|
+
### 2.2 Hard Offset Block Shadows (`hard-offset-shadow`)
|
|
46
|
+
- **The Reflex:** Applying `box-shadow: 4px 4px 0 #000` to standard SaaS components.
|
|
47
|
+
- **Why It's a Reflex:** Adopting a Neo-Brutalist costume on an interface that has no other brutalist attributes.
|
|
48
|
+
- **When Allowed (Waived):** Authentic, cohesive Neo-Brutalist design systems where heavy typography, bold line art, and high contrast coexist throughout.
|
|
49
|
+
|
|
50
|
+
### 2.3 Zero-Offset Colored Glows (`zero-offset-glow`)
|
|
51
|
+
- **The Reflex:** Slapping `shadow-[0_0_20px_rgba(...)]` behind buttons, icons, or cards.
|
|
52
|
+
- **Why It's a Reflex:** Glow is an attention amplifier. Sprayed everywhere, it amplifies nothing and marks the interface as AI-generated.
|
|
53
|
+
- **When Allowed (Waived):** Maximum 1 focal element on a dark entertainment or gaming canvas where glow simulates an actual light source.
|
|
54
|
+
|
|
55
|
+
### 2.4 Monospace Font as Technical Costume (`mono-costume`)
|
|
56
|
+
- **The Reflex:** Using monospace fonts on generic labels, headers, or buttons to simulate a "developer tool" vibe.
|
|
57
|
+
- **Why It's a Reflex:** Monospace has low reading legibility for extended prose.
|
|
58
|
+
- **When Allowed (Waived):** Literal code snippets, terminal commands, hashes, IP addresses, or data matrices requiring vertical character alignment.
|
|
59
|
+
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# The Data State Quad & Action Feedback Engine
|
|
2
|
+
|
|
3
|
+
Any view that consumes asynchronous data or triggers mutations must handle every possible state in the component lifecycle. Never design only for the populated happy path.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. The State Quad
|
|
8
|
+
|
|
9
|
+
Every data-driven interface exists in one of four states:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
┌─────────────┐
|
|
13
|
+
│ 1. LOADING │
|
|
14
|
+
└──────┬──────┘
|
|
15
|
+
│
|
|
16
|
+
┌──────────────┴──────────────┐
|
|
17
|
+
▼ ▼
|
|
18
|
+
┌─────────────┐ ┌─────────────┐
|
|
19
|
+
│ 2. EMPTY │ │ 3. POPULATED│
|
|
20
|
+
└─────────────┘ └─────────────┘
|
|
21
|
+
│ ▲
|
|
22
|
+
│ ┌─────────────┐ │
|
|
23
|
+
└───────►│ 4. ERROR │──────┘ (Retry)
|
|
24
|
+
└─────────────┘
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 2. State 1: Proportional Loading Skeletons
|
|
30
|
+
|
|
31
|
+
Avoid generic full-screen spinners that cause severe Layout Shift (CLS) when content loads. Skeletons must mimic the exact bounding box and proportions of the expected data.
|
|
32
|
+
|
|
33
|
+
```html
|
|
34
|
+
<!-- Table Skeleton: Matches row height and column widths -->
|
|
35
|
+
<div class="space-y-3 animate-pulse" aria-busy="true" aria-label="Loading audit logs">
|
|
36
|
+
<div class="h-8 bg-muted rounded w-full"></div>
|
|
37
|
+
<div class="h-12 bg-muted/60 rounded w-full"></div>
|
|
38
|
+
<div class="h-12 bg-muted/60 rounded w-full"></div>
|
|
39
|
+
<div class="h-12 bg-muted/60 rounded w-full"></div>
|
|
40
|
+
</div>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
- Match font size heights: `h-4` for body lines, `h-6` for headings, `h-10` for action buttons.
|
|
44
|
+
- Constrain width variance: alternate `w-3/4`, `w-1/2`, `w-5/6` on multi-line text to mirror natural paragraph shapes.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 3. State 2: Concise Actionable Empty States
|
|
49
|
+
|
|
50
|
+
Empty states occur when a query returns zero records or an entity has not been initialized.
|
|
51
|
+
|
|
52
|
+
- **Banned:** Flowery essay copy ("It looks like you haven't created any projects yet! Don't worry, getting started is easy and fun...").
|
|
53
|
+
- **Enforced:** 1-sentence factual description followed by a primary creation trigger:
|
|
54
|
+
|
|
55
|
+
```html
|
|
56
|
+
<div class="py-12 px-4 text-center rounded-lg border border-dashed border-border">
|
|
57
|
+
<div class="mx-auto w-10 h-10 rounded-full bg-muted flex items-center justify-center text-muted-foreground mb-3">
|
|
58
|
+
<svg class="w-5 h-5" aria-hidden="true">...</svg>
|
|
59
|
+
</div>
|
|
60
|
+
<h3 class="text-sm font-semibold text-foreground">No webhooks configured</h3>
|
|
61
|
+
<p class="mt-1 text-xs text-muted-foreground max-w-sm mx-auto">
|
|
62
|
+
Endpoints will receive real-time HTTP POST notifications when events occur.
|
|
63
|
+
</p>
|
|
64
|
+
<div class="mt-4">
|
|
65
|
+
<button type="button" class="px-3 py-1.5 bg-primary text-primary-foreground text-xs font-medium rounded-md">
|
|
66
|
+
Create webhook endpoint
|
|
67
|
+
</button>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 4. State 3: Error States with Inline Retry
|
|
75
|
+
|
|
76
|
+
Operational errors must be surfaced with actionable context. Never swallow errors silently or display opaque error codes without a recovery path.
|
|
77
|
+
|
|
78
|
+
```html
|
|
79
|
+
<div class="p-4 rounded-lg border border-destructive/30 bg-destructive/5 text-foreground flex items-start gap-3">
|
|
80
|
+
<svg class="w-5 h-5 text-destructive shrink-0 mt-0.5" aria-hidden="true">...</svg>
|
|
81
|
+
<div class="flex-1 text-xs space-y-1">
|
|
82
|
+
<p class="font-medium text-destructive">Failed to load deployment metrics</p>
|
|
83
|
+
<p class="text-muted-foreground">The telemetry service timed out after 5,000ms. Check network connection or retry.</p>
|
|
84
|
+
<div class="pt-2">
|
|
85
|
+
<button type="button" class="px-2.5 py-1 bg-background border border-border text-foreground rounded text-xs hover:bg-muted font-medium">
|
|
86
|
+
Retry query
|
|
87
|
+
</button>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 5. Mutation Action Feedback: The Pending Lock
|
|
96
|
+
|
|
97
|
+
Mutations (create, update, delete, trigger) must give instantaneous feedback to prevent race conditions and double-submission.
|
|
98
|
+
|
|
99
|
+
```tsx
|
|
100
|
+
// React example for mutation feedback
|
|
101
|
+
function DeployButton({ onDeploy }: { onDeploy: () => Promise<void> }) {
|
|
102
|
+
const [isPending, setIsPending] = useState(false);
|
|
103
|
+
|
|
104
|
+
const handleClick = async () => {
|
|
105
|
+
if (isPending) return;
|
|
106
|
+
setIsPending(true);
|
|
107
|
+
try {
|
|
108
|
+
await onDeploy();
|
|
109
|
+
toast.success("Deployment queued successfully");
|
|
110
|
+
} catch (err) {
|
|
111
|
+
toast.error(err instanceof Error ? err.message : "Deployment failed");
|
|
112
|
+
} finally {
|
|
113
|
+
setIsPending(false);
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
return (
|
|
118
|
+
<button
|
|
119
|
+
type="button"
|
|
120
|
+
disabled={isPending}
|
|
121
|
+
onClick={handleClick}
|
|
122
|
+
className="inline-flex items-center gap-2 px-3 py-2 bg-primary text-primary-foreground text-sm font-medium rounded-md disabled:opacity-50 disabled:cursor-not-allowed"
|
|
123
|
+
>
|
|
124
|
+
{isPending && <Spinner className="w-4 h-4 animate-spin" />}
|
|
125
|
+
<span>{isPending ? "Queuing deployment..." : "Deploy to production"}</span>
|
|
126
|
+
</button>
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 6. Localized Error Boundaries
|
|
134
|
+
|
|
135
|
+
Never allow an error in an auxiliary widget (e.g. recent activity feed, analytics graph) to crash the entire application shell or parent form.
|
|
136
|
+
|
|
137
|
+
Wrap distinct layout sections in localized error boundaries:
|
|
138
|
+
```tsx
|
|
139
|
+
<AppShell>
|
|
140
|
+
<ErrorBoundary fallback={<TelemetryFallbackError />}>
|
|
141
|
+
<RealtimeTelemetryChart />
|
|
142
|
+
</ErrorBoundary>
|
|
143
|
+
<ErrorBoundary fallback={<TableFallbackError />}>
|
|
144
|
+
<DeploymentsTable />
|
|
145
|
+
</ErrorBoundary>
|
|
146
|
+
</AppShell>
|
|
147
|
+
```
|
|
148
|
+
|
package/README.md
CHANGED
|
@@ -108,7 +108,7 @@ If you need to override these defaults (e.g., to whitelist a specific dependency
|
|
|
108
108
|
|
|
109
109
|
## Commands & CLI
|
|
110
110
|
|
|
111
|
-
ASC provides
|
|
111
|
+
ASC provides 6 orthogonal meta-commands to steer your agents (`/asc`, `/asc-develop`, `/asc-review`, `/asc-test`, `/asc-reference`, `/asc-ui`).
|
|
112
112
|
It also provides a CLI to manage your local setup (e.g. `asc adapter --all`, `asc global --all`).
|
|
113
113
|
|
|
114
114
|
### Git Pre-Commit Hook
|
package/gemini-extension.json
CHANGED
package/package.json
CHANGED
package/plugin.yaml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: agentic-senior-core
|
|
2
|
-
version: 6.
|
|
2
|
+
version: 6.16.0
|
|
3
3
|
description: Universal AI coding rules. Write code like a staff engineer.
|
|
4
4
|
author: fatidaprilian
|
|
5
5
|
provides_hooks:
|
|
@@ -10,9 +10,11 @@ provides_commands:
|
|
|
10
10
|
- asc-review
|
|
11
11
|
- asc-reference
|
|
12
12
|
- asc-ui
|
|
13
|
+
- asc-test
|
|
13
14
|
provides_skills:
|
|
14
15
|
- asc
|
|
15
16
|
- asc-develop
|
|
16
17
|
- asc-reference
|
|
17
18
|
- asc-review
|
|
18
19
|
- asc-ui
|
|
20
|
+
- asc-test
|