{"owner":"facebook","repo":"hhvm","hasSkills":true,"totalSkillsCount":4,"totalTokensCount":938,"categories":["command-prompt","anthropic-skill"],"hasMcp":false,"mcpConfig":null,"found":["hphp/.claude/commands/hhvm-tests.md","hphp/hack/.claude/skills/analyze-www/SKILL.md","hphp/hack/.claude/skills/run-hh-www/SKILL.md","hphp/hack/.claude/skills/sandcastle-perf/SKILL.md"],"skills":{"hphp/.claude/commands/hhvm-tests.md":"---\ndescription: \"Run HHVM tests for changed files in a given mode. Argument: one of {interp, jit, interp-repo, jit-repo}. Defaults to jit. Usage: /hhvm-tests jit-repo\"\n---\n\n# HHVM Tests\n\nRun HHVM tests for files changed in the current commit, using the specified execution mode.\n\n**Argument:** `$ARGUMENTS`\n\n## Step 1: Parse the mode\n\nThe argument must be one of: `interp`, `jit`, `interp-repo`, `jit-repo`. If no argument is provided, default to `jit`.\n\nIf the argument is not one of the valid modes, stop and tell the user the valid options.\n\nMap the mode to test runner flags:\n\n| Mode | Flags |\n|------|-------|\n| `interp` | `-m interp` |\n| `jit` | `-m jit` |\n| `interp-repo` | `-m interp -r` |\n| `jit-repo` | `-m jit -r` |\n\n## Step 2: Identify changed files\n\nRun `sl status` to find files changed in the working copy. Also run `sl diff --stat -r '.^' -r '.'` to find files changed in the current commit.\n\nCombine both lists and filter to only files under `hphp/` that are relevant source files (`.cpp`, `.h`, `.php`, `.hack`, `.hhas`).\n\n## Step 3: Find related tests\n\nFor each changed file, determine which tests to run:\n\n1. **If the changed file is itself a test file** (under `hphp/test/`): run that test directly.\n2. **If the changed file is a runtime/extension source file** (under `hphp/runtime/`, `hphp/hhbbc/`, `hphp/jit/`, etc.): run `hphp/test/quick` as a baseline. Also look for tests in `hphp/test/slow/` that are specifically related to the changed component if identifiable.\n\nIf no changed files are found under `hphp/`, inform the user and ask what tests they'd like to run.\n\n## Step 4: Build HHVM\n\nCheck if HHVM is built already. The canonical way to do so is by running the test command and seeing if it finds an HHVM binary. If not, build the binary from the fbsource/fbcode directory using this exact command:\n\n```bash\ncd ~/fbsource/fbcode && ls hphp/hhvm/hhvm || buck build @//mode/dbgo -c hhvm.use_lowptr=1 -c fbcode.split-dwarf5=True //hphp/hhvm:hhvm\n```\n\nIf the build fails, report the error to the user and stop.\n\n## Step 5: Run the tests\n\nRun the test runner from the fbsource/fbcode directory:\n\n```bash\nhphp/test/run <test_paths> <flags>\n```\n\nWhere `<flags>` are the mapped flags from Step 1.\n\nReport the results to the user, including any failures with their diff output.\n","hphp/hack/.claude/skills/analyze-www/SKILL.md":"---\nname: analyze-www\ndescription: \"Analyze code patterns across WWW using a TAST logger. Uses hh_distc for fast distributed type checking (~20 min).\"\nuser-invocable: true\ndisable-model-invocation: true\nargument-hint: \"<question about WWW code patterns>\"\nmetadata:\n  strict: true\n  oncalls:\n    - hack\n---\n\nRead and follow `.llms/skills/analyze-www/SKILL.md` exactly.\nTreat `$ARGUMENTS` as the question to analyze.\n","hphp/hack/.claude/skills/run-hh-www/SKILL.md":"---\nname: run-hh-www\ndescription: Build the locally modified Hack typechecker and run a fresh typecheck of WWW. Use when testing local typechecker changes against WWW with Buck-built binaries and hh --no-load.\nuser-invocable: true\nmetadata:\n  strict: true\n  oncalls:\n    - hack\n---\n\nRead and follow `.llms/skills/run-hh-www/SKILL.md` exactly.\n","hphp/hack/.claude/skills/sandcastle-perf/SKILL.md":"---\nname: sandcastle-perf\ndescription: \"Run or monitor Sandcastle hh_perf jobs for Hack performance benchmarking.\"\nuser-invocable: true\ndisable-model-invocation: true\nargument-hint: \"<run or job to start or monitor>\"\nmetadata:\n  strict: true\n  oncalls:\n    - hack\n---\n\nRead and follow `.llms/skills/sandcastle-perf/SKILL.md` exactly.\nTreat `$ARGUMENTS` as the requested Sandcastle performance task.\n"},"files":{"hphp/.claude/commands/hhvm-tests.md":"---\ndescription: \"Run HHVM tests for changed files in a given mode. Argument: one of {interp, jit, interp-repo, jit-repo}. Defaults to jit. Usage: /hhvm-tests jit-repo\"\n---\n\n# HHVM Tests\n\nRun HHVM tests for files changed in the current commit, using the specified execution mode.\n\n**Argument:** `$ARGUMENTS`\n\n## Step 1: Parse the mode\n\nThe argument must be one of: `interp`, `jit`, `interp-repo`, `jit-repo`. If no argument is provided, default to `jit`.\n\nIf the argument is not one of the valid modes, stop and tell the user the valid options.\n\nMap the mode to test runner flags:\n\n| Mode | Flags |\n|------|-------|\n| `interp` | `-m interp` |\n| `jit` | `-m jit` |\n| `interp-repo` | `-m interp -r` |\n| `jit-repo` | `-m jit -r` |\n\n## Step 2: Identify changed files\n\nRun `sl status` to find files changed in the working copy. Also run `sl diff --stat -r '.^' -r '.'` to find files changed in the current commit.\n\nCombine both lists and filter to only files under `hphp/` that are relevant source files (`.cpp`, `.h`, `.php`, `.hack`, `.hhas`).\n\n## Step 3: Find related tests\n\nFor each changed file, determine which tests to run:\n\n1. **If the changed file is itself a test file** (under `hphp/test/`): run that test directly.\n2. **If the changed file is a runtime/extension source file** (under `hphp/runtime/`, `hphp/hhbbc/`, `hphp/jit/`, etc.): run `hphp/test/quick` as a baseline. Also look for tests in `hphp/test/slow/` that are specifically related to the changed component if identifiable.\n\nIf no changed files are found under `hphp/`, inform the user and ask what tests they'd like to run.\n\n## Step 4: Build HHVM\n\nCheck if HHVM is built already. The canonical way to do so is by running the test command and seeing if it finds an HHVM binary. If not, build the binary from the fbsource/fbcode directory using this exact command:\n\n```bash\ncd ~/fbsource/fbcode && ls hphp/hhvm/hhvm || buck build @//mode/dbgo -c hhvm.use_lowptr=1 -c fbcode.split-dwarf5=True //hphp/hhvm:hhvm\n```\n\nIf the build fails, report the error to the user and stop.\n\n## Step 5: Run the tests\n\nRun the test runner from the fbsource/fbcode directory:\n\n```bash\nhphp/test/run <test_paths> <flags>\n```\n\nWhere `<flags>` are the mapped flags from Step 1.\n\nReport the results to the user, including any failures with their diff output.\n","hphp/hack/.claude/skills/analyze-www/SKILL.md":"---\nname: analyze-www\ndescription: \"Analyze code patterns across WWW using a TAST logger. Uses hh_distc for fast distributed type checking (~20 min).\"\nuser-invocable: true\ndisable-model-invocation: true\nargument-hint: \"<question about WWW code patterns>\"\nmetadata:\n  strict: true\n  oncalls:\n    - hack\n---\n\nRead and follow `.llms/skills/analyze-www/SKILL.md` exactly.\nTreat `$ARGUMENTS` as the question to analyze.\n","hphp/hack/.claude/skills/run-hh-www/SKILL.md":"---\nname: run-hh-www\ndescription: Build the locally modified Hack typechecker and run a fresh typecheck of WWW. Use when testing local typechecker changes against WWW with Buck-built binaries and hh --no-load.\nuser-invocable: true\nmetadata:\n  strict: true\n  oncalls:\n    - hack\n---\n\nRead and follow `.llms/skills/run-hh-www/SKILL.md` exactly.\n","hphp/hack/.claude/skills/sandcastle-perf/SKILL.md":"---\nname: sandcastle-perf\ndescription: \"Run or monitor Sandcastle hh_perf jobs for Hack performance benchmarking.\"\nuser-invocable: true\ndisable-model-invocation: true\nargument-hint: \"<run or job to start or monitor>\"\nmetadata:\n  strict: true\n  oncalls:\n    - hack\n---\n\nRead and follow `.llms/skills/sandcastle-perf/SKILL.md` exactly.\nTreat `$ARGUMENTS` as the requested Sandcastle performance task.\n"},"items":[{"name":"SKILL.md","path":"hphp/hack/.claude/skills/analyze-www/SKILL.md","rawUrl":"https://raw.githubusercontent.com/facebook/hhvm/HEAD/hphp/hack/.claude/skills/analyze-www/SKILL.md","title":"analyze-www","category":"anthropic-skill","format":"markdown","content":"---\nname: analyze-www\ndescription: \"Analyze code patterns across WWW using a TAST logger. Uses hh_distc for fast distributed type checking (~20 min).\"\nuser-invocable: true\ndisable-model-invocation: true\nargument-hint: \"<question about WWW code patterns>\"\nmetadata:\n  strict: true\n  oncalls:\n    - hack\n---\n\nRead and follow `.llms/skills/analyze-www/SKILL.md` exactly.\nTreat `$ARGUMENTS` as the question to analyze.\n","frontmatter":{"name":"analyze-www","description":"Analyze code patterns across WWW using a TAST logger. Uses hh_distc for fast distributed type checking (~20 min).","user-invocable":true,"disable-model-invocation":true,"argument-hint":"<question about WWW code patterns>","metadata":{"strict":true,"oncalls":["hack"]},"disableModelInvocation":true},"isInternal":false,"tokens":107,"sizeBytes":415},{"name":"SKILL.md","path":"hphp/hack/.claude/skills/run-hh-www/SKILL.md","rawUrl":"https://raw.githubusercontent.com/facebook/hhvm/HEAD/hphp/hack/.claude/skills/run-hh-www/SKILL.md","title":"run-hh-www","category":"anthropic-skill","format":"markdown","content":"---\nname: run-hh-www\ndescription: Build the locally modified Hack typechecker and run a fresh typecheck of WWW. Use when testing local typechecker changes against WWW with Buck-built binaries and hh --no-load.\nuser-invocable: true\nmetadata:\n  strict: true\n  oncalls:\n    - hack\n---\n\nRead and follow `.llms/skills/run-hh-www/SKILL.md` exactly.\n","frontmatter":{"name":"run-hh-www","description":"Build the locally modified Hack typechecker and run a fresh typecheck of WWW. Use when testing local typechecker changes against WWW with Buck-built binaries and hh --no-load.","user-invocable":true,"metadata":{"strict":true,"oncalls":["hack"]}},"isInternal":false,"tokens":87,"sizeBytes":343},{"name":"SKILL.md","path":"hphp/hack/.claude/skills/sandcastle-perf/SKILL.md","rawUrl":"https://raw.githubusercontent.com/facebook/hhvm/HEAD/hphp/hack/.claude/skills/sandcastle-perf/SKILL.md","title":"sandcastle-perf","category":"anthropic-skill","format":"markdown","content":"---\nname: sandcastle-perf\ndescription: \"Run or monitor Sandcastle hh_perf jobs for Hack performance benchmarking.\"\nuser-invocable: true\ndisable-model-invocation: true\nargument-hint: \"<run or job to start or monitor>\"\nmetadata:\n  strict: true\n  oncalls:\n    - hack\n---\n\nRead and follow `.llms/skills/sandcastle-perf/SKILL.md` exactly.\nTreat `$ARGUMENTS` as the requested Sandcastle performance task.\n","frontmatter":{"name":"sandcastle-perf","description":"Run or monitor Sandcastle hh_perf jobs for Hack performance benchmarking.","user-invocable":true,"disable-model-invocation":true,"argument-hint":"<run or job to start or monitor>","metadata":{"strict":true,"oncalls":["hack"]},"disableModelInvocation":true},"isInternal":false,"tokens":103,"sizeBytes":399},{"name":"hhvm-tests.md","path":"hphp/.claude/commands/hhvm-tests.md","rawUrl":"https://raw.githubusercontent.com/facebook/hhvm/HEAD/hphp/.claude/commands/hhvm-tests.md","title":"Command: /hhvm-tests","category":"command-prompt","format":"markdown","content":"---\ndescription: \"Run HHVM tests for changed files in a given mode. Argument: one of {interp, jit, interp-repo, jit-repo}. Defaults to jit. Usage: /hhvm-tests jit-repo\"\n---\n\n# HHVM Tests\n\nRun HHVM tests for files changed in the current commit, using the specified execution mode.\n\n**Argument:** `$ARGUMENTS`\n\n## Step 1: Parse the mode\n\nThe argument must be one of: `interp`, `jit`, `interp-repo`, `jit-repo`. If no argument is provided, default to `jit`.\n\nIf the argument is not one of the valid modes, stop and tell the user the valid options.\n\nMap the mode to test runner flags:\n\n| Mode | Flags |\n|------|-------|\n| `interp` | `-m interp` |\n| `jit` | `-m jit` |\n| `interp-repo` | `-m interp -r` |\n| `jit-repo` | `-m jit -r` |\n\n## Step 2: Identify changed files\n\nRun `sl status` to find files changed in the working copy. Also run `sl diff --stat -r '.^' -r '.'` to find files changed in the current commit.\n\nCombine both lists and filter to only files under `hphp/` that are relevant source files (`.cpp`, `.h`, `.php`, `.hack`, `.hhas`).\n\n## Step 3: Find related tests\n\nFor each changed file, determine which tests to run:\n\n1. **If the changed file is itself a test file** (under `hphp/test/`): run that test directly.\n2. **If the changed file is a runtime/extension source file** (under `hphp/runtime/`, `hphp/hhbbc/`, `hphp/jit/`, etc.): run `hphp/test/quick` as a baseline. Also look for tests in `hphp/test/slow/` that are specifically related to the changed component if identifiable.\n\nIf no changed files are found under `hphp/`, inform the user and ask what tests they'd like to run.\n\n## Step 4: Build HHVM\n\nCheck if HHVM is built already. The canonical way to do so is by running the test command and seeing if it finds an HHVM binary. If not, build the binary from the fbsource/fbcode directory using this exact command:\n\n```bash\ncd ~/fbsource/fbcode && ls hphp/hhvm/hhvm || buck build @//mode/dbgo -c hhvm.use_lowptr=1 -c fbcode.split-dwarf5=True //hphp/hhvm:hhvm\n```\n\nIf the build fails, report the error to the user and stop.\n\n## Step 5: Run the tests\n\nRun the test runner from the fbsource/fbcode directory:\n\n```bash\nhphp/test/run <test_paths> <flags>\n```\n\nWhere `<flags>` are the mapped flags from Step 1.\n\nReport the results to the user, including any failures with their diff output.\n","frontmatter":{"description":"Run HHVM tests for changed files in a given mode. Argument: one of {interp, jit, interp-repo, jit-repo}. Defaults to jit. Usage: /hhvm-tests jit-repo"},"isInternal":false,"tokens":641,"sizeBytes":2303}],"systemPromptSnippet":"<yakaai_skills repo=\"facebook/hhvm\">\n<!-- File: hphp/hack/.claude/skills/analyze-www/SKILL.md (Tokens: ~107 | Category: anthropic-skill) -->\n---\nname: analyze-www\ndescription: \"Analyze code patterns across WWW using a TAST logger. Uses hh_distc for fast distributed type checking (~20 min).\"\nuser-invocable: true\ndisable-model-invocation: true\nargument-hint: \"<question about WWW code patterns>\"\nmetadata:\n  strict: true\n  oncalls:\n    - hack\n---\n\nRead and follow `.llms/skills/analyze-www/SKILL.md` exactly.\nTreat `$ARGUMENTS` as the question to analyze.\n\n<!-- File: hphp/hack/.claude/skills/run-hh-www/SKILL.md (Tokens: ~87 | Category: anthropic-skill) -->\n---\nname: run-hh-www\ndescription: Build the locally modified Hack typechecker and run a fresh typecheck of WWW. Use when testing local typechecker changes against WWW with Buck-built binaries and hh --no-load.\nuser-invocable: true\nmetadata:\n  strict: true\n  oncalls:\n    - hack\n---\n\nRead and follow `.llms/skills/run-hh-www/SKILL.md` exactly.\n\n<!-- File: hphp/hack/.claude/skills/sandcastle-perf/SKILL.md (Tokens: ~103 | Category: anthropic-skill) -->\n---\nname: sandcastle-perf\ndescription: \"Run or monitor Sandcastle hh_perf jobs for Hack performance benchmarking.\"\nuser-invocable: true\ndisable-model-invocation: true\nargument-hint: \"<run or job to start or monitor>\"\nmetadata:\n  strict: true\n  oncalls:\n    - hack\n---\n\nRead and follow `.llms/skills/sandcastle-perf/SKILL.md` exactly.\nTreat `$ARGUMENTS` as the requested Sandcastle performance task.\n\n<!-- File: hphp/.claude/commands/hhvm-tests.md (Tokens: ~641 | Category: command-prompt) -->\n---\ndescription: \"Run HHVM tests for changed files in a given mode. Argument: one of {interp, jit, interp-repo, jit-repo}. Defaults to jit. Usage: /hhvm-tests jit-repo\"\n---\n\n# HHVM Tests\n\nRun HHVM tests for files changed in the current commit, using the specified execution mode.\n\n**Argument:** `$ARGUMENTS`\n\n## Step 1: Parse the mode\n\nThe argument must be one of: `interp`, `jit`, `interp-repo`, `jit-repo`. If no argument is provided, default to `jit`.\n\nIf the argument is not one of the valid modes, stop and tell the user the valid options.\n\nMap the mode to test runner flags:\n\n| Mode | Flags |\n|------|-------|\n| `interp` | `-m interp` |\n| `jit` | `-m jit` |\n| `interp-repo` | `-m interp -r` |\n| `jit-repo` | `-m jit -r` |\n\n## Step 2: Identify changed files\n\nRun `sl status` to find files changed in the working copy. Also run `sl diff --stat -r '.^' -r '.'` to find files changed in the current commit.\n\nCombine both lists and filter to only files under `hphp/` that are relevant source files (`.cpp`, `.h`, `.php`, `.hack`, `.hhas`).\n\n## Step 3: Find related tests\n\nFor each changed file, determine which tests to run:\n\n1. **If the changed file is itself a test file** (under `hphp/test/`): run that test directly.\n2. **If the changed file is a runtime/extension source file** (under `hphp/runtime/`, `hphp/hhbbc/`, `hphp/jit/`, etc.): run `hphp/test/quick` as a baseline. Also look for tests in `hphp/test/slow/` that are specifically related to the changed component if identifiable.\n\nIf no changed files are found under `hphp/`, inform the user and ask what tests they'd like to run.\n\n## Step 4: Build HHVM\n\nCheck if HHVM is built already. The canonical way to do so is by running the test command and seeing if it finds an HHVM binary. If not, build the binary from the fbsource/fbcode directory using this exact command:\n\n```bash\ncd ~/fbsource/fbcode && ls hphp/hhvm/hhvm || buck build @//mode/dbgo -c hhvm.use_lowptr=1 -c fbcode.split-dwarf5=True //hphp/hhvm:hhvm\n```\n\nIf the build fails, report the error to the user and stop.\n\n## Step 5: Run the tests\n\nRun the test runner from the fbsource/fbcode directory:\n\n```bash\nhphp/test/run <test_paths> <flags>\n```\n\nWhere `<flags>` are the mapped flags from Step 1.\n\nReport the results to the user, including any failures with their diff output.\n</yakaai_skills>"}