跳到主要内容
知仓学习社ZHICANG

mobile-platform-offline-validate

Review a Lightning Web Component for **mobile offline** compatibility — the Komaci offline static analyzer that pre-primes the data graph for Salesf…

不碰外部(只输出文字)无严重或高危命中forcedotcom/sf-skills

它会碰到什么

扫了多少8 个文本文件,25 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

Reviewing LWC Mobile Offline

Run a structured offline-priming compliance pass over a Lightning Web

Component, producing a report of issues found and code-level fixes to bring

the component into compliance with Komaci's static analysis requirements

for the Salesforce Mobile App Plus and Field Service Mobile App.

When to Use

  • The user asks for a "mobile offline review", "Komaci check", or "offline

priming audit" on a specific LWC.

  • Preparing a component to ship in Salesforce Mobile App Plus or Field

Service Mobile App offline mode.

  • Investigating priming failures reported by the offline analyzer.

Do NOT use this skill for:

  • Building an LWC that uses native mobile capabilities (barcode scanner,

biometrics, location, etc.) — use mobile-platform-native-capabilities-integrate.

  • Generic LWC code review — use the appropriate domain skill

(reviewing-lws-security, reviewing-lwc-rtl, accessibility-code-review).

Prerequisites

  • Component path (LWC bundle under modules/…).
  • Access to the component's JS/TS and HTML templates.
  • Local Node + npm; ability to run npx eslint with the

@salesforce/eslint-plugin-lwc-graph-analyzer plugin.

Knowledge Base

[Mobile Offline Grounding](references/grounding.md) explains the three

violation categories and why each blocks offline priming. Read it before

judging. The per-reviewer references below are the source of truth for the

rules and remediations:

  • Inline GraphQL wire configuration: [Inline GraphQL Reviewer](references/inline-graphql.md)
  • lwc:if conditional rendering compatibility: [lwc:if Reviewer](references/lwc-if.md)
  • Komaci ESLint static analysis: [Komaci ESLint Reviewer](references/komaci-eslint.md)

Workflow

Step 1 — Scope the review

Identify the component bundle: .html, .js/.ts. CSS and meta files are

not in scope for offline priming. If the bundle has multiple HTML

templates, all are reviewed.

Step 2 — Read the grounding and per-reviewer references

Read [Mobile Offline Grounding](references/grounding.md) and the three

per-reviewer references end-to-end before judging. Cite the specific

reviewer when emitting each finding so the report is auditable.

Step 3 — lwc:if / lwc:elseif / lwc:else (HTML)

Walk every .html file in the bundle and apply the rules in

[lwc:if Reviewer](references/lwc-if.md). For each occurrence of

lwc:if={…}, lwc:elseif={…}, or lwc:else, emit a finding with the

exact if:true / if:false rewrite — including the nesting required to

preserve lwc:elseif and lwc:else semantics.

Step 4 — Inline GraphQL in @wire (JS)

Walk every .js/.ts file in the bundle and apply the rules in

[Inline GraphQL Reviewer](references/inline-graphql.md). For each @wire

that references a gql template literal directly (or via a top-level

constant), emit a finding that names a concrete getter and shows the

rewritten @wire configuration.

Step 5 — Komaci ESLint pass (JS)

Run the Komaci ESLint analyzer over the bundle's JS file using the

bundled script. It applies the

@salesforce/eslint-plugin-lwc-graph-analyzer recommended ruleset with

the bundleAnalyzer processor enabled.

scripts/run-komaci.sh path/to/component.js

The script requires @salesforce/eslint-plugin-lwc-graph-analyzer to

be resolvable from the working directory, and the component's sibling

HTML templates must live next to the JS file (the plugin's

bundleAnalyzer processor uses them to resolve the offline data

graph). Output is ESLint --format json on stdout.

For each messages[*] entry in the output, group by ruleId and look

up the per-rule remediation in

[Komaci ESLint Reviewer](references/komaci-eslint.md). Emit a finding

per (rule, line) pair with the exact remediation text from the

reference; do not invent new advice. See the reference for the manual

npx eslint ... invocation if the script is unavailable in the runtime

environment.

Step 6 — Produce the report

Emit a report in this shape:

## Mobile Offline (Komaci priming)
- <reviewer> — <file>:<startLine>:<startColumn>-<endLine>:<endColumn> — <type>
  Description: <verbatim from the reviewer reference>
  Intent analysis: <verbatim from the reviewer reference>
  Suggested action: <verbatim from the reviewer reference>
  Code: |
    <source snippet from startLine through endLine, optional but
     recommended when the violation spans multiple lines>
  Applied: yes/no

## Summary
- <n> issues found; <m> fixed; <k> deferred (with reason)

For Komaci ESLint findings, take startLine/startColumn/endLine/

endColumn from the ESLint message's line/column/endLine/endColumn.

For Inline GraphQL and lwc:if findings, supply the line/column range you

observed in the source. If endLine/endColumn are not available for a

finding, fall back to <file>:<startLine> and omit the trailing range.

Cite the reviewer (Inline GraphQL / lwc:if / Komaci ESLint rule id) on every

finding.

Step 7 — Apply fixes

Apply the remediations directly when the user asked for fixes. If a

remediation conflicts with the component's behavior outside offline (e.g.

the developer relies on lwc:elseif for readability and the user is not

yet shipping to mobile offline), surface the conflict in the deferred list

rather than silently rewriting.

Verification Checklist

  • [ ] Every lwc:if / lwc:elseif / lwc:else flagged or absent.
  • [ ] Every @wire referencing gql checked; inline queries extracted to

a getter.

  • [ ] Komaci ESLint analyzer was actually run; findings cite real rule

ids, not invented ones.

  • [ ] Each finding cites the originating reviewer or rule id.
  • [ ] No remediation outside the three categories above (other concerns

belong to other skills).

Troubleshooting

  • npx eslint cannot find the plugin — install

@salesforce/eslint-plugin-lwc-graph-analyzer in the workspace, or use a

pinned local install path. The plugin is the canonical source of Komaci

rules.

  • bundleAnalyzer related errors — the recommended config drives the

bundle processor; do not strip it. The processor expects sibling HTML

files to be discoverable. If running on a stripped-down JS file, supply

the matching HTML in the temp directory.

  • No findings for a component you expect to fail — confirm the

recommended ruleset is applied (not just bundleAnalyzer with empty

rules). Some rules require the HTML to be present alongside the JS.

  • Findings duplicate lwc:if from the dedicated reviewer — the Komaci

plugin does not check templates; the lwc:if check is HTML-only and

comes from Step 3. Findings from Step 5 are JS-only.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

同名技能的其他版本

有 2 个不同仓库或目录里都有叫 mobile-platform-offline-validate 的技能。它们内容并不相同,别混用:

  • forcedotcom/sf-skills — Review a Lightning Web Component for **mobile offline** compatibility — the Komaci offline