[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CD3KHDHPR633RVP95G4XWN":3,"skill-same:01M6CD3KHDHPR633RVP95G4XWN":73},{"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":18,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":14,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":44,"install":45,"resources":58},"01M6CD3KHDHPR633RVP95G4XWN","validation-authority",null,"Treat upstream validators as authoritative. Align local config to them. Use when validation fails unexpectedly, before modifying validator behavior, or when tempted to change upstream tool code.","loriensleafs\u002Fbrain","loriensleafs","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F315385?v=4","01M6CCYZETMCJPTHNS258YRCBC","Peter Kloss","01M6CCYZK25T8516A39S9PCJT7",0,"MIT","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Fvalidation-authority\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28],"validation","validation authority","change","config","code","architect","tool","behavior","implementer","use","2026-11-10 10:12:30",false,"---\nname: validation-authority\ndescription: Treat upstream validators as authoritative. Align local config to them. Use when validation fails unexpectedly, before modifying validator behavior, or when tempted to change upstream tool code.\nlicense: MIT\nagents: [implementer, architect, analyst]\nmodel: claude-sonnet-4-5\nmetadata:\n  version: 1.0.0\n---\n\n# Validation Authority\n\nWhen integrating external validators (PSScriptAnalyzer, markdownlint, ESLint, etc.), respect upstream defaults. Modify local configuration to match upstream behavior. Do not modify upstream tool code.\n\n## Triggers\n\nActivate when:\n\n- Validation fails unexpectedly\n- Before modifying validator behavior or configuration\n- When tempted to change upstream tool source code\n- When adding a new external validator to the project\n- When suppressing validator warnings without rationale\n\n## Decision Tree\n\n```\nValidation failure occurred\n        |\n        v\nIs the validator upstream (external tool)?\n        |               |\n       YES              NO (local\u002Fcustom)\n        |               |\n        v               v\nModify LOCAL config   Modify tool as needed\nto align with tool    (you own the code)\n        |\n        v\nDocument override rationale\nin config comments\n```\n\n## Process\n\n1. **Classify the validator**: Determine if the tool is upstream (external) or local (project-owned).\n2. **Identify the conflict**: Find the specific rule or default causing the failure.\n3. **Check upstream defaults**: Read the tool's documentation for the default behavior.\n4. **Align local config**: Update project configuration files to match or explicitly override upstream defaults.\n5. **Document overrides**: Add comments explaining why any override differs from the upstream default.\n\n## Trigger Table\n\n| Scenario | Action | Example |\n|----------|--------|---------|\n| PSScriptAnalyzer rule fails | Update `.psscriptanalyzerrc.psd1` | Suppress `PSAvoidUsingWriteHost` with rationale |\n| markdownlint rule fails | Update `.markdownlint.yaml` | Disable `MD013` line-length for generated docs |\n| ESLint rule conflicts | Update `.eslintrc` | Override `no-console` for CLI tools |\n| Upstream tool has a bug | File issue upstream, add workaround in config | Pin tool version, suppress specific rule |\n| Tool default changed after upgrade | Review and align local config to new default | Update config after major version bump |\n\n## Anti-Patterns\n\n| Avoid | Why | Instead |\n|-------|-----|---------|\n| Forking upstream tools to change behavior | Creates maintenance burden, diverges from community | Configure locally, file upstream issues |\n| Patching tool source to suppress warnings | Hides real issues, breaks on updates | Use tool's suppression mechanism |\n| Disabling entire rule categories | Loses protection the rules provide | Suppress specific rules with rationale |\n| Suppressing without rationale | Future maintainers cannot evaluate the override | Always document why in config comments |\n| Copying tool defaults into local config | Config drift when upstream updates | Only override what you need to change |\n\n## Verification\n\nAfter applying this skill:\n\n- [ ] Validator is classified as upstream or local\n- [ ] Local config aligns with upstream defaults\n- [ ] Any overrides include documented rationale\n- [ ] No upstream tool source code was modified\n- [ ] Validation passes with the updated config\n\n## Examples\n\n### Example 1: PSScriptAnalyzer Rule Failure\n\n**Problem**: `PSAvoidUsingWriteHost` fails on a CLI script that intentionally uses `Write-Host`.\n\n**Wrong approach**: Modify PSScriptAnalyzer source or remove the rule globally.\n\n**Correct approach**:\n\n```powershell\n# .psscriptanalyzerrc.psd1\n# Rationale: CLI scripts use Write-Host for user-facing output\n@{\n    Rules = @{\n        PSAvoidUsingWriteHost = @{\n            Enable = $false\n        }\n    }\n}\n```\n\n### Example 2: markdownlint Conflict\n\n**Problem**: `MD013` (line length) fails on auto-generated documentation.\n\n**Wrong approach**: Fork markdownlint to increase default line length.\n\n**Correct approach**:\n\n```yaml\n# .markdownlint.yaml\n# Rationale: Generated docs have long lines from tool output\nMD013:\n  line_length: 200\n  tables: false\n```\n\n### Example 3: New Tool Integration\n\n**Problem**: Adding `ruff` to a Python project. Several existing files fail.\n\n**Wrong approach**: Disable all failing rules immediately.\n\n**Correct approach**:\n\n1. Run `ruff check` with defaults to see all violations.\n2. Fix violations that align with project standards.\n3. Suppress remaining rules per-file with `# noqa` and rationale.\n4. Document any project-wide overrides in `pyproject.toml`.\n\n## Related Skills\n\n| Skill | Relationship |\n|-------|--------------|\n| [style-enforcement](..\u002Fstyle-enforcement\u002FSKILL.md) | Enforces style rules that this skill governs |\n| [code-qualities-assessment](..\u002Fcode-qualities-assessment\u002FSKILL.md) | Quality assessment, not validator config |\n| [incoherence](..\u002Fincoherence\u002FSKILL.md) | Detects contradictions between config and behavior |\n\n## Timelessness: 9\u002F10\n\nExternal tool integration is a universal software engineering concern. The principle of respecting upstream authority applies to any validator, linter, or static analysis tool regardless of language or framework.\n","# Validation Authority\n\nWhen integrating external validators (PSScriptAnalyzer, markdownlint, ESLint, etc.), respect upstream defaults. Modify local configuration to match upstream behavior. Do not modify upstream tool code.\n\n## Triggers\n\nActivate when:\n\n- Validation fails unexpectedly\n- Before modifying validator behavior or configuration\n- When tempted to change upstream tool source code\n- When adding a new external validator to the project\n- When suppressing validator warnings without rationale\n\n## Decision Tree\n\n```\nValidation failure occurred\n        |\n        v\nIs the validator upstream (external tool)?\n        |               |\n       YES              NO (local\u002Fcustom)\n        |               |\n        v               v\nModify LOCAL config   Modify tool as needed\nto align with tool    (you own the code)\n        |\n        v\nDocument override rationale\nin config comments\n```\n\n## Process\n\n1. **Classify the validator**: Determine if the tool is upstream (external) or local (project-owned).\n2. **Identify the conflict**: Find the specific rule or default causing the failure.\n3. **Check upstream defaults**: Read the tool's documentation for the default behavior.\n4. **Align local config**: Update project configuration files to match or explicitly override upstream defaults.\n5. **Document overrides**: Add comments explaining why any override differs from the upstream default.\n\n## Trigger Table\n\n| Scenario | Action | Example |\n|----------|--------|---------|\n| PSScriptAnalyzer rule fails | Update `.psscriptanalyzerrc.psd1` | Suppress `PSAvoidUsingWriteHost` with rationale |\n| markdownlint rule fails | Update `.markdownlint.yaml` | Disable `MD013` line-length for generated docs |\n| ESLint rule conflicts | Update `.eslintrc` | Override `no-console` for CLI tools |\n| Upstream tool has a bug | File issue upstream, add workaround in config | Pin tool version, suppress specific rule |\n| Tool default changed after upgrade | Review and align local config to new default | Update config after major version bump |\n\n## Anti-Patterns\n\n| Avoid | Why | Instead |\n|-------|-----|---------|\n| Forking upstream tools to change behavior | Creates maintenance burden, diverges from community | Configure locally, file upstream issues |\n| Patching tool source to suppress warnings | Hides real issues, breaks on updates | Use tool's suppression mechanism |\n| Disabling entire rule categories | Loses protection the rules provide | Suppress specific rules with rationale |\n| Suppressing without rationale | Future maintainers cannot evaluate the override | Always document why in config comments |\n| Copying tool defaults into local config | Config drift when upstream updates | Only override what you need to change |\n\n## Verification\n\nAfter applying this skill:\n\n- [ ] Validator is classified as upstream or local\n- [ ] Local config aligns with upstream defaults\n- [ ] Any overrides include documented rationale\n- [ ] No upstream tool source code was modified\n- [ ] Validation passes with the updated config\n\n## Examples\n\n### Example 1: PSScriptAnalyzer Rule Failure\n\n**Problem**: `PSAvoidUsingWriteHost` fails on a CLI script that intentionally uses `Write-Host`.\n\n**Wrong approach**: Modify PSScriptAnalyzer source or remove the rule globally.\n\n**Correct approach**:\n\n```powershell\n# .psscriptanalyzerrc.psd1\n# Rationale: CLI scripts use Write-Host for user-facing output\n@{\n    Rules = @{\n        PSAvoidUsingWriteHost = @{\n            Enable = $false\n        }\n    }\n}\n```\n\n### Example 2: markdownlint Conflict\n\n**Problem**: `MD013` (line length) fails on auto-generated documentation.\n\n**Wrong approach**: Fork markdownlint to increase default line length.\n\n**Correct approach**:\n\n```yaml\n# .markdownlint.yaml\n# Rationale: Generated docs have long lines from tool output\nMD013:\n  line_length: 200\n  tables: false\n```\n\n### Example 3: New Tool Integration\n\n**Problem**: Adding `ruff` to a Python project. Several existing files fail.\n\n**Wrong approach**: Disable all failing rules immediately.\n\n**Correct approach**:\n\n1. Run `ruff check` with defaults to see all violations.\n2. Fix violations that align with project standards.\n3. Suppress remaining rules per-file with `# noqa` and rationale.\n4. Document any project-wide overrides in `pyproject.toml`.\n\n## Related Skills\n\n| Skill | Relationship |\n|-------|--------------|\n| [style-enforcement](..\u002Fstyle-enforcement\u002FSKILL.md) | Enforces style rules that this skill governs |\n| [code-qualities-assessment](..\u002Fcode-qualities-assessment\u002FSKILL.md) | Quality assessment, not validator config |\n| [incoherence](..\u002Fincoherence\u002FSKILL.md) | Detects contradictions between config and behavior |\n\n## Timelessness: 9\u002F10\n\nExternal tool integration is a universal software engineering concern. The principle of respecting upstream authority applies to any validator, linter, or static analysis tool regardless of language or framework.\n",{"name":5,"model":34,"agents":35,"license":15,"metadata":37,"description":7},"claude-sonnet-4-5",[27,24,36],"analyst",{"version":38},"1.0.0","main","2bd10cb7ca989f88dbf338b57957763718eda59b","templates\u002Fskills\u002Fvalidation-authority","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain","https:\u002F\u002Fgithub.com\u002Floriensleafs","2026-03-11 23:51:59",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add loriensleafs\u002Fbrain --skill validation-authority",{"tool":51,"command":52},"bunx","bunx skills add loriensleafs\u002Fbrain --skill validation-authority",{"tool":54,"command":55},"pnpm","pnpm dlx skills add loriensleafs\u002Fbrain --skill validation-authority","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Fvalidation-authority\u002FSKILL.md",true,[59,65,69],{"path":60,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":63,"sourceHtmlUrl":64},"examples\u002Fmutation-patterns.md","REFERENCE","参考文档",12853,"https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fexternal_plugins\u002Fnextjs-expert\u002Fskills\u002Fserver-actions\u002Fexamples\u002Fmutation-patterns.md",{"path":66,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":67,"sourceHtmlUrl":68},"references\u002Fform-handling.md",12022,"https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fexternal_plugins\u002Fnextjs-expert\u002Fskills\u002Fserver-actions\u002Freferences\u002Fform-handling.md",{"path":70,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Frevalidation.md",9242,"https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fexternal_plugins\u002Fnextjs-expert\u002Fskills\u002Fserver-actions\u002Freferences\u002Frevalidation.md",[74,91,114,135,159,170],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":29},"01M6CD3H29Q8FWN9YETT8YVQTS","using-brain-memory","Guidance for using Brain semantic memory effectively. Applies Zettelkasten atomic note principles with observations and relations. Use when deciding whether to query or create notes, structuring note content, or understanding the semantic knowledge graph.","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Fusing-forgetful-memory\u002FSKILL.md",[],[81,82,83,84,28,85,86,87,88,89,90],"using brain memory","memory","notes","guidance","context","knowledge","knowledge graph","graph","content","create",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":29},"01M6CD3E2KTTMNSWXRJAAZA7D1","threat-modeling","Structured security analysis using OWASP Four-Question Framework and STRIDE methodology. Generates threat matrices with risk ratings, mitigations, and prioritization. Use for attack surface analysis, security architecture review, or when asking what can go wrong.","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Fthreat-modeling\u002FSKILL.md",[],[98,99,100,101,102,103,104,105,106,107,108,28,109,24,110,111,112,113],"threat","threat modeling","methodology","framework","security analysis","architecture review","architecture","security","go","review","owasp","question","prioritization","stride","analysis","risk",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":125,"publishedAt":29},"01M6CD3BC6G0Q2MDNW6X51XHBQ","taste-lints","Custom lints with agent-readable remediation instructions. Enforces taste invariants (file size, naming conventions, structured logging, complexity) and surfaces errors that agents can act on directly. Use when writing or reviewing code to catch style violations early.","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Ftaste-lints\u002FSKILL.md",[120],{"categoryNo":121,"categoryName":122,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[126,127,128,28,27,129,130,131,132,133,23,134],"taste lints","surfaces","complexity","instructions","remediation","file","logging","qa","writing",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":29},"01M6CD37Z7VD22BH42TG0GM66V","style-enforcement","Validate code against style rules from .editorconfig, StyleCop.json, and Directory.Build.props. Detects line ending violations, naming convention issues, indentation problems, and charset mismatches across C#, Python, TypeScript, and JavaScript. Produces JSON reports for pre-commit hooks and CI pipelines.","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Fstyle-enforcement\u002FSKILL.md",[],[142,143,144,145,146,147,148,149,27,150,151,152,153,133,154,23,155,156,157,158],"enforcement","style enforcement","directory","typescript","pre-commit","reports","pipelines","hooks","Rules","json","editorconfig","ci","issues","validate","commit","javascript","python",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":165,"publishedAt":29},"01M6CD35JW73TPMCZBF9DTDEE8","steering-matcher","Match file paths against steering file glob patterns to determine applicable steering guidance. Use when orchestrator needs to inject context-aware guidance based on files being modified.","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Fsteering-matcher\u002FSKILL.md",[],[166,84,167,28,168,85,169,131],"steering matcher","files","orchestrator","haiku",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":177,"publishedAt":29},"01M6CD32KG07KWP69SY6F4471S","slashcommandcreator","Autonomous meta-skill for creating high-quality custom slash commands using 5-phase workflow with multi-agent validation and quality gates. Use when user requests new slash command, reusable prompt automation, or wants to convert repetitive workflows into documented commands.","https:\u002F\u002Fgithub.com\u002Floriensleafs\u002Fbrain\u002Fblob\u002Fmain\u002Ftemplates\u002Fskills\u002Fslashcommandcreator\u002FSKILL.md",[176],{"categoryNo":121,"categoryName":122,"taxonomyType":123,"taxonomyTypeDesc":124},[172,19,178,179,180,181,182,24,183,28,27,184,185,186,187,188,189,190,105,191],"quality gates","workflow","automation","workflows","critic","reusable","autonomous","user","command","prompt","quality","multi-agent","Meta","convert"]