Skip to content

arkui-sem

Semantic ArkUI linter for coding agents: a fact extractor finds candidate state bugs and a System One model judges each one.

Projectprototype

Overview

arkui-sem lints ArkTS/ArkUI declarative state inside coding agents. A fact extractor finds candidate bugs that ordinary linters miss, such as a field that is written and rendered but not reactive, a nested write the state decorator does not observe, or a resource that is never released.

A small System One decision model then judges each candidate; supported backends include Cloudflare Clef, TypeSafe Jev and DeepSeek flash used as System One, plus an offline heuristic backend. Confident verdicts go back to the agent as findings and uncertain ones as questions. It ships as an opencode plugin and a CLI, with a demo project of buggy pages. The README marks it as a prototype.

What the decision model decides

TypeQuestionAnswers
Yes / noIs this candidate a real reactivity or lifecycle bug?(inferred)yes · no

How it works

  1. Fact extractor scans ArkUI code for candidate bugs
  2. Decision model judges each candidate
  3. Confident verdicts returned as findings
  4. Uncertain ones returned as questions to the agent

Strengths

  • Catches state bugs linters cannot
  • Uncertainty becomes a question, not a false finding
  • Backend-agnostic, with an offline mode

Caveats

  • Prototype
  • Evaluation bench is a private submodule
  • Model backends need your own keys

Getting started

node scripts/setup.mjs, then node arkui-sem/dist/cli.js check --backend heuristic

At a glance

Type
Project
Status
prototype
Language
TypeScript
Runtime
opencode plugin + CLI
Has code
yes
Has tests
yes

Use cases and integrations

How curated lists describe it

Frequently asked questions

What does the model decide?

Whether each extracted candidate is a real ArkUI state or lifecycle bug.

Which models are supported?

Cloudflare Clef, TypeSafe Jev, DeepSeek flash and an offline heuristic.

Which agent does it plug into?

opencode, as a plugin, plus a standalone CLI.

Related projects

  • Coding-agent hook that asks Jev one yes/no per project rule on every edit or turn and makes the agent fix any violation.

    HookbetaTypeScript
  • Rust code-review gate asking Jev small typed questions about functions and tests, failing CI only on rules measured 80% right.

    CLIproductionRust
  • Advisor for coding agents: git and Stop hooks flag test tampering, secrets and skipped hooks, with optional Jev review findings.

    Hookbeta
  • Read-only Go CLI that checks files against your plain-language code rules with Jev, locally or in CI.

    CLIbetaGo
  • CLI and agent commands auditing a git diff against YAML standards packs, scoring each hunk with Jev so agents fix only flags.

    Agent skillbetaTypeScript
  • Fuzzy linter hook for Claude Code and Codex where Jev checks each written file against team rules and reports violations at edit time.

    HookbetaTypeScript