{
  "name": "ferrox-factory",
  "version": "1.17.0",
  "description": "Ferrox Factory is a meta-prompting, context engineering, and spec-driven development system for AI coding agents.",
  "main": ".opencode/plugins/ferrox-core.js",
  "bin": {
    "ferrox-factory": "bin/install.js",
    "ferrox-core": "bin/install.js",
    "ferrox-tools": "ferrox-core/bin/ferrox-tools.cjs",
    "ferrox_run": "ferrox-core/bin/ferrox_run",
    "ferrox-mcp-server": "bin/ferrox-mcp-server.js"
  },
  "files": [
    "bin",
    "commands",
    "skills",
    "ferrox-core",
    "assets",
    "agents",
    ".claude-plugin",
    ".opencode",
    "GEMINI.md",
    "hooks",
    "scripts",
    "pi",
    "vscode"
  ],
  "keywords": [
    "claude",
    "claude-code",
    "ai",
    "meta-prompting",
    "context-engineering",
    "spec-driven-development",
    "codex",
    "codex-cli"
  ],
  "author": "Ferrox Factory",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/FerroxLabs/ferrox-factory.git"
  },
  "homepage": "https://github.com/FerroxLabs/ferrox-factory",
  "bugs": {
    "url": "https://github.com/FerroxLabs/ferrox-factory/issues"
  },
  "publishConfig": {
    "access": "public"
  },
  "engines": {
    "node": ">=20.0.0",
    "npm": ">=10.0.0"
  },
  "dependencies": {
    "@anthropic-ai/claude-agent-sdk": "^0.2.84",
    "ws": "^8.21.0"
  },
  "devDependencies": {
    "@eslint/js": "^9.39.4",
    "@stryker-mutator/core": "^9.6.1",
    "@types/node": "^22.19.19",
    "c8": "^11.0.0",
    "eslint": "^9.39.4",
    "eslint-plugin-n": "^17.24.0",
    "eslint-plugin-no-only-tests": "^3.4.0",
    "fast-check": "^4.8.0",
    "globals": "^16.5.0",
    "js-yaml": "^4.2.0",
    "typescript": "^6.0.3",
    "typescript-eslint": "^8.60.0"
  },
  "overrides": {
    "qs": ">=6.15.2"
  },
  "optionalDependencies": {
    "fallow": "^2.70.0"
  },
  "scripts": {
    "sync:launcher": "node scripts/sync-runtime-launcher.cjs",
    "check:env": "node scripts/check-env.cjs",
    "check:alias-drift": "node scripts/check-alias-drift.cjs",
    "check:identity-drift": "node scripts/lint-package-identity-drift.cjs",
    "check:phase-id-drift": "node scripts/lint-phase-id-drift.cjs",
    "check:integrity": "node scripts/check-npm-integrity.cjs",
    "build": "npm run generate:identity && npm run build:lib && npm run gen:plugin-skills && npm run gen:loop-host-contract && npm run gen:capability-registry && npm run build:hooks",
    "build:hooks": "node scripts/build-hooks.js",
    "build:lib": "tsc -p tsconfig.build.json",
    "generate:identity": "node scripts/generate-package-identity.cjs",
    "gen:loop-host-contract": "node scripts/gen-loop-host-contract.cjs --write",
    "gen:plugin-skills": "node scripts/gen-plugin-skills.cjs --write",
    "gen:capability-registry": "node scripts/gen-capability-registry.cjs --write",
    "gen:registry": "node scripts/gen-registry.cjs --write",
    "gen:roadmap-index": "node scripts/gen-roadmap-index.cjs --write",
    "gen:golden": "node scripts/gen-golden-install-parity-zcode.cjs && node scripts/gen-install-tree-fixtures.cjs",
    "validate:registry": "node scripts/validate-registry.cjs",
    "prepack": "npm run build:lib",
    "prepare": "npm run build:lib",
    "version": "node scripts/sync-manifest-versions.cjs --stage && node scripts/gen-capability-registry.cjs --write && git add ferrox-core/bin/lib/capability-registry.cjs",
    "prepublishOnly": "npm run build:lib && npm run build:hooks",
    "pretest": "npm run build:lib && npm run lint:skill-deps",
    "pretest:coverage": "npm run build:lib && npm run lint:skill-deps",
    "lint": "eslint . --cache --cache-location node_modules/.cache/eslint/",
    "lint:fix": "eslint . --fix",
    "lint:table-schema-drift": "node scripts/lint-table-schema-drift.cjs",
    "lint:ci": "npm run lint && npm run lint:skill-deps && npm run lint:generated-sync && node scripts/lint-test-file-count.cjs && node scripts/lint-command-contract.cjs && node scripts/lint-descriptions.cjs && node scripts/lint-pr-check-project-dir.cjs && npm run lint:legacy-name && node scripts/lint-regression-test-names.cjs && node scripts/lint-allow-test-rule-refs.cjs && node scripts/lint-resolution-provenance.cjs && node scripts/validate-registry.cjs && node scripts/lint-table-schema-drift.cjs && node scripts/lint-governance-scope.cjs && node scripts/lint-antiloop-gate.cjs",
    "lint:allow-test-rule-refs": "node scripts/lint-allow-test-rule-refs.cjs",
    "lint:regression-names": "node scripts/lint-regression-test-names.cjs",
    "lint:descriptions": "node scripts/lint-descriptions.cjs",
    "lint:skill-deps": "node scripts/lint-skill-deps.cjs",
    "lint:test-file-count": "node scripts/lint-test-file-count.cjs",
    "lint:pr-checks": "node scripts/lint-pr-check-project-dir.cjs",
    "lint:changeset": "node scripts/changeset/lint.cjs",
    "lint:generated-sync": "node scripts/gen-capability-registry.cjs --check && node scripts/gen-loop-host-contract.cjs --check && node scripts/gen-capability-matrix.cjs --check && node scripts/sync-manifest-versions.cjs --check && node scripts/gen-inventory-manifest.cjs --check && node scripts/generate-package-identity.cjs --check && node scripts/gen-plugin-skills.cjs --check && node scripts/gen-registry.cjs --check && node scripts/gen-milestones.cjs --check && node scripts/gen-roadmap-index.cjs --check && node scripts/check-single-mandate.cjs",
    "lint:docs": "node scripts/lint-docs-required.cjs",
    "lint:legacy-name": "node scripts/lint-legacy-dir-name.cjs",
    "ci:test-scope": "node scripts/ci-test-scope.cjs",
    "size:baseline": "node scripts/update-size-baseline.cjs",
    "changeset": "node scripts/changeset/new.cjs",
    "changelog:render": "node scripts/changeset/cli.cjs render",
    "test": "node scripts/run-tests.cjs",
    "test:unit": "node scripts/run-tests.cjs --suite unit",
    "test:integration": "node scripts/run-tests.cjs --suite integration",
    "test:install": "node scripts/run-tests.cjs --suite install",
    "test:security": "node scripts/run-tests.cjs --suite security",
    "test:slow": "node scripts/run-tests.cjs --suite slow",
    "test:affected": "node scripts/run-affected-tests.cjs",
    "test:coverage": "c8 --check-coverage --lines 70 --branches 60 --reporter text --include 'ferrox-core/bin/lib/*.cjs' --exclude 'tests/**' --all node scripts/run-tests.cjs",
    "test:coverage:scripts-floor": "c8 check-coverage --lines 55 --include 'scripts/**/*.cjs' --exclude 'tests/**' --all",
    "test:coverage:unit": "c8 --check-coverage --lines 70 --branches 60 --reporter text --include 'ferrox-core/bin/lib/*.cjs' --exclude 'tests/**' --all node scripts/run-tests.cjs --suite unit && c8 check-coverage --per-file --lines 0 --functions 0 --statements 0 --branches 70 --include 'ferrox-core/bin/lib/state.cjs' --include 'ferrox-core/bin/lib/phase.cjs' --include 'ferrox-core/bin/lib/verify.cjs' --include 'ferrox-core/bin/lib/init.cjs' --exclude 'tests/**'",
    "test:coverage:all": "npm run test:coverage",
    "test:mutation": "stryker run",
    "test:mutation:since": "stryker run --incremental --since origin/next",
    "gate:mutation": "node scripts/gate-mutation.cjs"
  },
  "allowScripts": {
    "fallow@2.70.0": true
  }
}
