@ryuenn3123/agentic-senior-core 6.16.5 → 6.16.6

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.
Files changed (57) hide show
  1. package/.agents/plugins/agentic-senior-core/.codex-plugin/plugin.json +1 -1
  2. package/.agents/plugins/agentic-senior-core/commands/asc-test.md +1 -1
  3. package/.agents/plugins/agentic-senior-core/commands/asc-ui.md +1 -1
  4. package/.agents/plugins/agentic-senior-core/hooks/lib/known-ui-slop-patterns.json +5 -0
  5. package/.agents/plugins/agentic-senior-core/plugin.json +1 -1
  6. package/.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md +2 -1
  7. package/.agents/plugins/agentic-senior-core/skills/asc/references/writing-skills.md +1 -1
  8. package/.agents/plugins/agentic-senior-core/skills/asc-develop/SKILL.md +2 -2
  9. package/.agents/plugins/agentic-senior-core/skills/asc-pentest/references/fuzzing-dsl.md +1 -1
  10. package/.agents/plugins/agentic-senior-core/skills/asc-test/SKILL.md +2 -2
  11. package/.agents/plugins/agentic-senior-core/skills/asc-test/references/regression-proof.md +2 -2
  12. package/.agents/plugins/agentic-senior-core/skills/asc-test/references/tdd-cycle.md +2 -2
  13. package/.agents/plugins/agentic-senior-core/skills/asc-test/references/uat.md +1 -1
  14. package/.agents/plugins/agentic-senior-core/skills/asc-ui/SKILL.md +25 -31
  15. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/accessibility.md +2 -2
  16. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/copy-i18n.md +24 -8
  17. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/craft/color-surfaces.md +13 -6
  18. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/craft/composition-patterns.md +299 -0
  19. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/craft/themes-catalog.md +10 -9
  20. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/divergence.md +51 -42
  21. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/modes/experience.md +4 -0
  22. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/modes/genre-calibration.md +10 -6
  23. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/modes/operate.md +13 -9
  24. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/modes/persuade.md +26 -17
  25. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/modes/read.md +4 -0
  26. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/redesign-audit.md +1 -1
  27. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/states-feedback.md +2 -2
  28. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-attio-dom.json +5 -0
  29. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-attio.png +0 -0
  30. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-cal-dom.json +5 -0
  31. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-cal.png +0 -0
  32. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-clerk-dom.json +5 -0
  33. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-clerk.png +0 -0
  34. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-dub-dom.json +5 -0
  35. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-dub.png +0 -0
  36. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-linear-dom.json +5 -0
  37. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-linear.png +0 -0
  38. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-marketplace-dom.json +5 -0
  39. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-marketplace.png +0 -0
  40. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-mintlify-dom.json +5 -0
  41. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-mintlify.png +0 -0
  42. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-raycast-dom.json +5 -0
  43. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-raycast.png +0 -0
  44. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-resend-dom.json +5 -0
  45. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-resend.png +0 -0
  46. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-stripe-dom.json +5 -0
  47. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-stripe.png +0 -0
  48. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-supabase-dom.json +5 -0
  49. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-supabase.png +0 -0
  50. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-tldraw-dom.json +5 -0
  51. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-tldraw.png +0 -0
  52. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-vercel-dom.json +5 -0
  53. package/.agents/plugins/agentic-senior-core/skills/asc-ui/references/visuals/real-vercel.png +0 -0
  54. package/gemini-extension.json +1 -1
  55. package/lib/cli/commands/preview.mjs +22 -17
  56. package/package.json +1 -1
  57. package/plugin.yaml +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-senior-core",
3
- "version": "6.16.5",
3
+ "version": "6.16.6",
4
4
  "description": "Universal AI coding rules. Write code like a staff engineer.",
5
5
  "skills": "./skills/",
6
6
  "hooks": "./hooks/hooks.json",
@@ -1,2 +1,2 @@
1
- Run the testing, TDD, verification, and UAT standards from skills/asc-test/SKILL.md. Enforce the Iron Law (no production code without a failing test first), apply verification gates with fresh execution evidence, reproduce bugfixes with regression proofs, design boundary-isolated tests, and diagnose flaky tests.
1
+ Run the testing, TDD, verification, and UAT standards from skills/asc-test/SKILL.md. Enforce test-first discipline (no production code without a failing test first), apply verification gates with fresh execution evidence, reproduce bugfixes with regression proofs, design boundary-isolated tests, and diagnose flaky tests.
2
2
 
