[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M79P0TDBHPFEBRET2XFNPCZJ":3,"skill-same:01M79P0TDBHPFEBRET2XFNPCZJ":48},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":27,"commitSha":28,"skillDirectory":29,"forksCount":14,"repositoryHtmlUrl":30,"repositoryHomepageUrl":6,"ownerHtmlUrl":31,"ownerBlogUrl":6,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M79P0TDBHPFEBRET2XFNPCZJ","healthcare-cdss-patterns",null,"Clinical Decision Support System (CDSS) development patterns. Drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), alert severity classification, and integration into EMR workflows. Use when building clinical decision support — drug interaction checks, dose validation, clinical scoring, or alert severity.","JunMystery\u002FAgent-Guidance","JunMystery","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F161468934?v=4","01M79MTMV8F0BY8NK1A92RA8A0","Jun","01M79MTMWCFBKPHN5B25E6V20B",0,"MIT","https:\u002F\u002Fgithub.com\u002FJunMystery\u002FAgent-Guidance\u002Fblob\u002Fmain\u002Fskills\u002Fhealthcare-cdss-patterns\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: healthcare-cdss-patterns\ndescription: Clinical Decision Support System (CDSS) development patterns. Drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), alert severity classification, and integration into EMR workflows. Use when building clinical decision support — drug interaction checks, dose validation, clinical scoring, or alert severity.\nmetadata:\n  version: \"1.0.0\"\n  origin: Health1 Super Speciality Hospitals — contributed by Dr. Keyur Patel\n---\n\n# Healthcare CDSS Development Patterns\n\nPatterns for building Clinical Decision Support Systems that integrate into EMR workflows. CDSS modules are patient safety critical — zero tolerance for false negatives.\n\n## When to Use\n\n- Implementing drug interaction checking\n- Building dose validation engines\n- Implementing clinical scoring systems (NEWS2, qSOFA, APACHE, GCS)\n- Designing alert systems for abnormal clinical values\n- Building medication order entry with safety checks\n- Integrating lab result interpretation with clinical context\n\n## How It Works\n\nThe CDSS engine is a **pure function library with zero side effects**. Input clinical data, output alerts. This makes it fully testable.\n\nThree primary modules:\n\n1. **`checkInteractions(newDrug, currentMeds, allergies)`** — Checks a new drug against current medications and known allergies. Returns severity-sorted `InteractionAlert[]`. Uses `DrugInteractionPair` data model.\n2. **`validateDose(drug, dose, route, weight, age, renalFunction)`** — Validates a prescribed dose against weight-based, age-adjusted, and renal-adjusted rules. Returns `DoseValidationResult`.\n3. **`calculateNEWS2(vitals)`** — National Early Warning Score 2 from `NEWS2Input`. Returns `NEWS2Result` with total score, risk level, and escalation guidance.\n\n```\nEMR UI\n  ↓ (user enters data)\nCDSS Engine (pure functions, no side effects)\n  ├── Drug Interaction Checker\n  ├── Dose Validator\n  ├── Clinical Scoring (NEWS2, qSOFA, etc.)\n  └── Alert Classifier\n  ↓ (returns alerts)\nEMR UI (displays alerts inline, blocks if critical)\n```\n\n### Drug Interaction Checking\n\n```typescript\ninterface DrugInteractionPair {\n  drugA: string;           \u002F\u002F generic name\n  drugB: string;           \u002F\u002F generic name\n  severity: 'critical' | 'major' | 'minor';\n  mechanism: string;\n  clinicalEffect: string;\n  recommendation: string;\n}\n\nfunction checkInteractions(\n  newDrug: string,\n  currentMedications: string[],\n  allergyList: string[]\n): InteractionAlert[] {\n  if (!newDrug) return [];\n  const alerts: InteractionAlert[] = [];\n  for (const current of currentMedications) {\n    const interaction = findInteraction(newDrug, current);\n    if (interaction) {\n      alerts.push({ severity: interaction.severity, pair: [newDrug, current],\n        message: interaction.clinicalEffect, recommendation: interaction.recommendation });\n    }\n  }\n  for (const allergy of allergyList) {\n    if (isCrossReactive(newDrug, allergy)) {\n      alerts.push({ severity: 'critical', pair: [newDrug, allergy],\n        message: `Cross-reactivity with documented allergy: ${allergy}`,\n        recommendation: 'Do not prescribe without allergy consultation' });\n    }\n  }\n  return alerts.sort((a, b) => severityOrder(a.severity) - severityOrder(b.severity));\n}\n```\n\nInteraction pairs must be **bidirectional**: if Drug A interacts with Drug B, then Drug B interacts with Drug A.\n\n### Dose Validation\n\n```typescript\ninterface DoseValidationResult {\n  valid: boolean;\n  message: string;\n  suggestedRange: { min: number; max: number; unit: string } | null;\n  factors: string[];\n}\n\nfunction validateDose(\n  drug: string,\n  dose: number,\n  route: 'oral' | 'iv' | 'im' | 'sc' | 'topical',\n  patientWeight?: number,\n  patientAge?: number,\n  renalFunction?: number\n): DoseValidationResult {\n  const rules = getDoseRules(drug, route);\n  if (!rules) return { valid: true, message: 'No validation rules available', suggestedRange: null, factors: [] };\n  const factors: string[] = [];\n\n  \u002F\u002F SAFETY: if rules require weight but weight missing, BLOCK (not pass)\n  if (rules.weightBased) {\n    if (!patientWeight || patientWeight \u003C= 0) {\n      return { valid: false, message: `Weight required for ${drug} (mg\u002Fkg drug)`,\n        suggestedRange: null, factors: ['weight_missing'] };\n    }\n    factors.push('weight');\n    const maxDose = rules.maxPerKg * patientWeight;\n    if (dose > maxDose) {\n      return { valid: false, message: `Dose exceeds max for ${patientWeight}kg`,\n        suggestedRange: { min: rules.minPerKg * patientWeight, max: maxDose, unit: rules.unit }, factors };\n    }\n  }\n\n  \u002F\u002F Age-based adjustment (when rules define age brackets and age is provided)\n  if (rules.ageAdjusted && patientAge !== undefined) {\n    factors.push('age');\n    const ageMax = rules.getAgeAdjustedMax(patientAge);\n    if (dose > ageMax) {\n      return { valid: false, message: `Exceeds age-adjusted max for ${patientAge}yr`,\n        suggestedRange: { min: rules.typicalMin, max: ageMax, unit: rules.unit }, factors };\n    }\n  }\n\n  \u002F\u002F Renal adjustment (when rules define eGFR brackets and eGFR is provided)\n  if (rules.renalAdjusted && renalFunction !== undefined) {\n    factors.push('renal');\n    const renalMax = rules.getRenalAdjustedMax(renalFunction);\n    if (dose > renalMax) {\n      return { valid: false, message: `Exceeds renal-adjusted max for eGFR ${renalFunction}`,\n        suggestedRange: { min: rules.typicalMin, max: renalMax, unit: rules.unit }, factors };\n    }\n  }\n\n  \u002F\u002F Absolute max\n  if (dose > rules.absoluteMax) {\n    return { valid: false, message: `Exceeds absolute max ${rules.absoluteMax}${rules.unit}`,\n      suggestedRange: { min: rules.typicalMin, max: rules.absoluteMax, unit: rules.unit },\n      factors: [...factors, 'absolute_max'] };\n  }\n  return { valid: true, message: 'Within range',\n    suggestedRange: { min: rules.typicalMin, max: rules.typicalMax, unit: rules.unit }, factors };\n}\n```\n\n### Clinical Scoring: NEWS2\n\n```typescript\ninterface NEWS2Input {\n  respiratoryRate: number; oxygenSaturation: number; supplementalOxygen: boolean;\n  temperature: number; systolicBP: number; heartRate: number;\n  consciousness: 'alert' | 'voice' | 'pain' | 'unresponsive';\n}\ninterface NEWS2Result {\n  total: number;           \u002F\u002F 0-20\n  risk: 'low' | 'low-medium' | 'medium' | 'high';\n  components: Record\u003Cstring, number>;\n  escalation: string;\n}\n```\n\nScoring tables must match the Royal College of Physicians specification exactly.\n\n### Alert Severity and UI Behavior\n\n| Severity | UI Behavior | Clinician Action Required |\n|----------|-------------|--------------------------|\n| Critical | Block action. Non-dismissable modal. Red. | Must document override reason to proceed |\n| Major | Warning banner inline. Orange. | Must acknowledge before proceeding |\n| Minor | Info note inline. Yellow. | Awareness only, no action required |\n\nCritical alerts must NEVER be auto-dismissed or implemented as toast notifications. Override reasons must be stored in the audit trail.\n\n### Testing CDSS (Zero Tolerance for False Negatives)\n\n```typescript\ndescribe('CDSS — Patient Safety', () => {\n  INTERACTION_PAIRS.forEach(({ drugA, drugB, severity }) => {\n    it(`detects ${drugA} + ${drugB} (${severity})`, () => {\n      const alerts = checkInteractions(drugA, [drugB], []);\n      expect(alerts.length).toBeGreaterThan(0);\n      expect(alerts[0].severity).toBe(severity);\n    });\n    it(`detects ${drugB} + ${drugA} (reverse)`, () => {\n      const alerts = checkInteractions(drugB, [drugA], []);\n      expect(alerts.length).toBeGreaterThan(0);\n    });\n  });\n  it('blocks mg\u002Fkg drug when weight is missing', () => {\n    const result = validateDose('gentamicin', 300, 'iv');\n    expect(result.valid).toBe(false);\n    expect(result.factors).toContain('weight_missing');\n  });\n  it('handles malformed drug data gracefully', () => {\n    expect(() => checkInteractions('', [], [])).not.toThrow();\n  });\n});\n```\n\nPass criteria: 100%. A single missed interaction is a patient safety event.\n\n### Anti-Patterns\n\n- Making CDSS checks optional or skippable without documented reason\n- Implementing interaction checks as toast notifications\n- Using `any` types for drug or clinical data\n- Hardcoding interaction pairs instead of using a maintainable data structure\n- Silently catching errors in CDSS engine (must surface failures loudly)\n- Skipping weight-based validation when weight is not available (must block, not pass)\n\n## Examples\n\n### Example 1: Drug Interaction Check\n\n```typescript\nconst alerts = checkInteractions('warfarin', ['aspirin', 'metformin'], ['penicillin']);\n\u002F\u002F [{ severity: 'critical', pair: ['warfarin', 'aspirin'],\n\u002F\u002F    message: 'Increased bleeding risk', recommendation: 'Avoid combination' }]\n```\n\n### Example 2: Dose Validation\n\n```typescript\nconst ok = validateDose('paracetamol', 1000, 'oral', 70, 45);\n\u002F\u002F { valid: true, suggestedRange: { min: 500, max: 4000, unit: 'mg' } }\n\nconst bad = validateDose('paracetamol', 5000, 'oral', 70, 45);\n\u002F\u002F { valid: false, message: 'Exceeds absolute max 4000mg' }\n\nconst noWeight = validateDose('gentamicin', 300, 'iv');\n\u002F\u002F { valid: false, factors: ['weight_missing'] }\n```\n\n### Example 3: NEWS2 Scoring\n\n```typescript\nconst result = calculateNEWS2({\n  respiratoryRate: 24, oxygenSaturation: 93, supplementalOxygen: true,\n  temperature: 38.5, systolicBP: 100, heartRate: 110, consciousness: 'voice'\n});\n\u002F\u002F { total: 13, risk: 'high', escalation: 'Urgent clinical review. Consider ICU.' }\n```\n","# Healthcare CDSS Development Patterns\n\nPatterns for building Clinical Decision Support Systems that integrate into EMR workflows. CDSS modules are patient safety critical — zero tolerance for false negatives.\n\n## When to Use\n\n- Implementing drug interaction checking\n- Building dose validation engines\n- Implementing clinical scoring systems (NEWS2, qSOFA, APACHE, GCS)\n- Designing alert systems for abnormal clinical values\n- Building medication order entry with safety checks\n- Integrating lab result interpretation with clinical context\n\n## How It Works\n\nThe CDSS engine is a **pure function library with zero side effects**. Input clinical data, output alerts. This makes it fully testable.\n\nThree primary modules:\n\n1. **`checkInteractions(newDrug, currentMeds, allergies)`** — Checks a new drug against current medications and known allergies. Returns severity-sorted `InteractionAlert[]`. Uses `DrugInteractionPair` data model.\n2. **`validateDose(drug, dose, route, weight, age, renalFunction)`** — Validates a prescribed dose against weight-based, age-adjusted, and renal-adjusted rules. Returns `DoseValidationResult`.\n3. **`calculateNEWS2(vitals)`** — National Early Warning Score 2 from `NEWS2Input`. Returns `NEWS2Result` with total score, risk level, and escalation guidance.\n\n```\nEMR UI\n  ↓ (user enters data)\nCDSS Engine (pure functions, no side effects)\n  ├── Drug Interaction Checker\n  ├── Dose Validator\n  ├── Clinical Scoring (NEWS2, qSOFA, etc.)\n  └── Alert Classifier\n  ↓ (returns alerts)\nEMR UI (displays alerts inline, blocks if critical)\n```\n\n### Drug Interaction Checking\n\n```typescript\ninterface DrugInteractionPair {\n  drugA: string;           \u002F\u002F generic name\n  drugB: string;           \u002F\u002F generic name\n  severity: 'critical' | 'major' | 'minor';\n  mechanism: string;\n  clinicalEffect: string;\n  recommendation: string;\n}\n\nfunction checkInteractions(\n  newDrug: string,\n  currentMedications: string[],\n  allergyList: string[]\n): InteractionAlert[] {\n  if (!newDrug) return [];\n  const alerts: InteractionAlert[] = [];\n  for (const current of currentMedications) {\n    const interaction = findInteraction(newDrug, current);\n    if (interaction) {\n      alerts.push({ severity: interaction.severity, pair: [newDrug, current],\n        message: interaction.clinicalEffect, recommendation: interaction.recommendation });\n    }\n  }\n  for (const allergy of allergyList) {\n    if (isCrossReactive(newDrug, allergy)) {\n      alerts.push({ severity: 'critical', pair: [newDrug, allergy],\n        message: `Cross-reactivity with documented allergy: ${allergy}`,\n        recommendation: 'Do not prescribe without allergy consultation' });\n    }\n  }\n  return alerts.sort((a, b) => severityOrder(a.severity) - severityOrder(b.severity));\n}\n```\n\nInteraction pairs must be **bidirectional**: if Drug A interacts with Drug B, then Drug B interacts with Drug A.\n\n### Dose Validation\n\n```typescript\ninterface DoseValidationResult {\n  valid: boolean;\n  message: string;\n  suggestedRange: { min: number; max: number; unit: string } | null;\n  factors: string[];\n}\n\nfunction validateDose(\n  drug: string,\n  dose: number,\n  route: 'oral' | 'iv' | 'im' | 'sc' | 'topical',\n  patientWeight?: number,\n  patientAge?: number,\n  renalFunction?: number\n): DoseValidationResult {\n  const rules = getDoseRules(drug, route);\n  if (!rules) return { valid: true, message: 'No validation rules available', suggestedRange: null, factors: [] };\n  const factors: string[] = [];\n\n  \u002F\u002F SAFETY: if rules require weight but weight missing, BLOCK (not pass)\n  if (rules.weightBased) {\n    if (!patientWeight || patientWeight \u003C= 0) {\n      return { valid: false, message: `Weight required for ${drug} (mg\u002Fkg drug)`,\n        suggestedRange: null, factors: ['weight_missing'] };\n    }\n    factors.push('weight');\n    const maxDose = rules.maxPerKg * patientWeight;\n    if (dose > maxDose) {\n      return { valid: false, message: `Dose exceeds max for ${patientWeight}kg`,\n        suggestedRange: { min: rules.minPerKg * patientWeight, max: maxDose, unit: rules.unit }, factors };\n    }\n  }\n\n  \u002F\u002F Age-based adjustment (when rules define age brackets and age is provided)\n  if (rules.ageAdjusted && patientAge !== undefined) {\n    factors.push('age');\n    const ageMax = rules.getAgeAdjustedMax(patientAge);\n    if (dose > ageMax) {\n      return { valid: false, message: `Exceeds age-adjusted max for ${patientAge}yr`,\n        suggestedRange: { min: rules.typicalMin, max: ageMax, unit: rules.unit }, factors };\n    }\n  }\n\n  \u002F\u002F Renal adjustment (when rules define eGFR brackets and eGFR is provided)\n  if (rules.renalAdjusted && renalFunction !== undefined) {\n    factors.push('renal');\n    const renalMax = rules.getRenalAdjustedMax(renalFunction);\n    if (dose > renalMax) {\n      return { valid: false, message: `Exceeds renal-adjusted max for eGFR ${renalFunction}`,\n        suggestedRange: { min: rules.typicalMin, max: renalMax, unit: rules.unit }, factors };\n    }\n  }\n\n  \u002F\u002F Absolute max\n  if (dose > rules.absoluteMax) {\n    return { valid: false, message: `Exceeds absolute max ${rules.absoluteMax}${rules.unit}`,\n      suggestedRange: { min: rules.typicalMin, max: rules.absoluteMax, unit: rules.unit },\n      factors: [...factors, 'absolute_max'] };\n  }\n  return { valid: true, message: 'Within range',\n    suggestedRange: { min: rules.typicalMin, max: rules.typicalMax, unit: rules.unit }, factors };\n}\n```\n\n### Clinical Scoring: NEWS2\n\n```typescript\ninterface NEWS2Input {\n  respiratoryRate: number; oxygenSaturation: number; supplementalOxygen: boolean;\n  temperature: number; systolicBP: number; heartRate: number;\n  consciousness: 'alert' | 'voice' | 'pain' | 'unresponsive';\n}\ninterface NEWS2Result {\n  total: number;           \u002F\u002F 0-20\n  risk: 'low' | 'low-medium' | 'medium' | 'high';\n  components: Record\u003Cstring, number>;\n  escalation: string;\n}\n```\n\nScoring tables must match the Royal College of Physicians specification exactly.\n\n### Alert Severity and UI Behavior\n\n| Severity | UI Behavior | Clinician Action Required |\n|----------|-------------|--------------------------|\n| Critical | Block action. Non-dismissable modal. Red. | Must document override reason to proceed |\n| Major | Warning banner inline. Orange. | Must acknowledge before proceeding |\n| Minor | Info note inline. Yellow. | Awareness only, no action required |\n\nCritical alerts must NEVER be auto-dismissed or implemented as toast notifications. Override reasons must be stored in the audit trail.\n\n### Testing CDSS (Zero Tolerance for False Negatives)\n\n```typescript\ndescribe('CDSS — Patient Safety', () => {\n  INTERACTION_PAIRS.forEach(({ drugA, drugB, severity }) => {\n    it(`detects ${drugA} + ${drugB} (${severity})`, () => {\n      const alerts = checkInteractions(drugA, [drugB], []);\n      expect(alerts.length).toBeGreaterThan(0);\n      expect(alerts[0].severity).toBe(severity);\n    });\n    it(`detects ${drugB} + ${drugA} (reverse)`, () => {\n      const alerts = checkInteractions(drugB, [drugA], []);\n      expect(alerts.length).toBeGreaterThan(0);\n    });\n  });\n  it('blocks mg\u002Fkg drug when weight is missing', () => {\n    const result = validateDose('gentamicin', 300, 'iv');\n    expect(result.valid).toBe(false);\n    expect(result.factors).toContain('weight_missing');\n  });\n  it('handles malformed drug data gracefully', () => {\n    expect(() => checkInteractions('', [], [])).not.toThrow();\n  });\n});\n```\n\nPass criteria: 100%. A single missed interaction is a patient safety event.\n\n### Anti-Patterns\n\n- Making CDSS checks optional or skippable without documented reason\n- Implementing interaction checks as toast notifications\n- Using `any` types for drug or clinical data\n- Hardcoding interaction pairs instead of using a maintainable data structure\n- Silently catching errors in CDSS engine (must surface failures loudly)\n- Skipping weight-based validation when weight is not available (must block, not pass)\n\n## Examples\n\n### Example 1: Drug Interaction Check\n\n```typescript\nconst alerts = checkInteractions('warfarin', ['aspirin', 'metformin'], ['penicillin']);\n\u002F\u002F [{ severity: 'critical', pair: ['warfarin', 'aspirin'],\n\u002F\u002F    message: 'Increased bleeding risk', recommendation: 'Avoid combination' }]\n```\n\n### Example 2: Dose Validation\n\n```typescript\nconst ok = validateDose('paracetamol', 1000, 'oral', 70, 45);\n\u002F\u002F { valid: true, suggestedRange: { min: 500, max: 4000, unit: 'mg' } }\n\nconst bad = validateDose('paracetamol', 5000, 'oral', 70, 45);\n\u002F\u002F { valid: false, message: 'Exceeds absolute max 4000mg' }\n\nconst noWeight = validateDose('gentamicin', 300, 'iv');\n\u002F\u002F { valid: false, factors: ['weight_missing'] }\n```\n\n### Example 3: NEWS2 Scoring\n\n```typescript\nconst result = calculateNEWS2({\n  respiratoryRate: 24, oxygenSaturation: 93, supplementalOxygen: true,\n  temperature: 38.5, systolicBP: 100, heartRate: 110, consciousness: 'voice'\n});\n\u002F\u002F { total: 13, risk: 'high', escalation: 'Urgent clinical review. Consider ICU.' }\n```\n",{"name":5,"metadata":24,"description":7},{"origin":25,"version":26},"Health1 Super Speciality Hospitals — contributed by Dr. Keyur Patel","1.0.0","main","5d0a87185c0e172c3901e2a6e5916b6d544b8b94","skills\u002Fhealthcare-cdss-patterns","https:\u002F\u002Fgithub.com\u002FJunMystery\u002FAgent-Guidance","https:\u002F\u002Fgithub.com\u002FJunMystery","AI is the typist, I am the architect. Building efficient, secure, and user-centric products through disciplined AI prompt engineering.","2026-11-13 17:41:25",{"source":8,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add JunMystery\u002FAgent-Guidance --skill healthcare-cdss-patterns",{"tool":40,"command":41},"bunx","bunx skills add JunMystery\u002FAgent-Guidance --skill healthcare-cdss-patterns",{"tool":43,"command":44},"pnpm","pnpm dlx skills add JunMystery\u002FAgent-Guidance --skill healthcare-cdss-patterns","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FJunMystery\u002FAgent-Guidance\u002Fblob\u002Fmain\u002Fskills\u002Fhealthcare-cdss-patterns\u002FSKILL.md",true,[],[49,55,61,67,73,79],{"skillNo":50,"name":51,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":54,"publishedAt":19},"01M79QR1E309VJ6CTQKB32AWWA","zero-trust-architecture-cheat-sheet","https:\u002F\u002Fgithub.com\u002FJunMystery\u002FAgent-Guidance\u002Fblob\u002Fmain\u002Fskills\u002Fzero-trust-architecture-cheat-sheet\u002FSKILL.md",[],[],{"skillNo":56,"name":57,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":19},"01M79QQV7GHYR02DYGN41S23WN","xss-filter-evasion-cheat-sheet","https:\u002F\u002Fgithub.com\u002FJunMystery\u002FAgent-Guidance\u002Fblob\u002Fmain\u002Fskills\u002Fxss-filter-evasion-cheat-sheet\u002FSKILL.md",[],[],{"skillNo":62,"name":63,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":19},"01M79QQNSN7YB8XB61FFSCS3WH","xs-leaks-cheat-sheet","https:\u002F\u002Fgithub.com\u002FJunMystery\u002FAgent-Guidance\u002Fblob\u002Fmain\u002Fskills\u002Fxs-leaks-cheat-sheet\u002FSKILL.md",[],[],{"skillNo":68,"name":69,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":19},"01M79QQHZZJKFDY9132G5A65C2","xpath-injection-prevention-cheat-sheet","https:\u002F\u002Fgithub.com\u002FJunMystery\u002FAgent-Guidance\u002Fblob\u002Fmain\u002Fskills\u002Fxpath-injection-prevention-cheat-sheet\u002FSKILL.md",[],[],{"skillNo":74,"name":75,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":19},"01M79QQB9ZSD3DJG8658EHQXR1","xml-security-cheat-sheet","https:\u002F\u002Fgithub.com\u002FJunMystery\u002FAgent-Guidance\u002Fblob\u002Fmain\u002Fskills\u002Fxml-security-cheat-sheet\u002FSKILL.md",[],[],{"skillNo":80,"name":81,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":19},"01M79QQ60WKV7PFMXWT9CW8PM6","xml-external-entity-prevention-cheat-sheet","https:\u002F\u002Fgithub.com\u002FJunMystery\u002FAgent-Guidance\u002Fblob\u002Fmain\u002Fskills\u002Fxml-external-entity-prevention-cheat-sheet\u002FSKILL.md",[],[]]