[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-flutter-dart-skills-lint-setup":3,"mdc-sd7jr8-key":32,"related-repo-flutter-dart-skills-lint-setup":534,"related-org-flutter-dart-skills-lint-setup":615},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":28,"sourceUrl":30,"mdContent":31},"dart-skills-lint-setup","configure dart_skills_lint for Dart projects","Use this skill when you need to set up validation for AI agent skills in a Dart project for the first time.\nAdds the linter as a dev_dependency, creates a configuration file, and generates a baseline for legacy repos.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"flutter","Flutter (Google)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fflutter.png",[12,16,19],{"name":13,"slug":14,"type":15},"QA","qa","tag",{"name":17,"slug":18,"type":15},"Plugin Development","plugin-development",{"name":20,"slug":21,"type":15},"Dart","dart",2664,"https:\u002F\u002Fgithub.com\u002Fflutter\u002Fagent-plugins","2026-07-15T05:22:47.488998",null,155,[],{"repoUrl":23,"stars":22,"forks":26,"topics":29,"description":25},[],"https:\u002F\u002Fgithub.com\u002Fflutter\u002Fagent-plugins\u002Ftree\u002FHEAD\u002Ftool\u002Fdart_skills_lint\u002Fskills\u002Fdart-skills-lint-setup","---\nname: dart-skills-lint-setup\ndescription: |-\n  Use this skill when you need to set up validation for AI agent skills in a Dart project for the first time.\n  Adds the linter as a dev_dependency, creates a configuration file, and generates a baseline for legacy repos.\nmetadata:\n  internal: true\n---\n\n# Setting up Skill Validation with dart_skills_lint\n\nThis skill covers **first-time wiring** of `dart_skills_lint` into a\nrepository. For ongoing use — running the linter, interpreting\noutput, and writing custom rules — see the\n[`dart-skills-lint-validation`](..\u002Fdart-skills-lint-validation\u002FSKILL.md)\nskill. For copy-pasteable CI workflow and pre-commit hook recipes,\nsee the [`Recipes` section of the README](..\u002F..\u002FREADME.md#recipes).\n\n## Steps\n\n1. **Add `dart_skills_lint` as a `dev_dependency`.** Prefer a git\n   dependency (the package isn't on pub.dev yet):\n\n   ```yaml\n   dev_dependencies:\n     dart_skills_lint:\n       git:\n         url: https:\u002F\u002Fgithub.com\u002Fflutter\u002Fagent-plugins.git\n         path: tool\u002Fdart_skills_lint\n   ```\n\n   **Isolate the dependency** in a `tool\u002F` package when you can,\n   instead of putting it on the root `pubspec.yaml` — keeps the\n   linter's deps out of your runtime closure. If you must add it\n   to multiple `pubspec.yaml` files, ensure the `ref:` (commit\n   hash) is identical across all of them so resolution doesn't\n   diverge.\n\n2. **Create `dart_skills_lint.yaml`** at the repository root so both\n   the CLI and any embedded test invocation share the same config:\n\n   ```yaml\n   dart_skills_lint:\n     rules:\n       check-relative-paths: error\n       check-trailing-whitespace: error\n     directories:\n       - path: \".agents\u002Fskills\"\n   ```\n\n   Rules enabled by default — `check-absolute-paths`,\n   `valid-yaml-metadata`, `invalid-skill-name`,\n   `description-too-long` — only need to be listed if you want to\n   change their severity. See [`RULES.md`](..\u002F..\u002FRULES.md) for the\n   full list.\n\n3. **Generate a baseline** if you're integrating into a repository\n   with pre-existing skills that have legacy violations you don't\n   want to fix immediately:\n\n   ```bash\n   dart run dart_skills_lint:cli --skills-directory=.agents\u002Fskills --generate-baseline\n   ```\n\n   This writes the current set of failures into an ignore file so\n   the next run exits clean. New violations introduced after the\n   baseline still surface as errors.\n\n4. **Wire it into CI.** Use the\n   [GitHub Actions recipe](..\u002F..\u002FREADME.md#recipes) from the README\n   verbatim, or follow the\n   [pre-commit hook recipe](..\u002F..\u002FREADME.md#recipes) below it.\n\n## When you're done\n\nThe dart-skills-lint-validation skill takes over from here for\nday-to-day use.\n",{"data":33,"body":36},{"name":4,"description":6,"metadata":34},{"internal":35},true,{"type":37,"children":38},"root",[39,48,98,105,517,523,528],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"setting-up-skill-validation-with-dart_skills_lint",[45],{"type":46,"value":47},"text","Setting up Skill Validation with dart_skills_lint",{"type":40,"tag":49,"props":50,"children":51},"p",{},[52,54,60,62,69,71,82,84,96],{"type":46,"value":53},"This skill covers ",{"type":40,"tag":55,"props":56,"children":57},"strong",{},[58],{"type":46,"value":59},"first-time wiring",{"type":46,"value":61}," of ",{"type":40,"tag":63,"props":64,"children":66},"code",{"className":65},[],[67],{"type":46,"value":68},"dart_skills_lint",{"type":46,"value":70}," into a\nrepository. For ongoing use — running the linter, interpreting\noutput, and writing custom rules — see the\n",{"type":40,"tag":72,"props":73,"children":75},"a",{"href":74},"..\u002Fdart-skills-lint-validation\u002FSKILL.md",[76],{"type":40,"tag":63,"props":77,"children":79},{"className":78},[],[80],{"type":46,"value":81},"dart-skills-lint-validation",{"type":46,"value":83},"\nskill. For copy-pasteable CI workflow and pre-commit hook recipes,\nsee the ",{"type":40,"tag":72,"props":85,"children":87},{"href":86},"..\u002F..\u002FREADME.md#recipes",[88,94],{"type":40,"tag":63,"props":89,"children":91},{"className":90},[],[92],{"type":46,"value":93},"Recipes",{"type":46,"value":95}," section of the README",{"type":46,"value":97},".",{"type":40,"tag":99,"props":100,"children":102},"h2",{"id":101},"steps",[103],{"type":46,"value":104},"Steps",{"type":40,"tag":106,"props":107,"children":108},"ol",{},[109,269,441,493],{"type":40,"tag":110,"props":111,"children":112},"li",{},[113,132,134,227,231,236,238,244,246,252,254,259,261,267],{"type":40,"tag":55,"props":114,"children":115},{},[116,118,123,125,131],{"type":46,"value":117},"Add ",{"type":40,"tag":63,"props":119,"children":121},{"className":120},[],[122],{"type":46,"value":68},{"type":46,"value":124}," as a ",{"type":40,"tag":63,"props":126,"children":128},{"className":127},[],[129],{"type":46,"value":130},"dev_dependency",{"type":46,"value":97},{"type":46,"value":133}," Prefer a git\ndependency (the package isn't on pub.dev yet):",{"type":40,"tag":135,"props":136,"children":141},"pre",{"className":137,"code":138,"language":139,"meta":140,"style":140},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","dev_dependencies:\n  dart_skills_lint:\n    git:\n      url: https:\u002F\u002Fgithub.com\u002Fflutter\u002Fagent-plugins.git\n      path: tool\u002Fdart_skills_lint\n","yaml","",[142],{"type":40,"tag":63,"props":143,"children":144},{"__ignoreMap":140},[145,163,176,189,209],{"type":40,"tag":146,"props":147,"children":150},"span",{"class":148,"line":149},"line",1,[151,157],{"type":40,"tag":146,"props":152,"children":154},{"style":153},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[155],{"type":46,"value":156},"dev_dependencies",{"type":40,"tag":146,"props":158,"children":160},{"style":159},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[161],{"type":46,"value":162},":\n",{"type":40,"tag":146,"props":164,"children":166},{"class":148,"line":165},2,[167,172],{"type":40,"tag":146,"props":168,"children":169},{"style":153},[170],{"type":46,"value":171},"  dart_skills_lint",{"type":40,"tag":146,"props":173,"children":174},{"style":159},[175],{"type":46,"value":162},{"type":40,"tag":146,"props":177,"children":179},{"class":148,"line":178},3,[180,185],{"type":40,"tag":146,"props":181,"children":182},{"style":153},[183],{"type":46,"value":184},"    git",{"type":40,"tag":146,"props":186,"children":187},{"style":159},[188],{"type":46,"value":162},{"type":40,"tag":146,"props":190,"children":192},{"class":148,"line":191},4,[193,198,203],{"type":40,"tag":146,"props":194,"children":195},{"style":153},[196],{"type":46,"value":197},"      url",{"type":40,"tag":146,"props":199,"children":200},{"style":159},[201],{"type":46,"value":202},":",{"type":40,"tag":146,"props":204,"children":206},{"style":205},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[207],{"type":46,"value":208}," https:\u002F\u002Fgithub.com\u002Fflutter\u002Fagent-plugins.git\n",{"type":40,"tag":146,"props":210,"children":212},{"class":148,"line":211},5,[213,218,222],{"type":40,"tag":146,"props":214,"children":215},{"style":153},[216],{"type":46,"value":217},"      path",{"type":40,"tag":146,"props":219,"children":220},{"style":159},[221],{"type":46,"value":202},{"type":40,"tag":146,"props":223,"children":224},{"style":205},[225],{"type":46,"value":226}," tool\u002Fdart_skills_lint\n",{"type":40,"tag":228,"props":229,"children":230},"br",{},[],{"type":40,"tag":55,"props":232,"children":233},{},[234],{"type":46,"value":235},"Isolate the dependency",{"type":46,"value":237}," in a ",{"type":40,"tag":63,"props":239,"children":241},{"className":240},[],[242],{"type":46,"value":243},"tool\u002F",{"type":46,"value":245}," package when you can,\ninstead of putting it on the root ",{"type":40,"tag":63,"props":247,"children":249},{"className":248},[],[250],{"type":46,"value":251},"pubspec.yaml",{"type":46,"value":253}," — keeps the\nlinter's deps out of your runtime closure. If you must add it\nto multiple ",{"type":40,"tag":63,"props":255,"children":257},{"className":256},[],[258],{"type":46,"value":251},{"type":46,"value":260}," files, ensure the ",{"type":40,"tag":63,"props":262,"children":264},{"className":263},[],[265],{"type":46,"value":266},"ref:",{"type":46,"value":268}," (commit\nhash) is identical across all of them so resolution doesn't\ndiverge.",{"type":40,"tag":110,"props":270,"children":271},{},[272,283,285,393,396,398,404,406,412,414,420,421,427,429,439],{"type":40,"tag":55,"props":273,"children":274},{},[275,277],{"type":46,"value":276},"Create ",{"type":40,"tag":63,"props":278,"children":280},{"className":279},[],[281],{"type":46,"value":282},"dart_skills_lint.yaml",{"type":46,"value":284}," at the repository root so both\nthe CLI and any embedded test invocation share the same config:",{"type":40,"tag":135,"props":286,"children":288},{"className":137,"code":287,"language":139,"meta":140,"style":140},"dart_skills_lint:\n  rules:\n    check-relative-paths: error\n    check-trailing-whitespace: error\n  directories:\n    - path: \".agents\u002Fskills\"\n",[289],{"type":40,"tag":63,"props":290,"children":291},{"__ignoreMap":140},[292,303,315,332,348,360],{"type":40,"tag":146,"props":293,"children":294},{"class":148,"line":149},[295,299],{"type":40,"tag":146,"props":296,"children":297},{"style":153},[298],{"type":46,"value":68},{"type":40,"tag":146,"props":300,"children":301},{"style":159},[302],{"type":46,"value":162},{"type":40,"tag":146,"props":304,"children":305},{"class":148,"line":165},[306,311],{"type":40,"tag":146,"props":307,"children":308},{"style":153},[309],{"type":46,"value":310},"  rules",{"type":40,"tag":146,"props":312,"children":313},{"style":159},[314],{"type":46,"value":162},{"type":40,"tag":146,"props":316,"children":317},{"class":148,"line":178},[318,323,327],{"type":40,"tag":146,"props":319,"children":320},{"style":153},[321],{"type":46,"value":322},"    check-relative-paths",{"type":40,"tag":146,"props":324,"children":325},{"style":159},[326],{"type":46,"value":202},{"type":40,"tag":146,"props":328,"children":329},{"style":205},[330],{"type":46,"value":331}," error\n",{"type":40,"tag":146,"props":333,"children":334},{"class":148,"line":191},[335,340,344],{"type":40,"tag":146,"props":336,"children":337},{"style":153},[338],{"type":46,"value":339},"    check-trailing-whitespace",{"type":40,"tag":146,"props":341,"children":342},{"style":159},[343],{"type":46,"value":202},{"type":40,"tag":146,"props":345,"children":346},{"style":205},[347],{"type":46,"value":331},{"type":40,"tag":146,"props":349,"children":350},{"class":148,"line":211},[351,356],{"type":40,"tag":146,"props":352,"children":353},{"style":153},[354],{"type":46,"value":355},"  directories",{"type":40,"tag":146,"props":357,"children":358},{"style":159},[359],{"type":46,"value":162},{"type":40,"tag":146,"props":361,"children":363},{"class":148,"line":362},6,[364,369,374,378,383,388],{"type":40,"tag":146,"props":365,"children":366},{"style":159},[367],{"type":46,"value":368},"    -",{"type":40,"tag":146,"props":370,"children":371},{"style":153},[372],{"type":46,"value":373}," path",{"type":40,"tag":146,"props":375,"children":376},{"style":159},[377],{"type":46,"value":202},{"type":40,"tag":146,"props":379,"children":380},{"style":159},[381],{"type":46,"value":382}," \"",{"type":40,"tag":146,"props":384,"children":385},{"style":205},[386],{"type":46,"value":387},".agents\u002Fskills",{"type":40,"tag":146,"props":389,"children":390},{"style":159},[391],{"type":46,"value":392},"\"\n",{"type":40,"tag":228,"props":394,"children":395},{},[],{"type":46,"value":397},"Rules enabled by default — ",{"type":40,"tag":63,"props":399,"children":401},{"className":400},[],[402],{"type":46,"value":403},"check-absolute-paths",{"type":46,"value":405},",\n",{"type":40,"tag":63,"props":407,"children":409},{"className":408},[],[410],{"type":46,"value":411},"valid-yaml-metadata",{"type":46,"value":413},", ",{"type":40,"tag":63,"props":415,"children":417},{"className":416},[],[418],{"type":46,"value":419},"invalid-skill-name",{"type":46,"value":405},{"type":40,"tag":63,"props":422,"children":424},{"className":423},[],[425],{"type":46,"value":426},"description-too-long",{"type":46,"value":428}," — only need to be listed if you want to\nchange their severity. See ",{"type":40,"tag":72,"props":430,"children":432},{"href":431},"..\u002F..\u002FRULES.md",[433],{"type":40,"tag":63,"props":434,"children":436},{"className":435},[],[437],{"type":46,"value":438},"RULES.md",{"type":46,"value":440}," for the\nfull list.",{"type":40,"tag":110,"props":442,"children":443},{},[444,449,451,488,491],{"type":40,"tag":55,"props":445,"children":446},{},[447],{"type":46,"value":448},"Generate a baseline",{"type":46,"value":450}," if you're integrating into a repository\nwith pre-existing skills that have legacy violations you don't\nwant to fix immediately:",{"type":40,"tag":135,"props":452,"children":456},{"className":453,"code":454,"language":455,"meta":140,"style":140},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","dart run dart_skills_lint:cli --skills-directory=.agents\u002Fskills --generate-baseline\n","bash",[457],{"type":40,"tag":63,"props":458,"children":459},{"__ignoreMap":140},[460],{"type":40,"tag":146,"props":461,"children":462},{"class":148,"line":149},[463,468,473,478,483],{"type":40,"tag":146,"props":464,"children":466},{"style":465},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[467],{"type":46,"value":21},{"type":40,"tag":146,"props":469,"children":470},{"style":205},[471],{"type":46,"value":472}," run",{"type":40,"tag":146,"props":474,"children":475},{"style":205},[476],{"type":46,"value":477}," dart_skills_lint:cli",{"type":40,"tag":146,"props":479,"children":480},{"style":205},[481],{"type":46,"value":482}," --skills-directory=.agents\u002Fskills",{"type":40,"tag":146,"props":484,"children":485},{"style":205},[486],{"type":46,"value":487}," --generate-baseline\n",{"type":40,"tag":228,"props":489,"children":490},{},[],{"type":46,"value":492},"This writes the current set of failures into an ignore file so\nthe next run exits clean. New violations introduced after the\nbaseline still surface as errors.",{"type":40,"tag":110,"props":494,"children":495},{},[496,501,503,508,510,515],{"type":40,"tag":55,"props":497,"children":498},{},[499],{"type":46,"value":500},"Wire it into CI.",{"type":46,"value":502}," Use the\n",{"type":40,"tag":72,"props":504,"children":505},{"href":86},[506],{"type":46,"value":507},"GitHub Actions recipe",{"type":46,"value":509}," from the README\nverbatim, or follow the\n",{"type":40,"tag":72,"props":511,"children":512},{"href":86},[513],{"type":46,"value":514},"pre-commit hook recipe",{"type":46,"value":516}," below it.",{"type":40,"tag":99,"props":518,"children":520},{"id":519},"when-youre-done",[521],{"type":46,"value":522},"When you're done",{"type":40,"tag":49,"props":524,"children":525},{},[526],{"type":46,"value":527},"The dart-skills-lint-validation skill takes over from here for\nday-to-day use.",{"type":40,"tag":529,"props":530,"children":531},"style",{},[532],{"type":46,"value":533},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":535,"total":614},[536,547,558,570,581,590,602],{"slug":537,"name":537,"fn":538,"description":539,"org":540,"tags":541,"stars":22,"repoUrl":23,"updatedAt":546},"dart-add-unit-test","write unit tests for Dart code","Write and organize unit tests for functions, methods, and classes using `package:test`. Use when creating new logic or fixing bugs to ensure code remains correct and regression-free.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[542,543],{"name":20,"slug":21,"type":15},{"name":544,"slug":545,"type":15},"Testing","testing","2026-07-15T05:22:40.104823",{"slug":548,"name":548,"fn":549,"description":550,"org":551,"tags":552,"stars":22,"repoUrl":23,"updatedAt":557},"dart-build-cli-app","build Dart command line applications","Entrypoint structure, exit codes, cross-platform scripts. Use when building command line utilities, scripts, or applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[553,556],{"name":554,"slug":555,"type":15},"CLI","cli",{"name":20,"slug":21,"type":15},"2026-07-15T05:22:18.863572",{"slug":559,"name":559,"fn":560,"description":561,"org":562,"tags":563,"stars":22,"repoUrl":23,"updatedAt":569},"dart-collect-coverage","collect Dart test coverage reports","Collect coverage using the coverage packge and create an LCOV report",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[564,565,568],{"name":20,"slug":21,"type":15},{"name":566,"slug":567,"type":15},"Reporting","reporting",{"name":544,"slug":545,"type":15},"2026-07-15T05:22:21.38636",{"slug":571,"name":571,"fn":572,"description":573,"org":574,"tags":575,"stars":22,"repoUrl":23,"updatedAt":580},"dart-fix-runtime-errors","debug and fix Dart runtime errors","Uses get_runtime_errors and lsp to fetch an active stack trace, locate the failing line, apply a fix, and verify resolution via hot_reload.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[576,577],{"name":20,"slug":21,"type":15},{"name":578,"slug":579,"type":15},"Debugging","debugging","2026-07-15T05:22:22.622501",{"slug":582,"name":582,"fn":583,"description":584,"org":585,"tags":586,"stars":22,"repoUrl":23,"updatedAt":589},"dart-generate-test-mocks","generate mock objects for Dart tests","Define and generate mock objects for external dependencies using `package:mockito` and `build_runner`. Use when unit testing classes that depend on complex external services like APIs or databases.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[587,588],{"name":20,"slug":21,"type":15},{"name":544,"slug":545,"type":15},"2026-07-15T05:22:42.607449",{"slug":591,"name":591,"fn":592,"description":593,"org":594,"tags":595,"stars":22,"repoUrl":23,"updatedAt":601},"dart-migrate-to-checks-package","migrate test matchers to checks package","Replace the usage of `expect` and similar functions from `package:matcher`\nto `package:checks` equivalents.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[596,597,600],{"name":20,"slug":21,"type":15},{"name":598,"slug":599,"type":15},"Migration","migration",{"name":544,"slug":545,"type":15},"2026-07-15T05:22:31.276564",{"slug":603,"name":603,"fn":604,"description":605,"org":606,"tags":607,"stars":22,"repoUrl":23,"updatedAt":613},"dart-resolve-package-conflicts","resolve Dart package version conflicts","Workflow for fixing package version conflicts. Use this when `pub get` fails due to incompatible package versions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[608,609,610],{"name":20,"slug":21,"type":15},{"name":578,"slug":579,"type":15},{"name":611,"slug":612,"type":15},"Engineering","engineering","2026-07-15T05:22:30.059335",24,{"items":616,"total":703},[617,622,627,633,638,643,649,655,667,679,685,694],{"slug":537,"name":537,"fn":538,"description":539,"org":618,"tags":619,"stars":22,"repoUrl":23,"updatedAt":546},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[620,621],{"name":20,"slug":21,"type":15},{"name":544,"slug":545,"type":15},{"slug":548,"name":548,"fn":549,"description":550,"org":623,"tags":624,"stars":22,"repoUrl":23,"updatedAt":557},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[625,626],{"name":554,"slug":555,"type":15},{"name":20,"slug":21,"type":15},{"slug":559,"name":559,"fn":560,"description":561,"org":628,"tags":629,"stars":22,"repoUrl":23,"updatedAt":569},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[630,631,632],{"name":20,"slug":21,"type":15},{"name":566,"slug":567,"type":15},{"name":544,"slug":545,"type":15},{"slug":571,"name":571,"fn":572,"description":573,"org":634,"tags":635,"stars":22,"repoUrl":23,"updatedAt":580},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[636,637],{"name":20,"slug":21,"type":15},{"name":578,"slug":579,"type":15},{"slug":582,"name":582,"fn":583,"description":584,"org":639,"tags":640,"stars":22,"repoUrl":23,"updatedAt":589},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[641,642],{"name":20,"slug":21,"type":15},{"name":544,"slug":545,"type":15},{"slug":591,"name":591,"fn":592,"description":593,"org":644,"tags":645,"stars":22,"repoUrl":23,"updatedAt":601},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[646,647,648],{"name":20,"slug":21,"type":15},{"name":598,"slug":599,"type":15},{"name":544,"slug":545,"type":15},{"slug":603,"name":603,"fn":604,"description":605,"org":650,"tags":651,"stars":22,"repoUrl":23,"updatedAt":613},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[652,653,654],{"name":20,"slug":21,"type":15},{"name":578,"slug":579,"type":15},{"name":611,"slug":612,"type":15},{"slug":656,"name":656,"fn":657,"description":658,"org":659,"tags":660,"stars":22,"repoUrl":23,"updatedAt":666},"dart-run-static-analysis","run static analysis and apply fixes","Execute `dart analyze` to identify warnings and errors, and use `dart fix --apply` to automatically resolve mechanical lint issues. Use during development to ensure code quality and before committing changes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[661,664,665],{"name":662,"slug":663,"type":15},"Code Analysis","code-analysis",{"name":20,"slug":21,"type":15},{"name":578,"slug":579,"type":15},"2026-07-15T05:22:23.861119",{"slug":668,"name":668,"fn":669,"description":670,"org":671,"tags":672,"stars":22,"repoUrl":23,"updatedAt":678},"dart-setup-ffi-assets","package C\u002FC++ assets for Dart","Guides agents in compiling and packaging C\u002FC++ source code into dynamic or static libraries (Code Assets) using Dart's Native Assets hook system (via hook\u002Fbuild.dart and hook\u002Flink.dart utilizing package:hooks and package:native_toolchain_c). Use when a user asks to: 'setup native assets', 'compile C\u002FC++ source code', 'bundle dynamic libraries', 'build native C code', 'link native assets', 'implement build.dart or link.dart hooks', or 'integrate C\u002FC++ interop in Dart\u002FFlutter'. Helps agents avoid manual toolchain orchestration and configures secure hash-validated binary downloads or advanced linker tree-shaking with package:record_use mapping.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[673,674,677],{"name":20,"slug":21,"type":15},{"name":675,"slug":676,"type":15},"Deployment","deployment",{"name":611,"slug":612,"type":15},"2026-07-15T05:22:20.138636",{"slug":4,"name":4,"fn":5,"description":6,"org":680,"tags":681,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[682,683,684],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":81,"name":81,"fn":686,"description":687,"org":688,"tags":689,"stars":22,"repoUrl":23,"updatedAt":693},"validate agent skills with dart_skills_lint","Use this skill when you need to validate AI agent skills with dart_skills_lint — running the linter, interpreting failures, fixing violations, and authoring custom rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[690,691,692],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-07-21T05:38:34.451024",{"slug":695,"name":695,"fn":696,"description":697,"org":698,"tags":699,"stars":22,"repoUrl":23,"updatedAt":702},"dart-use-ffigen","generate FFI bindings with ffigen","Guide agents to use `package:ffigen` to automatically generate FFI bindings instead of writing them manually. Use this skill when a task involves writing new FFI bindings, extending C\u002FObjective-C\u002FSwift integrations, or replacing hand-crafted `dart:ffi` setups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[700,701],{"name":20,"slug":21,"type":15},{"name":611,"slug":612,"type":15},"2026-07-15T05:22:17.592351",27]