@worldresources/wri-design-systems 2.195.1 → 2.196.1

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/README.md CHANGED
@@ -46,23 +46,21 @@ ds setup-ai
46
46
 
47
47
  This will:
48
48
 
49
- - Install / update AI instruction files (these may be overwritten):
50
- - `AGENTS.md` content distributed as: `CLAUDE.md`, `GEMINI.md`, `.geminirules`
51
49
  - Configure IDE integrations when detected:
52
50
  - Cursor: writes `.cursor/rules` and creates `.cursor/mcp.json` (skips if it already exists)
53
- - VS Code / GitHub Copilot: writes `.github/copilot-instructions.md` and creates `.vscode/mcp.json` (skips if it already exists)
51
+ - VS Code / GitHub Copilot: writes `.github/copilot-instructions.md`, `.github/instructions/wri-ds.instructions.md` (if available), and creates `.vscode/mcp.json` (skips if it already exists)
54
52
  - Windsurf: writes `.windsurfrules`
55
53
  - Cline: writes `.clinerules`
54
+ - Automatically install helper skills:
55
+ - Copies the `ds-ui-creator` skill into `.gemini/skills/ds-ui-creator` and `.claude/skills/ds-ui-creator`
56
56
  - Ensure a `.gitignore` block is present (creates `.gitignore` if missing; appends once and never duplicates):
57
- - `CLAUDE.md`
58
57
  - `.windsurfrules`
59
58
  - `.clinerules`
60
59
  - `.github/copilot-instructions.md`
60
+ - `.github/instructions/wri-ds.instructions.md`
61
61
  - `.cursor/rules`
62
62
  - `.cursor/mcp.json`
63
63
  - `.vscode/mcp.json`
64
- - `GEMINI.md`
65
- - `.geminirules`
66
64
 
67
65
  Optional: run it against a specific path:
68
66
 
