{
  "schema_version": "provider-tools-registry.v1",
  "providers": [
    {
      "id": "graphify",
      "name": "Graphify",
      "kind": "project-graph",
      "profile": "optional",
      "capability_class": "project-graph",
      "native_interfaces": ["cli"],
      "first_generation": {
        "owner": "runtime-setup",
        "status": "not-run",
        "scope": "project",
        "requires_explicit_gate": true,
        "requirement_workspace_path": null,
        "artifact_root": "graphify-out"
      },
      "steady_state": {
        "refresh_owner": "provider-native",
        "refresh_mode": "skill-cli-hook-on-demand",
        "hook_default": true,
        "usage_owner": "downstream-skill"
      },
      "usage_note": "Bare/default Runtime Setup installs the Graphify CLI and current-host project skill, resolves `graphify` from the original PATH or provider-standard user tool path, and when no project-root Graphify artifact exists generates project-root `graphify-out/` by trying first-generation `graphify extract .` and falling back to code-only/incremental `graphify update .` when semantic extract cannot run. When `graphify-out/graph.json` or `GRAPH_REPORT.md` already exists, setup verifies or repairs install state (project skill/instruction, query probe, hook status/install) and recommends explicit incremental `--refresh` instead of regenerating by default. Explicit refresh runs `graphify update .` (code-only, no LLM semantic extraction), with one bounded `graphify update . --force` repair only if Graphify refuses overwrite and suggests `--force`. It then enables provider-native `graphify hook install` when needed and the target is a git repo. If the resolved Graphify CLI is off the original PATH, setup may add a marked project-local PATH repair block to Graphify-installed hook files before verifying hook status. Only the CLI/project skill/hooks are required downstream; Graphify MCP/watch stay opt-in outside Runtime Setup. Use `$graphify .`/`/graphify .` or the resolved Graphify CLI query/path/explain for project-graph candidates, then confirm conclusions from source/test/log evidence.",
      "install_route": "install-helpers",
      "detection": {
        "kind": "command",
        "command": "graphify",
        "version_args": ["--version"],
        "artifact_paths": ["graphify-out/graph.json", "graphify-out/GRAPH_REPORT.md"]
      },
      "installation": {
        "strategy": "uv-tool",
        "dependency_ref": "graphify",
        "commands_display": {
          "macos": "uv tool install {{package}}=={{version}}; resolve graphify from PATH or $HOME/.local/bin/graphify; verify/install graphify project skill; existing graphify-out verifies install state and recommends incremental --refresh; otherwise graphify extract .; explicit --refresh runs graphify update . (code-only, no LLM); graphify update . --force only after provider overwrite refusal; graphify hook status/install",
          "linux": "uv tool install {{package}}=={{version}}; resolve graphify from PATH or $HOME/.local/bin/graphify; verify/install graphify project skill; existing graphify-out verifies install state and recommends incremental --refresh; otherwise graphify extract .; explicit --refresh runs graphify update . (code-only, no LLM); graphify update . --force only after provider overwrite refusal; graphify hook status/install",
          "windows": "uv tool install {{package}}=={{version}}; resolve graphify from PATH or $HOME/.local/bin/graphify(.exe/.cmd); verify/install graphify project skill; existing graphify-out verifies install state and recommends incremental --refresh; otherwise graphify extract .; explicit -Refresh runs graphify update . (code-only, no LLM); graphify update . --force only after provider overwrite refusal; graphify hook status/install"
        },
        "next_action": "Run the current host setup workflow to auto-apply the CodeGraph/Graphify default provider pack, or use the current host subset entrypoint (`/spec:mcp-setup --only graphify` on Claude, `$spec-mcp-setup --only graphify` on Codex) for explicit subset install-init. The {{package}} version pin is {{version}}."
      },
      "safety": {
        "risk_flags": [
          "name-bin-mismatch:graphifyy->graphify",
          "single-maintainer-bus-factor",
          "project-runtime-skill-write",
          "git-hook-write"
        ],
        "source": "pypi",
        "source_repo": "https://pypi.org/project/graphifyy/",
        "version_policy": {
          "pin_status": "pinned"
        },
        "review_required": true,
        "install_effect": "Installs PyPI package `{{package}}=={{version}}`, resolves `graphify` from the user's original PATH or provider-standard user tool path, and verifies the resolved CLI. Bare/default provider-pack setup verifies or installs the current-host project skill such as `graphify install --project --platform codex`, normalizes the provider-written `AGENTS.md`/`CLAUDE.md` `## graphify` instruction section to resolved CLI/manual-visibility/direct-source-fallback wording, and only generates project-root `graphify-out/` by default when no existing Graphify artifact is present. Existing `graphify-out/graph.json`/`GRAPH_REPORT.md` triggers install-state verification plus query/hook probes and reports an explicit incremental refresh next action instead of regenerating by default. Explicit refresh runs provider-native `graphify update .` (code-only, no LLM semantic extraction), with one bounded `graphify update . --force` repair only after Graphify emits overwrite refusal plus a force hint. Setup probes query/hook commands through the resolved CLI, installs project-level `graphify hook install` in git repos when needed, and may add a marked project-local PATH repair block to Graphify-installed hook files before `graphify hook status` when the resolved CLI is off the original PATH. Provider writes may include `.codex/skills/graphify/`, `.codex/hooks.json`, `AGENTS.md`, `.claude/skills/graphify/`, `CLAUDE.md`, `graphify-out/`, and `.git/hooks/*`; setup reports them as provider-owned runtime/project output, does not edit shell profiles, does not vendor the Graphify skill, and does not auto-add, auto-commit, or promote provider output to spec-first source."
      },
      "readiness": {
        "producer": "install-helpers",
        "fresh_self_report_maps_to": "unknown",
        "stale_self_report_maps_to": "stale"
      },
      "fallback": {
        "available": true,
        "methods": ["docs", "rg", "direct-source-read"],
        "reason_code": "project-graph-provider-unavailable"
      }
    }
  ],
  "generic_provider_readiness": {
    "schema_version": "provider-readiness.v2",
    "readiness_status_values": ["fresh", "stale", "degraded", "not-run", "unknown"],
    "fallback_methods": ["rg", "direct-source-read"]
  }
}
