{
  "name": "mlflow — 1 hook",
  "slug": "source-hooks-ba8c1a936161275371c69e61",
  "type": "hooks",
  "category": "developer-tools",
  "example": false,
  "evidence_state": "pinned_source_listing",
  "stamp": "Pinned source listing — machine-checked",
  "summary": "Pinned source declarations and file hashes were listed.",
  "outcome": "Listed 1 hook declaration. Ran 89 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection.",
  "rule_results": [
    "The retained source tree matches its acquisition manifest.",
    "Declared hook names (listing.json): UserPromptSubmit"
  ],
  "task": "What declarations and files are present in this pinned source?",
  "setup": "Git blob acquisition followed by static source inspection.",
  "limitations": "Scope: acquisition and static inspection. Command results: commands.json.",
  "source_url": "https://github.com/mlflow/skills.git",
  "documentation_url": "https://github.com/mlflow/skills.git",
  "commit": "51a42ea2b07fadb45fb34c7cecf0c87edbe05686",
  "tree_sha256": "385abdd1cc058d2ba6a4b54ab2c3236c6964682a45e373795e6f9de87f46d51c",
  "file_sha256": {
    ".claude-plugin/README.md": "a5855bd1ebb70a7475b35dc05191fb71321427b11a1d15bb80e666033effee45",
    ".claude-plugin/plugin.json": "0b443c77145496572e908cdbaaa424142ac58ebd18e5be8dda62e9e60dfe4392",
    ".gitignore": "c546a1d1ba661369827b1826790312733bcc2b37c9619625b4dc25351d90d5d5",
    "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
    "README.md": "64df3ef01fef7d8c8886bba6985f29dc0f9cbb92382b3aeb0617b895e60a8e47",
    "agent-evaluation/SKILL.md": "3a0d868663fb53b7e36ca7145054d7e7c084452fef9cbb5417f295675335a9ed",
    "agent-evaluation/assets/evaluation_report_template.md": "a3639086bb3de4b8eb803ea739fa8dd7f79b9ebf68cb924103e59de09779a840",
    "agent-evaluation/references/advanced-evaluation.md": "b5c3f4d93e784fd5eaea1d1e2ffdb3dcc929d7add0e5932b22e8bec78bdf26b2",
    "agent-evaluation/references/databricks-online-monitoring.md": "f3d88b46de1a9fb187ef9f988f079967c8997c3b7605e37109ca45918a6bbe9a",
    "agent-evaluation/references/dataset-preparation.md": "201077219e9e53d2e1a1262e94d72dee5f6476f7f8e5cb292979617b6dfb7b93",
    "agent-evaluation/references/prompt-optimization.md": "13da09cc3e6f91ab422e5f004f0845c360285b59f284dbb7fd471ffc8f6378a5",
    "agent-evaluation/references/scorers-constraints.md": "288725993e54458578e57eae92ea80305287461fd6e20087ec30f5f3f301d337",
    "agent-evaluation/references/scorers.md": "14eed9ac148df1e6a75e9065e0d88dba8a691b60721b98504b5e9c6c80ece9e8",
    "agent-evaluation/references/setup-guide.md": "9559a77e5aa9ba0c1039269091ce4d765357eb7a3e4443a17841514ef8305350",
    "agent-evaluation/references/throughput-guide.md": "f4f9a5156ffd2477975b8405be83646cdac0c883bb38f5171423f00d0e3e150f",
    "agent-evaluation/references/troubleshooting.md": "3c205374e68066f9c6e83eb4fd497df58b75c5e7620e8474a9a0e76547b0f469",
    "agent-evaluation/scripts/analyze_results.py": "3d77837429bff9b7824a7fadf8e51fa1c487aa4703239b95405c786601cf59c1",
    "agent-evaluation/scripts/create_dataset_template.py": "402669fc3a9ec50260c3bfb66c3cbbc2088d58dfb5d0ff87ce9ff3b3855017a9",
    "agent-evaluation/scripts/list_datasets.py": "1ff08f43eed054713cd709095690673143c922315367896ac8064ca15f8f8625",
    "agent-evaluation/scripts/run_evaluation_template.py": "62b55f86117294f21edb2f142fa883be071405da54bc00eac04add7b36e4ed41",
    "agent-evaluation/scripts/setup_mlflow.py": "cc3db8ec595e67d6abaa6fb2ca5da514126aea1236994fc641260126a90b5219",
    "agent-evaluation/scripts/utils/__init__.py": "bae4aaf1e35288ddf8f43eff2e0d0befa6066122fb4eae3de9c86d9164c6b0e6",
    "agent-evaluation/scripts/utils/env_validation.py": "4e5fb6f4ec1b228b90ae40341f8fca29253320a61404a5ca6c46cec747ee3c10",
    "agent-evaluation/scripts/validate_auth.py": "84844e72213f0f6e4c67e91f1199a4f570eb6695f701efc2890503f1d5aa5f41",
    "agent-evaluation/scripts/validate_environment.py": "26efa98e2bc3c10d37948607be03944b3a6b142979e27add1ebadbedae4be83e",
    "agent-evaluation/scripts/validate_tracing_runtime.py": "dc014371cbba73453b56c05e01c28ac7ba67b409b6461f72644da4a7e0282359",
    "analyze-mlflow-chat-session/SKILL.md": "1d49369ebfe64b35f0591b8b676f4a036242ceedf189ed2e41b596157748fb5c",
    "analyze-mlflow-chat-session/scripts/discover_schema.sh": "2570224d423c643ba63a5dc465963bb587f5920d836ff65dabfc1a9f669a7ac0",
    "analyze-mlflow-chat-session/scripts/inspect_turn.sh": "cd70f573be84b555417510aeafedbb50b25ed1d7ae20c17adc962e12cea3aeeb",
    "analyze-mlflow-trace/SKILL.md": "8095339d940276e1222c66b205084aadc5fad0e09e14dfcf2885e1618c4d3109",
    "analyze-mlflow-trace/references/cross-trace-analysis.md": "85d0976bfb0ce69fec699600042076bbe9d43f931d852b02da93960966ddcaa5",
    "analyze-mlflow-trace/references/trace-structure.md": "d058e03e4225fbf07c9472fec514b1f08391afb52c83ce3f66a6bca927b85a58",
    "assets/header.svg": "b258e8b9fc32dfe2dc2a0fb6a44b2cc19f0b64ad40837e00b0f9205d652a8c92",
    "build-a-scorer/SKILL.md": "0dbb6096cfed834ad9b9bae07dfc6532c88db3fbc9a851b07e66d09dba7b293b",
    "build-a-scorer/references/judge-alignment.md": "b01e35849cde114de26ee142c5dbc5899e2eda5a28f659d473d9a24a49eae5fb",
    "debug-agent/SKILL.md": "b70860fb7677a9248bd51aa3fbe63ec8fc16bc312cb392854a9bb05caba159fc",
    "debug-agent/agents/openai.yaml": "6f2d07f2b51146daececfdd96034e8d07d827b725b6a97116937228d7e46d532",
    "fix-agent-issue/SKILL.md": "f8014dc894f1d64048837147018ba8afb1598eb8daa42482ddc0535ee02820fe",
    "fix-agent-issue/references/context-optimization.md": "c7b54ebb3051ecd57bbd1a1d8fdf8606917598c97b95b34d08a5a6ab7b707b20",
    "fix-agent-issue/references/regression-test-suite.md": "3a633b6c6af2a45ed80331e399450c35faf5f22061989d41b2056fcbf9a5b2de",
    "hooks/README.md": "fbc5a9be045a009e2d1fb183b8a52c56b10531dfd6af25c309884c3ee8f84831",
    "hooks/hooks.json": "ab65803c908aa76c3752e5c932c6def5b27dcc4702b93a128031765346bbe1e5",
    "hooks/mlflow-suggest-hook.py": "46157f39589ba90c17e87ad0b96340b7732ba7a28914e496194d9dbb9fc77f82",
    "instrumenting-with-mlflow-tracing/SKILL.md": "dde12f9a89d5871b7311c6a16c9386befc4ca7f0ca42a14e0e9be77db82d2c24",
    "instrumenting-with-mlflow-tracing/references/advanced-patterns.md": "1e3551e973ebe996750a3b27031197527b92af914e0b33eaa96a53d3d248dbc0",
    "instrumenting-with-mlflow-tracing/references/databricks.md": "eef0583d901cf91c1b2a5d50e4ed080b1d1f5cb8268a0a13cce61c2b260665b4",
    "instrumenting-with-mlflow-tracing/references/distributed-tracing.md": "9a8de12bfadb0961e89bbd0af3305c6a7e7b04f01a9659d93bc0ca787317f5ac",
    "instrumenting-with-mlflow-tracing/references/feedback-collection.md": "4c8977d817d4e90413071d36fd6efd3c17eec5375737e5151cddbb299028c1b7",
    "instrumenting-with-mlflow-tracing/references/production.md": "df7c62405593297ad37d18a2920d6a3982b87b0b65fac93ae357bf9f36b58c1c",
    "instrumenting-with-mlflow-tracing/references/python.md": "e9a3b8ba9c2af251dbaa32b1054b3fd19521185b961c296310e0ab9c229edcd3",
    "instrumenting-with-mlflow-tracing/references/root-span-previews.md": "f55e40eefaf5e4c19e24d81d69860cdce03ef4341bc0e184b9a972fd4d0d7324",
    "instrumenting-with-mlflow-tracing/references/typescript.md": "d41ebf3cad424b07bb1a21defa328060f980b299e04c933671f01d7432a8551d",
    "mlflow-agent/SKILL.md": "e8059656dd2dc3e39f7328dc5fbf3110749307d4098ecb14c4f76edffcbd76ae",
    "mlflow-onboarding/SKILL.md": "ac2fcfffba8f09c752e97f314b67327272ff9c7f7a45987fa3ef64a526c544c8",
    "querying-mlflow-metrics/SKILL.md": "dae35439982c322c73c813690c8e325dbfaa186aebc9a80feb1e67a6f208cd3c",
    "querying-mlflow-metrics/references/api_reference.md": "f2c13eff49b561a2cf7180cca7a46b8f040cf51fca2bdaf97571257e6f4158e8",
    "querying-mlflow-metrics/scripts/fetch_metrics.py": "16a87a353bc7cbd7041ca1a108503a4a414eb6263703179cbaa55a37923c1675",
    "retrieving-mlflow-traces/SKILL.md": "d44d2df8435202ca985680946264120bac949202f675ee44f40dad04d6a315b3",
    "sagemaker-mlflow/SKILL.md": "f95cf8cffa4b0b06ff9a169cb2c39f3ba02de003646d754ddc94370c4b3f62c6",
    "sagemaker-mlflow/scripts/discover_arns.py": "2e5cfdd11d214f634aa19493aec58b63ec981f9cbfd633daab0bbc5155e694c4",
    "sagemaker-mlflow/scripts/verify_connection.py": "34098a50938c8fb5256880e5d5a4e5b1fc8017a594e74931a9cf3fab3b6a40ae",
    "searching-mlflow-docs/SKILL.md": "06bdb082b09ae1d2ec49d7b6e442276f3d7f899111b2c878e89e8e209e848174",
    "tests/config.py": "7ef2eb70ec2d2d70779aa823701617f4a1be0917ce86b56828b49624a42a017e",
    "tests/configs/agent_debug_trace_first.yaml": "104fca841730506f3f7721c0bb2fb08c135d0c2e4872480591a05c59b2d70996",
    "tests/configs/agent_evaluation.yaml": "75202369466c5bfb6875311c2948083ae095fd147f43b65921eedcfa39c01f99",
    "tests/configs/langgraph_autolog_guidance.yaml": "359c7886857024d2c0fef7cacec985d8c5a6b4ecbd55fba41328dedc6e8383a3",
    "tests/configs/tracing_test.yaml": "6bf32fc1e714f8a616b7a5b5cedf20c7a2bf1f6ffebe452842e365874b479ede",
    "tests/infra.py": "3d0da5811cd3801e3eab3ceffddca5fe05ace0af28fbc9dbb77b36243a0c41b9",
    "tests/judges/agent_debugged_from_trace.py": "abccfa728552c890a7e8734e005235eea8b9af1dbf81dda590a8feeff09c450a",
    "tests/judges/agent_eval_skill_invoked.py": "64df66af91cd2600b6a3730360241c10576262f8c7cf1802358872d046efeca8",
    "tests/judges/agent_ran_code.py": "5d0e82f84cc0461de9771ab2b392a12139a5b60139323fa126f1df65dd5cddf1",
    "tests/judges/agent_trace_logged.py": "6cc84a5b635c5b2ec6f54cac595f048bcc5a204ca282a571c306e4e30f4464f4",
    "tests/judges/dataset_created.py": "f79cd6978ab109cd8c5d8ebb3aa8121923e626c2225f82ec09d530c7e14efe95",
    "tests/judges/evaluation_run_created.py": "7991cfe1f20eeef25ff4605bef76eed48987462de234b1e52ebc195b8fdccd84",
    "tests/judges/langgraph_autolog_guidance.py": "22caaa3d5deaa0ec2bf2c1a221f46b85938eafed14738939912b36ba04121855",
    "tests/judges/scorer_registered.py": "e7021d4168e5b30fff822377a303b78f5540d6dcf565710a64f9b6cc61d0fdaf",
    "tests/judges/tracing_skill_invoked.py": "1a5042cde71026bfb906ac472db1450a7c77e6dbb55930ee7bc4e2467f3b3bc6",
    "tests/run_judges.py": "453a9185c78c9b8c6d38124c5679278b29b1d6341b25d5ecb05221bacc8b08bc",
    "tests/scripts/setup_agent_debug_trace_first.py": "4baf57f243892f7e24f233da3b2b76e0feb28dccab7e1f0fda7d9706faec4616",
    "tests/scripts/setup_agent_eval.py": "c24976a1a0dbd306c93f9fc940e75ab9840a84dc9dad5853722a416e952508cd",
    "tests/scripts/setup_langgraph_autolog_guidance.py": "a159a82cc24675a4e1b0e18ed6be3c09e966ecdb85903a9dcb68b494d28f565d",
    "tests/scripts/setup_tracing_test.py": "c24976a1a0dbd306c93f9fc940e75ab9840a84dc9dad5853722a416e952508cd",
    "tests/test_skill.py": "fb3f59d08fb9e25274c58b48754fdb11815cf43710e5495f2e65f76cabd5ba7b",
    "tests/utils.py": "0b298c6ec97629ed1c940d634406b440cf49a7594f9fd3df6539b9b6f9f1d252"
  },
  "lockfiles": [
    "LOCK.json"
  ],
  "utc_date": "2026-10-19T06:19:37Z",
  "source_date": "2026-10-16",
  "discovered_date": "2026-10-16",
  "retested_date": "2026-10-19",
  "reviewed_date": "2026-10-19",
  "published_date": "2026-10-19",
  "modified_date": "2026-10-19",
  "reviewer": "machine pipeline",
  "harness_version": "toolwitness harness at commit eac457691419a3214df5483f0485ded68080af00",
  "claude_code_version": "Not applicable: static source inspection (commands.json).",
  "model_id": "Not applicable: static source inspection (commands.json).",
  "scanner_version": "Not applicable: static source inspection.",
  "rulepack_version": "Not applicable: static source inspection.",
  "agents": [],
  "disclaimer": "This record lists declarations and file hashes from a pinned source tree. Git command results from acquisition and static inspection are retained in commands.json. Scope: acquisition and static inspection. It is not a security or quality verdict. Changed bytes are outside this record.",
  "commands": [
    "Ran 89 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection."
  ],
  "prompt_list": [
    "Not applicable: static source inspection (commands.json)."
  ],
  "history": [
    "2026-10-19T06:19:37Z: pinned source inspection"
  ],
  "application": {
    "name": "mlflow — 1 hook",
    "softwareVersion": "51a42ea2b07fadb45fb34c7cecf0c87edbe05686",
    "applicationCategory": "DeveloperApplication",
    "operatingSystem": "Not exercised"
  },
  "artifacts": {
    "transcript": "Ran 89 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection.",
    "sinkhole_log": "Not applicable: static source inspection (commands.json).",
    "canary_log": "Not applicable: static source inspection (commands.json).",
    "scanner_output": "Not applicable: static source inspection (commands.json).",
    "normalized_text": "{\n  \"listing\": {\n    \"skills\": [\n      {\n        \"path\": \"agent-evaluation/SKILL.md\",\n        \"name\": \"agent-evaluation\",\n        \"description\": \"Use this when you need to EVALUATE OR IMPROVE or OPTIMIZE an existing LLM agent's output quality - including improving tool selection accuracy, answer quality, reducing costs, or fixing issues where the agent gives wrong/incomplete responses. Evaluates agents systematically using MLflow evaluation with datasets, scorers, and tracing. IMPORTANT - Always also load the instrumenting-with-mlflow-tracing skill before starting any work. Covers end-to-end evaluation workflow or individual components (tracing setup, dataset creation, scorer definition, evaluation execution).\",\n        \"files\": {\n          \"agent-evaluation/SKILL.md\": \"3a0d868663fb53b7e36ca7145054d7e7c084452fef9cbb5417f295675335a9ed\",\n          \"agent-evaluation/assets/evaluation_report_template.md\": \"a3639086bb3de4b8eb803ea739fa8dd7f79b9ebf68cb924103e59de09779a840\",\n          \"agent-evaluation/references/advanced-evaluation.md\": \"b5c3f4d93e784fd5eaea1d1e2ffdb3dcc929d7add0e5932b22e8bec78bdf26b2\",\n          \"agent-evaluation/references/databricks-online-monitoring.md\": \"f3d88b46de1a9fb187ef9f988f079967c8997c3b7605e37109ca45918a6bbe9a\",\n          \"agent-evaluation/references/dataset-preparation.md\": \"201077219e9e53d2e1a1262e94d72dee5f6476f7f8e5cb292979617b6dfb7b93\",\n          \"agent-evaluation/references/prompt-optimization.md\": \"13da09cc3e6f91ab422e5f004f0845c360285b59f284dbb7fd471ffc8f6378a5\",\n          \"agent-evaluation/references/scorers-constraints.md\": \"288725993e54458578e57eae92ea80305287461fd6e20087ec30f5f3f301d337\",\n          \"agent-evaluation/references/scorers.md\": \"14eed9ac148df1e6a75e9065e0d88dba8a691b60721b98504b5e9c6c80ece9e8\",\n          \"agent-evaluation/references/setup-guide.md\": \"9559a77e5aa9ba0c1039269091ce4d765357eb7a3e4443a17841514ef8305350\",\n          \"agent-evaluation/references/throughput-guide.md\": \"f4f9a5156ffd2477975b8405be83646cdac0c883bb38f5171423f00d0e3e150f\",\n          \"agent-evaluation/references/troubleshooting.md\": \"3c205374e68066f9c6e83eb4fd497df58b75c5e7620e8474a9a0e76547b0f469\",\n          \"agent-evaluation/scripts/analyze_results.py\": \"3d77837429bff9b7824a7fadf8e51fa1c487aa4703239b95405c786601cf59c1\",\n          \"agent-evaluation/scripts/create_dataset_template.py\": \"402669fc3a9ec50260c3bfb66c3cbbc2088d58dfb5d0ff87ce9ff3b3855017a9\",\n          \"agent-evaluation/scripts/list_datasets.py\": \"1ff08f43eed054713cd709095690673143c922315367896ac8064ca15f8f8625\",\n          \"agent-evaluation/scripts/run_evaluation_template.py\": \"62b55f86117294f21edb2f142fa883be071405da54bc00eac04add7b36e4ed41\",\n          \"agent-evaluation/scripts/setup_mlflow.py\": \"cc3db8ec595e67d6abaa6fb2ca5da514126aea1236994fc641260126a90b5219\",\n          \"agent-evaluation/scripts/utils/__init__.py\": \"bae4aaf1e35288ddf8f43eff2e0d0befa6066122fb4eae3de9c86d9164c6b0e6\",\n          \"agent-evaluation/scripts/utils/env_validation.py\": \"4e5fb6f4ec1b228b90ae40341f8fca29253320a61404a5ca6c46cec747ee3c10\",\n          \"agent-evaluation/scripts/validate_auth.py\": \"84844e72213f0f6e4c67e91f1199a4f570eb6695f701efc2890503f1d5aa5f41\",\n          \"agent-evaluation/scripts/validate_environment.py\": \"26efa98e2bc3c10d37948607be03944b3a6b142979e27add1ebadbedae4be83e\",\n          \"agent-evaluation/scripts/validate_tracing_runtime.py\": \"dc014371cbba73453b56c05e01c28ac7ba67b409b6461f72644da4a7e0282359\"\n        }\n      },\n      {\n        \"path\": \"analyze-mlflow-chat-session/SKILL.md\",\n        \"name\": \"analyzing-mlflow-session\",\n        \"description\": \"Analyzes an MLflow session — a sequence of traces from a multi-turn chat conversation or interaction. Use when the user asks to debug a chat conversation, review session or chat history, find where a multi-turn chat went wrong, or analyze patterns across turns. Triggers on \\\"analyze this session\\\", \\\"what happened in this conversation\\\", \\\"debug session\\\", \\\"review chat history\\\", \\\"where did this chat go wrong\\\", \\\"session traces\\\", \\\"analyze chat\\\", \\\"debug this chat\\\".\",\n        \"files\": {\n          \"analyze-mlflow-chat-session/SKILL.md\": \"1d49369ebfe64b35f0591b8b676f4a036242ceedf189ed2e41b596157748fb5c\",\n          \"analyze-mlflow-chat-session/scripts/discover_schema.sh\": \"2570224d423c643ba63a5dc465963bb587f5920d836ff65dabfc1a9f669a7ac0\",\n          \"analyze-mlflow-chat-session/scripts/inspect_turn.sh\": \"cd70f573be84b555417510aeafedbb50b25ed1d7ae20c17adc962e12cea3aeeb\"\n        }\n      },\n      {\n        \"path\": \"analyze-mlflow-trace/SKILL.md\",\n        \"name\": \"analyzing-mlflow-trace\",\n        \"description\": \"Analyzes a single MLflow trace to answer a user query about it. Use when the user provides a trace ID and asks to debug, investigate, find issues, root-cause errors, understand behavior, or analyze quality. Triggers on \\\"analyze this trace\\\", \\\"what went wrong with this trace\\\", \\\"debug trace\\\", \\\"investigate trace\\\", \\\"why did this trace fail\\\", \\\"root cause this trace\\\".\",\n        \"files\": {\n          \"analyze-mlflow-trace/SKILL.md\": \"8095339d940276e1222c66b205084aadc5fad0e09e14dfcf2885e1618c4d3109\",\n          \"analyze-mlflow-trace/references/cross-trace-analysis.md\": \"85d0976bfb0ce69fec699600042076bbe9d43f931d852b02da93960966ddcaa5\",\n          \"analyze-mlflow-trace/references/trace-structure.md\": \"d058e03e4225fbf07c9472fec514b1f08391afb52c83ce3f66a6bca927b85a58\"\n        }\n      },\n      {\n        \"path\": \"build-a-scorer/SKILL.md\",\n        \"name\": \"build-a-scorer\",\n        \"description\": \"Help the user choose, create, iterate, or align MLflow judges and scorers for an agent, RAG app, LLM app, or GenAI workflow, including MemAlign and domain-expert labels. Build a small set of atomic quality criteria with the cheapest reliable implementation.\",\n        \"files\": {\n          \"build-a-scorer/SKILL.md\": \"0dbb6096cfed834ad9b9bae07dfc6532c88db3fbc9a851b07e66d09dba7b293b\",\n          \"build-a-scorer/references/judge-alignment.md\": \"b01e35849cde114de26ee142c5dbc5899e2eda5a28f659d473d9a24a49eae5fb\"\n        }\n      },\n      {\n        \"path\": \"debug-agent/SKILL.md\",\n        \"name\": \"debug-agent\",\n        \"description\": \"Root-causes AI agent failures from MLflow traces without requiring a code change, regression suite, scorer, or evaluation run. Use when the user asks to debug, investigate, explain, or determine why an agent produced an output. Prefer an existing matching trace; reproduce only when no usable trace exists.\",\n        \"files\": {\n          \"debug-agent/SKILL.md\": \"b70860fb7677a9248bd51aa3fbe63ec8fc16bc312cb392854a9bb05caba159fc\",\n          \"debug-agent/agents/openai.yaml\": \"6f2d07f2b51146daececfdd96034e8d07d827b725b6a97116937228d7e46d532\"\n        }\n      },\n      {\n        \"path\": \"fix-agent-issue/SKILL.md\",\n        \"name\": \"fix-agent-issue\",\n        \"description\": \"Fix or change an AI agent's behavior using MLflow traces and regression tests. Use for wrong or incomplete answers, hallucinations, missing tool calls, new business rules, trace-driven debugging, or context and token-cost optimization. Diagnose the actual failure, plan a test, implement the smallest fix, and verify the new behavior without breaking existing cases.\",\n        \"files\": {\n          \"fix-agent-issue/SKILL.md\": \"f8014dc894f1d64048837147018ba8afb1598eb8daa42482ddc0535ee02820fe\",\n          \"fix-agent-issue/references/context-optimization.md\": \"c7b54ebb3051ecd57bbd1a1d8fdf8606917598c97b95b34d08a5a6ab7b707b20\",\n          \"fix-agent-issue/references/regression-test-suite.md\": \"3a633b6c6af2a45ed80331e399450c35faf5f22061989d41b2056fcbf9a5b2de\"\n        }\n      },\n      {\n        \"path\": \"instrumenting-with-mlflow-tracing/SKILL.md\",\n        \"name\": \"instrumenting-with-mlflow-tracing\",\n        \"description\": \"Instruments Python and TypeScript code with MLflow Tracing for observability. Must be loaded when setting up tracing as part of any workflow including agent evaluation. Triggers on adding tracing, instrumenting agents/LLM apps, getting started with MLflow tracing, tracing specific frameworks (LangGraph, LangChain, OpenAI, Gemini, DSPy, CrewAI, AutoGen), or when another skill references tracing setup. Examples - \\\"How do I add tracing?\\\", \\\"Instrument my agent\\\", \\\"Trace my LangChain app\\\", \\\"Set up tracing for evaluation\\\"\",\n        \"files\": {\n          \"instrumenting-with-mlflow-tracing/SKILL.md\": \"dde12f9a89d5871b7311c6a16c9386befc4ca7f0ca42a14e0e9be77db82d2c24\",\n          \"instrumenting-with-mlflow-tracing/references/advanced-patterns.md\": \"1e3551e973ebe996750a3b27031197527b92af914e0b33eaa96a53d3d248dbc0\",\n          \"instrumenting-with-mlflow-tracing/references/databricks.md\": \"eef0583d901cf91c1b2a5d50e4ed080b1d1f5cb8268a0a13cce61c2b260665b4\",\n          \"instrumenting-with-mlflow-tracing/references/distributed-tracing.md\": \"9a8de12bfadb0961e89bbd0af3305c6a7e7b04f01a9659d93bc0ca787317f5ac\",\n          \"instrumenting-with-mlflow-tracing/references/feedback-collection.md\": \"4c8977d817d4e90413071d36fd6efd3c17eec5375737e5151cddbb299028c1b7\",\n          \"instrumenting-with-mlflow-tracing/references/production.md\": \"df7c62405593297ad37d18a2920d6a3982b87b0b65fac93ae357bf9f36b58c1c\",\n          \"instrumenting-with-mlflow-tracing/references/python.md\": \"e9a3b8ba9c2af251dbaa32b1054b3fd19521185b961c296310e0ab9c229edcd3\",\n          \"instrumenting-with-mlflow-tracing/references/root-span-previews.md\": \"f55e40eefaf5e4c19e24d81d69860cdce03ef4341bc0e184b9a972fd4d0d7324\",\n          \"instrumenting-with-mlflow-tracing/references/typescript.md\": \"d41ebf3cad424b07bb1a21defa328060f980b299e04c933671f01d7432a8551d\"\n        }\n      },\n      {\n        \"path\": \"mlflow-agent/SKILL.md\",\n        \"name\": \"mlflow-agent\",\n        \"description\": \"Master dispatcher for all MLflow workflows. Use this skill when the user wants to do anything with MLflow — tracing, evaluating, debugging, or improving an agent. Routes to the right MLflow sub-skill automatically. Triggers on: \\\"use mlflow\\\", \\\"help with mlflow\\\", \\\"mlflow agent\\\", \\\"add mlflow to my project\\\", \\\"trace my agent\\\", \\\"evaluate my agent\\\", or any MLflow task without a specific skill in mind.\\n\",\n        \"files\": {\n          \"mlflow-agent/SKILL.md\": \"e8059656dd2dc3e39f7328dc5fbf3110749307d4098ecb14c4f76edffcbd76ae\"\n        }\n      },\n      {\n        \"path\": \"mlflow-onboarding/SKILL.md\",\n        \"name\": \"mlflow-onboarding\",\n        \"description\": \"Onboards users to MLflow by determining their use case (GenAI agents/apps or traditional ML/deep learning) and guiding them through relevant quickstart tutorials and initial integration. If an experiment ID is available, it should be supplied as input to help determine the use case. Use when the user asks to get started with MLflow, set up tracking, add observability, or integrate MLflow into their project. Triggers on \\\"get started with MLflow\\\", \\\"set up MLflow\\\", \\\"onboard to MLflow\\\", \\\"add MLflow to my project\\\", \\\"how do I use MLflow\\\".\",\n        \"files\": {\n          \"mlflow-onboarding/SKILL.md\": \"ac2fcfffba8f09c752e97f314b67327272ff9c7f7a45987fa3ef64a526c544c8\"\n        }\n      },\n      {\n        \"path\": \"querying-mlflow-metrics/SKILL.md\",\n        \"name\": \"querying-mlflow-metrics\",\n        \"description\": \"Fetches aggregated trace metrics (token usage, latency, trace counts, quality evaluations) from MLflow tracking servers. Triggers on requests to show metrics, analyze token usage, view LLM costs, check usage trends, or query trace statistics.\",\n        \"files\": {\n          \"querying-mlflow-metrics/SKILL.md\": \"dae35439982c322c73c813690c8e325dbfaa186aebc9a80feb1e67a6f208cd3c\",\n          \"querying-mlflow-metrics/references/api_reference.md\": \"f2c13eff49b561a2cf7180cca7a46b8f040cf51fca2bdaf97571257e6f4158e8\",\n          \"querying-mlflow-metrics/scripts/fetch_metrics.py\": \"16a87a353bc7cbd7041ca1a108503a4a414eb6263703179cbaa55a37923c1675\"\n        }\n      },\n      {\n        \"path\": \"retrieving-mlflow-traces/SKILL.md\",\n        \"name\": \"retrieving-mlflow-traces\",\n        \"description\": \"Retrieves MLflow traces using CLI or Python API. Use when the user asks to get a trace by ID, find traces, filter traces by status/tags/metadata/execution time, query traces, or debug failed traces. Triggers on \\\"get trace\\\", \\\"search traces\\\", \\\"find failed traces\\\", \\\"filter traces by\\\", \\\"traces slower than\\\", \\\"query MLflow traces\\\".\",\n        \"files\": {\n          \"retrieving-mlflow-traces/SKILL.md\": \"d44d2df8435202ca985680946264120bac949202f675ee44f40dad04d6a315b3\"\n        }\n      },\n      {\n        \"path\": \"sagemaker-mlflow/SKILL.md\",\n        \"name\": \"sagemaker-mlflow\",\n        \"description\": \"Connect to SageMaker Managed MLflow (mlflow-app or mlflow-tracking-server ARN) as an MLflow backend, then hand off to the other MLflow skills. Triggers on a SageMaker MLflow ARN (arn:aws:sagemaker:...:mlflow-app/... or arn:aws:sagemaker:...:mlflow-tracking-server/...) or \\\"SageMaker Managed MLflow\\\".\\n\",\n        \"files\": {\n          \"sagemaker-mlflow/SKILL.md\": \"f95cf8cffa4b0b06ff9a169cb2c39f3ba02de003646d754ddc94370c4b3f62c6\",\n          \"sagemaker-mlflow/scripts/discover_arns.py\": \"2e5cfdd11d214f634aa19493aec58b63ec981f9cbfd633daab0bbc5155e694c4\",\n          \"sagemaker-mlflow/scripts/verify_connection.py\": \"34098a50938c8fb5256880e5d5a4e5b1fc8017a594e74931a9cf3fab3b6a40ae\"\n        }\n      },\n      {\n        \"path\": \"searching-mlflow-docs/SKILL.md\",\n        \"name\": \"searching-mlflow-docs\",\n        \"description\": \"Searches and retrieves MLflow documentation from the official docs site. Use when the user asks about MLflow features, APIs, integrations (LangGraph, LangChain, OpenAI, etc.), tracing, tracking, or requests to look up MLflow documentation. Triggers on \\\"how do I use MLflow with X\\\", \\\"find MLflow docs for Y\\\", \\\"MLflow API for Z\\\".\",\n        \"files\": {\n          \"searching-mlflow-docs/SKILL.md\": \"06bdb082b09ae1d2ec49d7b6e442276f3d7f899111b2c878e89e8e209e848174\"\n        }\n      }\n    ],\n    \"hooks\": [\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ab65803c908aa76c3752e5c932c6def5b27dcc4702b93a128031765346bbe1e5\",\n        \"event\": \"UserPromptSubmit\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"${CLAUDE_PLUGIN_ROOT}/hooks/mlflow-suggest-hook.py\"\n        },\n        \"executed\": false\n      }\n    ],\n    \"executions\": []\n  }\n}"
  },
  "review_input": {
    "identity_artifact": "identity.json",
    "evidence_sha256": {
      "LOCK.json": "732b4e1ce5cd7f07c972abf2615ef5631d14e46e43086bf038f7aec8ace3d82c",
      "commands.json": "2ebdbb052036e1430a63fd68039d2724852b4f551603f8b755fa6fe475dc747b",
      "complete.json": "91b504b43905fdc009504d516c45eea831f39a1995b9e7d69987c9756c936d6f",
      "identity.json": "011a32a5193bc0c1433f5c6efaf889698702895c058150711bce2a29bf69eb6d",
      "listing.json": "e7806c449e51c4ddb2e61cd7a309989c84c04bca4837bf410051321a325c990e",
      "selection.json": "41766fd4a9c6175d70545cb5ea218f02b12fe89c6528308986313c43799abc62"
    },
    "claims": [
      {
        "id": "acquired",
        "field": "summary",
        "text": "Pinned source declarations and file hashes were listed.",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      },
      {
        "id": "listed",
        "field": "outcome",
        "text": "Listed 1 hook declaration. Ran 89 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection.",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      },
      {
        "id": "tree",
        "field": "rule_results.0",
        "text": "The retained source tree matches its acquisition manifest.",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      },
      {
        "id": "declared",
        "field": "rule_results.1",
        "text": "Declared hook names (listing.json): UserPromptSubmit",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      }
    ]
  },
  "review": {
    "kind": "machine-checked",
    "date": "2026-10-19",
    "reviewed_sha256": "45cb6697fd90624d1493684be22482f076e11a7bea37dca8247e91e2cf00d1e4",
    "gates": "98b1ab3aaab3ec6963f55c2d3ca7a7fbf5849dbc52119f168a9705bcf7ca8b17",
    "codex": "97a287b721d7c6f946949f55a73563e0c84de22df7a283ed7bf9d15514116adc",
    "grok": "ba32240e5c5cc2d705b4598c89362435b7bc0bd9c69e33bdcbe2d23803f67786",
    "summary": "Deterministic gates passed; every claim rebuilt from evidence with a reviewed template; Grok reported no standing refutation."
  }
}