@@ -1 +1 @@
1
- Run the UI/UX engineering and anti-slop guidelines from skills/asc-ui/SKILL.md. Clean up verbose microcopy, eliminate redundant headings/subtitles, enforce single-language purity without awkward foreign loanwords, optimize information density, and implement reliable data states.
1
+ Run the UI/UX engineering, typography, and accessibility guidelines from skills/asc-ui/SKILL.md. Clean up verbose microcopy, eliminate redundant headings/subtitles, enforce single-language consistency across interfaces, optimize information density, and implement reliable data states.
@@ -159,6 +159,11 @@
159
159
  "id": "copy-filler-preamble",
160
160
  "regex": "\\b(In today's (?:fast-paced|digital)|Built for (?:the )?modern teams?|Welcome to the)\\b",
161
161
  "message": "note: AI preamble/filler detected ('In today\\'s fast-paced...', 'Built for modern teams'). Delete the introductory throat-clearing and lead with action."
162
+ },
163
+ {
164
+ "id": "copy-clumsy-indonesian-translations",
165
+ "regex": "\\b(laci sembul|jendela sembul|garis rambut|panggung asimetris)\\b",
166
+ "message": "warning: clumsy literal translation detected ('laci sembul', 'garis rambut'). Use natural Indonesian ('panel samping', 'garis tipis', 'area utama')."
162
167
  }
163
168
  ]
164
169
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agentic-senior-core",
3
3
  "displayName": "Agentic Senior Core",
4
- "version": "6.16.5",
4
+ "version": "6.16.6",
5
5
  "description": "Universal AI coding rules and workflows. Write code like a staff engineer.",
6
6
  "author": "fatidaprilian",
7
7
  "repository": "https://github.com/fatidaprilian/Agentic-Senior-Core"
@@ -46,7 +46,8 @@ When picking step 5 or 6 (unless trivial):
46
46
  - 50% reduction rule: Write the statement, then cut unnecessary words. Replace ornamental adjectives with measurable facts (not "a robust, blazing-fast parser", write "parses 50MB/s with zero heap allocations").
47
47
  - Ban AI cadences: Never use the Tricolon ("Fast. Simple. Secure."), the Mad-Lib ("The AI-powered platform for modern teams"), the Rebuttal ("Not just a tool, it's a workflow"), or conversational throat-clearing ("In today's fast-paced landscape...").
48
48
  - Buzzword blacklist: Never emit `seamless(ly)`, `robust`, `empower(ing)`, `supercharge`, `elevate`, `effortless(ly)`, `cutting-edge`, `delve`, `testament`, `pivotal`, `crucial`, `game-changing`, or `next-generation`.
