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.
Authors, registers, and tests new operator test generators for the LiteRT Accelerator Test Suite (ATS) in litert/test/generators/ and litert/ats/.
$ npx skills add google-ai-edge/LiteRT --skill litert-ats-op-generator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install google-ai-edge/LiteRT litert-ats-op-generator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "litert-ats-op-generator" agent skill from https://github.com/google-ai-edge/LiteRT/tree/main/google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator into .claude/skills/litert-ats-op-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "litert-ats-op-generator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/google-ai-edge/LiteRT/tree/main/google3/third_party/odml/litert/_agents/skills/litert_ats_op_generatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add google-ai-edge/LiteRT --skill litert-ats-op-generator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install google-ai-edge/LiteRT litert-ats-op-generator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google-ai-edge/LiteRT.git skills-src && mkdir -p .agents/skills && cp -r skills-src/google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator .agents/skills/litert-ats-op-generator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "litert-ats-op-generator" agent skill from https://github.com/google-ai-edge/LiteRT/tree/main/google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator into .agents/skills/litert-ats-op-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "litert-ats-op-generator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add google-ai-edge/LiteRT --skill litert-ats-op-generator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install google-ai-edge/LiteRT litert-ats-op-generator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google-ai-edge/LiteRT.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator .cursor/skills/litert-ats-op-generator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "litert-ats-op-generator" agent skill from https://github.com/google-ai-edge/LiteRT/tree/main/google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator into .cursor/skills/litert-ats-op-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "litert-ats-op-generator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/google-ai-edge/LiteRT.git --path google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add google-ai-edge/LiteRT --skill litert-ats-op-generator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install google-ai-edge/LiteRT litert-ats-op-generator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google-ai-edge/LiteRT.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator .gemini/skills/litert-ats-op-generator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "litert-ats-op-generator" agent skill from https://github.com/google-ai-edge/LiteRT/tree/main/google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator into .gemini/skills/litert-ats-op-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "litert-ats-op-generator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install google-ai-edge/LiteRT litert-ats-op-generatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add google-ai-edge/LiteRT --skill litert-ats-op-generator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/google-ai-edge/LiteRT.git skills-src && mkdir -p .github/skills && cp -r skills-src/google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator .github/skills/litert-ats-op-generator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "litert-ats-op-generator" agent skill from https://github.com/google-ai-edge/LiteRT/tree/main/google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator into .github/skills/litert-ats-op-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "litert-ats-op-generator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add google-ai-edge/LiteRT --skill litert-ats-op-generator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install google-ai-edge/LiteRT litert-ats-op-generator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google-ai-edge/LiteRT.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator .opencode/skills/litert-ats-op-generator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "litert-ats-op-generator" agent skill from https://github.com/google-ai-edge/LiteRT/tree/main/google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator into .opencode/skills/litert-ats-op-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "litert-ats-op-generator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
litert-ats-op-generatorAuthors, 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/. 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.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit aeae743. It shows what the files ask for, not the result of running them.
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.
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.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
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.
.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.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.
Read the relevant reference file before writing code:
SingleOp / CoreSingleOp), covering authoring missing Reference<Op>
kernels, simple ops, shape-inferred ops, static constant tensor inputs (axes,
weights, biases), and affine quantization.CompositeOp), covering kStratifiedGrid, Flexbuffer attributes, single-
and multi-output StableHLOComposite decompositions, and extending
ReferenceEvaluator.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):
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)#include in test/generators/generators.h +
dependency in test/generators/BUILD (:generators)ats/register_<op>.h + ats/register_<op>.cc +
cc_library in ats/BUILDats/register_{single,composite}_ops.cc +
ats/BUILD (including --dont_register exclusions if a backend lacks
support)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:
litert::tensor): Check
tensor/arithmetic.h
and
arithmetic_tflite.h
for litert::tensor::<Op>(...).litert::tensor::Tensor<litert::tensor::TfLiteMixinTag> +
SaveTensorGraph({output}) API over legacy SingleOpModel.litert::tensor, wire it through all 5
places in tensor/ so SaveTensorGraph can
both serialize and parse the TFLite flatbuffer:struct <Op>Operation.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).Build<Op>.graph::<Op>Operation in OpConverter.tflite::BuiltinOperator_<OP> case so SaveTensorGraph can
parse the serialized flatbuffer back into LiteRtModelT.litert/core/model/ops/): Check
core/model/BUILD
(ops_* targets) for litert::internal::Reference<Op> and
litert::internal::Infer<Op>.litert/core/model/ops/<op>.h—do not wrap
legacy tflite::reference_ops
(//third_party/tensorflow/lite/kernels/internal:reference_base).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).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.litert::tensor: Verify that every primitive
op used inside your decompose lambda exists in
tensor/arithmetic.h.ReferenceEvaluator: Composite ops compute
reference outputs by running the decomposed subgraph through
ReferenceEvaluator::EvaluateCompositeReference.ReferenceEvaluator::RegisterStandardOps()
to confirm every kLiteRtOpCodeTfl* emitted by your decompose lambda is
registered.reference_evaluator.cc, register its
handler there and add a test case in
reference_evaluator_test.cc.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
SingleOpModeland Generator Test Anti-Patterns:
- Do NOT create standalone
<op>_test.ccfiles orcc_testtargets intest/generators/: Existing*_test.ccfiles intest/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 incore/model/ops/<op>_test.cc(orreference_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
FbOpTypesintest/generators/common.h(FbOpTraits/FbOpTraitsNoOptions) when building graphs withlitert::tensor+SaveTensorGraph.FbOpTypesis only used by legacySingleOpModel.- Do NOT write custom
GetTensorType<T>()helpers in your generator. Uselitert::tensor::ApiType<T>::valuedirectly (including fortflite::half, which is specialized intensor/backends/tflite/arithmetic_tflite.h).- Do NOT include
litert_c_types_printing.hin generator headers.
All Template Parameters Must Be Types:
RegisterCombinations
and ExpandProduct only expand C++ types, never non-type template
parameters (size_t, bool, enums).SizeC<N> (and SizeListC<1, 2, 3, 4>)OpCodeC<kLiteRtOpCodeTfl...> (and OpCodeListC<...>)FaC<tflite::ActivationFunctionType_...> (and
FaListC<...>)std::true_type / std::false_type
(std::bool_constant<bool>)TestLogicTraits InputTypes Must Only List Dynamic Runtime Inputs:
using Traits = TestLogicTraits<TypeList<InTypes...>, TypeList<OutTypes...>, Params>;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.)Provide Both Create(Rng& rng) and Create(Params params):
static Expected<Ptr> Create(Rng& rng) to sample randomized
shapes/parameters and delegate to
static Expected<Ptr> Create(Params params).Create(Params) separates parameter sampling from graph
construction and allows deterministic instantiation with explicit shapes.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 "Slice";, return "SelectV2";, return "Sdpa";)—never embed
random runtime dimensions in Name().LiteRtModelT graph via NormalizeGraphName(FormatGraph(graph))
and verified by
register_ops_contract_test.cc.Preserve Deterministic Dummy Builders in MakeInputs():
MakeInputs() (to prevent NaN/Inf
overflow in FP16 or transcendental ops), always guard with
if (!data_builder.IsFloatDummy()):RandomTensorDataBuilder builder = data_builder;
if (!builder.IsFloatDummy()) {
builder.SetFloatRange(-2.0f, 2.0f);
}if (!builder.IsFloatDummy()), callers that set
data_builder.SetFloatDummy() for sequential {0, 1, 2, ...} inputs will
have their range overwritten.Follow the Float-First UnpackToFloat / PackFromFloat Pattern in Reference():
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).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.Choose the Right GetConformanceSpec() Comparator:
| Op Category | ConformanceComparatorKind | Required Spec Fields | Examples |
|---|---|---|---|
| Data movement / indexing / comparison | kExact | spec.comparator_kind = ConformanceComparatorKind::kExact; | Slice, SelectV2, Transpose, ExpandDims, Squeeze |
| Elementwise float / simple composite | kFloatElementwise | Default (ConformanceSpec{}) | Unary, SwiGLU, QkvNormRope |
| Reductions, norms, matmuls, attention | kFloatAccumulationAware | spec.accumulation_depth = <reduction_elements>; | Mean, Softmax, BatchMatmul, FullyConnected, Sdpa |
| Quantized int8 / uint8 ops | kQuantizedBucket | spec.bucket_tolerance = 1; | Quantized FullyConnected |
Add the cc_library target for <op> in
test/generators/BUILD.
generators.h & test/generators/BUILD#include (in alphabetical order) to
generators.h:#include "litert/test/generators/<op>.h" // IWYU pragma: export":<op>" to the deps of cc_library(name = "generators", ...) in
test/generators/BUILD.litert/ats/)litert/ats/register_<op>.h and register_<op>.cc:AtsInferenceTest::Capture& and
AtsCompileTest::Capture& overloads of
Register<Op>(const AtsConf& options, size_t& test_id, size_t iters, ...).RegisterCombinations<Fixture, <Op>, ...>(iters, test_id, options, cap);.cc_library(name = "register_<op>", ...) in
ats/BUILD.:ats, :cpu_ats, :gpu_ats, :qualcomm_ats,
:metal_macos_ats, :webgpu_macos_ats) and
:register_ops_contract_test."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".TestNames::Create
automatically assigns "CompositeOp" when the top-level op is
kLiteRtOpCodeShloComposite). Linked into all backend ATS targets and
:register_ops_contract_test./*iters=*/ in register_composite_ops.cc to
>= kGridSize (e.g., 16 or 20) so every entry in your
kStratifiedGrid is executed!":register_<op>" to deps of :register_single_ops (for primitive
ops) or :register_composite_ops (for composite ops) in
ats/BUILD.Always run these verification commands using
/google/bin/releases/arca9-local-blaze-cli/blaze-for-agents:
Create(rng) across all
registered combinations and verifies suite prefix, uniqueness, and signature
formatting):/google/bin/releases/arca9-local-blaze-cli/blaze-for-agents test //litert/ats:register_ops_contract_test/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>.*"/google/bin/releases/arca9-local-blaze-cli/blaze-for-agents test \
//litert/ats:builtin_ats \
//litert/ats:ats \
//litert/ats:ynnpack_ats: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).: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).: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:XNNPACK_DONT_REGISTER:cpu_macos_ats's inline dont_register list (keep in sync with
XNNPACK_DONT_REGISTER)YNNPACK_DONT_REGISTER: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
SKILL.md and 2 other files (references) in google3/third_party/odml/litert/_agents/skills/litert_ats_op_generator of google-ai-edge/LiteRT.
Open the folder on GitHubat commit aeae743
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Litert Ats Op Generator this skillgoogle-ai-edge/LiteRT | 3.5k | — | ~4.7k | Automated safety check: Pass | Apache-2.0 | |
| Code SolvingHoangTheQuyen/think-better | 122 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Ue Test AuthoringJasonMa0012/MooaToon | 750 | — | ~2.1k | Automated safety check: Notes | Custom licence | |
| Veomni Patchgen ModelByteDance-Seed/VeOmni | 2.2k | — | ~9.6k | Automated safety check: Pass | Apache-2.0 | |
| MoAI TDD Workflowmodu-ai/moai-adk | 1.2k | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Pre Commitwellwelwel/poku | 1.2k | — | ~728 | Automated safety check: Pass | MIT |
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.
JasonMa0012/MooaToon
A skill your agent uses when writing or modifying UE automated tests (Automation, CQTest, Functional, Gauntlet, LowLevel) with Rider MCP available.
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.
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.
wellwelwel/poku
Run the mandatory pre-commit checks for the poku repository before staging a commit.
microsoft/eval-guide
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…
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).
Works with
Categories
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/.
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.
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.
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.
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.
SKILL.md names no scripts, command-line tools or credentials: Litert Ats Op Generator is instructions for the agent only.
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.
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.
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.
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.
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.
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.