{
  "name": "@cometchat/skills",
  "version": "5.0.0",
  "workspaces": [
    "packages/*"
  ],
  "description": "CometChat AI-coding skills (v5) — add chat, voice/video calling and push through your AI coding agent (Claude Code, Cursor, Codex, Copilot, Windsurf and more). UI Kit skills for React v7, Angular v5, React Native v5, iOS v5, Android v6 and Flutter v6, plus headless Calls SDK skills: a thin /cometchat dispatcher, guided onboarding, and on-demand task skills (core, components, placement, customization, features, calls, push, migration). Every skill is checked against its pinned kit (symbol catalog + compile fence); per-family live-smoke status is in peers.yaml.",
  "license": "MIT",
  "author": "CometChat",
  "private": false,
  "type": "module",
  "bin": {
    "cometchat-skills": "bin/cometchat-skills.mjs"
  },
  "engines": {
    "node": ">=18"
  },
  "//verify:fences": "Tier-2 fences (verify:fences:web-v7, verify:fences:angular-v5) are in verify:ci but deliberately NOT in default verify: each needs its pinned kit installed in test-suite/typecheck/<family> (git-ignored, not shipped, no postinstall) and hard-exits code 2 when absent — so promoting them into verify would break verify in a clean checkout. Setup: npm run verify:fences:<family>:setup. Rationale + owner CI-cost decision: test-suite/README.md (AUDIT-030).",
  "scripts": {
    "lint:skills": "node test-suite/scripts/lint-skills.mjs",
    "verify:catalog": "node test-suite/scripts/verify-catalog.mjs --family web-v7 && node test-suite/scripts/verify-catalog.mjs --family angular-v5",
    "verify:catalog:strict": "node test-suite/scripts/verify-catalog.mjs --family web-v7 --strict-drift && node test-suite/scripts/verify-catalog.mjs --family angular-v5 --strict-drift",
    "verify:fences:web-v7:setup": "npm --prefix test-suite/typecheck/web-v7 install --no-audit --no-fund",
    "verify:fences:web-v7": "node test-suite/scripts/typecheck-fences.mjs --project test-suite/typecheck/web-v7 --tsconfig tsconfig.json --discover web-v7",
    "verify:fences:rn-v5:setup": "npm --prefix test-suite/typecheck/rn-v5 install --no-audit --no-fund --legacy-peer-deps",
    "verify:fences:rn-v5": "node test-suite/scripts/typecheck-fences.mjs --project test-suite/typecheck/rn-v5 --tsconfig tsconfig.json --discover rn-v5",
    "verify:sync:rn-v5": "node .claude/skills/cometchat-skill-creator/tools/sync-check.mjs --catalog catalogs/rn-v5.json --catalog catalogs/rn-sdk-v4.json --catalog catalogs/rn-calls-v5.json --docs ${COMETCHAT_DOCS_DIR:-../docs}/ui-kit/react-native --oracle features.rn-v5.json --oracle contracts.rn-v5.json",
    "test:install": "node test-suite/scripts/test-install.mjs",
    "test:install:live": "node test-suite/scripts/test-install.mjs --live",
    "verify:predicate": "node .claude/skills/cometchat-skill-reviewer/tools/predicate-all.mjs",
    "verify:fresh": "node .claude/skills/cometchat-skill-reviewer/tools/predicate-all.mjs --require-fresh",
    "verify:registry": "node test-suite/scripts/build-registry.mjs --family web-v7 --check && node test-suite/scripts/build-registry.mjs --family angular-v5 --check",
    "measure:tokens": "node test-suite/scripts/measure-tokens.mjs --all",
    "verify:tokens": "node test-suite/scripts/measure-tokens.mjs --all --tolerance 10",
    "verify": "npm run lint:skills && npm run verify:catalog:selftest && npm run verify:family && npm run verify:detection && npm run verify:docs-base && npm run verify:fences:contract && npm run verify:oracle:angular-v5 && npm run verify:catalog && npm run verify:registry && npm run verify:tokens && npm run verify:predicate && npm run verify:catalog:flutter-v6 && npm run verify:registry:flutter-v6",
    "verify:catalog:sync": "node test-suite/scripts/verify-catalog-sync.mjs",
    "verify:ci": "npm run lint:skills && npm run verify:catalog:selftest && npm run verify:catalog:sync && npm run verify:family && npm run verify:detection && npm run verify:docs-base:strict && npm run verify:fences:contract && npm run verify:oracle:angular-v5 && npm run verify:catalog:strict && npm run verify:registry && npm run verify:fences:web-v7 && npm run verify:fences:angular-v5 && npm run verify:templates:angular-v5 && npm run verify:goldenpath:angular-v5 && npm run verify:tokens && npm run verify:predicate && npm run verify:catalog:flutter-v6 && npm run verify:registry:flutter-v6",
    "catalog:refresh": "node test-suite/scripts/catalog-refresh.mjs",
    "catalog:check": "node test-suite/scripts/catalog-refresh.mjs --check",
    "registry:build": "node test-suite/scripts/build-registry.mjs",
    "verify:family": "node test-suite/scripts/verify-family-agnostic.mjs",
    "verify:fences:contract": "node test-suite/scripts/verify-contract-fences.mjs",
    "verify:docs-base": "node test-suite/scripts/verify-docs-base.mjs",
    "verify:docs-base:strict": "node test-suite/scripts/verify-docs-base.mjs --strict",
    "verify:fences:android-v6": "node test-suite/scripts/typecheck-fences-kotlin.mjs --project test-suite/typecheck/android-v6 --discover android-v6",
    "verify:ci:android": "npm run verify:fences:android-v6 && npm run verify:sync:android-v6",
    "verify:sync:android-v6": "node test-suite/scripts/three-way-audit.mjs",
    "verify:catalog:flutter-v6": "node test-suite/scripts/verify-catalog.mjs --family flutter-v6",
    "verify:fences:flutter-v6:setup": "cd test-suite/typecheck/flutter-v6 && flutter pub get",
    "verify:fences:flutter-v6": "node test-suite/scripts/typecheck-fences-dart.mjs --project test-suite/typecheck/flutter-v6 --discover flutter-v6",
    "verify:fences:flutter-v6:selftest": "node test-suite/fixtures/flutter-v6/selftest.mjs",
    "verify:registry:flutter-v6": "node test-suite/scripts/build-registry.mjs --check --family flutter-v6",
    "catalog:refresh:flutter-v6": "node test-suite/scripts/catalog-refresh-dart.mjs",
    "catalog:check:flutter-v6": "node test-suite/scripts/catalog-refresh-dart.mjs --check",
    "props:refresh:flutter-v6": "node test-suite/scripts/gen-prop-tables-dart.mjs",
    "props:check:flutter-v6": "node test-suite/scripts/gen-prop-tables-dart.mjs --check",
    "api:refresh:flutter-v6": "node test-suite/scripts/gen-api-inventory-dart.mjs",
    "api:check:flutter-v6": "node test-suite/scripts/gen-api-inventory-dart.mjs --check",
    "lint:grounding:flutter-v6": "node test-suite/scripts/lint-docs-grounding.mjs --family flutter-v6",
    "lint:grounding:flutter-v6:selftest": "node test-suite/fixtures/flutter-v6/docs-grounding-selftest.mjs",
    "verify:fences:angular-v5:setup": "npm --prefix test-suite/typecheck/angular-v5 install --no-audit --no-fund",
    "verify:fences:angular-v5": "node test-suite/scripts/typecheck-fences.mjs --project test-suite/typecheck/angular-v5 --tsconfig tsconfig.json --discover angular-v5",
    "verify:templates:angular-v5": "node test-suite/scripts/verify-template-bindings.mjs --family angular-v5 --project test-suite/typecheck/angular-v5",
    "verify:detection": "node test-suite/scripts/verify-detection.mjs",
    "verify:oracle:angular-v5": "node test-suite/scripts/verify-oracle-components.mjs --family angular-v5",
    "verify:goldenpath:angular-v5": "node test-suite/scripts/verify-golden-path.mjs --family angular-v5",
    "verify:catalog:selftest": "node test-suite/fixtures/catalog-extractor/selftest.mjs",
    "verify:swift-api:ios-v5:setup": "node test-suite/scripts/ios-resolve-interfaces.mjs --out test-suite/typecheck/ios-v5/.interfaces",
    "verify:swift-api:ios-v5": "node test-suite/scripts/verify-swift-docs-api.mjs --interface test-suite/typecheck/ios-v5/.interfaces/CometChatUIKitSwift.swiftinterface --interface test-suite/typecheck/ios-v5/.interfaces/CometChatSDK.swiftinterface --interface test-suite/typecheck/ios-v5/.interfaces/CometChatCallsSDK.swiftinterface --docs skills/cometchat-ios-core --docs skills/cometchat-ios-components --docs skills/cometchat-ios-placement --docs skills/cometchat-ios-customization --docs skills/cometchat-ios-features --docs skills/cometchat-ios-calls --docs skills/cometchat-ios-push --docs skills/cometchat-ios-migration"
  },
  "keywords": [
    "cometchat",
    "chat",
    "messaging",
    "react",
    "angular",
    "ui-kit",
    "claude-code",
    "skills",
    "ai-agent",
    "v7",
    "ios",
    "swift",
    "uikit-ios",
    "spm",
    "xcode",
    "v5",
    "mobile",
    "flutter",
    "dart",
    "react-native",
    "android",
    "android-sdk",
    "js-calls",
    "react-native-calls",
    "android-calls",
    "ios-calls",
    "flutter-calls"
  ],
  "homepage": "https://github.com/cometchat/cometchat-skills",
  "repository": {
    "type": "git",
    "url": "https://github.com/cometchat/cometchat-skills.git"
  },
  "files": [
    "CHANGELOG.md",
    "bin",
    ".claude-plugin",
    "skills",
    "test-suite/scripts/build-registry.mjs",
    "test-suite/scripts/catalog-refresh.mjs",
    "test-suite/scripts/lint-skills.mjs",
    "test-suite/scripts/measure-tokens.mjs",
    "test-suite/scripts/typecheck-fences.mjs",
    "test-suite/scripts/verify-catalog.mjs",
    "test-suite/scripts/verify-family-agnostic.mjs",
    "test-suite/scripts/verify-docs-base.mjs",
    "test-suite/scripts/verify-contract-fences.mjs",
    "test-suite/catalogs",
    "test-suite/typecheck/web-v7/package.json",
    "test-suite/typecheck/web-v7/tsconfig.json",
    "test-suite/README.md",
    "registry",
    "RULES.md",
    "features.json",
    "features.rn-v5.json",
    "contracts.rn-v5.json",
    "catalogs",
    "contracts.json",
    "features.ios-v5.json",
    "contracts.ios-v5.json",
    "peers.yaml",
    "features.android-v6.json",
    "features.sdk-android-v5.json",
    "features.android-calls-v5.json",
    "contracts.android-calls-v5.json",
    "features.web-calls-v5.json",
    "contracts.web-calls-v5.json",
    "features.rn-calls-v5.json",
    "contracts.rn-calls-v5.json",
    "features.ios-calls-v5.json",
    "contracts.ios-calls-v5.json",
    "features.flutter-calls-v5.json",
    "contracts.flutter-calls-v5.json",
    "contracts.android-v6.json",
    "contracts.sdk-android-v5.json",
    "features.sdk-jsv4.json",
    "test-suite/scripts/typecheck-fences-kotlin.mjs",
    "test-suite/scripts/typecheck-fences-dart.mjs",
    "test-suite/typecheck/flutter-v6/pubspec.yaml",
    "test-suite/typecheck/flutter-v6/analysis_options.yaml",
    "features.flutter-v6.json",
    "contracts.flutter-v6.json",
    "test-suite/scripts/catalog-refresh-dart.mjs",
    "test-suite/scripts/verify-template-bindings.mjs",
    "test-suite/scripts/verify-detection.mjs",
    "test-suite/scripts/verify-oracle-components.mjs",
    "test-suite/scripts/verify-golden-path.mjs",
    "test-suite/typecheck/angular-v5/package.json",
    "test-suite/typecheck/angular-v5/tsconfig.json",
    "contracts.angular-v5.json",
    "features.angular-v5.json"
  ],
  "//verify:fences:flutter": "The Dart sibling (verify:fences:flutter-v6, engine typecheck-fences-dart.mjs) follows the same rule as the web gate: not in default verify or verify:ci, because both run on a Node-only job — it needs the Flutter SDK on PATH plus `flutter pub get` in test-suite/typecheck/flutter-v6, and hard-exits 2 when absent. It RUNS IN CI as its own job (verify.yml → fences-flutter-v6), which installs the toolchain first and runs the self-test before the gate. verify:fences:flutter-v6:selftest asserts the gate can still FAIL (fixtures in test-suite/fixtures/flutter-v6) — it is what caught the creation_with_non_type phantom-widget hole. catalog:check:flutter-v6 is likewise Flutter-only (the catalog is compiler-verified, not parsed) and runs in catalog-refresh.yml.",
  "//files": "test-suite/fixtures is deliberately NOT shipped: it is internal QA data (realistic app skeletons) consumed only by verify-detection.mjs in this repo's CI. The shipped `cometchat-skills verify` runs lint/catalog/fences/predicate, none of which read fixtures, and a consumer validates against their own project rather than ours.",
  "//publishConfig": "v5 ships to PUBLIC npm (@cometchat/skills@5.0.0). `access: public` scopes the publish public without a registry override; the public-repo publish-npm.yml sets the registry to registry.npmjs.org via setup-node and publishes with OIDC provenance. Do NOT re-add a `registry` here (a Cloudsmith/private registry override would divert the public publish and break OIDC/provenance).",
  "publishConfig": {
    "access": "public"
  }
}