@@ -453,6 +451,7 @@ line-height: ${getThemedLineHeight(600)};
453
451
  - [Pagination](https://github.com/wri/wri-design-systems/tree/main/src/components/Navigation/Pagination)
454
452
  - [Search](https://github.com/wri/wri-design-systems/tree/main/src/components/Navigation/Search)
455
453
  - [Tab Bar](https://github.com/wri/wri-design-systems/tree/main/src/components/Navigation/TabBar)
454
+ - [Mobile Search](https://github.com/wri/wri-design-systems/tree/main/src/components/Navigation/MobileSearch)
456
455
 
457
456
  ## Status
458
457
 
@@ -515,12 +514,10 @@ If you are unsure, choose `minor` and leave a note in the PR for review.
515
514
 
516
515
  ## PR Description With AI Skill
517
516
 
518
- To get a solid PR description quickly, use the `pr-documentation` skill in your AI-enabled editor.
517
+ To get a solid PR description quickly, use the [`pr-description`](agents/skills/pr-description/SKILL.md) skill in your AI-enabled editor.
519
518
 
520
519
  1. Ensure your branch is up to date and run:
521
520
  `git diff main...HEAD`
522
- 2. Ask the assistant to use `pr-documentation` and summarize the current PR changes. Or ask "create a PR description for my changes"
521
+ 2. Ask the assistant to use `pr-description` and summarize the current PR changes. Or ask "create a PR description for my changes"
523
522
  3. Paste the generated result into the PR description using this structure:
524
523
  `## What`, `## Why`, `## Changes`.
525
-
526
- The `pr-documentation` skill is defined at [`.gemini/skills/pr-documentation/SKILL.md`](.gemini/skills/pr-documentation/SKILL.md) and [`.claude/skills/pr-documentation/SKILL.md`](.claude/skills/pr-documentation/SKILL.md) and is tailored for this repository workflow.
@@ -10,6 +10,7 @@ import {
10
10
  writeFileSync,
11
11
  readFileSync,
12
12
  readdirSync,
13
+ cpSync,
13
14
  } from 'fs'
14
15
  import { join, dirname, relative, resolve } from 'path'
15
16
  import { execSync } from 'child_process'
@@ -75,13 +76,36 @@ function writeJSON(dest, label, content) {
75
76
  installed.push(`${label} → ${relative(ROOT, dest)}`)
76
77
  }
77
78
 
79
+ function installSkill(skillName) {
80
+ const srcDir = join(__dirname, 'skills', skillName)
81
+ if (!existsSync(srcDir)) {
82
+ skipped.push(`Skill ${skillName} (source not found)`)
83
+ return
84
+ }
85
+
86
+ // Install for Gemini/Antigravity
87
+ const destGeminiDir = join(ROOT, '.gemini', 'skills', skillName)
88
+ mkdirSync(destGeminiDir, { recursive: true })
89
+ cpSync(srcDir, destGeminiDir, { recursive: true })
90
+ installed.push(
91
+ `Gemini Skill: ${skillName} → ${relative(ROOT, destGeminiDir)}`,
92
+ )
93
+
94
+ // Install for Claude
95
+ const destClaudeDir = join(ROOT, '.claude', 'skills', skillName)
96
+ mkdirSync(destClaudeDir, { recursive: true })
97
+ cpSync(srcDir, destClaudeDir, { recursive: true })
98
+ installed.push(
99
+ `Claude Skill: ${skillName} → ${relative(ROOT, destClaudeDir)}`,
100
+ )
101
+ }
102
+
78
103
  function ensureGitignoreBlock() {
79
104
  const gitignorePath = join(ROOT, '.gitignore')
80
105
  const marker =
81
106
  '# AI setup — generated by agents/setup-ai.js (npx ds setup-ai)'
82
107
  const blockLines = [
83
108
  marker,
84
- 'CLAUDE.md',
85
109
  '.windsurfrules',
86
110
  '.clinerules',
87
111
  '.github/copilot-instructions.md',
@@ -89,8 +113,6 @@ function ensureGitignoreBlock() {
89
113
  '.cursor/rules',
90
114
  '.cursor/mcp.json',
91
115
  '.vscode/mcp.json',
92
- 'GEMINI.md',
93
- '.geminirules',
94
116
  ]
95
117
  const block = blockLines.join('\n') + '\n'
96
118
 
@@ -153,15 +175,6 @@ const mcpVSCode = {
153
175
  },
154
176
  }
155
177
 
156
- // ── IDE detection & file installation ────────────────────────────
157
-
158
- // Claude Code — always write CLAUDE.md (Claude Code reads both AGENTS.md and CLAUDE.md)
159
- installFile(join(ROOT, 'CLAUDE.md'), 'Claude Code')
160
-
161
- // Gemini — always write GEMINI.md and .geminirules for Gemini-based agents
162
- installFile(join(ROOT, 'GEMINI.md'), 'Gemini')
163
- installFile(join(ROOT, '.geminirules'), 'Gemini (rules)')
164
-
165
178
  // Cursor
166
179
  const hasCursor =
167
180
  pathExists(HOME, '.cursor') ||
@@ -219,6 +232,9 @@ if (hasCline) {
219
232
  skipped.push('Cline (not detected)')
220
233
  }
221
234
 
235
+ // Skills
236
+ installSkill('ds-ui-creator')
237
+
222
238
  ensureGitignoreBlock()
223
239
 
224
240
  // ── Summary ───────────────────────────────────────────────────────
@@ -29,15 +29,6 @@ install_file() {
29
29
  INSTALLED+=("$label → $dest")
30
30
  }
31
31
 
32
- # ── Claude Code / Codex ────────────────────────────────────────
33
- # AGENTS.md is already the source file in this directory — no copy needed.
34
- # CLAUDE.md is a copy for Claude Code (reads both AGENTS.md and CLAUDE.md).
35
- install_file "$SCRIPT_DIR/CLAUDE.md" "Claude Code (CLAUDE.md)"
36
-
37
- # ── Gemini ─────────────────────────────────────────────────────
38
- install_file "$SCRIPT_DIR/GEMINI.md" "Gemini"
39
- install_file "$SCRIPT_DIR/.geminirules" "Gemini (rules)"
40
-
41
32
 
42
33
  # ── Cursor ─────────────────────────────────────────────────────
43
34
  if [ -d "$HOME/.cursor" ] || [ -d "/Applications/Cursor.app" ] || command -v cursor &>/dev/null; then
@@ -125,6 +116,20 @@ EOF
125
116
  fi
126
117
  fi
127
118
 
119
+ # ── Skills ─────────────────────────────────────────────────────
120
+ SKILL_SRC="$SCRIPT_DIR/skills/ds-ui-creator"
121
+ if [ -d "$SKILL_SRC" ]; then
122
+ mkdir -p "$SCRIPT_DIR/.gemini/skills/ds-ui-creator"
123
+ cp -R "$SKILL_SRC/" "$SCRIPT_DIR/.gemini/skills/ds-ui-creator/"
124
+ INSTALLED+=("Gemini Skill: ds-ui-creator → .gemini/skills/ds-ui-creator")
125
+
126
+ mkdir -p "$SCRIPT_DIR/.claude/skills/ds-ui-creator"
127
+ cp -R "$SKILL_SRC/" "$SCRIPT_DIR/.claude/skills/ds-ui-creator/"
128
+ INSTALLED+=("Claude Skill: ds-ui-creator → .claude/skills/ds-ui-creator")
129
+ else
130
+ SKIPPED+=("Skill ds-ui-creator (source not found)")
131
+ fi
132
+
128
133
  # ── Summary ────────────────────────────────────────────────────
129
134
  echo ""
130
135
  echo "✅ Installed:"
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: a11y-checker
3
- description: Reviews UI code (HTML, JSX, TSX, Vue, etc.) for accessibility (a11y) compliance across both library development (WRI Design System) and generic web applications, providing concrete guidelines and code-level fixes.
3
+ description: Reviews UI code (HTML, JSX, TSX, etc.) for accessibility (a11y) compliance across both library development (WRI Design System) and generic web applications, providing concrete guidelines and code-level fixes.
4
4
  ---
5
5
 
6
6
  When running the accessibility checker on any codebase, follow this multi-tiered guide to ensure compliance with universal WCAG standards as well as library-specific rules.
7
7
 
8
8
  ## 1. Universal Accessibility Standards (Any Web Project)
9
9
 
10
- Apply these rules to any kind of project (plain HTML, native React, Vue, Angular, or other UI libraries):
10
+ Apply these rules to any kind of project (plain HTML, native React, or other UI libraries):
11
11
 
12
12
  ### Accessible Names & Interactive Elements
13
13