Agent skill

Litert Ats Op Generator

by google-ai-edge in google-ai-edge/LiteRT

Authors, registers, and tests new operator test generators for the LiteRT Accelerator Test Suite (ATS) in litert/test/generators/ and litert/ats/.

Apache-2.0Auto-check passedTesting & QA

Install Litert Ats Op Generator

skills CLI
$ npx skills add google-ai-edge/LiteRT --skill litert-ats-op-generator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install google-ai-edge/LiteRT litert-ats-op-generator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/google-ai-edge/LiteRT.git skills-src && mkdir -p .claude/skills && cp -r skills-src/google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator .claude/skills/litert-ats-op-generator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
litert-ats-op-generator
GitHub stars
3.5k
Token cost
~4.7k tokens
SKILL.md length
1,549 words
Files
3 (incl. references)
Skills in repo
2
Repo updated
First seen
Licence
Apache-2.0

At a glance

Authors, registers, and tests new operator test generators for the LiteRT Accelerator Test Suite (ATS) in litert/test/generators/ and litert/ats/.

  • Works in 5 steps: Classify the Op & Verify Prerequisites → Author the Generator (test/generators/.h… → Export in generators.h &… → …
  • Onboarding a new TFLite primitive op
  • SKILL.md covers Reference Guides (Progressive… and End-to-End Onboarding Workflow…
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Litert Ats Op Generator is an agent skill from google-ai-edge/LiteRT. Authors, registers, and tests new operator test generators for the LiteRT Accelerator Test Suite (ATS) in litert/test/generators/ and litert/ats/. Use when onboarding a new TFLite primitive op or StableHLO composite op into LiteRT ATS, expanding ATS op coverage, creating or debugging a TestGraph generator, wiring op registration into registersingleops or registercompositeops, or picking a candidate op to onboard to ATS.

Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/composite_op_patterns.md` and `references/primitive_op_patterns.md`).

It sits in Testing & QA, covering Test generation. It works with TensorFlow. The repository describes itself as: LiteRT, successor to TensorFlow Lite. is Google's On-device framework for high-performance ML & GenAI deployment on edge platforms, via efficient conversion, runtime, and…. The licence is Apache-2.0.

When your agent uses it

  • Onboarding a new TFLite primitive op
  • StableHLO composite op into LiteRT ATS
  • Expanding ATS op coverage
  • Debugging a TestGraph generator

Example prompts

  • “/litert-ats-op-generator”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Classify the Op & Verify Prerequisites
  2. Author the Generator (test/generators/.h & test/generators/BUILD)
  3. Export in generators.h & test/generators/BUILD
  4. Register the Op in ATS (litert/ats/)
  5. Run Mandatory Verification Gates & Configure Backend Exclusions

What it can do on your machine

Read from SKILL.md and the folder at commit aeae743. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and cpp).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Litert Ats Op Generator loads about 4.7k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 113 tokens; SKILL.md has 1,549 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~113
When it runs · the whole SKILL.md, loaded when a task matches
~4.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~13k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from google-ai-edge/LiteRT at commit aeae743, republished under its Apache-2.0 licence (© google-ai-edge). 1,549 words, ~4,686 tokens.

Download SKILL.mdSave it as .claude/skills/litert-ats-op-generator/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
litert-ats-op-generator
description
Authors, registers, and tests new operator test generators for the LiteRT Accelerator Test Suite (ATS) in litert/test/generators/ and litert/ats/. Use when onboarding a new TFLite primitive op or StableHLO composite op into LiteRT ATS, expanding ATS op coverage, creating or debugging a TestGraph generator, wiring op registration into register_single_ops or register_composite_ops, or picking a candidate op to onboard to ATS.

LiteRT ATS Op Generator Onboarding Skill

This skill guides you through the complete end-to-end workflow for onboarding a new operator into the LiteRT Accelerator Test Suite (ATS) (//litert/ats/).

ATS validates hardware accelerator backends (CPU/XNNPACK, GPU, Qualcomm QNN, Metal, WebGPU, MediaTek, Google Tensor, Intel OpenVINO) by generating self-contained single-op or composite-op LiteRtModelT graphs with randomized shapes/parameters, executing them on the target accelerator, and comparing outputs against a known-good CPU reference implementation.


Reference Guides (Progressive Disclosure)

Read the relevant reference file before writing code:

  • references/primitive_op_patterns.md: Copy-pasteable C++ templates and idioms for Primitive TFLite Ops (SingleOp / CoreSingleOp), covering authoring missing Reference<Op> kernels, simple ops, shape-inferred ops, static constant tensor inputs (axes, weights, biases), and affine quantization.
  • references/composite_op_patterns.md: Copy-pasteable C++ templates and idioms for StableHLO Composite Ops (CompositeOp), covering kStratifiedGrid, Flexbuffer attributes, single- and multi-output StableHLOComposite decompositions, and extending ReferenceEvaluator.

End-to-End Onboarding Workflow (The 4 Touchpoints)

Every ATS op onboarding touches ONLY 4 places in litert/test/generators/ and litert/ats/ (aside from any missing upstream litert::tensor or core/model/ops/<op>.h prerequisites in Step 0):

  1. Generator Header: test/generators/<op>.h + header-only cc_library in test/generators/BUILD (never create a test/generators/<op>_test.cc file or cc_test target)
  2. Umbrella Export: #include in test/generators/generators.h + dependency in test/generators/BUILD (:generators)
  3. ATS Registration: ats/register_<op>.h + ats/register_<op>.cc + cc_library in ats/BUILD
  4. Bundle & Backend Wiring: ats/register_{single,composite}_ops.cc + ats/BUILD (including --dont_register exclusions if a backend lacks support)

Step 0: Classify the Op & Verify Prerequisites

Before creating files, determine whether the target op is a Primitive TFLite Op or a StableHLO Composite Op, and check its upstream building blocks in the live workspace. If the user instead asks "what op should I onboard next?", dynamically compare what is already registered in register_single_ops.cc, register_composite_ops.cc, and test/generators/BUILD against the ops available in core/model/BUILD and tensor/arithmetic.h:

For Primitive TFLite Ops:
  1. Graph Builder (litert::tensor): Check tensor/arithmetic.h and arithmetic_tflite.h for litert::tensor::<Op>(...).
    • Always prefer the declarative litert::tensor::Tensor<litert::tensor::TfLiteMixinTag> + SaveTensorGraph({output}) API over legacy SingleOpModel.
    • If the op is missing from litert::tensor, wire it through all 5 places in tensor/ so SaveTensorGraph can both serialize and parse the TFLite flatbuffer:
      1. arithmetic_graph.h: Define struct <Op>Operation.
      2. arithmetic.h: Add the litert::tensor::<Op>(...) builder (if an elementwise op's output dtype differs from its inputs—such as Type::kBOOL for comparison ops—override GetInfo(output.GetRaw())->type inside ElementwiseOp).
      3. arithmetic_tflite.h & arithmetic_tflite.cc: Declare and implement Build<Op>.
      4. tflite_flatbuffer_conversion.cc: Register graph::<Op>Operation in OpConverter.
      5. tflite_flatbuffer_parser.cc: Add the tflite::BuiltinOperator_<OP> case so SaveTensorGraph can parse the serialized flatbuffer back into LiteRtModelT.
  2. Reference Kernel & Shape Inference (litert/core/model/ops/): Check core/model/BUILD (ops_* targets) for litert::internal::Reference<Op> and litert::internal::Infer<Op>.
    • LiteRT Reference Kernel Methodology: LiteRT authors its own standalone, self-contained C++ reference kernels in litert/core/model/ops/<op>.h—do not wrap legacy tflite::reference_ops (//third_party/tensorflow/lite/kernels/internal:reference_base).
    • Float-First Design: Compute/math reference kernels operate purely on float buffers (const float*, float*), while generators convert arbitrary input/output types (float, tflite::half, etc.) via UnpackToFloat and PackFromFloat. Pure data-movement/indexing/comparison ops (Slice, Select, Transpose, Tile, Concatenation) use template <typename T> (or template <typename InT, typename OutT> when input and output element types differ).
    • If Reference<Op> is missing: Add Reference<Op> (and Infer<Op> if creating a new header) to litert/core/model/ops/<op>.h, add unit tests in litert/core/model/ops/<op>_test.cc, and register it in ReferenceEvaluator::RegisterStandardOps(). See Section 0 of references/primitive_op_patterns.md for full details.
For StableHLO Composite Ops:
  1. Decomposed Primitive Ops in litert::tensor: Verify that every primitive op used inside your decompose lambda exists in tensor/arithmetic.h.
  2. Decomposed Primitive Ops in ReferenceEvaluator: Composite ops compute reference outputs by running the decomposed subgraph through ReferenceEvaluator::EvaluateCompositeReference.

Step 1: Author the Generator (test/generators/<op>.h & test/generators/BUILD)

Read references/primitive_op_patterns.md (for primitive ops) or references/composite_op_patterns.md (for composite ops) and create litert/test/generators/<op>.h.

[!WARNING] Avoid Legacy SingleOpModel and Generator Test Anti-Patterns:

  • Do NOT create standalone <op>_test.cc files or cc_test targets in test/generators/: Existing *_test.cc files in test/generators/ (sdpa_test.cc, unary_test.cc, binary_no_bcast_test.cc) are legacy. Standalone generator unit tests are redundant because reference math is tested in core/model/ops/<op>_test.cc (or reference_evaluator_test.cc) and the generator itself is verified end-to-end by :register_ops_contract_test, :builtin_ats, :ats, and :ynnpack_ats.
  • Do NOT edit FbOpTypes in test/generators/common.h (FbOpTraits / FbOpTraitsNoOptions) when building graphs with litert::tensor + SaveTensorGraph. FbOpTypes is only used by legacy SingleOpModel.
  • Do NOT write custom GetTensorType<T>() helpers in your generator. Use litert::tensor::ApiType<T>::value directly (including for tflite::half, which is specialized in tensor/backends/tflite/arithmetic_tflite.h).
  • Do NOT include litert_c_types_printing.h in generator headers.
The 7 Non-Negotiable Generator Invariants
  1. All Template Parameters Must Be Types:

    • RegisterCombinations and ExpandProduct only expand C++ types, never non-type template parameters (size_t, bool, enums).
    • Wrap compile-time constants using the wrappers in test/generators/common.h:
      • Ranks / integers / axes: SizeC<N> (and SizeListC<1, 2, 3, 4>)
      • Opcodes: OpCodeC<kLiteRtOpCodeTfl...> (and OpCodeListC<...>)
      • Fused activations: FaC<tflite::ActivationFunctionType_...> (and FaListC<...>)
      • Booleans: std::true_type / std::false_type (std::bool_constant<bool>)
  2. TestLogicTraits InputTypes Must Only List Dynamic Runtime Inputs:

    • using Traits = TestLogicTraits<TypeList<InTypes...>, TypeList<OutTypes...>, Params>;
    • Only include tensors passed at runtime in MakeInputs() in InputTypes. Static constant tensors baked into the graph via litert::tensor::Create(..., data) or OwningCpuBuffer::CopyAs(...) (such as reduction axes, Slice begin/size constants, FullyConnected static weights/biases, or static normalization scale weights) are not subgraph runtime inputs—omit them from InputTypes and MakeInputs(). (ReferenceEvaluator::EvaluateCompositeReference automatically binds constant composite inputs from the graph's buffers.)
  3. Provide Both Create(Rng& rng) and Create(Params params):

    • Implement static Expected<Ptr> Create(Rng& rng) to sample randomized shapes/parameters and delegate to static Expected<Ptr> Create(Params params).
    • Exposing Create(Params) separates parameter sampling from graph construction and allows deterministic instantiation with explicit shapes.
  4. Name() Must Return a Static PascalCase Family Name:

    • TestNames::Create uses Logic::Name() as the <Family> component of the GTest suite name (<Prefix>_<Fixture>_<Family>, e.g., CoreSingleOp_inference_Slice or CompositeOp_inference_Sdpa).
    • Return a static string literal for both primitive and composite ops (e.g., return "Slice";, return "SelectV2";, return "Sdpa";)—never embed random runtime dimensions in Name().
    • The individual GTest case name is automatically formatted from the generated LiteRtModelT graph via NormalizeGraphName(FormatGraph(graph)) and verified by register_ops_contract_test.cc.
  5. Preserve Deterministic Dummy Builders in MakeInputs():

    • When constraining float ranges in MakeInputs() (to prevent NaN/Inf overflow in FP16 or transcendental ops), always guard with if (!data_builder.IsFloatDummy()):
      cpp
      RandomTensorDataBuilder builder = data_builder;
      if (!builder.IsFloatDummy()) {
        builder.SetFloatRange(-2.0f, 2.0f);
      }
    • Without if (!builder.IsFloatDummy()), callers that set data_builder.SetFloatDummy() for sequential {0, 1, 2, ...} inputs will have their range overwritten.
  6. Follow the Float-First UnpackToFloat / PackFromFloat Pattern in Reference():

    • When Reference<Op> in core/model/ops/ operates on float* buffers (the standard LiteRT convention for math, reduction, activation, convolution, and matmul ops), unpack inputs (float, tflite::half, etc.) to std::vector<float> using UnpackToFloat(in.data), run the float reference kernel, and pack back using PackFromFloat(absl::MakeConstSpan(out_f32), out.data).
    • When Reference<Op> is a pure data-movement or comparison op templated directly on T (e.g., ReferenceSlice<T>, ReferenceSelect<T>, ReferenceTranspose<T>, ReferenceTile<T>, ReferenceConcatenation<T>), pass in.data.data() and out.data.data() directly.
  7. Choose the Right GetConformanceSpec() Comparator:

    Op CategoryConformanceComparatorKindRequired Spec FieldsExamples
    Data movement / indexing / comparisonkExactspec.comparator_kind = ConformanceComparatorKind::kExact;Slice, SelectV2, Transpose, ExpandDims, Squeeze
    Elementwise float / simple compositekFloatElementwiseDefault (ConformanceSpec{})Unary, SwiGLU, QkvNormRope
    Reductions, norms, matmuls, attentionkFloatAccumulationAwarespec.accumulation_depth = <reduction_elements>;Mean, Softmax, BatchMatmul, FullyConnected, Sdpa
    Quantized int8 / uint8 opskQuantizedBucketspec.bucket_tolerance = 1;Quantized FullyConnected

Add the cc_library target for <op> in test/generators/BUILD.


Show full SKILL.md (447 more words)Show less
Step 2: Export in generators.h & test/generators/BUILD
  1. Add the #include (in alphabetical order) to generators.h:
    cpp
    #include "litert/test/generators/<op>.h"  // IWYU pragma: export
  2. Add ":<op>" to the deps of cc_library(name = "generators", ...) in test/generators/BUILD.

Step 3: Register the Op in ATS (litert/ats/)
  1. Create litert/ats/register_<op>.h and register_<op>.cc:
    • Declare and define both AtsInferenceTest::Capture& and AtsCompileTest::Capture& overloads of Register<Op>(const AtsConf& options, size_t& test_id, size_t iters, ...).
    • Use RegisterCombinations<Fixture, <Op>, ...>(iters, test_id, options, cap);.
    • Add cc_library(name = "register_<op>", ...) in ats/BUILD.
  2. Wire into the Appropriate Registration Bundle:
    • Primitive TFLite Ops -> register_single_ops.cc:
      • Used for all primitive single ops. Linked into all hardware backend ATS targets (:ats, :cpu_ats, :gpu_ats, :qualcomm_ats, :metal_macos_ats, :webgpu_macos_ats) and :register_ops_contract_test.
      • Automatic "CoreSingleOp" vs. "SingleOp" Classification: TestNames::Create automatically inspects the op's LiteRtOpCode against IsCoreSingleOp(LiteRtOpCode) in ats/common.h. If IsCoreSingleOp returns true, the test suite receives the "CoreSingleOp" prefix; otherwise it receives "SingleOp".
    • StableHLO Composite Ops -> register_composite_ops.cc:
      • Required for StableHLO composite ops (TestNames::Create automatically assigns "CompositeOp" when the top-level op is kLiteRtOpCodeShloComposite). Linked into all backend ATS targets and :register_ops_contract_test.
      • Important: Set /*iters=*/ in register_composite_ops.cc to >= kGridSize (e.g., 16 or 20) so every entry in your kStratifiedGrid is executed!
  3. Add ":register_<op>" to deps of :register_single_ops (for primitive ops) or :register_composite_ops (for composite ops) in ats/BUILD.

Step 4: Run Mandatory Verification Gates & Configure Backend Exclusions

Always run these verification commands using /google/bin/releases/arca9-local-blaze-cli/blaze-for-agents:

  1. Registration Contract Test (instantiates Create(rng) across all registered combinations and verifies suite prefix, uniqueness, and signature formatting):
    bash
    /google/bin/releases/arca9-local-blaze-cli/blaze-for-agents test //litert/ats:register_ops_contract_test
  2. Targeted ATS Execution for the New Op:
    bash
    /google/bin/releases/arca9-local-blaze-cli/blaze-for-agents run //litert/ats:builtin_ats -- --do_register=".*<OpName>.*"
    /google/bin/releases/arca9-local-blaze-cli/blaze-for-agents run //litert/ats:ats -- --do_register=".*<OpName>.*"
  3. Full Host CPU (Built-in, XNNPACK & YNNPACK) ATS Regression Checks:
    bash
    /google/bin/releases/arca9-local-blaze-cli/blaze-for-agents test \
      //litert/ats:builtin_ats \
      //litert/ats:ats \
      //litert/ats:ynnpack_ats
    • Why :builtin_ats Is Essential: :builtin_ats (and :builtin_cpu_ats) runs the TFLite built-in CPU kernels (--cpu_kernel_mode=builtin, no delegate) directly against your generator's Reference(), validating graph construction and reference outputs end-to-end even when an op is excluded in XNNPACK_DONT_REGISTER on :ats (note that BUILTIN_DONT_REGISTER excludes _f16 because TFLite built-in CPU kernels do not support FLOAT16 tensors).
    • Handling Unsupported Ops/Types on CPU Delegates (3 Exclusion Lists):
      • :ats and :cpu_ats run against the XNNPACK CPU delegate (backend = "cpu"), :cpu_macos_ats has its own inline dont_register list mirroring XNNPACK_DONT_REGISTER, and :ynnpack_ats / :ynnpack_cpu_ats use YNNPACK_DONT_REGISTER in ats/BUILD. Neither delegate supports every primitive op, data type, or composite op (for example, OneHot, SelectV2, tfl.floor_div, Swiglu, QkvNormRope, or SdpaTransposed).
      • If :ats or :ynnpack_ats fails because XNNPACK or YNNPACK does not support your new op or specific template combinations, add a narrow regex with an explanatory comment to all applicable CPU exclusion lists in ats/BUILD:
        1. XNNPACK_DONT_REGISTER
        2. :cpu_macos_ats's inline dont_register list (keep in sync with XNNPACK_DONT_REGISTER)
        3. YNNPACK_DONT_REGISTER
      • Re-run :builtin_ats, :ats, and :ynnpack_ats to confirm all three are green, and run build_cleaner on litert/test/generators/BUILD and litert/ats/BUILD if needed.

© google-ai-edge, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator of google-ai-edge/LiteRT.

  • SKILL.md
  • references/composite_op_patterns.md
  • references/primitive_op_patterns.md

Open the folder on GitHubat commit aeae743

Compare with similar skills

Litert Ats Op Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Litert Ats Op Generator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Litert Ats Op Generator this skillgoogle-ai-edge/LiteRT3.5k—~4.7kAutomated safety check: PassApache-2.0
Code SolvingHoangTheQuyen/think-better122—~3.7kAutomated safety check: PassMIT
Ue Test AuthoringJasonMa0012/MooaToon750—~2.1kAutomated safety check: NotesCustom licence
Veomni Patchgen ModelByteDance-Seed/VeOmni2.2k—~9.6kAutomated safety check: PassApache-2.0
MoAI TDD Workflowmodu-ai/moai-adk1.2k—~3.1kAutomated safety check: PassApache-2.0
Pre Commitwellwelwel/poku1.2k—~728Automated safety check: PassMIT

Similar skills

  • Code Solving

    HoangTheQuyen/think-better

    Structured coding workflow for non-trivial code work: debug, build features, refactor, optimize, migrate and review code through 7 steps with evidence-based quality gates.

    122 GitHub stars~3.7k tokensUpdated 2 days ago
    Testing & QAAuto-check passed
  • Ue Test Authoring

    JasonMa0012/MooaToon

    A skill your agent uses when writing or modifying UE automated tests (Automation, CQTest, Functional, Gauntlet, LowLevel) with Rider MCP available.

    750 GitHub stars~2.1k tokensUpdated 23 days ago
    Testing & QAAuto-check: notes
  • Veomni Patchgen Model

    ByteDance-Seed/VeOmni

    Author or refresh a VeOmni model's patchgen-generated modeling under generated/ — GPU and/or NPU config, dense or MoE, text / VLM / Omni.

    2.2k GitHub stars~9.6k tokensUpdated today
    Testing & QAAuto-check passed
  • MoAI TDD Workflow

    modu-ai/moai-adk

    Drives test-first development through the RED, GREEN, REFACTOR cycle, with a config switch that selects between TDD and a DDD workflow for existing code.

    1.2k GitHub stars~3.1k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Pre Commit

    wellwelwel/poku

    Run the mandatory pre-commit checks for the poku repository before staging a commit.

    1.2k GitHub stars~728 tokensUpdated 3 mo ago
    Testing & QAAuto-check passed
  • Eval Triage And Improvement

    microsoft/eval-guide

    Official

    A skill your agent uses when the user's Copilot Studio agent evaluations have come back and they need to interpret scores, diagnose root causes of underperforming test cases, find remediation steps…

    138 GitHub stars~5.9k tokensUpdated 3 mo ago
    Testing & QAAuto-check passed

More from google-ai-edge/LiteRT

  • Debugging Litert GPU Accuracy

    google-ai-edge/LiteRT

    Diagnoses and fixes on-device GPU numerical corruption, garbage generation, zeroed KV caches, and ML Drift delegate lowering bugs for LiteRT and LiteRT-LM models on Android (OpenCL and WebGPU).

    3.5k GitHub stars~3.3k tokensUpdated today
    Auto-check passed

Works with

Questions about Litert Ats Op Generator

What does Litert Ats Op Generator do?

Authors, registers, and tests new operator test generators for the LiteRT Accelerator Test Suite (ATS) in litert/test/generators/ and litert/ats/. Litert Ats Op Generator is an agent skill from google-ai-edge/LiteRT. Authors, registers, and tests new operator test generators for the LiteRT Accelerator Test Suite (ATS) in litert/test/generators/ and litert/ats/.

When should I use Litert Ats Op Generator?

Litert Ats Op Generator fits situations like: onboarding a new TFLite primitive op; stableHLO composite op into LiteRT ATS; expanding ATS op coverage; debugging a TestGraph generator.

How do I install Litert Ats Op Generator in Claude Code?

Run `npx skills add google-ai-edge/LiteRT --skill litert-ats-op-generator -a claude-code`. Or copy the skill folder (google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator in google-ai-edge/LiteRT) into .claude/skills/litert-ats-op-generator in your project. Claude Code loads it when a task matches its description.

How do I install Litert Ats Op Generator in Codex?

Run `npx skills add google-ai-edge/LiteRT --skill litert-ats-op-generator -a codex`. Or copy the skill folder (google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator in google-ai-edge/LiteRT) into .agents/skills/litert-ats-op-generator in your project. Codex loads it when a task matches its description.

Can I use Litert Ats Op Generator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add google-ai-edge/LiteRT --skill litert-ats-op-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/litert-ats-op-generator, .gemini/skills/litert-ats-op-generator, .github/skills/litert-ats-op-generator and .opencode/skills/litert-ats-op-generator in your project.

What does Litert Ats Op Generator need to run?

SKILL.md names no scripts, command-line tools or credentials: Litert Ats Op Generator is instructions for the agent only.

Does Litert Ats Op Generator access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Litert Ats Op Generator safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Litert Ats Op Generator use?

Litert Ats Op Generator is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Litert Ats Op Generator use?

About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8.1k tokens, read only when the agent opens those files.

What are the alternatives to Litert Ats Op Generator?

Skills that share tags, products or a category with Litert Ats Op Generator: Code Solving (HoangTheQuyen/think-better, 122 stars), Ue Test Authoring (JasonMa0012/MooaToon, 750 stars), Veomni Patchgen Model (ByteDance-Seed/VeOmni, 2.2k stars) and MoAI TDD Workflow (modu-ai/moai-adk, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Litert Ats Op Generator?

google-ai-edge (a GitHub organization) maintains it in google-ai-edge/LiteRT, which has 3,483 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 11, 2026.

Source: google-ai-edge/LiteRT on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.