Update to AMD
Snapshot Nov 6, 2026 · 00:12 UTC · version 0.3.0
Package or technical metadata updated
Package or technical metadata updated
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Up to 3 plugins free · no card required.
All fields and original values.
These are saved file metadata. Open a changed file to read its text edits.
Package file
Sep 30, 2026 · 23:13 UTC
7f832b8a3c4898e1453f60b461b79fb8d4c0e8889d930e0daf12af3c1e2ff938
Nov 6, 2026 · 00:12 UTC
ecff6eacb9367066be2b7dcbf31d962943a6d012b408265317d89f404678e064
Package file
Sep 30, 2026 · 23:13 UTC
{"sha256":"671ee8519686294b03b4995bb3ba99045004bbccd328968bf38c30b3cc96c312","size":16453}
Nov 6, 2026 · 00:12 UTC
Not present
Package file
Sep 30, 2026 · 23:13 UTC
{"sha256":"671ee8519686294b03b4995bb3ba99045004bbccd328968bf38c30b3cc96c312","size":16453}
Nov 6, 2026 · 00:12 UTC
Not present
Package file
Sep 30, 2026 · 23:13 UTC
cbe68f54a64025845974c6d485a9b765a307f70548952b61be30b67e1835ac49
Nov 6, 2026 · 00:12 UTC
08213eda069ee496a17c663b941ca997407d543a9a49b92aa983dabca172600b
Compare saved observations
Download comparison JSONChanged files
Choose a file to see its text changes. Binary or large files show metadata only.
.claude-plugin/marketplace.json →
.codex-plugin/assets/composer-icon.png →
.codex-plugin/assets/logo.png →
.cursor-plugin/marketplace.json →
.github/ISSUE_TEMPLATE/product-repo-approval.yml →
.github/scripts/federate_skills.py →
.github/scripts/federation_branches.py →
.github/scripts/federation_guard.py →
.github/scripts/generate_codex_plugin.py →
.github/scripts/import_external_skills.py →
.github/scripts/record_skill_owner.py →
.github/scripts/select_evals.py →
.github/scripts/test_cli_install.py →
.github/scripts/test_federate_skills.py →
.github/scripts/test_federation_guard.py →
.github/scripts/test_record_skill_owner.py →
.github/scripts/validate_marketplace.py →
.github/scripts/validate_skills.py →
.github/workflows/cli-install.yml →
.github/workflows/external-reference-check.yml →
.github/workflows/federate-skills.yml →
.github/workflows/federation-guard.yml →
.github/workflows/import-external-skills.yml →
.github/workflows/product-repo-approval.yml →
.github/workflows/validate.yml →
docs/rocm-docs/.readthedocs.yaml →
docs/rocm-docs/sphinx/_toc.yml.in →
docs/rocm-docs/walkthroughs/hyperloom-workload-optimizer.md →
docs/rocm-docs/walkthroughs/index.md →
docs/rocm-docs/walkthroughs/lemonade-router-builder.md →
docs/rocm-docs/walkthroughs/local-ai-app-integration.md →
docs/rocm-docs/walkthroughs/local-ai-use.md →
docs/rocm-docs/walkthroughs/magpie-kernel-evaluator.md →
docs/rocm-docs/walkthroughs/serving-llms-on-epyc.md →
docs/rocm-docs/walkthroughs/serving-llms-on-instinct.md →
docs/rocm-docs/walkthroughs/tracelens-analysis-orchestrator.md →
eval/schema/evals.schema.json →
eval/schema/machine.schema.json →
skills/hyperloom-workload-optimizer/.federated.json →
skills/hyperloom-workload-optimizer/SKILL.md →
skills/hyperloom-workload-optimizer/evals/evals.json →
skills/hyperloom-workload-optimizer/evals/machine.yml →
skills/hyperloom-workload-optimizer/reference.md →
skills/hyperloom-workload-optimizer/scripts/_env.sh →
skills/hyperloom-workload-optimizer/scripts/launch.sh →
skills/hyperloom-workload-optimizer/scripts/launch_health.sh →
skills/hyperloom-workload-optimizer/scripts/preflight.py →
skills/hyperloom-workload-optimizer/scripts/resume.sh →
skills/hyperloom-workload-optimizer/scripts/tests/test_launch_flow.sh →
skills/hyperloom-workload-optimizer/scripts/tests/test_preflight.py →
skills/hyperloom-workload-optimizer/setup.md →
skills/hyperloom-workload-optimizer/skill-card.md →
skills/local-ai-app-integration/.federated.json →
skills/local-ai-use/.federated.json →
skills/local-ai-use/SKILL.md →
skills/local-ai-use/reference.md →
skills/local-ai-use/scripts/setup_local_ai.py →
skills/serving-llms-on-instinct/evals/machine.yml →
skills/tracelens-analysis-orchestrator/.federated.json →
skills/tracelens-analysis-orchestrator/SKILL.md →
skills/tracelens-analysis-orchestrator/agents/convolution-analyzer.md →
skills/tracelens-analysis-orchestrator/agents/cpu-idle-analyzer.md →
skills/tracelens-analysis-orchestrator/agents/elementwise-analyzer.md →
skills/tracelens-analysis-orchestrator/agents/gemm-analyzer.md →
skills/tracelens-analysis-orchestrator/agents/generic-op-analyzer.md →
skills/tracelens-analysis-orchestrator/agents/kernel-coherence-agent.md →
skills/tracelens-analysis-orchestrator/agents/kernel-fusion-analyzer.md →
skills/tracelens-analysis-orchestrator/agents/kernel-stem-preprocessing-agent.md →
skills/tracelens-analysis-orchestrator/agents/kernel-unification-agent.md →
skills/tracelens-analysis-orchestrator/agents/model-identification-agent.md →
skills/tracelens-analysis-orchestrator/agents/moe-analyzer.md →
skills/tracelens-analysis-orchestrator/agents/multi-kernel-analyzer.md →
skills/tracelens-analysis-orchestrator/agents/norm-analyzer.md →
skills/tracelens-analysis-orchestrator/agents/reduce-analyzer.md →
skills/tracelens-analysis-orchestrator/agents/roofline-augment-agent.md →
skills/tracelens-analysis-orchestrator/agents/semantic-comparison-agent.md →
skills/tracelens-analysis-orchestrator/agents/triton-analyzer.md →
skills/tracelens-analysis-orchestrator/evals/.gitignore →
skills/tracelens-analysis-orchestrator/evals/EVAL_RUBRICS.md →
skills/tracelens-analysis-orchestrator/evals/README.md →
skills/tracelens-analysis-orchestrator/evals/analysis_tests/combined_traces_comparative.csv →
skills/tracelens-analysis-orchestrator/evals/analysis_tests/combined_traces_standalone.csv →
skills/tracelens-analysis-orchestrator/evals/eval_scripts/generate_ref.sh →
skills/tracelens-analysis-orchestrator/evals/eval_scripts/kill_eval_jobs.sh →
skills/tracelens-analysis-orchestrator/evals/eval_scripts/pack_test_archives.sh →
skills/tracelens-analysis-orchestrator/evals/eval_scripts/run_pi_analysis_in_docker.sh →
skills/tracelens-analysis-orchestrator/evals/eval_scripts/run_repeatability_parallel.sh →
skills/tracelens-analysis-orchestrator/evals/eval_utils/aggregate_repeatability.py →
skills/tracelens-analysis-orchestrator/evals/eval_utils/compare_lca_partitions.py →
skills/tracelens-analysis-orchestrator/evals/eval_utils/manual_eval_checklist.md →
skills/tracelens-analysis-orchestrator/evals/eval_utils/merge_results.py →
skills/tracelens-analysis-orchestrator/evals/eval_utils/quality_scripted_evals.py →
skills/tracelens-analysis-orchestrator/evals/eval_utils/report_section_rules.yaml →
skills/tracelens-analysis-orchestrator/evals/eval_utils/workflow_scripted_evals.py →
skills/tracelens-analysis-orchestrator/evals/evals.json →
skills/tracelens-analysis-orchestrator/evals/hooks.py →
skills/tracelens-analysis-orchestrator/evals/machine.yml →
skills/tracelens-analysis-orchestrator/evals/partial_tests/README.md →
skills/tracelens-analysis-orchestrator/evals/partial_tests/eval_utils/semantic_purity_aggregate.py →
skills/tracelens-analysis-orchestrator/evals/partial_tests/generate_gold_ref.sh →
skills/tracelens-analysis-orchestrator/evals/partial_tests/partial_test_cases.csv →
skills/tracelens-analysis-orchestrator/evals/partial_tests/run_partial_tests.sh →
skills/tracelens-analysis-orchestrator/evals/skills/eval-post-processing/SKILL.md →
skills/tracelens-analysis-orchestrator/evals/skills/eval-post-processing/reference.md →
skills/tracelens-analysis-orchestrator/evals/skills/eval-post-processing/run_post_processing.py →
skills/tracelens-analysis-orchestrator/evals/skills/quality-llm-eval/SKILL.md →
skills/tracelens-analysis-orchestrator/evals/skills/quality-llm-eval/reference.md →
skills/tracelens-analysis-orchestrator/evals/skills/workflow-llm-eval/SKILL.md →
skills/tracelens-analysis-orchestrator/evals/skills/workflow-llm-eval/reference.md →
skills/tracelens-analysis-orchestrator/reference.md →
skills/tracelens-analysis-orchestrator/templates/analysis_template.md →
skills/tracelens-analysis-orchestrator/templates/sub_agent_spec.md →
staging/rocm-doctor/SKILL.md →
staging/rocm-doctor/evals/evals.json →
staging/rocm-doctor/reference.md →
staging/rocm-doctor/skill-card.md →
walkthroughs/hyperloom-workload-optimizer.md →
walkthroughs/lemonade-router-builder.md →
walkthroughs/local-ai-app-integration.md →
walkthroughs/local-ai-use.md →
walkthroughs/magpie-kernel-evaluator.md →
walkthroughs/serving-llms-on-epyc.md →
.github/scripts/federate_skills.py
− removed · + added
--- before +++ after @@ -0,0 +1,1131 @@ +#!/usr/bin/env -S uv run --quiet +# /// script +# requires-python = ">=3.10" +# dependencies = ["pyyaml>=6.0"] +# /// +"""Vendor skills from the external repositories declared in `.github/federation.json`. + +Each entry in that file names a GitHub repo, the branch to track, and the +exact path of every skill folder to vendor from it. The branch defaults to +`main`. It can also be a release pattern such as `release/*`, which tracks +the matching branch with the highest version, release candidates included +(see `federation_branches.py`). Tags and commits cannot be tracked: a source +always follows a branch its owners merge to, and changing which one is a +reviewed edit to `.github/federation.json`. + +For each declared skill, the script: + +1. Resolves the source's branch (picking the newest release branch for a + pattern) and shallow-clones the repo at it into a temp directory, using + sparse-checkout so only the declared skill paths are fetched. +2. Hashes the upstream skill folder and compares it against the hash + recorded in the vendored copy's `.federated.json`. A skill whose + upstream contents are unchanged is left byte-for-byte as it is on + disk, so a run that finds no upstream change produces no diff at all + and therefore no pull request. If a skill is re-vendored anyway and + the resulting files match the copy already on disk, the previous + marker is restored, because a diff consisting only of a commit and a + hash is noise. Deleting a marker forces that skill to be re-vendored. +3. Copies changed skill folders into `skills/<name>/` as a mirror of + upstream, `evals/` included. Anything the source repo does not ship is + removed. Files larger than `MAX_FILE_BYTES` (test archives, traces) are + not vendored: they are left out of the copy and of the content hash, and + named in the run log and the pull request body. The one file kept when + upstream lacks it is `evals/machine.yml` (`LOCAL_FALLBACK_FILES`). +3b. Optionally vendors the skill under a different local catalog name (the + `as:` field on a skill entry). Federated skills follow a + `<projectrepo>-<skill>` naming convention in this catalog (e.g. the + `analysis-orchestrator` skill from TraceLens is vendored as + `tracelens-analysis-orchestrator`), so the local folder, marketplace + entry, and the SKILL.md `name` frontmatter are all set to the `as:` + value. The upstream folder name is still used to locate the skill in + its source repo. +4. Writes `.federated.json` inside each copy with the source repo, the + tracked branch (plus the branch it resolved to, for a pattern), the + resolved commit, and the content hash, so we can tell + vendored skills apart from skills authored in this repo and detect the + next real upstream change. +5. Rewrites relative markdown links that point outside the copied skill + folder (e.g. `examples/foo.yaml`, `docs/bar.md`) into absolute + github.com URLs pinned to the imported commit, so the offline link + checker doesn't flag them as missing local files. Links to files that + were actually copied into the skill folder are left untouched. +6. Synthesizes a minimal `skill-card.md` (Description, Owner, License) + from the source metadata when the upstream copy doesn't already ship + one, so the imported skill satisfies the card validation gate (see + docs/skill-requirements.md). + +The marketplace manifests are never edited here. Whether a skill ships in +the bundle is decided by hand in `.claude-plugin/marketplace.json`. + +Nothing is ever deleted here. A vendored skill that is no longer declared +in `.github/federation.json` is reported and left alone; removing it is a +deliberate pull request by a maintainer. + +Usage: + uv run .github/scripts/federate_skills.py # vendor changed skills + uv run .github/scripts/federate_skills.py --check-catalog # validate the file + uv run .github/scripts/federate_skills.py --only tracelens-analysis-orchestrator + +The `--only` flag (repeatable) restricts the run to the named *local* +skill folder(s) (the `as:` name when one is set); other skills in the +catalog are left untouched. + +`--summary-json PATH` writes a machine-readable record of the run +(including a ready-made pull request title and body) for the calling +workflow to consume. + +`--list-skills` prints the declared local skill names (after `--only`) as a +JSON array without cloning anything. + +The companion GitHub Actions workflow `federate-skills` runs this script +nightly and on demand: it lists the skills with `--list-skills`, then runs +once per skill with `--only`, so each bumped skill gets its own pull request. +""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import posixpath +import re +import shutil +import subprocess +import sys +import tempfile +from dataclasses import dataclass, field +from datetime import datetime, timezone +from pathlib import Path +from typing import Iterable + +import yaml + +sys.path.insert(0, str(Path(__file__).resolve().parent)) + +import federation_branches as branches # noqa: E402 + +REPO_ROOT = Path(__file__).resolve().parent.parent.parent +CATALOG_FILE = REPO_ROOT / ".github" / "federation.json" +SKILLS_DIR = REPO_ROOT / "skills" +MARKER_FILENAME = ".federated.json" +# Never part of a skill's content: these appear only in a working copy, and +# hashing them would make change detection depend on whether someone happened +# to run the tests before the importer. +IGNORED_DIR_NAMES = {"__pycache__", ".pytest_cache"} +# Larger upstream files stay upstream. 100KB limit. +MAX_FILE_BYTES = 100 * 1024 +# Kept from the catalog's copy when upstream does not ship them. `machine.yml` +# names the runners a skill's evals need, and the catalog's runner pool is not +# the product repo's, so the catalog may have to say it where upstream does +# not. When upstream does ship one, upstream's wins like any other file. +LOCAL_FALLBACK_FILES = ("evals/machine.yml",) +CARD_FILENAME = "skill-card.md" + +FRONTMATTER_RE = re.compile( + r"\A---\s*\n(?P<frontmatter>.*?)\n---\s*\n?(?P<body>.*)\Z", + re.DOTALL, +) +# The `name:` line inside a SKILL.md frontmatter block. Used to rewrite the +# frontmatter `name` when a skill is vendored under a different local name. +NAME_FIELD_RE = re.compile(r"(?m)^(?P<key>name[ \t]*:[ \t]*)(?P<value>.*)$") +# Inline markdown links and images: `[text](target)` / ``, +# with an optional `"title"` after the target. The `target` group captures +# everything up to whitespace or the closing paren. +MARKDOWN_LINK_RE = re.compile( + r"(?P<prefix>!?\[[^\]]*\]\()(?P<target>[^)\s]+)(?P<suffix>(?:\s+\"[^\"]*\")?\))" +) +# Anything with an explicit URI scheme (https://, mailto:, etc.). +URI_SCHEME_RE = re.compile(r"^[a-zA-Z][a-zA-Z0-9+.-]*:") +# Marketplace descriptions are read by humans browsing the catalog; truncate +# very long SKILL.md descriptions so the listing stays readable. The full +# description is still available in the vendored SKILL.md. +MARKETPLACE_DESCRIPTION_MAX = 320 + +REPO_RE = re.compile(r"^[A-Za-z0-9._-]+/[A-Za-z0-9._-]+$") +SOURCE_KEYS = {"repo", "license", "branch", "skills"} +SKILL_KEYS = {"path", "as", "marketplace_description"} +# Keys that would pin a source to something other than a branch. They are +# rejected with a pointed message rather than ignored, so an entry that tries +# to track a tag or commit fails loudly instead of silently tracking `main`. +PINNING_KEYS = {"ref", "tag", "commit", "rev", "revision"} + + +@dataclass +class SkillSpec: + """One skill folder to vendor, addressed by its full path in the source repo.""" + + path: str + local_name: str | None = None + marketplace_description_override: str | None = None + + @property + def folder(self) -> str: + """Upstream folder name (the last path segment).""" + return posixpath.basename(self.path) + + @property + def dest_name(self) -> str: + """Local catalog name: the `as:` override, or the upstream folder.""" + return self.local_name or self.folder + + +@dataclass +class Source: + repo: str + license: str + skills: list[SkillSpec] = field(default_factory=list) + # As declared: a branch name, or a pattern such as `release/*`. + branch: str = branches.DEFAULT_BRANCH + + @property + def name(self) -> str: + """Stable slug for the source, derived from `owner/repo`.""" + return re.sub(r"[^a-z0-9]+", "-", self.repo.lower()).strip("-") + + +@dataclass +class ImportResult: + source: Source + folder: str + path: str + commit: str + updated: bool + # The branch actually cloned: `source.branch` itself, or the newest + # release branch it matched. + branch: str = branches.DEFAULT_BRANCH + skill_description: str = "" + marketplace_description: str = "" + # Upstream files over `MAX_FILE_BYTES`, relative to the skill folder. + omitted: list[str] = field(default_factory=list) + + @property + def short_commit(self) -> str: + return self.commit[:7] + + +def parse_federation(catalog: Path) -> list[Source]: + """Parse and validate `.github/federation.json`. + + Unknown keys are rejected rather than ignored: the file is hand-edited by + contributors registering a skill, and a typo that silently vendors the + wrong thing (or nothing) is worse than a failed run. + """ + if not catalog.exists(): + raise FileNotFoundError(f"Federation file not found: {catalog}") + try: + data = json.loads(catalog.read_text(encoding="utf-8")) + except json.JSONDecodeError as exc: + raise ValueError(f"{catalog} is not valid JSON: {exc}") from None + if not isinstance(data, dict): + raise ValueError(f"{catalog} must contain a JSON object.") + raw_sources = data.get("sources") + if not isinstance(raw_sources, list) or not raw_sources: + raise ValueError(f"{catalog} must define a non-empty `sources` array.") + + sources: list[Source] = [] + for idx, raw in enumerate(raw_sources): + where = f"sources[{idx}]" + if not isinstance(raw, dict): + raise ValueError(f"{where} must be an object.") + pinning = PINNING_KEYS & set(raw) + if pinning: + raise ValueError( + f"{where} sets {sorted(pinning)}, but federated sources track a " + "branch, never a tag or commit. Use `branch` instead (e.g. " + f"{branches.DEFAULT_BRANCH!r} or 'release/*'), or leave it out " + f"to track {branches.DEFAULT_BRANCH!r}." + ) + unknown = set(raw) - SOURCE_KEYS + if unknown: + raise ValueError( + f"{where} has unknown key(s) {sorted(unknown)}; expected " + f"{sorted(SOURCE_KEYS)}." + ) + repo = raw.get("repo") + if not isinstance(repo, str) or not REPO_RE.match(repo): + raise ValueError( + f'{where}.repo must be a GitHub "<owner>/<repo>" string, got ' + f"{repo!r}." + ) + branch = branches.validate_branch(raw.get("branch"), f"{where}.branch") + + skills_raw = raw.get("skills") + if not isinstance(skills_raw, list) or not skills_raw: + raise ValueError( + f"{where} ({repo}) must list at least one skill under `skills`." + ) + + skills: list[SkillSpec] = [] + for sk_idx, sk in enumerate(skills_raw): + sk_where = f"{where}.skills[{sk_idx}]" + if not isinstance(sk, dict): + raise ValueError( + f"{sk_where} must be an object with a `path` key. Every " + "skill in a repo is declared individually." + ) + unknown = set(sk) - SKILL_KEYS + if unknown: + raise ValueError( + f"{sk_where} has unknown key(s) {sorted(unknown)}; expected " + f"{sorted(SKILL_KEYS)}." + ) + path = sk.get("path") + if not isinstance(path, str) or not path.strip("/"): + raise ValueError( + f"{sk_where}.path must be the skill folder's path inside " + f'{repo}, e.g. "skills/my-skill".' + ) + path = path.replace("\\", "/").strip("/") + if ".." in path.split("/"): + raise ValueError(f"{sk_where}.path must not contain '..': {path!r}") + local_name = sk.get("as") + if local_name is not None and ( + not isinstance(local_name, str) or "/" in local_name + ): + raise ValueError( + f"{sk_where}.as must be a plain local folder name, got " + f"{local_name!r}." + ) + skills.append( + SkillSpec( + path=path, + local_name=local_name, + marketplace_description_override=sk.get("marketplace_description"), + ) + ) + + sources.append( + Source( + repo=repo, + license=raw.get("license") or "UNKNOWN", + skills=skills, + branch=branch, + ) + ) + return sources + + +def run(cmd: list[str], cwd: Path | None = None) -> str: + """Run a command, raise on failure, return stdout.""" + result = subprocess.run( + cmd, + cwd=cwd, + check=True, + text=True, + capture_output=True, + ) + return result.stdout.strip() + + +def remote_branches(repo: str) -> list[str]: + """Names of every branch on `repo`, read without cloning.""" + out = run(["git", "ls-remote", "--heads", f"https://github.com/{repo}.git"]) + prefix = "refs/heads/" + names = [] + for line in out.splitlines(): + _, _, ref = line.partition("\t") + if ref.startswith(prefix): + names.append(ref[len(prefix) :]) + return names + + +def resolve_branch(source: Source) -> str: + """The branch to clone for `source`: its own, or its newest release branch.""" + if not branches.is_pattern(source.branch): + return source.branch + resolved = branches.latest_matching(source.branch, remote_branches(source.repo)) + if resolved is None: + raise ValueError( + f"{source.repo} has no branch matching {source.branch!r} with a " + "version number (such as 0.13 or 0.13-rc1) in place of the '*'." + ) + return resolved + + +def shallow_clone(repo: str, branch: str, sub_paths: Iterable[str], dest: Path) -> str: + """Sparse + blobless clone of `repo` at `branch`, restricted to `sub_paths`. + + Returns the resolved commit SHA. Sparse-checkout avoids pulling the + whole repo when only a few sub-trees are needed (the AMD-AGI/Apex tree + is large; we only want `tools/skills`). + + Line endings are forced to LF so the checkout is byte-identical + everywhere: the content hashes computed from it drive change detection, + and they must mean the same thing on a maintainer's Windows machine and + on a Linux runner. + + Background maintenance is disabled because it outlives the clone: a + blobless clone hands commit-graph writing to a detached process that + keeps creating files under `.git/objects/info/`, which then races the + removal of the temp directory this clone lives in. + """ + url = f"https://github.com/{repo}.git" + run( + [ + "git", + "-c", + "gc.auto=0", + "-c", + "maintenance.auto=false", + "-c", + "fetch.writeCommitGraph=false", + "clone", + "--filter=blob:none", + "--sparse", + "--no-checkout", + "--single-branch", + "--branch", + branch, + url, + str(dest), + ] + ) + run(["git", "config", "core.autocrlf", "false"], cwd=dest) + run(["git", "config", "core.eol", "lf"], cwd=dest) + run(["git", "sparse-checkout", "set", "--cone", *sub_paths], cwd=dest) + run(["git", "checkout", branch], cwd=dest) + return run(["git", "rev-parse", "HEAD"], cwd=dest) + + +def content_hash(root: Path, exclude: Iterable[str] = ()) -> str: + """Hash every file under `root` (relative paths and bytes). + + Change detection compares this against the hash stored in the vendored + copy's marker, so a skill is re-vendored when its upstream folder's + contents change, not merely when its source repo gets some unrelated + commit. Without that distinction every commit to a large product repo + would churn the vendored copies (the marker and the commit-pinned links) + and open a pull request with no substance in it. + + Files are fed to the digest ordered by their POSIX relative path rather + than by sorting `Path` objects, because `Path` comparison is + case-insensitive on Windows: `sorted()` puts `SKILL.md` after `agents/` + on a maintainer's machine and before it on a Linux runner, which would + hash identical files to different digests. + + Files over `MAX_FILE_BYTES` are left out, since they are never vendored. + `exclude` names relative paths to leave out of the digest. + """ + skipped = set(exclude) + entries = sorted( + ( + (path.relative_to(root).as_posix(), path) + for path in root.rglob("*") + if path.is_file() and path.stat().st_size <= MAX_FILE_BYTES + ), + key=lambda entry: entry[0], + ) + digest = hashlib.sha256() + for rel, path in entries: + if rel in skipped or IGNORED_DIR_NAMES.intersection(rel.split("/")[:-1]): + continue + digest.update(rel.encode("utf-8")) + digest.update(b"\0") + digest.update(hashlib.sha256(path.read_bytes()).digest()) + return digest.hexdigest() + + +def list_repo_files(clone_dir: Path, commit: str) -> set[str]: + """Return every tracked path in the repo at `commit` (POSIX style). + + Uses `git ls-tree`, which reads tree objects only, so it works even on a + blob-filtered, sparse checkout without fetching file contents. + """ + out = run(["git", "ls-tree", "-r", "--name-only", commit], cwd=clone_dir) + return {line.strip() for line in out.splitlines() if line.strip()} + + +def _should_skip_target(target: str) -> bool: + """True for targets that are not repo-relative file paths. + + Skips absolute URLs (`https://...`), scheme links (`mailto:`), in-page + anchors (`#section`), root-absolute paths (`/foo`), and protocol-relative + URLs (`//host/...`). + """ + t = target.strip() + if not t: + return True + if t[0] in "#/": + return True + if URI_SCHEME_RE.match(t): + return True + return False + + +def rewrite_external_references( + skill_dir: Path, + repo_skill_path: str, + repo_files: set[str], + repo: str, + commit: str, + log: list[str], + omitted: Iterable[str] = (), +) -> None: + """Rewrite relative links that escape the skill folder into GitHub URLs. + + A vendored skill often links to files that live elsewhere in its source + repo (e.g. `examples/foo.yaml`, `docs/bar.md`). Those paths don't exist + inside the copied skill folder, so the offline link checker flags them as + missing files. For each such link we point at the upstream repo on + github.com, pinned to the imported `commit`. + + Links that resolve to a file actually present inside the skill folder + (e.g. `reference.md`) are left untouched so they keep working locally. + `omitted` names files inside the skill (relative to it) that were not + copied, so links to them are rewritten too. + """ + repo_skill_path = repo_skill_path.strip("/") + not_copied = {f"{repo_skill_path}/{rel}" for rel in omitted} + + def replace_in(text: str, repo_dir: str) -> tuple[str, list[tuple[str, str]]]: + rewrites: list[tuple[str, str]] = [] + + def _sub(match: re.Match[str]) -> str: + target = match.group("target") + if _should_skip_target(target): + return match.group(0) + path_part, sep, anchor = target.partition("#") + frag = sep + anchor if sep else "" + if not path_part: + return match.group(0) + + # Resolve the link as the markdown spec would (relative to the + # file's folder in the repo), then relative to the skill root and + # the repo root, since skill docs often write paths that way. + file_rel = posixpath.normpath(posixpath.join(repo_dir, path_part)) + skill_rel = posixpath.normpath(posixpath.join(repo_skill_path, path_part)) + root_rel = posixpath.normpath(path_part) + + within_skill = file_rel == repo_skill_path or file_rel.startswith( + repo_skill_path + "/" + ) + if within_skill and file_rel in repo_files and file_rel not in not_copied: + # Genuine intra-skill link; it was copied, leave it local. + return match.group(0) + + if file_rel in repo_files: + chosen = file_rel + elif skill_rel in repo_files: + chosen = skill_rel + else: + chosen = root_rel + + # Can't map something that points above the repo root. + if chosen.startswith("..") or chosen.startswith("/"): + return match.group(0) + + url = f"https://github.com/{repo}/blob/{commit}/{chosen}{frag}" + rewrites.append((target, url)) + return f"{match.group('prefix')}{url}{match.group('suffix')}" + + return MARKDOWN_LINK_RE.sub(_sub, text), rewrites + + for md_path in sorted(skill_dir.rglob("*.md")): + original = md_path.read_text(encoding="utf-8") + md_dir = md_path.parent.relative_to(skill_dir).as_posix() + updated, rewrites = replace_in( + original, posixpath.normpath(posixpath.join(repo_skill_path, md_dir)) + ) + if updated != original: + md_path.write_text(updated, encoding="utf-8") + rel = md_path.relative_to(skill_dir.parent).as_posix() + for old, new in rewrites: + log.append(f" [{rel}] {old} -> {new}") + + +def parse_frontmatter(text: str) -> dict: + match = FRONTMATTER_RE.match(text) + if not match: + return {} + try: + data = yaml.safe_load(match.group("frontmatter")) + except yaml.YAMLError: + return {} + return data if isinstance(data, dict) else {} + + +def truncate_description(text: str, limit: int = MARKETPLACE_DESCRIPTION_MAX) -> str: + text = " ".join(text.split()) + if len(text) <= limit: + return text + # Cut at the last sentence boundary that still fits. + cut = text[: limit - 1] + last_period = cut.rfind(". ") + if last_period >= int(limit * 0.6): + return cut[: last_period + 1] + return cut.rstrip(",;:") + "…" + + +def read_marker(skill_dir: Path) -> dict: + """Parse a vendored skill's `.federated.json`, or return {} if absent. + + A corrupt marker reads as {} so the next run re-vendors the skill and + rewrites the marker cleanly. + """ + marker = skill_dir / MARKER_FILENAME + if not marker.exists(): + return {} + try: + data = json.loads(marker.read_text(encoding="utf-8")) + except json.JSONDecodeError: + return {} + return data if isinstance(data, dict) else {} + + +def find_federated_skills() -> dict[str, dict]: + """Return {skill_folder_name: parsed marker JSON} for every existing + skill that has a `.federated.json` marker.""" + found: dict[str, dict] = {} + if not SKILLS_DIR.exists(): + return found + for skill_dir in SKILLS_DIR.iterdir(): + if not skill_dir.is_dir() or skill_dir.name.startswith("."): + continue + if (skill_dir / MARKER_FILENAME).exists(): + found[skill_dir.name] = read_marker(skill_dir) + return found + + +def is_up_to_date( + marker: dict, + source: Source, + spec: SkillSpec, + upstream_hash: str, +) -> bool: + """True when the vendored copy already matches this upstream folder. + + The repo and path are compared alongside the hash because they change + what the vendored copy should contain: markdown links are rewritten to + absolute URLs under the source repo, so re-pointing a skill at a + different repo or path has to re-vendor even if the files are identical. + The declared branch is compared rather than the one a pattern resolved + to, so a new release branch with the same skill contents is not a bump. + """ + return ( + bool(upstream_hash) + and marker.get("content_hash") == upstream_hash + and marker.get("repo") == source.repo + and marker.get("path") == spec.path + and marker.get("ref") == source.branch + ) + + +def copy_skill(src: Path, dest: Path) -> list[str]: + """Mirror the upstream skill folder into `dest`. + + Anything upstream does not ship is removed, so a re-import is also how + an upstream deletion propagates, except for `LOCAL_FALLBACK_FILES`, which + are kept when upstream does not ship them. Files over `MAX_FILE_BYTES` + are not copied; their paths, relative to the skill, are returned. + """ + kept = { + rel: (dest / rel).read_bytes() + for rel in LOCAL_FALLBACK_FILES + if (dest / rel).is_file() and not (src / rel).is_file() + } + if dest.is_dir(): + shutil.rmtree(dest) + elif dest.exists(): + dest.unlink() + + omitted: list[str] = [] + + def ignore(directory: str, names: list[str]) -> set[str]: + large = set() + for name in names: + path = Path(directory) / name + if path.is_file() and path.stat().st_size > MAX_FILE_BYTES: + large.add(name) + omitted.append(path.relative_to(src).as_posix()) + return large + + shutil.copytree(src, dest, ignore=ignore) + for rel, data in kept.items(): + (dest / rel).parent.mkdir(parents=True, exist_ok=True) + (dest / rel).write_bytes(data) + return sorted(omitted) + + +def write_marker( + skill_dir: Path, + source: Source, + branch: str, + commit: str, + relative_path: str, + upstream_hash: str, +) -> None: + marker = { + "source": source.name, + "repo": source.repo, + "ref": source.branch, + } + if branch != source.branch: + marker["resolved_ref"] = branch + marker |= { + "commit": commit, + "path": relative_path, + "license": source.license, + "content_hash": upstream_hash, + "imported_at": datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ"), + } + (skill_dir / MARKER_FILENAME).write_text( + json.dumps(marker, indent=2) + "\n", encoding="utf-8" + ) + + +def write_card(skill_dir: Path, source: Source, description: str) -> None: + """Write a minimal skill-card.md unless the upstream copy shipped one. + + Federated skills are copied wholesale (`copy_skill` does rmtree + + copytree), so any card authored here would be wiped on re-import. When + upstream doesn't provide a card, synthesize one from the source metadata + so the imported skill still satisfies the card validation gate. + """ + card = skill_dir / CARD_FILENAME + if card.exists(): + return + owner_org = source.repo.split("/")[0] + license_text = source.license or f"See [{source.repo}](https://github.com/{source.repo})" + card.write_text( + "# Skill Card\n\n" + "## Description\n\n" + f"{description}\n\n" + "## Owner\n\n" + f"{owner_org} (federated from " + f"[{source.repo}](https://github.com/{source.repo}))\n\n" + "## License\n\n" + f"{license_text}\n", + encoding="utf-8", + ) + + +def rewrite_skill_name(skill_dir: Path, new_name: str, log: list[str]) -> None: + """Set the SKILL.md frontmatter `name` to `new_name`. + + Upstream ships its own `name` (e.g. `analysis-orchestrator`), but this + repo's validator requires the frontmatter `name` to match the skill's + directory name. When a skill is vendored under a different local name + (the `as:` field), rewrite the frontmatter so the imported copy stays + valid without hand-editing after every refresh. + """ + skill_md = skill_dir / "SKILL.md" + text = skill_md.read_text(encoding="utf-8") + match = FRONTMATTER_RE.match(text) + if not match: + return + fm_start, fm_end = match.span("frontmatter") + frontmatter = match.group("frontmatter") + + new_frontmatter, count = NAME_FIELD_RE.subn( + lambda m: f"{m.group('key')}{new_name}", frontmatter, count=1 + ) + if count == 0: + # No `name:` line to rewrite; prepend one so the copy stays valid. + new_frontmatter = f"name: {new_name}\n{frontmatter}" + if new_frontmatter == frontmatter: + return + skill_md.write_text(text[:fm_start] + new_frontmatter + text[fm_end:], encoding="utf-8") + log.append(f" [SKILL.md] name -> {new_name}") + + +def import_source( + source: Source, + log: list[str], +) -> list[ImportResult]: + results: list[ImportResult] = [] + # A failed cleanup must not fail the run: everything of value has already + # been copied out by then, and leaving a temp directory behind is cheaper + # than a red nightly job. + with tempfile.TemporaryDirectory( + prefix="amd-skills-import-", ignore_cleanup_errors=True + ) as tmpdir: + tmp_path = Path(tmpdir) / source.name + branch = resolve_branch(source) + if branch != source.branch: + log.append(f"[{source.name}] {source.branch} resolved to {branch}") + log.append(f"[{source.name}] cloning {source.repo}@{branch}") + commit = shallow_clone( + source.repo, branch, [spec.path for spec in source.skills], tmp_path + ) + log.append(f"[{source.name}] resolved to commit {commit}") + repo_files = list_repo_files(tmp_path, commit) + + for spec in source.skills: + src_skill = tmp_path / spec.path + if not src_skill.is_dir(): + raise FileNotFoundError( + f"Skill path {spec.path!r} not found in " + f"{source.repo}@{branch}." + ) + skill_md = src_skill / "SKILL.md" + if not skill_md.exists(): + raise FileNotFoundError( + f"Skill {spec.path!r} from {source.repo} has no SKILL.md." + ) + + dest_name = spec.dest_name + dest_skill = SKILLS_DIR / dest_name + marker = read_marker(dest_skill) + upstream_hash = content_hash(src_skill) + if is_up_to_date(marker, source, spec, upstream_hash): + log.append( + f"[{source.name}] skills/{dest_name} is up to date " + f"(unchanged upstream); left untouched" + ) + results.append( + ImportResult( + source=source, + folder=dest_name, + path=spec.path, + commit=marker.get("commit", commit), + updated=False, + branch=branch, + ) + ) + continue + + frontmatter = parse_frontmatter(skill_md.read_text(encoding="utf-8")) + description = frontmatter.get("description") or "" + if not isinstance(description, str) or not description.strip(): + raise ValueError( + f"Skill {spec.path!r} from {source.repo} has no " + "non-empty `description` in its SKILL.md frontmatter." + ) + marketplace_description = ( + spec.marketplace_description_override + or truncate_description(description) + ) + + renamed = f" (as {dest_name})" if dest_name != spec.folder else "" + log.append( + f"[{source.name}] vendoring {spec.path} -> " + f"skills/{dest_name}{renamed}" + ) + marker_path = dest_skill / MARKER_FILENAME + previous_marker = ( + marker_path.read_bytes() if marker_path.is_file() else None + ) + previous_content = ( + content_hash(dest_skill, exclude=[MARKER_FILENAME]) + if dest_skill.is_dir() + else None + ) + + omitted = copy_skill(src_skill, dest_skill) + for rel in omitted: + log.append( + f"[{source.name}] skipped {spec.path}/{rel} " + f"(over {MAX_FILE_BYTES // 1024} KB)" + ) + write_marker(dest_skill, source, branch, commit, spec.path, upstream_hash) + write_card(dest_skill, source, marketplace_description) + rewrite_skill_name(dest_skill, dest_name, log) + rewrite_external_references( + dest_skill, + spec.path, + repo_files, + source.repo, + commit, + log, + omitted, + ) + + # The marker is bookkeeping, not content. If re-vendoring produced + # the same files as the copy already on disk, put the old marker + # back: a pull request whose entire diff is a hash and a timestamp + # tells a reviewer nothing. A marker still naming the branch the + # source used to track is kept out of that, or it would never move. + if ( + previous_marker is not None + and marker.get("ref") == source.branch + and previous_content + == content_hash(dest_skill, exclude=[MARKER_FILENAME]) + ): + marker_path.write_bytes(previous_marker) + log.append( + f"[{source.name}] skills/{dest_name} re-vendored to " + f"identical content; marker left at " + f"{marker.get('commit', '?')[:7]}" + ) + results.append( + ImportResult( + source=source, + folder=dest_name, + path=spec.path, + commit=marker.get("commit", commit), + updated=False, + branch=branch, + ) + ) + continue + + results.append( + ImportResult( + source=source, + folder=dest_name, + path=spec.path, + commit=commit, + updated=True, + branch=branch, + skill_description=description.strip(), + marketplace_description=marketplace_description, + omitted=omitted, + ) + ) + return results + + +def report_undeclared( + declared: set[str], + existing: dict[str, dict], + log: list[str], +) -> None: + """Note vendored skills that no source declares any more. + + They are reported rather than deleted: removing a shipped skill is a + decision for a maintainer's pull request, not a side effect of a + scheduled run. + """ + for name, marker in sorted(existing.items()): + if name in declared: + continue + log.append( + f"[undeclared] skills/{name} is vendored (from " + f"{marker.get('repo', '?')}) but no longer declared in " + f"{CATALOG_FILE.name}; remove it in a pull request if that is " + "intended" + ) + + +def commit_url(repo: str, commit: str) -> str: + return f"https://github.com/{repo}/commit/{commit}" + + +def pr_title(updated: list[ImportResult]) -> str: + """Compose the pull request title for a run. + + A single bumped skill — the common nightly case — reads + "Bump `<skill>` to `<short commit>`". No bumps means no pull request, + hence no title. + """ + if not updated: + return "" + if len(updated) == 1: + result = updated[0] + return f"Bump `{result.folder}` to `{result.short_commit}`" + return f"Bump {len(updated)} federated skills" + + +def pr_body( + updated: list[ImportResult], + unchanged: list[ImportResult], +) -> str: + lines = [ + "Automated federation refresh driven by `.github/federation.json`.", + "", + "Each source is tracked at the branch its entry names " + f"(`{branches.DEFAULT_BRANCH}` unless set), and a skill is re-vendored " + "only when the contents of its upstream folder change.", + ] + if updated: + lines += ["", "**Bumped**", ""] + for result in sorted(updated, key=lambda r: r.folder): + lines.append( + f"- `{result.folder}` to " + f"[`{result.short_commit}`]" + f"({commit_url(result.source.repo, result.commit)}) " + f"from `{result.source.repo}/{result.path}` " + f"on `{result.branch}`" + + ( + f" (newest `{result.source.branch}`)" + if result.branch != result.source.branch + else "" + ) + ) + omitted = [ + (result, rel) for result in sorted(updated, key=lambda r: r.folder) + for rel in result.omitted + ] + if omitted: + lines += [ + "", + f"**Not vendored** (over {MAX_FILE_BYTES // 1024} KB, left upstream)", + "", + ] + for result, rel in omitted: + lines.append(f"- `{result.path}/{rel}`") + if unchanged: + lines += ["", "**Unchanged**", ""] + for result in sorted(unchanged, key=lambda r: r.folder): + lines.append(f"- `{result.folder}`") + lines += [ + "", + "Each vendored skill carries a `.federated.json` marker recording the " + "source repo, the tracked branch, the resolved commit, and the content " + "hash used for change detection.", + ] + return "\n".join(lines) + "\n" + + +def build_summary(results: list[ImportResult]) -> dict: + """Machine-readable record of the run for the calling workflow.""" + updated = [r for r in results if r.updated] + unchanged = [r for r in results if not r.updated] + return { + "changed": bool(updated), + "title": pr_title(updated), + "body": pr_body(updated, unchanged), + "updated": [ + { + "skill": r.folder, + "repo": r.source.repo, + "path": r.path, + "branch": r.branch, + "commit": r.commit, + "short_commit": r.short_commit, + } + for r in sorted(updated, key=lambda r: r.folder) + ], + "unchanged": sorted(r.folder for r in unchanged), + } + + +def main(argv: list[str] | None = None) -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--catalog", + type=Path, + default=CATALOG_FILE, + help=f"Path to the federation file (default: {CATALOG_FILE}).", + ) + parser.add_argument( + "--check-catalog", + action="store_true", + help=( + "Validate the federation file and print what it declares, " + "without cloning anything." + ), + ) + parser.add_argument( + "--only", + action="append", + metavar="SKILL", + help=( + "Vendor only the named skill folder (repeatable). Skills not " + "named here are left untouched." + ), + ) + parser.add_argument( + "--list-skills", + action="store_true", + help=( + "Print the local names of the declared skills (after --only) as a " + "JSON array on stdout, without cloning anything. The workflow uses " + "it to fan out one job, and one pull request, per skill." + ), + ) + parser.add_argument( + "--summary-json", + type=Path, + metavar="PATH", + help="Write a JSON summary of the run (including a PR title and body).", + ) + args = parser.parse_args(argv) + + sources = parse_federation(args.catalog) + + if args.check_catalog: + seen: set[str] = set() + for source in sources: + for spec in source.skills: + if spec.dest_name in seen: + raise ValueError( + f"Skill name collision: {spec.dest_name!r} is declared " + f"more than once in {args.catalog}." + ) + seen.add(spec.dest_name) + print( + f"{source.repo}@{source.branch} {spec.path} " + f"-> skills/{spec.dest_name}" + ) + print("") + print(f"{args.catalog} is valid: {len(seen)} skill(s) declared.") + return 0 + + only = set(args.only or []) + if only: + known = {spec.dest_name for source in sources for spec in source.skills} + unknown = only - known + if unknown: + raise ValueError( + "--only names skill(s) not present in the catalog: " + + ", ".join(sorted(unknown)) + ) + for source in sources: + source.skills = [s for s in source.skills if s.dest_name in only] + sources = [source for source in sources if source.skills] + + if args.list_skills: + names: list[str] = [] + for source in sources: + for spec in source.skills: + if spec.dest_name in names: + raise ValueError( + f"Skill name collision: {spec.dest_name!r} is declared " + f"more than once in {args.catalog}." + ) + names.append(spec.dest_name) + # Each per-skill run passes --only, which skips the undeclared report, + # so this is the one place it still gets made. It goes to stderr to + # keep stdout a single JSON document. + if not only: + undeclared: list[str] = [] + report_undeclared(set(names), find_federated_skills(), undeclared) + for line in undeclared: + print(line, file=sys.stderr) + print(json.dumps(names)) + return 0 + + log: list[str] = [] + declared: set[str] = set() + all_results: list[ImportResult] = [] + + SKILLS_DIR.mkdir(exist_ok=True) + existing_federated = find_federated_skills() + + for source in sources: + for spec in source.skills: + if spec.dest_name in declared: + raise ValueError( + f"Skill name collision: {spec.dest_name!r} is declared by " + f"more than one source in {args.catalog}." + ) + declared.add(spec.dest_name) + all_results.extend(import_source(source, log)) + + # With --only the skills the caller didn't name are deliberately ignored, + # so they would all look undeclared; skip the report in that case. + if not only: + report_undeclared(declared, existing_federated, log) + + for line in log: + print(line) + + summary = build_summary(all_results) + if args.summary_json: + args.summary_json.parent.mkdir(parents=True, exist_ok=True) + args.summary_json.write_text( + json.dumps(summary, indent=2) + "\n", encoding="utf-8" + ) + + print("") + print(f"Bumped: {len(summary['updated'])} skill(s)") + print(f"Already up to date: {len(summary['unchanged'])} skill(s)") + if summary["title"]: + print(f"Pull request title: {summary['title']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main())
Full technical diff · 201 changed fields
changed /files/.claude-plugin~1marketplace.json/sha256
"7f832b8a3c4898e1453f60b461b79fb8d4c0e8889d930e0daf12af3c1e2ff938"
"ecff6eacb9367066be2b7dcbf31d962943a6d012b408265317d89f404678e064"
removed /files/.codex-plugin~1assets~1composer-icon.png
{
"sha256": "671ee8519686294b03b4995bb3ba99045004bbccd328968bf38c30b3cc96c312",
"size": 16453
}Field is absent
removed /files/.codex-plugin~1assets~1logo.png
{
"sha256": "671ee8519686294b03b4995bb3ba99045004bbccd328968bf38c30b3cc96c312",
"size": 16453
}Field is absent
changed /files/.codex-plugin~1plugin.json/sha256
"cbe68f54a64025845974c6d485a9b765a307f70548952b61be30b67e1835ac49"
"08213eda069ee496a17c663b941ca997407d543a9a49b92aa983dabca172600b"
changed /files/.codex-plugin~1plugin.json/size
1566
1476
changed /files/.cursor-plugin~1marketplace.json/sha256
"99532081705cd0bb6ede1c819eaeb90eacf1625bed16279cc13b4b6ad91e55a9"
"bf12a600d18e0f2650c3a8aa0f6d75f499e2c9ab3d445f44661582d28e64c03a"
added /files/.gitattributes
Field was absent
{
"sha256": "32fb19ff90af0d69e2ddcd712a66d2df0c5221c0914e00ff90eb8049d5b1201f",
"size": 133
}added /files/.github~1ISSUE_TEMPLATE~1product-repo-approval.yml
Field was absent
{
"sha256": "220b3b7c26f7cc979b0b784b7134234f403db286824112aea60bfa06570a7730",
"size": 1783
}added /files/.github~1federation.json
Field was absent
{
"sha256": "510e70ad11ccf5a7d3a5004fe4222860dd195e2db4f5ca107c5cfb1bb089bf7c",
"size": 2723
}removed /files/.github~1lychee.toml
{
"sha256": "d0d95d985f6e95069771a67ab688c968f17a64cbb62873205511defcb162783e",
"size": 1101
}Field is absent
changed /files/.github~1scripts~1check.sh/sha256
"f856faf80697412117658bcd0b0958e761ef87ff0c0f751d090a54da3d94e8f2"
"810ae94f028be37fd2344665ebe1ceaafe112385860f97c08568453fba467c6e"
changed /files/.github~1scripts~1check.sh/size
937
2150
added /files/.github~1scripts~1federate_skills.py
Field was absent
{
"sha256": "2ef60b3b35453bf11ec1d1453fe08bb5739438fabc09d6f5bc5b6f027b86b8da",
"size": 43413
}added /files/.github~1scripts~1federation_branches.py
Field was absent
{
"sha256": "5d8794825673901f2e7c52bb555d04cccec7f1aa6ea647a118f7a45fdae1532c",
"size": 3925
}added /files/.github~1scripts~1federation_guard.py
Field was absent
{
"sha256": "445d12e584512c25c88af7d6d9bc02bcd4b5905f1438aae12b6419b6c9a34894",
"size": 13262
}changed /files/.github~1scripts~1generate_codex_plugin.py/sha256
"8f05ffceb2290747ee8b8290a45b8bbbf6b85c349e81b07779bc3eba6f8dee31"
"bdadff31480c5ce8f236b994cf67fb0dca5ac2745db52c43da377d02d8faa7e1"
changed /files/.github~1scripts~1generate_codex_plugin.py/size
10540
10642
removed /files/.github~1scripts~1import_external_skills.py
{
"sha256": "7a5951a4ea66edf60505c9a9755e68dcff69eccac9400e07d28ed5aa69b69e25",
"size": 26302
}Field is absent
added /files/.github~1scripts~1record_skill_owner.py
Field was absent
{
"sha256": "e4fcbaa783588fe4c6120b3fa2d146d30a1be19580b0ed088923e8cf217df0f3",
"size": 5253
}removed /files/.github~1scripts~1select_evals.py
{
"sha256": "8a03b1967e6fd47b66cca3af879446a9bdfcb8f05957c32541c372cc0793b1d9",
"size": 7714
}Field is absent
removed /files/.github~1scripts~1sources.yml
{
"sha256": "2211ba8f95f807c8faf5dacd4914192204483785a340d3da83d961dc03261017",
"size": 2148
}Field is absent
added /files/.github~1scripts~1test_cli_install.py
Field was absent
{
"sha256": "90c76c0dbf0ed4f8148fcc751433c9634047e10fb97308b502f135c7ed6a4c35",
"size": 18989
}added /files/.github~1scripts~1test_federate_skills.py
Field was absent
{
"sha256": "08de2a560c7e6fb940348890d060dc95ffaeec584c9df0c8202e5a76b645c736",
"size": 24599
}added /files/.github~1scripts~1test_federation_guard.py
Field was absent
{
"sha256": "5154a007094db1dd247c3bf77af0037841a638796d0ed5baa98be073fd58a88e",
"size": 25059
}added /files/.github~1scripts~1test_record_skill_owner.py
Field was absent
{
"sha256": "b0d15aa79459e69b9f69c5f9f68ba43904891eaecd770b1cd9265e5794d14059",
"size": 3091
}added /files/.github~1scripts~1validate_marketplace.py
Field was absent
{
"sha256": "1e3461cfc7871193230df887c43bb7ad19cfd425dcf45b9ed50dd22bdbf31933",
"size": 7945
}removed /files/.github~1scripts~1validate_skills.py
{
"sha256": "612a81828d27b0851b0524c5470f320b407d6bafdbb9838f18541fa1fbd57e4b",
"size": 16160
}Field is absent
added /files/.github~1skill_owners.json
Field was absent
{
"sha256": "65b4be058acbd060b77491b8d8f12607a439550470d75e000c40ec1490e533d7",
"size": 1080
}added /files/.github~1workflows~1cli-install.yml
Field was absent
{
"sha256": "82ec9f6ea26a7f7ee8641b01936216588ec99808bc6b2c4cdcb420826a4685ec",
"size": 5182
}changed /files/.github~1workflows~1evals.yml/sha256
"29789a53e3fc7d6053db18343a839a518b4fdeec59606d4a6b85f53733f34244"
"effc21cabb537736a3b2d7daa48d164015b0f6ef09bb144f5a2ee231fbc9179a"
changed /files/.github~1workflows~1evals.yml/size
14467
9130
removed /files/.github~1workflows~1external-reference-check.yml
{
"sha256": "12e227c00d3f5e4b4a2b8f7b9b19c007d931926718f88c4ad4448721f177839b",
"size": 5664
}Field is absent
added /files/.github~1workflows~1federate-skills.yml
Field was absent
{
"sha256": "2be1f76b61f161bd71fc020eca76270920f76784a075df49ddba00be9dc1f5ed",
"size": 7127
}added /files/.github~1workflows~1federation-guard.yml
Field was absent
{
"sha256": "7a188c53b486f4b543dacb7b41181432824c63766ac7ef046db5798762b671c8",
"size": 12073
}removed /files/.github~1workflows~1import-external-skills.yml
{
"sha256": "4d778a0955e7ca14ea3a71c2c4ab063a86a49d90009c7136b74d9ebc5932c110",
"size": 3676
}Field is absent
added /files/.github~1workflows~1product-repo-approval.yml
Field was absent
{
"sha256": "e44ad4950dc1952a16ea276993e6b32ff715e53fe534ae61870b1a12b0adcaf4",
"size": 17815
}changed /files/.github~1workflows~1validate.yml/sha256
"af6371036fcd8fad65dbbcdc8a295345e3e7ff3435de78533b2384484fa89ffa"
"9b1c6c5d4c74f3a03452f61be6dc2e2c18265d859a1c1994f4eca5f3ea421797"
changed /files/.github~1workflows~1validate.yml/size
5443
3876
changed /files/.gitignore/sha256
"17adfe38c52e6903e14702363446bf175fbedd5ff75572c4c8f36e6a7a62f7e2"
"23ba88c5c1057a44a21f861c2e41592c33ef5135f9aa0138f6627e61a0b12c54"
changed /files/.gitignore/size
296
321
changed /files/CONTRIBUTING.md/sha256
"745800171cd5905772a64cea2420c1ed3bd5dfe571e5822b725d7f053652aa04"
"68012be70fc7e3e1a13b596c8d0f2773ac6b2fc419202054ada3464f284858bf"
changed /files/CONTRIBUTING.md/size
4434
7769
changed /files/README.md/sha256
"c6580828d9772b17aa14fcb5b5689e11bdb3f7603dbd69c6c43abe9cd003ac94"
"3646d3917859683b560e075d649312b59cd5f9976179476f80ed867d7e38fd8b"
changed /files/README.md/size
12647
16789
changed /files/docs~1evals.md/sha256
"2cbdc16348e2e44f54bbfc001a6f39daf02c180110a9b506b94f541ad2c77604"
"740024dce4ded4eca6ba9a2639d958ced6b4c4dde95b96b8ee5b529d814ddd11"
changed /files/docs~1evals.md/size
7394
8944
added /files/docs~1rocm-docs~1.readthedocs.yaml
Field was absent
{
"sha256": "0b25e1e87c43018ea2c41b95d83a3bc470575c7fc6a674be3f38ec18f4916af0",
"size": 194
}changed /files/docs~1rocm-docs~1catalog.md/sha256
"c8b8bc4d446513559327b425023aa455ae7f42b73cb9e5d1783c5031b6675d6a"
"c78dbcfa660c20c85ead1b7e4feb0a9fbe1f897e26e7dc34b36c9905b9487fbd"
changed /files/docs~1rocm-docs~1catalog.md/size
117
220
changed /files/docs~1rocm-docs~1conf.py/sha256
"775fd07c2cb9b1af57ac92c45709ec0174c1f41b60d1c86876e9f1e216214844"
"6823763f122edb4ee944fedb99d2f5d9a54ae373a69b6224bf7137f05f113e94"
changed /files/docs~1rocm-docs~1conf.py/size
962
1040
changed /files/docs~1rocm-docs~1sphinx~1_toc.yml.in/sha256
"e1db7ec3950c5e93eefd8a36517b2e063b9f894ce91b591f0b631b5546946ebc"
"fdb38e44d1dbd4c5b9ee67e2a09505372b185e2a8f1c765aab7537e6fc604eb8"
changed /files/docs~1rocm-docs~1sphinx~1_toc.yml.in/size
793
853
changed /files/docs~1rocm-docs~1walkthroughs~1hyperloom-workload-optimizer.md/sha256
"dc1c23b13b0116b4798e2b7709e26b7d9b8164179b0c37b50ce2d1c6656876fc"
"f1a5994737fbbc182ac3e04e9b2efe77b238639934580433104639649b29af19"
changed /files/docs~1rocm-docs~1walkthroughs~1index.md/sha256
"b2a5a3c18871b0f7ce38ff596dce66f63ddd07e79bae1b38f6dfc30f9e896d8e"
"514e7be9c23e861f6b6737d92fec435217007488eac421f19c79bca627677d15"
changed /files/docs~1rocm-docs~1walkthroughs~1index.md/size
1136
1263
changed /files/docs~1rocm-docs~1walkthroughs~1lemonade-router-builder.md/sha256
"5c85f2dc23f310b86862632e688d52aa0c39f6f5fbe36c1cc91c561eae8e71c8"
"35b9ee5d76ab78cace2ff5605ba57f65cdd9b3c6c6fa8a95e78000fd32ddd3ca"
changed /files/docs~1rocm-docs~1walkthroughs~1local-ai-app-integration.md/sha256
"5285a94094cc052f70676fef60b3d728d7f5607ea0b64e161ec20081cebaa806"
"b06bdabe4c883d007fd09a85f908e0085a5cb1bced4540d7ce8d2a3bffb41458"
changed /files/docs~1rocm-docs~1walkthroughs~1local-ai-use.md/sha256
"618c90c57a1d97f6bb853ec3fe27f822fabd489789ec739fcc52de9414fa3a30"
"5d3fcc3c5f68654553ca2482ccbdba117687ae1236356549e44f524d032bc073"
changed /files/docs~1rocm-docs~1walkthroughs~1magpie-kernel-evaluator.md/sha256
"95d66f8a702b40a41521a7ee8d7802d1be86781cf098612e3295d8f88cb5ccf1"
"9cc9cee39efdf1fdc5f7ae520748703e2a93461fabf6b85b1399e8f025b70ffc"
changed /files/docs~1rocm-docs~1walkthroughs~1serving-llms-on-epyc.md/sha256
"b77e6af4c8296ae094fd776d99a7abb7ead9617f87ee6e61370416170607da7b"
"319406b5c0d79523752796b49fb6a38a936b52b366b2316ba9c58bf5f0d97472"
added /files/docs~1rocm-docs~1walkthroughs~1serving-llms-on-instinct.md
Field was absent
{
"sha256": "37a8e6f675619b55197a1eb222b31afc64d3c42f532f6800176f553c06f6a0c1",
"size": 165
}changed /files/docs~1rocm-docs~1walkthroughs~1tracelens-analysis-orchestrator.md/sha256
"6eac20307ecba15228e8a02ed4b6c756dc3aa42b12031237f3daa09ed36636a2"
"6e9579a4a41d640856e3fa5925b777a44b8226a4f5779aab7f8932aaf136e124"
changed /files/docs~1skill-requirements.md/sha256
"52e1025107953ed59beaee932e6ddaf75248135e753cc5e26d5fe2589e495019"
"c1615fa3f02e26f3308cc89814f37519c4216ed657ee52ed503766263575adc4"
changed /files/docs~1skill-requirements.md/size
5490
5426
removed /files/eval~1TEMPLATE.json
{
"sha256": "7c23307f42a539df48cbca732247ec4346a3cf26eb2c15b233616e70fe9f36a1",
"size": 1419
}Field is absent
removed /files/eval~1agent.py
{
"sha256": "b4db79ebf469c69b2ab10e26079f0749831064a77f910bc8c9f8198e9939f0c6",
"size": 19551
}Field is absent
removed /files/eval~1claude_eval.py
{
"sha256": "16478965a9bd26144046ab41cc27ea0151640d13280e9b75697cb752fc724365",
"size": 10951
}Field is absent
removed /files/eval~1compare_skill.py
{
"sha256": "1ad409a61f921fc765bddabd085a0da2959d0dd76b93fbb784e7e3c8da2d13d4",
"size": 10875
}Field is absent
removed /files/eval~1datasets.py
{
"sha256": "26a787cf74c31012b5c69c139f1f08ddcc5a279202934da8d22bab51648ce893",
"size": 23853
}Field is absent
removed /files/eval~1negatives.json
{
"sha256": "987fded3e0bfa1c813e911265a379b124c343bbe738d78a13d76ce23e3555dfc",
"size": 1742
}Field is absent
removed /files/eval~1routing.py
{
"sha256": "248ecc6dbfe25fbcc5a8d6d15b1e166b99db0c5c25a06bee119d9eead35c084a",
"size": 32444
}Field is absent
removed /files/eval~1run_evals.py
{
"sha256": "42a05aa6c1fe763d422f0cf3dda649a1a922741a3d3eaba5f092045317c03780",
"size": 22693
}Field is absent
removed /files/eval~1schema~1evals.schema.json
{
"sha256": "30cd9fcf58ba8db6bf729c586f1a568c4ca0263cb8eb0c8af0c288023d1c4125",
"size": 5883
}Field is absent
removed /files/eval~1schema~1machine.schema.json
{
"sha256": "2692350fd5ccd4f81060b2fb85ce8aa8ed802180fa65bd9adccdb094b1f33f53",
"size": 1724
}Field is absent
removed /files/eval~1test_evals.py
{
"sha256": "f62ae5f0167886d4bc6b1580f109873826e38ef8cf7d522d7539efe755fb4a1d",
"size": 34381
}Field is absent
changed /files/plugin-metadata.json/sha256
"72872b8d3368f7a3755aebed92c4e20d7c65b8977c3a690bb63aba36b9a60d3d"
"524e2cefd2e0492ce6ac30b7ca474598e6f41a8664757055600a239114da9e82"
added /files/skills~1hyperloom-workload-optimizer~1.federated.json
Field was absent
{
"sha256": "3125107b52b956b23d76bc0bac1c2b7e0c3b3e27e4cea97057808958283cbf47",
"size": 345
}changed /files/skills~1hyperloom-workload-optimizer~1SKILL.md/sha256
"8e65e305b0a6766068f9e9aab72e9fa5a1fc6f97e3beeba530838889fe68190a"
"baf471f98d4339b735613586ca6c37e7b73ef42e58f35f1b2990f97b407c0f96"
changed /files/skills~1hyperloom-workload-optimizer~1SKILL.md/size
20940
6765
changed /files/skills~1hyperloom-workload-optimizer~1evals~1evals.json/sha256
"0ce9f8c1dac572564eca557c698374137049064d28c93f82e77bf830ea3b21a8"
"a51d534fb04f6128282fe30709ecaeee6c504524e3ae4ae5778cee38459291b6"
changed /files/skills~1hyperloom-workload-optimizer~1evals~1evals.json/size
5089
4360
changed /files/skills~1hyperloom-workload-optimizer~1evals~1machine.yml/sha256
"a6adf5df60b3c4ce55aaffeb376e517b7e462316d61f255ec60ee4669d2a4411"
"3a53df46087df6eef3a243aab68875ab2f67400abf1838b61d5a0420e951f29c"
changed /files/skills~1hyperloom-workload-optimizer~1evals~1machine.yml/size
22
328
removed /files/skills~1hyperloom-workload-optimizer~1reference.md
{
"sha256": "2e1aad7b8726de05766a83b3af787e4624b5d0c3ffe54c04c5e2172597c28168",
"size": 5328
}Field is absent
removed /files/skills~1hyperloom-workload-optimizer~1scripts~1_env.sh
{
"sha256": "8a9cd34a91d4b920387a87d9ba8af9f2735b408585257b3f89e893dc54bdc1ee",
"size": 2349
}Field is absent
removed /files/skills~1hyperloom-workload-optimizer~1scripts~1launch.sh
{
"sha256": "25b44c1705334e64ccba7699db7b3169e59bcf3cd5463c29606a544d221ad730",
"size": 1846
}Field is absent
removed /files/skills~1hyperloom-workload-optimizer~1scripts~1launch_health.sh
{
"sha256": "245ec3714f2762a81a2a300c72f0ad8ced8d4150ec46e51db0a6b7c111a8806d",
"size": 2052
}Field is absent
removed /files/skills~1hyperloom-workload-optimizer~1scripts~1preflight.py
{
"sha256": "b103c21597b60f29ccf7e9acd2870b79f22b6af2cdd3e3d3daf1422825871292",
"size": 9826
}Field is absent
removed /files/skills~1hyperloom-workload-optimizer~1scripts~1resume.sh
{
"sha256": "72f827ffa0f5f93ab5493d26c870adcc7d37eb88fbd87c69d2d41e6c104c0357",
"size": 1862
}Field is absent
removed /files/skills~1hyperloom-workload-optimizer~1scripts~1tests~1test_launch_flow.sh
{
"sha256": "13a7418c0521e9dbfc5e93c14b5c0861323c346ba2f08d16427c5c0c27969bd6",
"size": 9045
}Field is absent
removed /files/skills~1hyperloom-workload-optimizer~1scripts~1tests~1test_preflight.py
{
"sha256": "9189e58899cc317c1f95f9e7bdae497b710045632fbcd3683ff1380c4a36029b",
"size": 6609
}Field is absent
removed /files/skills~1hyperloom-workload-optimizer~1setup.md
{
"sha256": "620fddf6655f0ac3ed52c5295b4fad4d1f330358a79e8fe35a59d127a88237af",
"size": 5504
}Field is absent
changed /files/skills~1hyperloom-workload-optimizer~1skill-card.md/sha256
"259fe58a2b09b71a78cf607efe7b5243d513fa951620f53ba8f729a456ab17a0"
"ecaa026f89d7b902dd52c4b796a59b7c5ac84ad803df3d22dd43f9f9d32c338a"
changed /files/skills~1hyperloom-workload-optimizer~1skill-card.md/size
203
464
added /files/skills~1local-ai-app-integration~1.federated.json
Field was absent
{
"sha256": "a738ed99bea74d67f46c4fca9f5d9235ccc847e90dd859337c011eebb9002ff0",
"size": 343
}added /files/skills~1local-ai-use~1.federated.json
Field was absent
{
"sha256": "3a99dc14087ce2d7a0372f94262469bc849c1fd1dda1e194cbf5dc1509db63ee",
"size": 331
}changed /files/skills~1local-ai-use~1SKILL.md/sha256
"61f11302b346130f8a676f4ff3d28734857beb8a09362d797fc43ffc9b014755"
"b93029a8918934626a9ce5ec8286b244022ab92560389ec188d4a612ec6dd3f9"
changed /files/skills~1local-ai-use~1SKILL.md/size
18207
20024
changed /files/skills~1local-ai-use~1reference.md/sha256
"8b93b66b50f2fd0ba92181c846457618460e344eb3c48363055d10697223e976"
"fdbd77baada8f522bd0d540e385d394f476c351307cc7dd3d2daf41dcb7a0a78"
changed /files/skills~1local-ai-use~1reference.md/size
9521
9612
changed /files/skills~1local-ai-use~1scripts~1setup_local_ai.py/sha256
"7671a929c91974ed56704b70a44bce9102e8150937e6e743b798d421efb49825"
"6f409c54e923e31e705334d395bd72fa16bca8ca67ea1564c087cf1d7bf21c93"
changed /files/skills~1local-ai-use~1scripts~1setup_local_ai.py/size
24065
27402
changed /files/skills~1serving-llms-on-instinct~1evals~1machine.yml/sha256
"a6adf5df60b3c4ce55aaffeb376e517b7e462316d61f255ec60ee4669d2a4411"
"3a53df46087df6eef3a243aab68875ab2f67400abf1838b61d5a0420e951f29c"
changed /files/skills~1serving-llms-on-instinct~1evals~1machine.yml/size
22
328
changed /files/skills~1tracelens-analysis-orchestrator~1.federated.json/sha256
"e81e6ef6a33f51a7bb80e1e4d388722e4625aae1ff5084e0fb46fa89fc00c805"
"3c0e9aa5bc0bcf548d35b7c989a1e219d81325597b8a89a751bc076b4f464bb1"
changed /files/skills~1tracelens-analysis-orchestrator~1.federated.json/size
268
354
changed /files/skills~1tracelens-analysis-orchestrator~1SKILL.md/sha256
"fd7a3b06e754b62a45c03402674ce02b0b55af4a46112d98d25155fe57911e75"
"b9318e97ccc875ce24dc6cff0bfe7cd1040de4f67299fef68bea707f226de279"
changed /files/skills~1tracelens-analysis-orchestrator~1SKILL.md/size
2908
3204
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1convolution-analyzer.md/sha256
"f591091c5fd42aac6a2c5e1c015b2fb760d568c5bb8bbe7fd31e8b97f4957f91"
"8cc3bf6f914dc7abe9095f861fe2ab8eed1fc87da270bff1863231ee746f5f7d"
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1convolution-analyzer.md/size
7913
7916
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1cpu-idle-analyzer.md/sha256
"a2f8681acc46a02b508c222687f2d874bf079e3b884b6a1ce4285143bd235889"
"b7653afd551663c34f6012859ad35b59f56aa06424a77312d9ff4ef1a8b5873e"
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1cpu-idle-analyzer.md/size
6390
6408
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1elementwise-analyzer.md/sha256
"409c5a081f06fcf30a79f6f8d95601ab1de3782cf54c5b48867713c04f72ef83"
"3c6967c9ef0b39adbd782e69bd331efeaf87bccfc1727834297a83a9ee8c2b7a"
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1elementwise-analyzer.md/size
7238
7250
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1gemm-analyzer.md/sha256
"9b6e1c88c16fcf3208b83822ece1eb3d22f596a54a9197f14b54008426af874d"
"31fdbbfe33d06a6753cd5736b7e5644c79a8c0572ee04734ed68c55aa4208b4e"
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1gemm-analyzer.md/size
6409
6412
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1generic-op-analyzer.md/sha256
"d13a912df7c83d9333d1d352836b3e6155dabeb0fb557c89f1d700a09cc71175"
"f60442c6bc93172f9d8860840b352d1c6f2b5fd58cbf171f42d0c4c55e4c3673"
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1generic-op-analyzer.md/size
9727
9730
added /files/skills~1tracelens-analysis-orchestrator~1agents~1kernel-coherence-agent.md
Field was absent
{
"sha256": "badd2f7a2843eadd972c6660a08d8ecf17b21f5dfb5b20a01309650ec0be0556",
"size": 8396
}changed /files/skills~1tracelens-analysis-orchestrator~1agents~1kernel-fusion-analyzer.md/sha256
"bd0741b28696420c5c7358680be334b789c48c4f4847d2d3c10a096765e2047e"
"434d4c8fc215de099e5f3a4583a87d95d1a5de5c508ec915be282406ec42beab"
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1kernel-fusion-analyzer.md/size
15145
15156
added /files/skills~1tracelens-analysis-orchestrator~1agents~1kernel-stem-preprocessing-agent.md
Field was absent
{
"sha256": "6345bdc9428c516e1257581831c1880cc849b94a887c88a02a1a9e9a03bf7024",
"size": 5839
}added /files/skills~1tracelens-analysis-orchestrator~1agents~1kernel-unification-agent.md
Field was absent
{
"sha256": "05b4375c4bce688781f36ac52229369185db1315e71a10d7552eedaddb0f04b9",
"size": 6567
}changed /files/skills~1tracelens-analysis-orchestrator~1agents~1model-identification-agent.md/sha256
"859bb2b05b602589b5276ba5a38fe85be7d812852eb739d49391588baf5e051b"
"48847d351deb5eabf07abfd1a7dbd78d7988e9a247171e56a77ae748fbf975f7"
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1model-identification-agent.md/size
4364
4290
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1moe-analyzer.md/sha256
"569c3f84f659f9ad8106a08945b94f9e402e8563abc778f21f4ed1a7ce781b42"
"c0429f06af501d69f523edde1e4005d1af6c1181c88e2cb50c98b32bb3760523"
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1moe-analyzer.md/size
8649
8665
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1multi-kernel-analyzer.md/sha256
"aba51d8438f58504b7091f98d8ba806d5289f9adb1592887dd1907f4cba5aa25"
"d754262913ac34cc64ff1b721b5cb472bfc70bbbb1111f90810db0401181c270"
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1multi-kernel-analyzer.md/size
12126
11732
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1norm-analyzer.md/sha256
"3f030eb5531823f0ceec4a663a90e8a7bebded03b8196438a64fd3f9fa3c6c95"
"b79d2f5330954bed595797e4ab17698811298906c9787c785a97bc64b47b1e10"
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1norm-analyzer.md/size
6873
6876
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1reduce-analyzer.md/sha256
"9b6cd514c04fed1e4fcd61d7fcc1c5de0b4fe6126c61752c6278bf569f6d4b46"
"acfe74c2774e7191e24cf1e53d9f0d999d2cda29f89b8cdfc4156508abe32fec"
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1reduce-analyzer.md/size
6453
6456
added /files/skills~1tracelens-analysis-orchestrator~1agents~1roofline-augment-agent.md
Field was absent
{
"sha256": "55950391e4b01f8b067cfa1fe02b4791b28298017a1b0caf4b43f4c7f28c8cbe",
"size": 6281
}added /files/skills~1tracelens-analysis-orchestrator~1agents~1semantic-comparison-agent.md
Field was absent
{
"sha256": "21257271821dd3120654eef77a6d3f4ffbe17a34a28032465999947b1b4595ac",
"size": 12670
}changed /files/skills~1tracelens-analysis-orchestrator~1agents~1triton-analyzer.md/sha256
"81efc56da128703f14944acb7e82e7d543d200d2c7dfbcf0317859c39a0451a5"
"1092c143c9b09e345a40babee3a07630262e9a097f82dca1ae699b7d2ba49693"
changed /files/skills~1tracelens-analysis-orchestrator~1agents~1triton-analyzer.md/size
7013
7016
added /files/skills~1tracelens-analysis-orchestrator~1evals~1.gitignore
Field was absent
{
"sha256": "b0cfa8719305501babda5086ca4152e60c3b9f860eb9d4410697ae0190d3fdc1",
"size": 266
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1EVAL_RUBRICS.md
Field was absent
{
"sha256": "4a59f845107074f04424685cdbd25d739aa542786e2869db5123a4cca3b2364a",
"size": 17847
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1README.md
Field was absent
{
"sha256": "86aafa4acbf14c2d9c49b94240f18f283116e356a7737ed7140c387be44ad0c6",
"size": 19259
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1analysis_tests~1combined_traces_comparative.csv
Field was absent
{
"sha256": "5174580a890f63aa283e4e2f91a09916967acfe6438c2b87c8d7b8b8752ea9cb",
"size": 5191
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1analysis_tests~1combined_traces_standalone.csv
Field was absent
{
"sha256": "1cd59fd5d63d6ef8f0bf7eb2d3423613831f63cca6210b763565832d04362168",
"size": 10541
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1eval_scripts~1generate_ref.sh
Field was absent
{
"sha256": "49928a54ceb0b9313672aeb283ca6e30f0d480c3288899a3a898134278351828",
"size": 14339
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1eval_scripts~1kill_eval_jobs.sh
Field was absent
{
"sha256": "917707fe6789c0bab104315fbb2e63d1aa86295404f8067c9b1d1149f2b1ca3d",
"size": 4127
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1eval_scripts~1pack_test_archives.sh
Field was absent
{
"sha256": "176bfd4fee136941a2cfa269a96e7919e95ff2f3ab75dfbfd62cd7f7cd3a32e7",
"size": 4732
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1eval_scripts~1run_pi_analysis_in_docker.sh
Field was absent
{
"sha256": "58b8b6c37c6b4c164930babb739e4e41ec0d4f7cf0d220253f2b089703a2ba90",
"size": 20031
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1eval_scripts~1run_repeatability_parallel.sh
Field was absent
{
"sha256": "025077e3012383dd49d411d13fa0de3c8431f8964ae7b55b6716a07b29a94927",
"size": 24915
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1eval_utils~1aggregate_repeatability.py
Field was absent
{
"sha256": "e91d8256564f846c74e7c890a9056507b3bbe3d5e45d6c0ac2d98072000c9411",
"size": 24663
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1eval_utils~1compare_lca_partitions.py
Field was absent
{
"sha256": "fdae0d19985f7f94e5b13dc767147d2353a1738ae08568e2f6e1f3bb72b2c728",
"size": 16624
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1eval_utils~1manual_eval_checklist.md
Field was absent
{
"sha256": "4caddfad1cb49330a6802b21f952a22194ad5a9fc9fba5df2b292b3e9d1adc8b",
"size": 3436
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1eval_utils~1merge_results.py
Field was absent
{
"sha256": "cffbe981a673a15363d52e7600966d55e9fcca5cc5e47d30678bb4ac6d22e2d9",
"size": 3023
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1eval_utils~1quality_scripted_evals.py
Field was absent
{
"sha256": "e9468c6d765b9e624b111261e8e5a6bd5fbc7c657fb7e822b61eaeac550c33f4",
"size": 8773
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1eval_utils~1report_section_rules.yaml
Field was absent
{
"sha256": "762e4871f915039db287187baddf86a439b13d3a8265176cc59575a7724b6274",
"size": 3890
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1eval_utils~1workflow_scripted_evals.py
Field was absent
{
"sha256": "8476ac44b63a2e82f97cd94a0e4fa7212c78546fde133324f025f50c625960aa",
"size": 54560
}changed /files/skills~1tracelens-analysis-orchestrator~1evals~1evals.json/sha256
"e3632251b7110085aa1e83e03d6a4476b2998761a1df40e9f25f0fafce1223b1"
"2e4823156d3ac31b0ef8b02060af6d63e63f1e96cb864bd2fee295b6254bbf80"
changed /files/skills~1tracelens-analysis-orchestrator~1evals~1evals.json/size
2438
3133
removed /files/skills~1tracelens-analysis-orchestrator~1evals~1hooks.py
{
"sha256": "1ac080fab37c6fb4bcd53b3a8ed24140cd98f77fb463b1ef845a97a2a98befd0",
"size": 6503
}Field is absent
changed /files/skills~1tracelens-analysis-orchestrator~1evals~1machine.yml/sha256
"adf8e12371384a0f44b745771a1b69ffcfa6756bc37ee8aa94654751434ca621"
"84c1fba8ef08613c98f8bfa6c4ce182ef5bb6019c0a21ab8272648043e1c4fa6"
changed /files/skills~1tracelens-analysis-orchestrator~1evals~1machine.yml/size
12
285
added /files/skills~1tracelens-analysis-orchestrator~1evals~1partial_tests~1README.md
Field was absent
{
"sha256": "b735f9b94ec8542f0ddc807bf187e0f595dd47a28c0ad1043ea5521068d233e4",
"size": 5567
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1partial_tests~1eval_utils~1semantic_partition_scripted_evals.py
Field was absent
{
"sha256": "15f71e37729f93eb9bd6d11f4f18d7c57ec5de96f47e665fd24ad66e440a134f",
"size": 5924
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1partial_tests~1eval_utils~1semantic_purity_aggregate.py
Field was absent
{
"sha256": "c63439afe74897b25e0644107857ce477ee1e656ad401d0faa1ed24a1b57b326",
"size": 9319
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1partial_tests~1generate_gold_ref.sh
Field was absent
{
"sha256": "49ffac8367e56ccf8c38665c80d14ad7a59fb2da35f9ee7e1568c238f41535b5",
"size": 4232
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1partial_tests~1partial_test_cases.csv
Field was absent
{
"sha256": "15e3865508af1f9758289d7b05924218dd8db9729f32dc862915243f231aac24",
"size": 1044
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1partial_tests~1run_partial_tests.sh
Field was absent
{
"sha256": "2f25a3575f6bd1c816589ceacc23ac9936e37d750cb0ae8f72daf09481d58fd5",
"size": 7962
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1skills~1eval-post-processing~1SKILL.md
Field was absent
{
"sha256": "c7881b49cbcff71ca2b76683e01dfc7db669011b4309fb30987d8dc15187f880",
"size": 1693
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1skills~1eval-post-processing~1reference.md
Field was absent
{
"sha256": "4c81c6a300eb76a6c4d6b25aa1af55cc67f5064dbe9913e530735c1a0a151bf4",
"size": 14842
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1skills~1eval-post-processing~1run_post_processing.py
Field was absent
{
"sha256": "de7f72c9042776648a11d91ec0aba61e25f80315b2098125d83c44604be55014",
"size": 35336
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1skills~1quality-llm-eval~1SKILL.md
Field was absent
{
"sha256": "c659991834b66caddec1d7f84f4d89b63d40acf28e1ecdc346a524099b682e43",
"size": 1007
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1skills~1quality-llm-eval~1reference.md
Field was absent
{
"sha256": "6a96ff87a4c722c9ad6f26a67295ba4f8133b63fb9cd6d9fcc69e568ebfd9e38",
"size": 6498
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1skills~1workflow-llm-eval~1SKILL.md
Field was absent
{
"sha256": "4290e389d287146fd9a5647b3bf7f1bc0ca5d2bc2a4cbd4936905bf2ad5e0e27",
"size": 960
}added /files/skills~1tracelens-analysis-orchestrator~1evals~1skills~1workflow-llm-eval~1reference.md
Field was absent
{
"sha256": "7d985ec98f2e1cef4ab7e2953ed66499808fbf8402b73761b0f8c09147249200",
"size": 2548
}changed /files/skills~1tracelens-analysis-orchestrator~1reference.md/sha256
"5c28b5be38da8baacf1588502470caf83e3c7f1a1113257606eed243bd052933"
"1aa42df8d45c8e096c5ea31bbfbe12b1693142e2ea61765adbdc652eb06f64d3"
changed /files/skills~1tracelens-analysis-orchestrator~1reference.md/size
33244
38758
changed /files/skills~1tracelens-analysis-orchestrator~1templates~1analysis_template.md/sha256
"13865a27f64bdeaf62dcd6a73ad6e511ef5e22267a81c3dfa92d5adc58c7c42e"
"0892dd1c82d238e326b5e31b1ebf336883e8c22b36a4c0dc53cf2ff6102dac93"
changed /files/skills~1tracelens-analysis-orchestrator~1templates~1analysis_template.md/size
25675
28621
changed /files/skills~1tracelens-analysis-orchestrator~1templates~1sub_agent_spec.md/sha256
"b24a32928bc57b22963dd97416a25d2c0f5892f4665bb659f49c1a03f03a6385"
"4105a83d6553edb8bb8bcfb090ef0f4a48cb1c9c733b137bebf9492dd7c1479b"
changed /files/skills~1tracelens-analysis-orchestrator~1templates~1sub_agent_spec.md/size
20803
22622
removed /files/staging~1rocm-doctor~1SKILL.md
{
"sha256": "0c763034dbe3668bce22ba91e087ac6c58002f79d52b2d27fc40657ae19db179",
"size": 8450
}Field is absent
removed /files/staging~1rocm-doctor~1evals~1evals.json
{
"sha256": "6e4f28b879db97e5a7cb774869b91c9a218f072bc180a299a7e82cb54260a64c",
"size": 2563
}Field is absent
removed /files/staging~1rocm-doctor~1reference.md
{
"sha256": "986705c19648fabfe12415cff207f0a509e3c6b49aaf71057061649bbf7e1e04",
"size": 5428
}Field is absent
removed /files/staging~1rocm-doctor~1skill-card.md
{
"sha256": "7dabe7194756436df2c5635e4a1a27a62345d79f8aafd62b09b30066d4a73911",
"size": 466
}Field is absent
changed /files/walkthroughs~1README.md/sha256
"6630334c7b89b4c40f97240d63f01f24bef608e6ba61f921590e396b942ed122"
"06dfcf3279b763a5e9aa919561758d45e54cbbcdb7c292d9a8b51e4ea98dcce7"
changed /files/walkthroughs~1README.md/size
1405
1484
changed /files/walkthroughs~1hyperloom-workload-optimizer.md/sha256
"0641fff5d251607931872d5618d9ffd24395e011c4510df405ab96232af9aec6"
"3be544c71384f5309e2a35b231104133c29aef9d3db9695b06abba401f4dc34e"
changed /files/walkthroughs~1hyperloom-workload-optimizer.md/size
7062
7560
changed /files/walkthroughs~1lemonade-router-builder.md/sha256
"dad4e23789bb693158b761dffdcad47c45abf16fd907516e6dc38015dd2dc250"
"70b33f8631435b7b39a7017b95da87cc95a42344b379db55b73f69c171a0f7c2"
changed /files/walkthroughs~1lemonade-router-builder.md/size
5093
5170
changed /files/walkthroughs~1local-ai-app-integration.md/sha256
"66b4165389dd2e4276621bb0ebc8a2d57b08aab926e2ad84d8c46e102b7f4c64"
"219e6799f060e9c8087687b92982f1ed487258579660815dcc7cae83f89772cd"
changed /files/walkthroughs~1local-ai-app-integration.md/size
6250
6390
changed /files/walkthroughs~1local-ai-use.md/sha256
"1ae749a24a9d19e974c0316d4c8d2af3164d058f54136c8643d1ae9688163802"
"d40ca9ce900fef391cde42779b10d40b92e3b6e2399b57de5335967109c2ede2"
changed /files/walkthroughs~1local-ai-use.md/size
1736
1905
changed /files/walkthroughs~1magpie-kernel-evaluator.md/sha256
"cb28dd388d3bf06c66750bc406ae7b362c70a9474b17a85b892b890ac82908e7"
"90a2a809045ef863cccd74565492f07223f329805fc337ae6550fbec0b5ac5c4"
changed /files/walkthroughs~1magpie-kernel-evaluator.md/size
15266
15516
changed /files/walkthroughs~1serving-llms-on-epyc.md/sha256
"13d70d3308d60df44de2bbcd09ebc56bc96e0e1ef62cf4bc21144a22c2351516"
"6b33fe7777fe2a8aecd4b4b5bf4cee67e8d33d7f272a3d78524b71d746ce0f43"
changed /files/walkthroughs~1serving-llms-on-epyc.md/size
7084
7361
changed /files/walkthroughs~1serving-llms-on-instinct.md/sha256
"4b7db79fc3775aadd497c1e1aa17be25e6d6e69a6d7f6047ada0926b6d3a1d1e"
"8d06f05248e542a114f6f267f3141cd18ddcc7d9ca46c1043a065a91157fae8d"
changed /files/walkthroughs~1serving-llms-on-instinct.md/size
9861
9857
changed /files/walkthroughs~1tracelens-analysis-orchestrator.md/sha256
"4a06eb8b0864aa398abde85fc561e533b789e0f4f9d8434fed848612a133a4b5"
"71404ed0aadf49a80d5496a76d9952fbc046540b3bcd6b93b12b1287e404fd5f"
changed /files/walkthroughs~1tracelens-analysis-orchestrator.md/size
9532
9789
Full snapshot data
{
"files": {
".agents/plugins/marketplace.json": {
"sha256": "9f7307d91a5b8cc305ec9c6e06da4af22352f2962a5d2d7f8e729a3e2a4213a1",
"size": 355
},
".claude-plugin/marketplace.json": {
"sha256": "ecff6eacb9367066be2b7dcbf31d962943a6d012b408265317d89f404678e064",
"size": 809
},
".codex-plugin/plugin.json": {
"sha256": "08213eda069ee496a17c663b941ca997407d543a9a49b92aa983dabca172600b",
"size": 1476
},
".cursor-plugin/marketplace.json": {
"sha256": "bf12a600d18e0f2650c3a8aa0f6d75f499e2c9ab3d445f44661582d28e64c03a",
"size": 1182
},
".gitattributes": {
"sha256": "32fb19ff90af0d69e2ddcd712a66d2df0c5221c0914e00ff90eb8049d5b1201f",
"size": 133
},
".github/ISSUE_TEMPLATE/product-repo-approval.yml": {
"sha256": "220b3b7c26f7cc979b0b784b7134234f403db286824112aea60bfa06570a7730",
"size": 1783
},
".github/ISSUE_TEMPLATE/skill-bug-or-improvement.yml": {
"sha256": "0c6891de0b7c72c87cd1d7589d32c7919c8d4797973b8244d04d77bb1dc9eab1",
"size": 2559
},
".github/ISSUE_TEMPLATE/skill-proposal.yml": {
"sha256": "2a3212de71a5e1e71baabde8ae1e68b296c1f9d1211a783df16a0393a5723a06",
"size": 3584
},
".github/federation.json": {
"sha256": "510e70ad11ccf5a7d3a5004fe4222860dd195e2db4f5ca107c5cfb1bb089bf7c",
"size": 2723
},
".github/scripts/changed_skills.py": {
"sha256": "11bb396c49a371dceae72bf1e3a88bd1cf9040c1871b028b0a489680985b9440",
"size": 5078
},
".github/scripts/check.sh": {
"sha256": "810ae94f028be37fd2344665ebe1ceaafe112385860f97c08568453fba467c6e",
"size": 2150
},
".github/scripts/federate_skills.py": {
"sha256": "2ef60b3b35453bf11ec1d1453fe08bb5739438fabc09d6f5bc5b6f027b86b8da",
"size": 43413
},
".github/scripts/federation_branches.py": {
"sha256": "5d8794825673901f2e7c52bb555d04cccec7f1aa6ea647a118f7a45fdae1532c",
"size": 3925
},
".github/scripts/federation_guard.py": {
"sha256": "445d12e584512c25c88af7d6d9bc02bcd4b5905f1438aae12b6419b6c9a34894",
"size": 13262
},
".github/scripts/generate_codex_plugin.py": {
"sha256": "bdadff31480c5ce8f236b994cf67fb0dca5ac2745db52c43da377d02d8faa7e1",
"size": 10642
},
".github/scripts/generate_cursor_marketplace.py": {
"sha256": "84055653a96038199a854555fee34b45b13730be5f95fd8154892f8474362846",
"size": 8171
},
".github/scripts/publish.sh": {
"sha256": "5b281049d887d44b4bf2342ed990825f9b8f67478f22a23151f8df683b8b1c94",
"size": 1654
},
".github/scripts/record_skill_owner.py": {
"sha256": "e4fcbaa783588fe4c6120b3fa2d146d30a1be19580b0ed088923e8cf217df0f3",
"size": 5253
},
".github/scripts/skillspector_gate.py": {
"sha256": "e10b3240594c7c61483741ce15a59179b283f7649fe69b620e91b789251f8e6f",
"size": 6785
},
".github/scripts/test_cli_install.py": {
"sha256": "90c76c0dbf0ed4f8148fcc751433c9634047e10fb97308b502f135c7ed6a4c35",
"size": 18989
},
".github/scripts/test_federate_skills.py": {
"sha256": "08de2a560c7e6fb940348890d060dc95ffaeec584c9df0c8202e5a76b645c736",
"size": 24599
},
".github/scripts/test_federation_guard.py": {
"sha256": "5154a007094db1dd247c3bf77af0037841a638796d0ed5baa98be073fd58a88e",
"size": 25059
},
".github/scripts/test_record_skill_owner.py": {
"sha256": "b0d15aa79459e69b9f69c5f9f68ba43904891eaecd770b1cd9265e5794d14059",
"size": 3091
},
".github/scripts/validate_marketplace.py": {
"sha256": "1e3461cfc7871193230df887c43bb7ad19cfd425dcf45b9ed50dd22bdbf31933",
"size": 7945
},
".github/skill_owners.json": {
"sha256": "65b4be058acbd060b77491b8d8f12607a439550470d75e000c40ec1490e533d7",
"size": 1080
},
".github/skillspector-allow.yml": {
"sha256": "f5006c09b59588bb48201ccd2180784ed9b22791248655940fdea00faf838966",
"size": 9469
},
".github/workflows/cli-install.yml": {
"sha256": "82ec9f6ea26a7f7ee8641b01936216588ec99808bc6b2c4cdcb420826a4685ec",
"size": 5182
},
".github/workflows/evals.yml": {
"sha256": "effc21cabb537736a3b2d7daa48d164015b0f6ef09bb144f5a2ee231fbc9179a",
"size": 9130
},
".github/workflows/federate-skills.yml": {
"sha256": "2be1f76b61f161bd71fc020eca76270920f76784a075df49ddba00be9dc1f5ed",
"size": 7127
},
".github/workflows/federation-guard.yml": {
"sha256": "7a188c53b486f4b543dacb7b41181432824c63766ac7ef046db5798762b671c8",
"size": 12073
},
".github/workflows/label-skill-issues.yml": {
"sha256": "f2fdd61c2d5ab306f634b3534f27861c7d90640505432fa13351f61a86771d25",
"size": 3199
},
".github/workflows/product-repo-approval.yml": {
"sha256": "e44ad4950dc1952a16ea276993e6b32ff715e53fe534ae61870b1a12b0adcaf4",
"size": 17815
},
".github/workflows/skillspector.yml": {
"sha256": "928b8a21bb6d6bb9831b9130b2f2ae9e431998675fd3adf563207601dea38bfb",
"size": 8948
},
".github/workflows/validate.yml": {
"sha256": "9b1c6c5d4c74f3a03452f61be6dc2e2c18265d859a1c1994f4eca5f3ea421797",
"size": 3876
},
".gitignore": {
"sha256": "23ba88c5c1057a44a21f861c2e41592c33ef5135f9aa0138f6627e61a0b12c54",
"size": 321
},
"CONTRIBUTING.md": {
"sha256": "68012be70fc7e3e1a13b596c8d0f2773ac6b2fc419202054ada3464f284858bf",
"size": 7769
},
"LICENSE": {
"sha256": "6a86faf98a4909cc6341592da475f17fc2f9e18d21b59f30a5a62314c6a8c216",
"size": 1106
},
"README.md": {
"sha256": "3646d3917859683b560e075d649312b59cd5f9976179476f80ed867d7e38fd8b",
"size": 16789
},
"SECURITY.md": {
"sha256": "0e3bd89c21792039aecfe6e96995908cb68e22466d6ccbad5a17c41d66d56b7a",
"size": 487
},
"assets/amd.png": {
"sha256": "671ee8519686294b03b4995bb3ba99045004bbccd328968bf38c30b3cc96c312",
"size": 16453
},
"assets/banner.gif": {
"sha256": "dafcbe0e9e199d10f6428aca94d858a00ccee9a80071376adfb0799979582920",
"size": 492481
},
"assets/banner.jpg": {
"sha256": "b83045d77393e04b61473c75caad21c1c2bb45b25c9d8b6ce5dc83c9a2c6c56c",
"size": 89267
},
"docs/best-practices.md": {
"sha256": "a5cc829d53af61a57bea9b035ca95b9dba18cbbcbd672b4dff5dc43e21c6f02d",
"size": 7410
},
"docs/evals.md": {
"sha256": "740024dce4ded4eca6ba9a2639d958ced6b4c4dde95b96b8ee5b529d814ddd11",
"size": 8944
},
"docs/rocm-docs/.readthedocs.yaml": {
"sha256": "0b25e1e87c43018ea2c41b95d83a3bc470575c7fc6a674be3f38ec18f4916af0",
"size": 194
},
"docs/rocm-docs/catalog.md": {
"sha256": "c78dbcfa660c20c85ead1b7e4feb0a9fbe1f897e26e7dc34b36c9905b9487fbd",
"size": 220
},
"docs/rocm-docs/concepts/index.md": {
"sha256": "a61b8bebfbd39e2006a6b75c44f0eaa6b995a541bfbe3862de7d9f17f8658443",
"size": 226
},
"docs/rocm-docs/conf.py": {
"sha256": "6823763f122edb4ee944fedb99d2f5d9a54ae373a69b6224bf7137f05f113e94",
"size": 1040
},
"docs/rocm-docs/index.rst": {
"sha256": "6328d43d38c21081662a52cac0550874a3566779f94d1829789939090e2f8f99",
"size": 1199
},
"docs/rocm-docs/install/installation.md": {
"sha256": "32072f841fd33d719b1d2ffa85bdb8d480525bc3c2811ac54f9775eab32dd7cd",
"size": 415
},
"docs/rocm-docs/license.md": {
"sha256": "4f8dbcaf023b725c25274036522bd443a5870749f69060e615b6919a325d24a3",
"size": 71
},
"docs/rocm-docs/sphinx/_toc.yml.in": {
"sha256": "fdb38e44d1dbd4c5b9ee67e2a09505372b185e2a8f1c765aab7537e6fc604eb8",
"size": 853
},
"docs/rocm-docs/sphinx/requirements.txt": {
"sha256": "97021fda96796c38e8947a966f9239846052850ff7332516cc1f51c84ec3352e",
"size": 22
},
"docs/rocm-docs/walkthroughs/hyperloom-workload-optimizer.md": {
"sha256": "f1a5994737fbbc182ac3e04e9b2efe77b238639934580433104639649b29af19",
"size": 177
},
"docs/rocm-docs/walkthroughs/index.md": {
"sha256": "514e7be9c23e861f6b6737d92fec435217007488eac421f19c79bca627677d15",
"size": 1263
},
"docs/rocm-docs/walkthroughs/lemonade-router-builder.md": {
"sha256": "35b9ee5d76ab78cace2ff5605ba57f65cdd9b3c6c6fa8a95e78000fd32ddd3ca",
"size": 162
},
"docs/rocm-docs/walkthroughs/local-ai-app-integration.md": {
"sha256": "b06bdabe4c883d007fd09a85f908e0085a5cb1bced4540d7ce8d2a3bffb41458",
"size": 165
},
"docs/rocm-docs/walkthroughs/local-ai-use.md": {
"sha256": "5d3fcc3c5f68654553ca2482ccbdba117687ae1236356549e44f524d032bc073",
"size": 129
},
"docs/rocm-docs/walkthroughs/magpie-kernel-evaluator.md": {
"sha256": "9cc9cee39efdf1fdc5f7ae520748703e2a93461fabf6b85b1399e8f025b70ffc",
"size": 162
},
"docs/rocm-docs/walkthroughs/serving-llms-on-epyc.md": {
"sha256": "319406b5c0d79523752796b49fb6a38a936b52b366b2316ba9c58bf5f0d97472",
"size": 153
},
"docs/rocm-docs/walkthroughs/serving-llms-on-instinct.md": {
"sha256": "37a8e6f675619b55197a1eb222b31afc64d3c42f532f6800176f553c06f6a0c1",
"size": 165
},
"docs/rocm-docs/walkthroughs/tracelens-analysis-orchestrator.md": {
"sha256": "6e9579a4a41d640856e3fa5925b777a44b8226a4f5779aab7f8932aaf136e124",
"size": 186
},
"docs/skill-requirements.md": {
"sha256": "c1615fa3f02e26f3308cc89814f37519c4216ed657ee52ed503766263575adc4",
"size": 5426
},
"plugin-metadata.json": {
"sha256": "524e2cefd2e0492ce6ac30b7ca474598e6f41a8664757055600a239114da9e82",
"size": 436
},
"skills/hyperloom-workload-optimizer/.federated.json": {
"sha256": "3125107b52b956b23d76bc0bac1c2b7e0c3b3e27e4cea97057808958283cbf47",
"size": 345
},
"skills/hyperloom-workload-optimizer/SKILL.md": {
"sha256": "baf471f98d4339b735613586ca6c37e7b73ef42e58f35f1b2990f97b407c0f96",
"size": 6765
},
"skills/hyperloom-workload-optimizer/evals/evals.json": {
"sha256": "a51d534fb04f6128282fe30709ecaeee6c504524e3ae4ae5778cee38459291b6",
"size": 4360
},
"skills/hyperloom-workload-optimizer/evals/machine.yml": {
"sha256": "3a53df46087df6eef3a243aab68875ab2f67400abf1838b61d5a0420e951f29c",
"size": 328
},
"skills/hyperloom-workload-optimizer/skill-card.md": {
"sha256": "ecaa026f89d7b902dd52c4b796a59b7c5ac84ad803df3d22dd43f9f9d32c338a",
"size": 464
},
"skills/local-ai-app-integration/.federated.json": {
"sha256": "a738ed99bea74d67f46c4fca9f5d9235ccc847e90dd859337c011eebb9002ff0",
"size": 343
},
"skills/local-ai-app-integration/SKILL.md": {
"sha256": "e66d30bcb8969ed98679fa2332b65002d5b94c299b843916d026a1aa6e2718e3",
"size": 24217
},
"skills/local-ai-app-integration/evals/evals.json": {
"sha256": "6250314828ee9956bf9ac472278df991af00397024d93fbfe2e1ecd11abd0f04",
"size": 3040
},
"skills/local-ai-app-integration/evals/files/apikey-guard/main.py": {
"sha256": "35fe2402f4e5051a8bedbca4801206bb0a7f44feb97f84ab54faa86130448762",
"size": 205
},
"skills/local-ai-app-integration/evals/files/openai-stub/main.py": {
"sha256": "bb9f95bfde591f1d62d66f0e3e73baf1a7f5d63a2b45582e07feb6ac94be9c16",
"size": 45
},
"skills/local-ai-app-integration/reference.md": {
"sha256": "f4e30715ada0c4753e8aed30dc7f7f9d7cfdeab73331736fa6459d1fa732e0b7",
"size": 13905
},
"skills/local-ai-app-integration/skill-card.md": {
"sha256": "a90a1c2855d6323d0607c87015bea612fede58063ea6e698658a8ef143c9cc1d",
"size": 159
},
"skills/local-ai-use/.federated.json": {
"sha256": "3a99dc14087ce2d7a0372f94262469bc849c1fd1dda1e194cbf5dc1509db63ee",
"size": 331
},
"skills/local-ai-use/SKILL.md": {
"sha256": "b93029a8918934626a9ce5ec8286b244022ab92560389ec188d4a612ec6dd3f9",
"size": 20024
},
"skills/local-ai-use/evals/evals.json": {
"sha256": "1c55c87853eff8b890d0cc48c272f7e01ebe15eb49a6efa347d971d7600cff7e",
"size": 2189
},
"skills/local-ai-use/reference.md": {
"sha256": "fdbd77baada8f522bd0d540e385d394f476c351307cc7dd3d2daf41dcb7a0a78",
"size": 9612
},
"skills/local-ai-use/scripts/setup_local_ai.py": {
"sha256": "6f409c54e923e31e705334d395bd72fa16bca8ca67ea1564c087cf1d7bf21c93",
"size": 27402
},
"skills/local-ai-use/skill-card.md": {
"sha256": "63cf07aed8be151926f9170492b0d5b0e207ca86298ff984b12c299cac564dde",
"size": 175
},
"skills/local-ai-use/templates/local-ai-rule.md": {
"sha256": "9eb135d4ee7a92a781ebd1d14daadd076faf306ddbdd42e867344048b76a6ee5",
"size": 5450
},
"skills/serving-llms-on-instinct/SKILL.md": {
"sha256": "2a200238e1b6a3eed4971a47e97ecba5aa26be5dd1244de6905edfc8f60a2b45",
"size": 15887
},
"skills/serving-llms-on-instinct/data/blacklist.json": {
"sha256": "59feb6605a72250100884dadd4d89473eda4deb3c2827fa6656a39276ef5d347",
"size": 2050
},
"skills/serving-llms-on-instinct/data/gpu_overrides.json": {
"sha256": "e4a6dbe9146024014df8f63fb15e2bcf7029805bbb3370da4d9a6c4ab47a52c0",
"size": 5257
},
"skills/serving-llms-on-instinct/data/recipes_cache.json": {
"sha256": "662ac8c69ddfe31c0f721bde40a82ac21c99d6ebdb56f54931374ee20f0c56a5",
"size": 696133
},
"skills/serving-llms-on-instinct/evals/evals.json": {
"sha256": "4659e4ec1ed160fe67f08e774495728c5223a5f01ad86c45ea1add7a6c9cd0bb",
"size": 2488
},
"skills/serving-llms-on-instinct/evals/hooks.py": {
"sha256": "df96526ce8726ecd542709c68fcff264c015b1dcb375708a990c5289a60f2c68",
"size": 3239
},
"skills/serving-llms-on-instinct/evals/machine.yml": {
"sha256": "3a53df46087df6eef3a243aab68875ab2f67400abf1838b61d5a0420e951f29c",
"size": 328
},
"skills/serving-llms-on-instinct/reference.md": {
"sha256": "a24d53ef9a74b19f5a299e1f9c62d48e3f12c5f3c2843fc090ced6f632f20fb6",
"size": 4621
},
"skills/serving-llms-on-instinct/scripts/detect.py": {
"sha256": "5d040fe26dca7011470dd75468b35cb6363369dda682a4ebb12b1391d947e5f0",
"size": 4636
},
"skills/serving-llms-on-instinct/scripts/estimate_vram.py": {
"sha256": "c815d07ab91bef3035fe3a4c0f07e006599de0c65c731c1cf124f95a29f1d804",
"size": 8845
},
"skills/serving-llms-on-instinct/scripts/sync_recipes.py": {
"sha256": "386a2e92e7414535d02b3ada809778a278ac4ae8b504208eb3302e56bdfd4e56",
"size": 6337
},
"skills/serving-llms-on-instinct/scripts/validate.py": {
"sha256": "7de7b69e9229e64c0353345a31a7627440445759153c6e57e9df52a5f43c5903",
"size": 8453
},
"skills/serving-llms-on-instinct/skill-card.md": {
"sha256": "c34300b4e912366013a898ba050353d553b5a69d5ffa8bdfbdaab22de94fdd98",
"size": 244
},
"skills/tracelens-analysis-orchestrator/.federated.json": {
"sha256": "3c0e9aa5bc0bcf548d35b7c989a1e219d81325597b8a89a751bc076b4f464bb1",
"size": 354
},
"skills/tracelens-analysis-orchestrator/SKILL.md": {
"sha256": "b9318e97ccc875ce24dc6cff0bfe7cd1040de4f67299fef68bea707f226de279",
"size": 3204
},
"skills/tracelens-analysis-orchestrator/agents/convolution-analyzer.md": {
"sha256": "8cc3bf6f914dc7abe9095f861fe2ab8eed1fc87da270bff1863231ee746f5f7d",
"size": 7916
},
"skills/tracelens-analysis-orchestrator/agents/cpu-idle-analyzer.md": {
"sha256": "b7653afd551663c34f6012859ad35b59f56aa06424a77312d9ff4ef1a8b5873e",
"size": 6408
},
"skills/tracelens-analysis-orchestrator/agents/elementwise-analyzer.md": {
"sha256": "3c6967c9ef0b39adbd782e69bd331efeaf87bccfc1727834297a83a9ee8c2b7a",
"size": 7250
},
"skills/tracelens-analysis-orchestrator/agents/gemm-analyzer.md": {
"sha256": "31fdbbfe33d06a6753cd5736b7e5644c79a8c0572ee04734ed68c55aa4208b4e",
"size": 6412
},
"skills/tracelens-analysis-orchestrator/agents/generic-op-analyzer.md": {
"sha256": "f60442c6bc93172f9d8860840b352d1c6f2b5fd58cbf171f42d0c4c55e4c3673",
"size": 9730
},
"skills/tracelens-analysis-orchestrator/agents/kernel-coherence-agent.md": {
"sha256": "badd2f7a2843eadd972c6660a08d8ecf17b21f5dfb5b20a01309650ec0be0556",
"size": 8396
},
"skills/tracelens-analysis-orchestrator/agents/kernel-fusion-analyzer.md": {
"sha256": "434d4c8fc215de099e5f3a4583a87d95d1a5de5c508ec915be282406ec42beab",
"size": 15156
},
"skills/tracelens-analysis-orchestrator/agents/kernel-stem-preprocessing-agent.md": {
"sha256": "6345bdc9428c516e1257581831c1880cc849b94a887c88a02a1a9e9a03bf7024",
"size": 5839
},
"skills/tracelens-analysis-orchestrator/agents/kernel-unification-agent.md": {
"sha256": "05b4375c4bce688781f36ac52229369185db1315e71a10d7552eedaddb0f04b9",
"size": 6567
},
"skills/tracelens-analysis-orchestrator/agents/model-identification-agent.md": {
"sha256": "48847d351deb5eabf07abfd1a7dbd78d7988e9a247171e56a77ae748fbf975f7",
"size": 4290
},
"skills/tracelens-analysis-orchestrator/agents/moe-analyzer.md": {
"sha256": "c0429f06af501d69f523edde1e4005d1af6c1181c88e2cb50c98b32bb3760523",
"size": 8665
},
"skills/tracelens-analysis-orchestrator/agents/multi-kernel-analyzer.md": {
"sha256": "d754262913ac34cc64ff1b721b5cb472bfc70bbbb1111f90810db0401181c270",
"size": 11732
},
"skills/tracelens-analysis-orchestrator/agents/norm-analyzer.md": {
"sha256": "b79d2f5330954bed595797e4ab17698811298906c9787c785a97bc64b47b1e10",
"size": 6876
},
"skills/tracelens-analysis-orchestrator/agents/reduce-analyzer.md": {
"sha256": "acfe74c2774e7191e24cf1e53d9f0d999d2cda29f89b8cdfc4156508abe32fec",
"size": 6456
},
"skills/tracelens-analysis-orchestrator/agents/roofline-augment-agent.md": {
"sha256": "55950391e4b01f8b067cfa1fe02b4791b28298017a1b0caf4b43f4c7f28c8cbe",
"size": 6281
},
"skills/tracelens-analysis-orchestrator/agents/sdpa-analyzer.md": {
"sha256": "1ab762c92430374133b0668c4d57f00ac3d80e54ee9dabaf15eece0f2d2c3056",
"size": 10880
},
"skills/tracelens-analysis-orchestrator/agents/semantic-comparison-agent.md": {
"sha256": "21257271821dd3120654eef77a6d3f4ffbe17a34a28032465999947b1b4595ac",
"size": 12670
},
"skills/tracelens-analysis-orchestrator/agents/triton-analyzer.md": {
"sha256": "1092c143c9b09e345a40babee3a07630262e9a097f82dca1ae699b7d2ba49693",
"size": 7016
},
"skills/tracelens-analysis-orchestrator/evals/.gitignore": {
"sha256": "b0cfa8719305501babda5086ca4152e60c3b9f860eb9d4410697ae0190d3fdc1",
"size": 266
},
"skills/tracelens-analysis-orchestrator/evals/EVAL_RUBRICS.md": {
"sha256": "4a59f845107074f04424685cdbd25d739aa542786e2869db5123a4cca3b2364a",
"size": 17847
},
"skills/tracelens-analysis-orchestrator/evals/README.md": {
"sha256": "86aafa4acbf14c2d9c49b94240f18f283116e356a7737ed7140c387be44ad0c6",
"size": 19259
},
"skills/tracelens-analysis-orchestrator/evals/analysis_tests/combined_traces_comparative.csv": {
"sha256": "5174580a890f63aa283e4e2f91a09916967acfe6438c2b87c8d7b8b8752ea9cb",
"size": 5191
},
"skills/tracelens-analysis-orchestrator/evals/analysis_tests/combined_traces_standalone.csv": {
"sha256": "1cd59fd5d63d6ef8f0bf7eb2d3423613831f63cca6210b763565832d04362168",
"size": 10541
},
"skills/tracelens-analysis-orchestrator/evals/eval_scripts/generate_ref.sh": {
"sha256": "49928a54ceb0b9313672aeb283ca6e30f0d480c3288899a3a898134278351828",
"size": 14339
},
"skills/tracelens-analysis-orchestrator/evals/eval_scripts/kill_eval_jobs.sh": {
"sha256": "917707fe6789c0bab104315fbb2e63d1aa86295404f8067c9b1d1149f2b1ca3d",
"size": 4127
},
"skills/tracelens-analysis-orchestrator/evals/eval_scripts/pack_test_archives.sh": {
"sha256": "176bfd4fee136941a2cfa269a96e7919e95ff2f3ab75dfbfd62cd7f7cd3a32e7",
"size": 4732
},
"skills/tracelens-analysis-orchestrator/evals/eval_scripts/run_pi_analysis_in_docker.sh": {
"sha256": "58b8b6c37c6b4c164930babb739e4e41ec0d4f7cf0d220253f2b089703a2ba90",
"size": 20031
},
"skills/tracelens-analysis-orchestrator/evals/eval_scripts/run_repeatability_parallel.sh": {
"sha256": "025077e3012383dd49d411d13fa0de3c8431f8964ae7b55b6716a07b29a94927",
"size": 24915
},
"skills/tracelens-analysis-orchestrator/evals/eval_utils/aggregate_repeatability.py": {
"sha256": "e91d8256564f846c74e7c890a9056507b3bbe3d5e45d6c0ac2d98072000c9411",
"size": 24663
},
"skills/tracelens-analysis-orchestrator/evals/eval_utils/compare_lca_partitions.py": {
"sha256": "fdae0d19985f7f94e5b13dc767147d2353a1738ae08568e2f6e1f3bb72b2c728",
"size": 16624
},
"skills/tracelens-analysis-orchestrator/evals/eval_utils/manual_eval_checklist.md": {
"sha256": "4caddfad1cb49330a6802b21f952a22194ad5a9fc9fba5df2b292b3e9d1adc8b",
"size": 3436
},
"skills/tracelens-analysis-orchestrator/evals/eval_utils/merge_results.py": {
"sha256": "cffbe981a673a15363d52e7600966d55e9fcca5cc5e47d30678bb4ac6d22e2d9",
"size": 3023
},
"skills/tracelens-analysis-orchestrator/evals/eval_utils/quality_scripted_evals.py": {
"sha256": "e9468c6d765b9e624b111261e8e5a6bd5fbc7c657fb7e822b61eaeac550c33f4",
"size": 8773
},
"skills/tracelens-analysis-orchestrator/evals/eval_utils/report_section_rules.yaml": {
"sha256": "762e4871f915039db287187baddf86a439b13d3a8265176cc59575a7724b6274",
"size": 3890
},
"skills/tracelens-analysis-orchestrator/evals/eval_utils/workflow_scripted_evals.py": {
"sha256": "8476ac44b63a2e82f97cd94a0e4fa7212c78546fde133324f025f50c625960aa",
"size": 54560
},
"skills/tracelens-analysis-orchestrator/evals/evals.json": {
"sha256": "2e4823156d3ac31b0ef8b02060af6d63e63f1e96cb864bd2fee295b6254bbf80",
"size": 3133
},
"skills/tracelens-analysis-orchestrator/evals/machine.yml": {
"sha256": "84c1fba8ef08613c98f8bfa6c4ce182ef5bb6019c0a21ab8272648043e1c4fa6",
"size": 285
},
"skills/tracelens-analysis-orchestrator/evals/partial_tests/README.md": {
"sha256": "b735f9b94ec8542f0ddc807bf187e0f595dd47a28c0ad1043ea5521068d233e4",
"size": 5567
},
"skills/tracelens-analysis-orchestrator/evals/partial_tests/eval_utils/semantic_partition_scripted_evals.py": {
"sha256": "15f71e37729f93eb9bd6d11f4f18d7c57ec5de96f47e665fd24ad66e440a134f",
"size": 5924
},
"skills/tracelens-analysis-orchestrator/evals/partial_tests/eval_utils/semantic_purity_aggregate.py": {
"sha256": "c63439afe74897b25e0644107857ce477ee1e656ad401d0faa1ed24a1b57b326",
"size": 9319
},
"skills/tracelens-analysis-orchestrator/evals/partial_tests/generate_gold_ref.sh": {
"sha256": "49ffac8367e56ccf8c38665c80d14ad7a59fb2da35f9ee7e1568c238f41535b5",
"size": 4232
},
"skills/tracelens-analysis-orchestrator/evals/partial_tests/partial_test_cases.csv": {
"sha256": "15e3865508af1f9758289d7b05924218dd8db9729f32dc862915243f231aac24",
"size": 1044
},
"skills/tracelens-analysis-orchestrator/evals/partial_tests/run_partial_tests.sh": {
"sha256": "2f25a3575f6bd1c816589ceacc23ac9936e37d750cb0ae8f72daf09481d58fd5",
"size": 7962
},
"skills/tracelens-analysis-orchestrator/evals/skills/eval-post-processing/SKILL.md": {
"sha256": "c7881b49cbcff71ca2b76683e01dfc7db669011b4309fb30987d8dc15187f880",
"size": 1693
},
"skills/tracelens-analysis-orchestrator/evals/skills/eval-post-processing/reference.md": {
"sha256": "4c81c6a300eb76a6c4d6b25aa1af55cc67f5064dbe9913e530735c1a0a151bf4",
"size": 14842
},
"skills/tracelens-analysis-orchestrator/evals/skills/eval-post-processing/run_post_processing.py": {
"sha256": "de7f72c9042776648a11d91ec0aba61e25f80315b2098125d83c44604be55014",
"size": 35336
},
"skills/tracelens-analysis-orchestrator/evals/skills/quality-llm-eval/SKILL.md": {
"sha256": "c659991834b66caddec1d7f84f4d89b63d40acf28e1ecdc346a524099b682e43",
"size": 1007
},
"skills/tracelens-analysis-orchestrator/evals/skills/quality-llm-eval/reference.md": {
"sha256": "6a96ff87a4c722c9ad6f26a67295ba4f8133b63fb9cd6d9fcc69e568ebfd9e38",
"size": 6498
},
"skills/tracelens-analysis-orchestrator/evals/skills/workflow-llm-eval/SKILL.md": {
"sha256": "4290e389d287146fd9a5647b3bf7f1bc0ca5d2bc2a4cbd4936905bf2ad5e0e27",
"size": 960
},
"skills/tracelens-analysis-orchestrator/evals/skills/workflow-llm-eval/reference.md": {
"sha256": "7d985ec98f2e1cef4ab7e2953ed66499808fbf8402b73761b0f8c09147249200",
"size": 2548
},
"skills/tracelens-analysis-orchestrator/reference.md": {
"sha256": "1aa42df8d45c8e096c5ea31bbfbe12b1693142e2ea61765adbdc652eb06f64d3",
"size": 38758
},
"skills/tracelens-analysis-orchestrator/skill-card.md": {
"sha256": "4fffef8a6e61d49990b3183f541cd43060153a0446ac9bdbb876a8234aece7f2",
"size": 396
},
"skills/tracelens-analysis-orchestrator/templates/analysis_template.md": {
"sha256": "0892dd1c82d238e326b5e31b1ebf336883e8c22b36a4c0dc53cf2ff6102dac93",
"size": 28621
},
"skills/tracelens-analysis-orchestrator/templates/sub_agent_spec.md": {
"sha256": "4105a83d6553edb8bb8bcfb090ef0f4a48cb1c9c733b137bebf9492dd7c1479b",
"size": 22622
},
"staging/apu-memory-tuner/SKILL.md": {
"sha256": "7622962583e1a9be411a241b6415b3ce67374eeee569b17c53a90f715b53db5b",
"size": 10263
},
"staging/apu-memory-tuner/reference.md": {
"sha256": "a4144d10fb43f6ed06ac33e1e59d61cdd4f7a952283af1bfe622285bb9fc36ae",
"size": 10563
},
"staging/apu-memory-tuner/scripts/apply_profile.py": {
"sha256": "4b7161f61cc08fa75e3b2d28a592903af4bf56387ce03990f4edc44c50f723e8",
"size": 15283
},
"staging/apu-memory-tuner/scripts/detect_platform.py": {
"sha256": "059a4cf5896900dd4b6eda5d02ff9e36eea78082b781efa57157bf266e2e80ea",
"size": 17311
},
"staging/apu-memory-tuner/scripts/show_config.py": {
"sha256": "167916dbdf3b69253cb83ba8139084f1041a05e6086425d1302bf9d96c84a4de",
"size": 10951
},
"staging/apu-memory-tuner/skill-card.md": {
"sha256": "328462a9003b307eea9fdb17c568a41bcba9aaa95529422dd49f965d95564668",
"size": 208
},
"walkthroughs/README.md": {
"sha256": "06dfcf3279b763a5e9aa919561758d45e54cbbcdb7c292d9a8b51e4ea98dcce7",
"size": 1484
},
"walkthroughs/hyperloom-workload-optimizer.md": {
"sha256": "3be544c71384f5309e2a35b231104133c29aef9d3db9695b06abba401f4dc34e",
"size": 7560
},
"walkthroughs/lemonade-router-builder.md": {
"sha256": "70b33f8631435b7b39a7017b95da87cc95a42344b379db55b73f69c171a0f7c2",
"size": 5170
},
"walkthroughs/local-ai-app-integration.md": {
"sha256": "219e6799f060e9c8087687b92982f1ed487258579660815dcc7cae83f89772cd",
"size": 6390
},
"walkthroughs/local-ai-use.md": {
"sha256": "d40ca9ce900fef391cde42779b10d40b92e3b6e2399b57de5335967109c2ede2",
"size": 1905
},
"walkthroughs/magpie-kernel-evaluator.md": {
"sha256": "90a2a809045ef863cccd74565492f07223f329805fc337ae6550fbec0b5ac5c4",
"size": 15516
},
"walkthroughs/serving-llms-on-epyc.md": {
"sha256": "6b33fe7777fe2a8aecd4b4b5bf4cee67e8d33d7f272a3d78524b71d746ce0f43",
"size": 7361
},
"walkthroughs/serving-llms-on-instinct.md": {
"sha256": "8d06f05248e542a114f6f267f3141cd18ddcc7d9ca46c1043a065a91157fae8d",
"size": 9857
},
"walkthroughs/tracelens-analysis-orchestrator.md": {
"sha256": "71404ed0aadf49a80d5496a76d9952fbc046540b3bcd6b93b12b1287e404fd5f",
"size": 9789
}
}
}SHA-256 of public snapshot: 77ed69ff744e2b3a2da6d6152f88a32d7abc66749d2e74b828f34f41546a1da5