49
- - Strict single-language purity: Choose one language per document or surface. In Indonesian contexts, never prefix grammatical affixes to raw English stems (`di-submit`, `meng-generate`, `di-approve`, `me-restore`).
49
+ - Strict single-language purity: Choose one language per document or surface. Never mix languages within a single deliverable. Never append parenthetical translation glosses to technical concepts. In localized contexts, translate concepts into the target language's natural, idiomatic engineering terms rather than clumsy literal calques.
50
+ - Silent internal framework discipline: Never leak ASC internal rule names, checklists, or meta-labels into user-facing plans, UI copy, or code comments. Focus purely on technical and domain facts.
50
51
  - Code comment hygiene: Zero decorative character banners (// =====), zero line-by-line narration (// Step 1: validate), zero empty category tags (// Main logic), and zero signature echoes in docstrings. Keep only comments that document non-obvious operational constraints, security boundaries, concurrency hazards, or protocol contracts.
51
52
  - Delete code that carries no behavior, safety, or test value. Readability wins over brevity.
52
53
  - Detect and respect project linter/formatter configs. Do not restate style rules enforced by tooling.
@@ -4,7 +4,7 @@ Engineering guidelines for creating high-performance, token-efficient skills for
4
4
 
5
5
  ---
6
6
 
7
- ## 1. The Discovery & Routing Trap
7
+ ## 1. Skill Discovery & Trigger Precision
8
8
 
9
9
  Research into agent skill selection shows that models degrade in tool and skill routing when descriptions summarize internal workflows.
10
10
 
@@ -21,7 +21,7 @@ Use when creating a new application, service, or repository from zero.
21
21
  2. Propose the top-level directory layout and module boundaries following idiomatic conventions of the chosen stack.
22
22
  3. Present an architectural summary and wait for user alignment before writing files.
23
23
 
24
- ### Step 2: Implementation & Decision Ladder
24
+ ### Step 2: Architecture & Implementation Hierarchy
25
25
  1. Apply the ASC Decision Ladder to every module:
26
26
  - Does this need to be built?
27
27
  - Can standard library or native platform handle it?
@@ -55,7 +55,7 @@ Use when adding endpoints, components, pages, or capabilities to an existing cod
55
55
 
56
56
  ### Step 3: Implement & Validate (TDD Integration)
57
57
  1. Follow the TDD cycle via `/asc-test`: write the failing test first (RED), write minimal code to pass (GREEN), then refactor.
58
- 2. **Zero-Fake-Done Testing**: Run the project test suite (`ascx npm test`, `ascx pytest`, `ascx cargo test`). The test runner **MUST** exit with code 0.
58
+ 2. **Empirical Test Execution**: Run the project test suite (`ascx npm test`, `ascx pytest`, `ascx cargo test`). The test runner **MUST** exit with code 0.
59
59
  3. Never weaken or delete test assertions to simulate a passing run. Fix the underlying business logic.
60
60
 
61
61
  ---
@@ -53,7 +53,7 @@ All dynamic injection tests must use non-destructive canary strings. Never injec
53
53
 
54
54
  ---
55
55
 
56
- ## 3. The Failure Oracle (Crash & Error Triage)
56
+ ## 3. Crash Detection & Error Triage
57
57
 
58
58
  When fuzzing an endpoint, every server response is categorized against three automated oracles:
59
59
 
@@ -10,9 +10,9 @@ Staff-grade testing playbook and verification gates. Enforces test-first discipl
10
10
 
11
11
  ---
12
12
 
13
- ## 1. The Iron Law of TDD
13
+ ## 1. Test-Driven Development Protocol
14
14
 
15
- > **THE IRON LAW:** No production code shall be written without a failing test first.
15
+ > **CORE PROTOCOL:** No production code shall be written without a failing test first.
16
16
 
17
17
  Every feature, bugfix, or refactor must follow the Red-Green-Refactor sequence:
18
18
  1. **RED:** Write a minimal failing test. Execute it and confirm it fails for the expected reason.
@@ -36,7 +36,7 @@ Never fix a bug by immediately editing production code. Follow this deterministi
36
36
  - Edit production code to eliminate the bug.
37
37
  - Run the reproduction test fresh: it must pass with exit code 0.
38
38
 
39
- ### Step 3: The Regression Proof Gate (Revert & Confirm)
39
+ ### Step 3: Regression Verification (Revert & Confirm)
40
40
  To prove that the test actually guards against the bug:
41
41
  1. Temporarily comment out or revert the fix in production code.
42
42
  2. Run the test fresh: **The test must fail.**
@@ -45,7 +45,7 @@ To prove that the test actually guards against the bug:
45
45
 
46
46
  ---
47
47
 
48
- ## 2. Claim Verification Gate
48
+ ## 2. Claim Verification Standards
49
49
 
50
50
  Every claim regarding test results or bug fixes requires concrete execution evidence:
51
51
 
@@ -1,8 +1,8 @@
1
1
  # Test-Driven Development (TDD) Cycle
2
2
 
3
- TDD is an architectural discipline for writing deterministic, verifiable software. The Iron Law of TDD governs all development:
3
+ TDD is an architectural discipline for writing deterministic, verifiable software. The core principle governs all development:
4
4
 
5
- > **THE IRON LAW:** No production code shall be written without a failing test first.
5
+ > **Core Principle:** No production code shall be written without a failing test first.
6
6
 
7
7
  ---
8
8
 
@@ -42,7 +42,7 @@ Verification records, testing matrices, and UAT notes belong in the agent conver
42
42
 
43
43
  ---
44
44
 
45
- ## 4. The Edge Case Quad
45
+ ## 4. Boundary & Edge Case Categories
46
46
 
47
47
  Never sign off on acceptance testing by verifying only the primary happy path. Every scenario must be verified against four operational vectors:
48
48
 
@@ -27,7 +27,7 @@ Every UI edit must satisfy these 15 rules without exception:
27
27
  11. **Mobile containment:** Set `overflow-x: clip` on root shells. Never leak horizontal scrolling.
28
28
  12. **Touch targets:** Minimum 44×44px hit target with $\ge$ 8px clearance for all interactive touch controls.
29
29
  13. **Contrast floor:** Meet WCAG 2.2 AA (4.5:1 normal text, 3:1 large text and UI component boundaries).
30
- 14. **Single-language purity:** Never mix languages on one surface; ban hybrid neologisms (`di-submit`, `meng-generate`).
30
+ 14. **Single-language purity:** Never mix languages on one surface; preserve monolingual consistency across headings, labels, errors, and actions.
31
31
  15. **Icon semantics:** Never use raw unicode or emojis as icons. Use dedicated SVG icons; mark decorative icons `aria-hidden="true"`.
32
32
  16. **Substance over restraint:** Stripping slop is only half the job. Replace removed ornaments with real substance: strong typographic scale contrast, full-field color anchors, and authentic interface fragments. Never leave an empty, sterile wireframe void.
33
33
  17. **Product over skill (No geek cosplay):** The real-world domain dictates aesthetics. Never inject terminal windows, ASCII art, or pseudo-telemetry consoles into civic, educational, or commercial products (`references/modes/genre-calibration.md`).
@@ -40,26 +40,17 @@ Every UI edit must satisfy these 15 rules without exception:
40
40
 
41
41
  Before declaring markup, drafting redesign plans, or inspecting user code:
42
42
 
43
- 1. **Locate Skill Directory & References (MANDATORY):**
44
- Reference files do NOT reside in the user workspace root. They are located adjacent to this `SKILL.md` file:
45
- `<skill_directory>/references/<category>/<file>.md`
46
- Identify the path of this `SKILL.md` file (provided by host/tooling) and resolve all reference paths relative to it.
47
-
48
- 2. **Step 1 — Two-Phase Enforcement Gate (MANDATORY GATE):**
49
- - **Phase A (Structure & Hierarchy First):** Lock project domain genre (Civic, Enterprise, SaaS, DevTools) and read `references/modes/genre-calibration.md` + target mode reference (`references/modes/<mode>.md`). Lock the primary focal anchor and spatial posture before writing code.
50
- - **Phase B (Visual System & Themes):** Read `references/craft/themes-catalog.md` and lock one of the 16 curated themes across 8 real-world domains (e.g., Sovereign Slate, Almanac Index, Editorial Ledger, Pharmacy Calm, Ink & Signal, Graphite Instrument) to prevent probabilistic palette slop.
51
- *Do NOT proceed until you have read the genre, mode, and theme references into context.*
52
-
53
- 3. **Step 2 — Secondary Craft Ingestion:**
54
- Execute `read_file` on at least one relevant craft reference for your task from Section 5 (e.g. `references/craft/typography.md`, `references/craft/color-surfaces.md`, or `references/divergence.md`).
55
-
56
- 4. **Step 3 — Workspace Material Inventory:**
57
- Only AFTER loading the mode reference, inspect the workspace:
58
- - **Design Tokens:** Read project CSS variables, Tailwind configuration, or existing components in `components/` or `ui/`. If `DESIGN.md` exists, read it (read-only). Never create or edit persistent checkpoint files.
59
- - **Take Material Inventory:**
60
- - **Real:** Concrete numbers, existing endpoints, actual data attributes.
61
- - **Pictures:** Actual screenshots and product visual assets.
62
- - **Absent:** Missing quotes, missing logos, or unverified metrics—these are omitted entirely.
43
+ 1. **Step 1 — Workspace Brand Audit (Brownfield vs Greenfield):**
44
+ - Check project styling configuration: `app.css`, `globals.css`, `tailwind.config.*`, or `components/ui`.
45
+ - **Brownfield Rule:** If the project already defines brand tokens (e.g. custom brand colors, established fonts, existing UI library), **DO NOT OVERRIDE THEM**. Calibrate neutrals to the brand's color temperature (single neutral family law) and respect established naming.
46
+ - **Greenfield Fallback:** If the repository is brand new with zero tokens, read `references/modes/genre-calibration.md` and select a starting palette from `references/craft/themes-catalog.md`.
47
+ 2. **Step 2 — Silent Discipline & Real Visual Benchmarks:**
48
+ - Review `references/craft/composition-patterns.md` and inspect matching `references/visuals/real-*.png` / `*-dom.json` for authentic human-designed spacing and layout hierarchies rather than enclosing sections in repetitive `1px` boxes.
49
+ - **Silent Meta-Rules:** Never emit internal framework rules, theme catalog names, or parenthetical foreign translations in user deliverables. Focus purely on technical facts.
50
+ 3. **Step 3 — Workspace Material Inventory:**
51
+ - **Real:** Concrete numbers, existing endpoints, actual data attributes from controllers/models.
52
+ - **Pictures:** Actual screenshots and product visual assets.
53
+ - **Absent:** Missing quotes, missing logos, or unverified metrics—these are omitted entirely.
63
54
 
64
55
  ---
65
56
 
@@ -91,17 +82,19 @@ Never split the difference into cosmetic polish on a discarded look:
91
82
  | Target Domain / Task Requirement | Mandatory Reference Path |
92
83
  |---|---|
93
84
  | Domain & genre calibration (Anti-geek cosplay) | `references/modes/genre-calibration.md` |
94
- | Curated material themes & locked art direction | `references/craft/themes-catalog.md` |
85
+ | Concrete structural layouts & anti-1px cage | `references/craft/composition-patterns.md` |
86
+ | Real-world visual benchmarks & rendered DOMs | `references/visuals/` (13 live domains) |
87
+ | Curated material themes (Greenfield reference) | `references/craft/themes-catalog.md` |
95
88
  | Waivable defaults & waiver syntax | `references/reflexes.md` |
96
89
  | Typography, line-height & tabular numbers | `references/craft/typography.md` |
97
- | Color tokens, 60-30-10 & elevation | `references/craft/color-surfaces.md` |
90
+ | Color tokens, single neutral family & elevation | `references/craft/color-surfaces.md` |
98
91
  | Micro-interactions & GPU motion | `references/craft/motion.md` |
99
92
  | Native surfaces (selection, caret, scrollbars) | `references/craft/browser-surfaces.md` |
100
- | 50% reduction, active verbs & i18n | `references/copy-i18n.md` |
93
+ | 50% reduction, active verbs & natural i18n | `references/copy-i18n.md` |
101
94
  | Responsive reflow, dvh & touch targets | `references/mobile-responsive.md` |
102
95
  | WCAG 2.2 AA contrast & keyboard operability | `references/accessibility.md` |
103
- | The Data State Quad & mutation feedback | `references/states-feedback.md` |
104
- | Anti-convergence, 4 Waves of Tells & Mirror Test | `references/divergence.md` |
96
+ | The Data State System & mutation feedback | `references/states-feedback.md` |
97
+ | Anti-convergence & layout diversity | `references/divergence.md` |
105
98
  | Structured UI audit matrix | `references/redesign-audit.md` |
106
99
 
107
100
  ---
@@ -109,9 +102,10 @@ Never split the difference into cosmetic polish on a discarded look:
109
102
  ## 6. Verification & Handoff Sweep
110
103
 
111
104
  Before completing any UI task, run this mechanical check:
112
- 1. **Reference Compliance:** Confirm constraints from `references/modes/genre-calibration.md`, `references/craft/themes-catalog.md`, and target mode were strictly applied.
105
+ 1. **Brand & Reference Compliance:** Confirm project tokens were respected (or greenfield constraints followed). Verify zero clumsy literal translations or meta-jargon leaks.
113
106
  2. **Finish Gate Sweep:** Verify zero text clipping (+30% expansion buffer), zero awkward text wraps, and 4px/8px spacing grid consistency.
114
- 3. **State Quad:** Loading skeleton, empty state, error with retry, and populated data are all handled.
115
- 4. **Pending Feedback:** Buttons disable and display feedback during ongoing mutations.
116
- 5. **Contrast & Focus:** Verify keyboard tab flow and high-contrast `:focus-visible` styling.
117
- 6. **Lint Check:** Verify changes against `hooks/lib/known-ui-slop-patterns.json`.
107
+ 3. **Visual Verification (`asc preview`):** If a local dev server is running or an HTML prototype exists, run `asc preview <url|file> [--mobile]` to inspect the rendered visual balance before handoff.
108
+ 4. **Data States:** Loading skeleton, empty state, error with retry, and populated data are all handled.
109
+ 5. **Pending Feedback:** Buttons disable and display feedback during ongoing mutations.
110
+ 6. **Contrast & Focus:** Verify keyboard tab flow and high-contrast `:focus-visible` styling.
111
+ 7. **Lint Check:** Verify changes against `hooks/lib/known-ui-slop-patterns.json`.
@@ -4,7 +4,7 @@ Accessibility is not an afterthought or an optional overlay. It is the structura
4
4
 
5
5
  ---
6
6
 
7
- ## 1. Contrast Ratios & The Grey-on-Grey Trap
7
+ ## 1. Contrast Ratios & WCAG Compliance
8
8
 
9
9
  All text and critical visual indicators must meet WCAG 2.2 Level AA mathematical contrast floors.
10
10
 
@@ -13,7 +13,7 @@ All text and critical visual indicators must meet WCAG 2.2 Level AA mathematical
13
13
  - **Large Text ($\ge$ 18pt / 24px regular, $\ge$ 14pt bold):** Minimum `3:1` contrast ratio.
14
14
  - **UI Components & Graphical Boundaries:** Active input borders, toggle switches, and focus indicators require minimum `3:1` against adjacent background colors.
15
15
 
16
- ### 1.2 The Dark Mode Grey-on-Grey Trap
16
+ ### 1.2 Avoiding Low-Contrast Surfaces
17
17
  A frequent aesthetic failure is using low-contrast grey text for "subtle elegance":
18
18
  - **Failing example:** `text-zinc-500` (`#71717a`) on `bg-zinc-900` (`#18181b`) = **3.8:1** (Fails 4.5:1 AA for body copy).
19
19
  - **Compliant fix:** `text-zinc-400` (`#a1a1aa`) on `bg-zinc-900` = **6.2:1** (Passes AA).
@@ -89,19 +89,35 @@ An operational error message must never produce a dead end or display raw intern
89
89
 
90
90
  ---
91
91
 
92
- ## 6. Single-Language Purity & Anti-Gado-Gado
92
+ ## 6. Single-Language Consistency & Localization
93
93
 
94
- Interfaces must maintain strict language purity. Mixing two languages within the same surface causes cognitive friction and feels unpolished.
94
+ Interfaces and developer communications must maintain strict language purity without robotic or literal translation awkwardness.
95
95
 
96
96
  ### 6.1 Strict Monolingual Surface
97
97
  Choose one language for the entire surface and enforce it across headings, labels, errors, and tooltips:
98
98
  - **English UI:** All copy, actions, and timestamps in English.
99
- - **Indonesian UI:** All copy, actions, and timestamps in standard Indonesian (KBBI/PUEBI).
100
-
101
- ### 6.2 Ban Hybrid Neologisms (Indonesian Context)
102
- Never prefix Indonesian grammatical affixes (`di-`, `meng-`, `ter-`, `pe-`) onto raw English stems:
103
-
104
- | Hybrid Neologism (Banned) | Standard Indonesian | Pure English Alternative |
99
+ - **Indonesian UI:** All copy, actions, and timestamps in natural, standard Indonesian (KBBI/PUEBI).
100
+
101
+ ### 6.2 Codebase Lexicon Supremacy (Anti-Hallucinated Naming)
102
+ Before naming navigation menus, section titles, table columns, or actions in an existing codebase, inspect the project's models, controllers, and view variables:
103
+ - **Respect established domain terms:** Always adopt the exact nouns established in the repository's models, routes, and translations. Never substitute recognized project nouns with unprompted external synonyms.
104
+ - Use the actual terminology the organization and developers already use in their schema and UI.
105
+
106
+ ### 6.3 Ban Robot Translations & Meta-Jargon Parens
107
+ In localized interface and review text:
108
+ 1. **No clumsy literal translations of English layout terms:**
109
+ - Do NOT translate *drawer* into awkward calques; write natural native labels (e.g. "panel samping" or "detail").
110
+ - Do NOT translate *modal* literally; write natural functional terms (e.g. "dialog" or "popup").
111
+ - Do NOT translate *hairline border* as literal anatomy; write "garis tipis 1px" or "garis pemisah".
112
+ - Do NOT translate layout stages into literal theatrical terms; write "layout dua kolom" or "area utama".
113
+ 2. **No parenthetical English jargon leaks:**
114
+ - Never write sentences that append raw English terms in parentheses as translation glosses.
115
+ - Write clear, natural localized prose without meta-framework disclaimers.
116
+
117
+ ### 6.4 Ban Hybrid Neologisms
118
+ Never prefix local grammatical affixes onto foreign language stems:
119
+
120
+ | Hybrid Neologism (Banned) | Standard Native Alternative | Pure English Alternative |
105
121
  |---|---|---|
106
122
  | `di-submit` | `Dikirim` / `Diserahkan` | `Submitted` |
107
123
  | `meng-generate` | `Menghasilkan` / `Membuat` | `Generating` |
@@ -13,6 +13,13 @@ Grounded in: Apple HIG, Google Material Design 3, and Refactoring UI Color Strat
13
13
  - Borders: `border-border`, `border-input`, `border-primary`.
14
14
  - **Zero Raw Hex Literals in Markup:** Never write inline hex values (`#6366f1`, `#3b82f6`) or arbitrary utility classes (`bg-blue-600`) outside the root token definition.
15
15
 
16
+ - **The Single Neutral Family Law (Anti-Muddy Surfaces):**
17
+ - Never mix cool-tinted grays (e.g. Tailwind `slate-*`, with blue undertones) and warm-tinted grays (e.g. `stone-*`, with yellow/brown undertones) on the same screen. Combining `slate-900` text with `stone-50` backgrounds creates a dirty, mismatched optical surface.
18
+ - Choose one neutral temperature matching the project's primary brand:
19
+ - Warm brands (warm green, brown, amber, terracotta) $\to$ pair strictly with `stone` or neutral warm tones.
20
+ - Cool brands (navy, cobalt, cyan, indigo) $\to$ pair strictly with `slate` or cool zinc.
21
+ - Pure monochromatic / minimal brands $\to$ pair with neutral `zinc` or `gray`.
22
+
16
23
  ---
17
24
 
18
25
  ## 2. The 60-30-10 Distribution Rule
@@ -49,13 +56,13 @@ Grounded in: Apple HIG, Google Material Design 3, and Refactoring UI Color Strat
49
56
 
50
57
  ---
51
58
 
52
- ## 4. Integrated Scorecards & Metric Blocks (Anti-Sticker Invariant)
59
+ ## 4. Metric Displays & Scorecards
53
60
 
54
- - **Ban The Sticker Box:** Never place an isolated white box with a thin border floating inside an already white or light header canvas. This creates an optical "detached sticker" artifact.
61
+ - **Integrated Layout:** Never place an isolated white box with a thin border floating inside an already white or light header canvas.
55
62
  - **Anchor Into Layout Chrome:**
56
63
  - Integrate scorecards directly into the identity header rail or stage banner using a unified divider (`border-l border-border/80 pl-6`) or structural inset well (`bg-muted/40`).
57
64
  - **Semantic Tinting for Evaluation Scores:**
58
- - When communicating aggregate grades (e.g. `84,20 / 100`, Predikat B):
65
+ - When communicating aggregate grades (e.g. `84.20 / 100`, Rank B):
59
66
  - Background: subtle semantic tint (`bg-emerald-500/10` or `bg-slate-500/10`).
60
67
  - Border: matching tinted hairline (`border border-emerald-500/20`).
61
68
  - Typography: tabular numbers (`font-mono tabular-nums`) with clear contrast ($Display \ge 3.5\times Body$).
@@ -63,10 +70,10 @@ Grounded in: Apple HIG, Google Material Design 3, and Refactoring UI Color Strat
63
70
 
64
71
  ---
65
72
 
66
- ## 5. Contextual Inline Alerts & Callouts (The Callout Invariant)
73
+ ## 5. Inline Notifications & Status Banners
67
74
 
68
- - **Never Float Warning Text Adrift:** Warning notes, disclaimers, or temporary state alerts must NEVER be dumped as raw floating text between layout sections.
69
- - **The Callout Invariant:** Every alert must reside in a structured callout container:
75
+ - **Structured Containers:** Warning notes, disclaimers, or temporary state alerts must reside in clear semantic containers, never dumped as raw floating text between layout sections.
76
+ - **Notification Requirements:** Every alert must reside in a structured callout container:
70
77
  - Container: 1px hairline border with matching light background tint (e.g. `border border-amber-500/30 bg-amber-500/10 rounded-md p-3`).
71
78
  - Icon Anchor: Dedicated semantic SVG icon (alert circle, triangle) aligned with first line of text.
72
79
  - Placement: Positioned immediately above or inside the data table/form it modifies, establishing unmistakable contextual binding.