[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PFX9PT0G746ZHJ01Z1TY3J":3,"skill-same:01M6PFX9PT0G746ZHJ01Z1TY3J":89},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":14,"repositoryHtmlUrl":61,"repositoryHomepageUrl":6,"ownerHtmlUrl":62,"ownerBlogUrl":63,"ownerDescription":6,"updatedAt":64,"install":65,"resources":78},"01M6PFX9PT0G746ZHJ01Z1TY3J","flutter-testing-skill",null,"Generates Flutter widget tests, integration tests, and golden tests in Dart. Supports local execution and TestMu AI cloud for real device testing. Use when user mentions \"Flutter\", \"widget test\", \"WidgetTester\", \"testWidgets\", \"flutter_test\", \"integration_test\". Triggers on: \"Flutter\", \"widget test\", \"Dart test\", \"testWidgets\", \"WidgetTester\", \"golden test\".","headmktlucca-ui\u002Fneuroads-lp","headmktlucca-ui","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F247379838?v=4","01M6PDVAV6M1W96D1SR1PDF8CS","NeuroAds","01M6PDVAZ4P281GNDKD45CYTF5",0,"MIT","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fflutter-testing-skill\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"flutter testing skill","flutter testing","flutter","testing skill","testing","mobile","for","golden","triggers","tests","widget","local","mobile-testing","use","dart","execution","cloud","integration","integration tests","test","2026-11-10 10:12:30",false,"---\nname: flutter-testing-skill\ndescription: >\n  Generates Flutter widget tests, integration tests, and golden tests in Dart.\n  Supports local execution and TestMu AI cloud for real device testing.\n  Use when user mentions \"Flutter\", \"widget test\", \"WidgetTester\", \"testWidgets\",\n  \"flutter_test\", \"integration_test\". Triggers on: \"Flutter\", \"widget test\",\n  \"Dart test\", \"testWidgets\", \"WidgetTester\", \"golden test\".\nlanguages:\n  - Dart\ncategory: mobile-testing\nlicense: MIT\nmetadata:\n  author: TestMu AI\n  version: \"1.0\"\n---\n\n# Flutter Testing Skill\n\nYou are a senior Flutter developer specializing in testing.\n\n## Step 1 — Test Type\n\n```\n├─ \"unit test\", \"business logic\", \"model test\"\n│  └─ Unit test: test\u002F directory, flutter_test package\n│\n├─ \"widget test\", \"component test\", \"UI test\"\n│  └─ Widget test: test\u002F directory, testWidgets()\n│\n├─ \"integration test\", \"E2E\", \"full app test\"\n│  └─ Integration test: integration_test\u002F directory\n│\n├─ \"golden test\", \"snapshot\", \"visual regression\"\n│  └─ Golden test: matchesGoldenFile()\n│\n└─ Ambiguous? → Widget test (most common)\n```\n\n## Core Patterns — Dart\n\n### Widget Test (Most Common)\n\n```dart\nimport 'package:flutter\u002Fmaterial.dart';\nimport 'package:flutter_test\u002Fflutter_test.dart';\nimport 'package:my_app\u002Fscreens\u002Flogin_screen.dart';\n\nvoid main() {\n  testWidgets('Login screen shows email and password fields', (WidgetTester tester) async {\n    await tester.pumpWidget(const MaterialApp(home: LoginScreen()));\n\n    \u002F\u002F Verify fields exist\n    expect(find.byType(TextField), findsNWidgets(2));\n    expect(find.text('Email'), findsOneWidget);\n    expect(find.text('Password'), findsOneWidget);\n    expect(find.byType(ElevatedButton), findsOneWidget);\n  });\n\n  testWidgets('Login with valid credentials navigates to dashboard', (WidgetTester tester) async {\n    await tester.pumpWidget(const MaterialApp(home: LoginScreen()));\n\n    \u002F\u002F Enter credentials\n    await tester.enterText(find.byKey(const Key('emailField')), 'user@test.com');\n    await tester.enterText(find.byKey(const Key('passwordField')), 'password123');\n\n    \u002F\u002F Tap login button\n    await tester.tap(find.byKey(const Key('loginButton')));\n    await tester.pumpAndSettle(); \u002F\u002F Wait for animations and navigation\n\n    \u002F\u002F Verify navigation\n    expect(find.text('Dashboard'), findsOneWidget);\n  });\n\n  testWidgets('Shows error for invalid credentials', (WidgetTester tester) async {\n    await tester.pumpWidget(const MaterialApp(home: LoginScreen()));\n\n    await tester.enterText(find.byKey(const Key('emailField')), 'wrong@test.com');\n    await tester.enterText(find.byKey(const Key('passwordField')), 'wrong');\n    await tester.tap(find.byKey(const Key('loginButton')));\n    await tester.pumpAndSettle();\n\n    expect(find.text('Invalid credentials'), findsOneWidget);\n  });\n}\n```\n\n### Finder Strategies\n\n```dart\n\u002F\u002F By Key (best — explicit test identifiers)\nfind.byKey(const Key('loginButton'))\nfind.byKey(const ValueKey('email_input'))\n\n\u002F\u002F By Type\nfind.byType(ElevatedButton)\nfind.byType(TextField)\nfind.byType(LoginScreen)\n\n\u002F\u002F By Text\nfind.text('Login')\nfind.textContaining('Welcome')\n\n\u002F\u002F By Icon\nfind.byIcon(Icons.login)\n\n\u002F\u002F By Widget predicate\nfind.byWidgetPredicate((widget) => widget is Text && widget.data!.startsWith('Error'))\n\n\u002F\u002F Descendant\u002FAncestor\nfind.descendant(of: find.byType(AppBar), matching: find.text('Title'))\nfind.ancestor(of: find.text('Login'), matching: find.byType(Card))\n```\n\n### Actions\n\n```dart\nawait tester.tap(finder);                    \u002F\u002F Tap\nawait tester.longPress(finder);              \u002F\u002F Long press\nawait tester.enterText(finder, 'text');      \u002F\u002F Type text\nawait tester.drag(finder, const Offset(0, -300));  \u002F\u002F Drag\u002Fscroll\nawait tester.fling(finder, const Offset(0, -500), 1000); \u002F\u002F Fling\u002Fswipe\n\n\u002F\u002F CRITICAL: Always pump after actions\nawait tester.pump();                         \u002F\u002F Single frame\nawait tester.pump(const Duration(seconds: 1)); \u002F\u002F Advance time\nawait tester.pumpAndSettle();                \u002F\u002F Wait for animations to finish\n```\n\n### Integration Test\n\n```dart\n\u002F\u002F integration_test\u002Fapp_test.dart\nimport 'package:flutter_test\u002Fflutter_test.dart';\nimport 'package:integration_test\u002Fintegration_test.dart';\nimport 'package:my_app\u002Fmain.dart' as app;\n\nvoid main() {\n  IntegrationTestWidgetsFlutterBinding.ensureInitialized();\n\n  testWidgets('Full login flow', (WidgetTester tester) async {\n    app.main();\n    await tester.pumpAndSettle();\n\n    \u002F\u002F Login\n    await tester.enterText(find.byKey(const Key('emailField')), 'user@test.com');\n    await tester.enterText(find.byKey(const Key('passwordField')), 'password123');\n    await tester.tap(find.byKey(const Key('loginButton')));\n    await tester.pumpAndSettle();\n\n    \u002F\u002F Verify dashboard\n    expect(find.text('Dashboard'), findsOneWidget);\n\n    \u002F\u002F Navigate to settings\n    await tester.tap(find.byIcon(Icons.settings));\n    await tester.pumpAndSettle();\n    expect(find.text('Settings'), findsOneWidget);\n  });\n}\n```\n\n### Golden Tests (Visual Regression)\n\n```dart\ntestWidgets('Login screen matches golden', (WidgetTester tester) async {\n  await tester.pumpWidget(const MaterialApp(home: LoginScreen()));\n  await tester.pumpAndSettle();\n\n  await expectLater(\n    find.byType(LoginScreen),\n    matchesGoldenFile('goldens\u002Flogin_screen.png'),\n  );\n});\n```\n\n```bash\n# Generate golden files\nflutter test --update-goldens\n\n# Run golden comparison\nflutter test\n```\n\n### Mocking Dependencies\n\n```dart\n\u002F\u002F Using Mockito\nimport 'package:mockito\u002Fmockito.dart';\nimport 'package:mockito\u002Fannotations.dart';\n\n@GenerateMocks([AuthService])\nvoid main() {\n  late MockAuthService mockAuth;\n\n  setUp(() {\n    mockAuth = MockAuthService();\n  });\n\n  testWidgets('Login calls auth service', (tester) async {\n    when(mockAuth.login(any, any)).thenAnswer((_) async => true);\n\n    await tester.pumpWidget(MaterialApp(\n      home: LoginScreen(authService: mockAuth),\n    ));\n\n    await tester.enterText(find.byKey(const Key('emailField')), 'user@test.com');\n    await tester.enterText(find.byKey(const Key('passwordField')), 'pass123');\n    await tester.tap(find.byKey(const Key('loginButton')));\n    await tester.pumpAndSettle();\n\n    verify(mockAuth.login('user@test.com', 'pass123')).called(1);\n  });\n}\n```\n\n### Anti-Patterns\n\n| Bad | Good | Why |\n|-----|------|-----|\n| No `pumpAndSettle()` after action | Always pump after interactions | Animations not complete |\n| `find.text()` for dynamic text | `find.byKey()` | Locale\u002Ftext changes break tests |\n| Testing implementation details | Test user-facing behavior | Brittle |\n| No mocking in widget tests | Mock services, repos | Tests hit real APIs |\n\n### TestMu AI Cloud (Integration Tests)\n\n```bash\n# Run integration tests on LambdaTest real devices\n# 1. Build app for testing\nflutter build apk --debug  # Android\nflutter build ios --simulator  # iOS\n\n# 2. Upload to LambdaTest\ncurl -u \"$LT_USERNAME:$LT_ACCESS_KEY\" \\\n  -X POST \"https:\u002F\u002Fmanual-api.lambdatest.com\u002Fapp\u002Fupload\u002FrealDevice\" \\\n  -F \"appFile=@build\u002Fapp\u002Foutputs\u002Fflutter-apk\u002Fapp-debug.apk\"\n\n# 3. Run via Appium (Flutter driver)\n# Use appium-flutter-driver for element interaction\n```\n\n## Quick Reference\n\n| Task | Command |\n|------|---------|\n| Run all tests | `flutter test` |\n| Run specific file | `flutter test test\u002Flogin_test.dart` |\n| Run with coverage | `flutter test --coverage` |\n| Run integration tests | `flutter test integration_test\u002F` |\n| Update goldens | `flutter test --update-goldens` |\n| Generate mocks | `flutter pub run build_runner build` |\n| Test specific platform | `flutter test --platform chrome` |\n\n## pubspec.yaml\n\n```yaml\ndev_dependencies:\n  flutter_test:\n    sdk: flutter\n  integration_test:\n    sdk: flutter\n  mockito: ^5.4.0\n  build_runner: ^2.4.0\n```\n\n## Deep Patterns\n\nFor advanced patterns, debugging guides, CI\u002FCD integration, and best practices,\nsee `reference\u002Fplaybook.md`.\n","# Flutter Testing Skill\n\nYou are a senior Flutter developer specializing in testing.\n\n## Step 1 — Test Type\n\n```\n├─ \"unit test\", \"business logic\", \"model test\"\n│  └─ Unit test: test\u002F directory, flutter_test package\n│\n├─ \"widget test\", \"component test\", \"UI test\"\n│  └─ Widget test: test\u002F directory, testWidgets()\n│\n├─ \"integration test\", \"E2E\", \"full app test\"\n│  └─ Integration test: integration_test\u002F directory\n│\n├─ \"golden test\", \"snapshot\", \"visual regression\"\n│  └─ Golden test: matchesGoldenFile()\n│\n└─ Ambiguous? → Widget test (most common)\n```\n\n## Core Patterns — Dart\n\n### Widget Test (Most Common)\n\n```dart\nimport 'package:flutter\u002Fmaterial.dart';\nimport 'package:flutter_test\u002Fflutter_test.dart';\nimport 'package:my_app\u002Fscreens\u002Flogin_screen.dart';\n\nvoid main() {\n  testWidgets('Login screen shows email and password fields', (WidgetTester tester) async {\n    await tester.pumpWidget(const MaterialApp(home: LoginScreen()));\n\n    \u002F\u002F Verify fields exist\n    expect(find.byType(TextField), findsNWidgets(2));\n    expect(find.text('Email'), findsOneWidget);\n    expect(find.text('Password'), findsOneWidget);\n    expect(find.byType(ElevatedButton), findsOneWidget);\n  });\n\n  testWidgets('Login with valid credentials navigates to dashboard', (WidgetTester tester) async {\n    await tester.pumpWidget(const MaterialApp(home: LoginScreen()));\n\n    \u002F\u002F Enter credentials\n    await tester.enterText(find.byKey(const Key('emailField')), 'user@test.com');\n    await tester.enterText(find.byKey(const Key('passwordField')), 'password123');\n\n    \u002F\u002F Tap login button\n    await tester.tap(find.byKey(const Key('loginButton')));\n    await tester.pumpAndSettle(); \u002F\u002F Wait for animations and navigation\n\n    \u002F\u002F Verify navigation\n    expect(find.text('Dashboard'), findsOneWidget);\n  });\n\n  testWidgets('Shows error for invalid credentials', (WidgetTester tester) async {\n    await tester.pumpWidget(const MaterialApp(home: LoginScreen()));\n\n    await tester.enterText(find.byKey(const Key('emailField')), 'wrong@test.com');\n    await tester.enterText(find.byKey(const Key('passwordField')), 'wrong');\n    await tester.tap(find.byKey(const Key('loginButton')));\n    await tester.pumpAndSettle();\n\n    expect(find.text('Invalid credentials'), findsOneWidget);\n  });\n}\n```\n\n### Finder Strategies\n\n```dart\n\u002F\u002F By Key (best — explicit test identifiers)\nfind.byKey(const Key('loginButton'))\nfind.byKey(const ValueKey('email_input'))\n\n\u002F\u002F By Type\nfind.byType(ElevatedButton)\nfind.byType(TextField)\nfind.byType(LoginScreen)\n\n\u002F\u002F By Text\nfind.text('Login')\nfind.textContaining('Welcome')\n\n\u002F\u002F By Icon\nfind.byIcon(Icons.login)\n\n\u002F\u002F By Widget predicate\nfind.byWidgetPredicate((widget) => widget is Text && widget.data!.startsWith('Error'))\n\n\u002F\u002F Descendant\u002FAncestor\nfind.descendant(of: find.byType(AppBar), matching: find.text('Title'))\nfind.ancestor(of: find.text('Login'), matching: find.byType(Card))\n```\n\n### Actions\n\n```dart\nawait tester.tap(finder);                    \u002F\u002F Tap\nawait tester.longPress(finder);              \u002F\u002F Long press\nawait tester.enterText(finder, 'text');      \u002F\u002F Type text\nawait tester.drag(finder, const Offset(0, -300));  \u002F\u002F Drag\u002Fscroll\nawait tester.fling(finder, const Offset(0, -500), 1000); \u002F\u002F Fling\u002Fswipe\n\n\u002F\u002F CRITICAL: Always pump after actions\nawait tester.pump();                         \u002F\u002F Single frame\nawait tester.pump(const Duration(seconds: 1)); \u002F\u002F Advance time\nawait tester.pumpAndSettle();                \u002F\u002F Wait for animations to finish\n```\n\n### Integration Test\n\n```dart\n\u002F\u002F integration_test\u002Fapp_test.dart\nimport 'package:flutter_test\u002Fflutter_test.dart';\nimport 'package:integration_test\u002Fintegration_test.dart';\nimport 'package:my_app\u002Fmain.dart' as app;\n\nvoid main() {\n  IntegrationTestWidgetsFlutterBinding.ensureInitialized();\n\n  testWidgets('Full login flow', (WidgetTester tester) async {\n    app.main();\n    await tester.pumpAndSettle();\n\n    \u002F\u002F Login\n    await tester.enterText(find.byKey(const Key('emailField')), 'user@test.com');\n    await tester.enterText(find.byKey(const Key('passwordField')), 'password123');\n    await tester.tap(find.byKey(const Key('loginButton')));\n    await tester.pumpAndSettle();\n\n    \u002F\u002F Verify dashboard\n    expect(find.text('Dashboard'), findsOneWidget);\n\n    \u002F\u002F Navigate to settings\n    await tester.tap(find.byIcon(Icons.settings));\n    await tester.pumpAndSettle();\n    expect(find.text('Settings'), findsOneWidget);\n  });\n}\n```\n\n### Golden Tests (Visual Regression)\n\n```dart\ntestWidgets('Login screen matches golden', (WidgetTester tester) async {\n  await tester.pumpWidget(const MaterialApp(home: LoginScreen()));\n  await tester.pumpAndSettle();\n\n  await expectLater(\n    find.byType(LoginScreen),\n    matchesGoldenFile('goldens\u002Flogin_screen.png'),\n  );\n});\n```\n\n```bash\n# Generate golden files\nflutter test --update-goldens\n\n# Run golden comparison\nflutter test\n```\n\n### Mocking Dependencies\n\n```dart\n\u002F\u002F Using Mockito\nimport 'package:mockito\u002Fmockito.dart';\nimport 'package:mockito\u002Fannotations.dart';\n\n@GenerateMocks([AuthService])\nvoid main() {\n  late MockAuthService mockAuth;\n\n  setUp(() {\n    mockAuth = MockAuthService();\n  });\n\n  testWidgets('Login calls auth service', (tester) async {\n    when(mockAuth.login(any, any)).thenAnswer((_) async => true);\n\n    await tester.pumpWidget(MaterialApp(\n      home: LoginScreen(authService: mockAuth),\n    ));\n\n    await tester.enterText(find.byKey(const Key('emailField')), 'user@test.com');\n    await tester.enterText(find.byKey(const Key('passwordField')), 'pass123');\n    await tester.tap(find.byKey(const Key('loginButton')));\n    await tester.pumpAndSettle();\n\n    verify(mockAuth.login('user@test.com', 'pass123')).called(1);\n  });\n}\n```\n\n### Anti-Patterns\n\n| Bad | Good | Why |\n|-----|------|-----|\n| No `pumpAndSettle()` after action | Always pump after interactions | Animations not complete |\n| `find.text()` for dynamic text | `find.byKey()` | Locale\u002Ftext changes break tests |\n| Testing implementation details | Test user-facing behavior | Brittle |\n| No mocking in widget tests | Mock services, repos | Tests hit real APIs |\n\n### TestMu AI Cloud (Integration Tests)\n\n```bash\n# Run integration tests on LambdaTest real devices\n# 1. Build app for testing\nflutter build apk --debug  # Android\nflutter build ios --simulator  # iOS\n\n# 2. Upload to LambdaTest\ncurl -u \"$LT_USERNAME:$LT_ACCESS_KEY\" \\\n  -X POST \"https:\u002F\u002Fmanual-api.lambdatest.com\u002Fapp\u002Fupload\u002FrealDevice\" \\\n  -F \"appFile=@build\u002Fapp\u002Foutputs\u002Fflutter-apk\u002Fapp-debug.apk\"\n\n# 3. Run via Appium (Flutter driver)\n# Use appium-flutter-driver for element interaction\n```\n\n## Quick Reference\n\n| Task | Command |\n|------|---------|\n| Run all tests | `flutter test` |\n| Run specific file | `flutter test test\u002Flogin_test.dart` |\n| Run with coverage | `flutter test --coverage` |\n| Run integration tests | `flutter test integration_test\u002F` |\n| Update goldens | `flutter test --update-goldens` |\n| Generate mocks | `flutter pub run build_runner build` |\n| Test specific platform | `flutter test --platform chrome` |\n\n## pubspec.yaml\n\n```yaml\ndev_dependencies:\n  flutter_test:\n    sdk: flutter\n  integration_test:\n    sdk: flutter\n  mockito: ^5.4.0\n  build_runner: ^2.4.0\n```\n\n## Deep Patterns\n\nFor advanced patterns, debugging guides, CI\u002FCD integration, and best practices,\nsee `reference\u002Fplaybook.md`.\n",{"name":5,"license":15,"category":39,"metadata":52,"languages":55,"description":57},{"author":53,"version":54},"TestMu AI","1.0",[56],"Dart","Generates Flutter widget tests, integration tests, and golden tests in Dart. Supports local execution and TestMu AI cloud for real device testing. Use when user mentions \"Flutter\", \"widget test\", \"WidgetTester\", \"testWidgets\", \"flutter_test\", \"integration_test\". Triggers on: \"Flutter\", \"widget test\", \"Dart test\", \"testWidgets\", \"WidgetTester\", \"golden test\".\n","main","7a940b8e5af16c95e5c190a524421d32fc7445a9",".agent\u002Fskills\u002Fflutter-testing-skill","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui","https:\u002F\u002Fneuroads.com.br","2026-08-12 00:42:44",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add headmktlucca-ui\u002Fneuroads-lp --skill flutter-testing-skill",{"tool":71,"command":72},"bunx","bunx skills add headmktlucca-ui\u002Fneuroads-lp --skill flutter-testing-skill",{"tool":74,"command":75},"pnpm","pnpm dlx skills add headmktlucca-ui\u002Fneuroads-lp --skill flutter-testing-skill","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fflutter-testing-skill\u002FSKILL.md",true,[79,85],{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":84},"reference\u002Fadvanced-patterns.md","REFERENCE","参考文档",3401,"https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fflutter-testing-skill\u002Freference\u002Fadvanced-patterns.md",{"path":86,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":87,"sourceHtmlUrl":88},"reference\u002Fplaybook.md",15440,"https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fflutter-testing-skill\u002Freference\u002Fplaybook.md",[90,106,126,152,169,204],{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":98,"publishedAt":47},"01M6PTDCZTXTGSTX4RFK901YSZ","xunit-skill","Generates xUnit.net tests in C#. Covers Fact\u002FTheory, constructor injection, IClassFixture, and FluentAssertions. Use when user mentions \"xUnit\", \"[Fact]\", \"[Theory]\", \"Assert.Equal\", \"C# xUnit\". Triggers on: \"xUnit\", \"[Fact]\", \"[Theory]\", \"Assert.Equal C#\", \"xUnit.net\".","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fxunit-skill\u002FSKILL.md",[96,97],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[99,100,31,101,102,40,36,35,103,104,105],"xunit","xunit skill","injection","user","unit","unit-testing","C#",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":114,"publishedAt":47},"01M6PTCB59ZTG5FTMWGPYEMMBP","xcuitest-skill","Generates XCUITest UI tests for iOS\u002FiPadOS apps in Swift. Apple's native testing framework for reliable, fast UI automation. Supports local simulators and TestMu AI cloud real devices. Use when user mentions \"XCUITest\", \"XCTest\", \"iOS UI test\", \"Swift test\", \"XCUIApplication\". Triggers on: \"XCUITest\", \"XCTest UI\", \"iOS UI test\", \"Swift UI test\", \"XCUIApplication\", \"TestMu\".","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fxcuitest-skill\u002FSKILL.md",[112,113],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[115,116,31,117,46,118,119,120,40,32,39,121,38,122,36,35,123,124,33,125],"xcuitest","xcuitest skill","automation","testing framework","ios","devices","ui test","apple","apps","native","objective",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":136,"publishedAt":47},"01M6PTATMNTY9NF4J7KSR76YK6","world-builder","Create and manage generative game zones for Dorothy's Pokemon-style world. Use this skill when creating, updating, or designing game worlds via MCP tools.","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fworld-builder\u002FSKILL.md",[132,135],{"categoryNo":133,"categoryName":134,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[137,138,139,140,141,142,143,144,40,145,146,147,148,149,150,33,151],"builder","world","world builder","MCP","create","mcp tools","Tools","game","pokemon","manage","style","via","theme","zone","generative",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":160,"publishedAt":47},"01M6PT9Z92JTSQEHE1QR0NNW5F","webdriverio-skill","Generates WebdriverIO (WDIO) automation tests in JavaScript or TypeScript. Supports local and TestMu AI cloud. Use when user mentions \"WebdriverIO\", \"WDIO\", \"wdio.conf\", \"browser.url\", \"$\", \"$$\". Triggers on: \"WebdriverIO\", \"WDIO\", \"wdio\", \"browser.$\".","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fwebdriverio-skill\u002FSKILL.md",[158,159],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[161,31,162,117,163,164,43,165,102,40,166,38,36,35,167,168],"webdriverio skill","typescript","javascript","browser","e2e","e2e-testing","URL","conf",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":184,"publishedAt":47},"01M6PT9NVK36ZWCQ69YXK3FR4K","web-design-guidelines","Web platform design and accessibility guidelines. Use when building web interfaces, auditing accessibility, implementing responsive layouts, or reviewing web UI code. Triggers on tasks involving HTML, CSS, web components, WCAG compliance, responsive design, or web performance.","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fweb\u002FSKILL.md",[175,178,179],{"categoryNo":176,"categoryName":177,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":133,"categoryName":134,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":180,"categoryName":181,"taxonomyType":182,"taxonomyTypeDesc":183},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,35,203],"design","web","guidelines","web design guidelines","web design","css","performance","components","web components","tasks","code","web performance","ui","platform design","html","responsive design","responsive","platform","implementing",{"skillNo":205,"name":206,"nameZh":6,"description":207,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":208,"categories":209,"keywords":212,"publishedAt":47},"01M6PT9A3JKRE3X34276F2FW5R","watchos-design-guidelines","Apple Human Interface Guidelines for Apple Watch. Use when building watchOS apps, complications, or workout features. Triggers on tasks involving Watch UI, Digital Crown, glanceable interfaces, or wrist-based interactions.","https:\u002F\u002Fgithub.com\u002Fheadmktlucca-ui\u002Fneuroads-lp\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fwatchos\u002FSKILL.md",[210,211],{"categoryNo":133,"categoryName":134,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":180,"categoryName":181,"taxonomyType":182,"taxonomyTypeDesc":183},[185,187,213,194,197,40,214,215,122,202,216,35,123,217,33,218,219],"watchos design guidelines","workout","human","watch","interface","platform-design","features"]