{
  "name": "cladding",
  "version": "0.9.3",
  "description": "Spec-driven verification layer for AI coding agents — Claude Code · Codex · Gemini · Antigravity · Cursor. Intent in before it writes, result verified against your spec after. Reference implementation of the Ironclad standard.",
  "type": "module",
  "license": "MIT",
  "author": "qwerfunch",
  "homepage": "https://github.com/qwerfunch/cladding",
  "repository": {
    "type": "git",
    "url": "https://github.com/qwerfunch/cladding.git"
  },
  "bugs": {
    "url": "https://github.com/qwerfunch/cladding/issues"
  },
  "keywords": [
    "harness", "harness-engineering",
    "spec-driven-development", "governance", "ironclad",
    "drift-detection", "multi-agent", "loop-engineering", "verification",
    "ai-coding", "compliance", "architecture-enforcement",
    "claude-code", "codex-cli", "gemini-cli", "antigravity-cli", "cursor",
    "mcp-server", "claude-code-plugin"
  ],
  "bin": {
    "clad": "./bin/clad"
  },
  "files": [
    "bin/",
    "dist/",
    ".claude-plugin/",
    "plugins/",
    "AGENTS.md",
    "CODE_OF_CONDUCT.md",
    "CONTRIBUTING.md",
    "GOVERNANCE.md",
    "SECURITY.md",
    "README.md",
    "README.ko.md",
    "CHANGELOG.md",
    "LICENSE"
  ],
  "scripts": {
    "stage:type": "tsx src/stages/type.ts",
    "stage:lint": "tsx src/stages/lint.ts",
    "stage:drift": "tsx src/stages/drift.ts",
    "stage:secret": "tsx src/stages/secret.ts",
    "stage:commit": "tsx src/stages/commit.ts",
    "stage:arch": "tsx src/stages/arch.ts",
    "stage:unit": "tsx src/stages/unit.ts",
    "stage:cov": "tsx src/stages/cov.ts",
    "stage:smoke": "tsx src/stages/smoke.ts",
    "stage:perf": "tsx src/stages/perf.ts",
    "stage:visual": "tsx src/stages/visual.ts",
    "stage:audit": "tsx src/stages/audit.ts",
    "stage:uat": "tsx src/stages/uat.ts",
    "spec:validate": "tsx src/spec/cli.ts",
    "conformance": "tsx conformance/runner.ts",
    "benchmark": "tsx src/cli/benchmark.ts",
    "clad": "node bin/clad",
    "test": "vitest run",
    "typecheck": "tsc --noEmit",
    "lint": "eslint .",
    "build": "node scripts/test-count.mjs --check && node scripts/build.mjs && node scripts/build-plugin.mjs",
    "build:plugin": "node scripts/build-plugin.mjs",
    "watch": "node --watch-path=./src scripts/build.mjs",
    "version-bump": "node scripts/version-bump.mjs",
    "test-count": "node scripts/test-count.mjs",
    "prepare": "node -e \"require('node:fs').existsSync('dist/clad.js') || require('node:child_process').execSync('npm run build', {stdio: 'inherit'})\"",
    "prepublishOnly": "npm run build"
  },
  "devDependencies": {
    "@secretlint/secretlint-rule-preset-recommend": "^13.0.2",
    "@types/node": "^22.0.0",
    "@typescript-eslint/eslint-plugin": "^8.0.0",
    "@typescript-eslint/parser": "^8.0.0",
    "@vitest/coverage-v8": "^4.1.6",
    "commander": "^14.0.3",
    "esbuild": "^0.28.0",
    "eslint": "^9.0.0",
    "execa": "^9.6.1",
    "jsonschema": "^1.5.0",
    "madge": "^8.0.0",
    "secretlint": "^13.0.2",
    "tinyglobby": "^0.2.16",
    "three": "0.183.0",
    "tsx": "^4.19.0",
    "typescript": "^5.6.0",
    "typescript-eslint": "^8.0.0",
    "vitest": "^4.1.6",
    "yaml": "^2.9.0"
  },
  "dependencies": {
    "@anthropic-ai/sdk": "^0.96.0",
    "@modelcontextprotocol/sdk": "^1.29.0",
    "smol-toml": "^1.6.1"
  }
}
