CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

robius-app-architecture

CRITICAL: Use for Robius app architecture patterns. Triggers on: Tokio, async, submit_async_request, 异步, 架构, SignalToUI, Cx::post_action, worker task, app structure, MatchEvent, handle_startup

Quality

67%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./plugins/AI-Agents-Safe-Coding-Skills/skills/robius-app-architecture/SKILL.md

The canonical home for this skill is robius-app-architecture in administrakt0r/AI-Agents-Safe-Coding-Skills

SKILL.md
Quality
Evals
Security

Quality

Content

65%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a strong, code-first architecture reference with near-executable Rust patterns for every major concern (runtime, channels, updates, startup, shutdown) and efficient, competence-assuming prose. Its main weaknesses are the missing validation checkpoints in the startup/shutdown sequences and a progressive-disclosure layer that points to files which do not exist in the bundle.

Suggestions

Resolve the dangling references: either add the `references/` files and the `_base/` directory the "Production Patterns" table points to, or remove those pointers — currently every external reference in the body is broken.

Add validation checkpoints to the startup and shutdown sequences, e.g. handle `start_async_runtime()` failure with a fallback/error path instead of `unwrap()`, and verify channel wiring before the first request.

Trim redundancy: merge the Shutdown section's second, conflicting `impl AppMain for App` block into the earlier one, and condense the Best Practices list where it only restates what the adjacent code demonstrates.

DimensionReasoningScore

Conciseness

The body is code-dense and assumes Claude's competence (no primers on Tokio, async, or Rust), with minimal prose. Minor trim opportunities remain: the 35-line ASCII diagram, the "Best Practices" recap that restates what the code already shows, and a duplicated `impl AppMain for App` block with a conflicting signature. It is not 5 because of this duplication, and not 3 because there is no padding explaining concepts Claude already knows.

4 / 5

Actionability

Every pattern ships as concrete Rust: the `live_design!` app shell, `LiveRegister` ordering, static runtime init via `get_or_insert_with`, `submit_async_request`, the `worker_task` with `Cx::post_action`, and the `SegQueue` + `SignalToUI::set_ui_signal` polling loop. It is not 5 because app-specific types (`DataFetchedAction`, `Item`, `Changes`, `persistence::*`, `fetch_data`, `current_user_id`) are referenced but undefined, making it template rather than copy-paste-ready code; it is well above 3 because the framework-integration code is real, executable Rust, not pseudocode.

4 / 5

Workflow Clarity

Sequences are present and coherent — the startup path is numbered "1. Initialize logging ... 5. Start async runtime" and topics progress from app definition to shutdown. However, validation checkpoints are missing: `crate::start_async_runtime().unwrap()` panics with no recovery guidance, and there is no verification step for widget registration or channel wiring. It is not 4 because most checkpoints are absent, and not 2 because the steps themselves are clearly defined.

3 / 5

Progressive Disclosure

Section structure is good and the "Reference Files" section is clearly signaled one level deep, but every external pointer is dangling: the bundle contains no `references/` directory (so `references/tokio-integration.md`, `references/channel-patterns.md`, and `references/moly-async-patterns.md` do not exist) and the "Production Patterns" table points to a `_base/` directory that is also absent. Content the table says lives in `_base/` is inlined instead. It is not 4 because the references are broken and bulk detail is inlined, and not 2 because the body is well-structured and navigation intent is clear.

3 / 5

Total

14

/

20

Passed

Description

56%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description has a strong, explicit trigger list with distinctive API-level and bilingual keywords, but it never states what the skill actually does — the 'what' is only a vague domain reference. It reads as a trigger stub rather than a capability statement.

Suggestions

Add concrete capability verbs to state the 'what', e.g. "Structures Makepad/Robius applications: Tokio runtime integration, sync/async communication via channels and SignalToUI, startup/shutdown sequences", then keep the trigger list as the 'when' clause.

Include the framework and codebase names users would naturally say — "makepad", "robrix", "moly" — in the trigger terms; they are the most likely entry points and are currently only in the body, not the description.

Drop the "CRITICAL:" prefix and adopt the standard pattern "<what it does>. Use when <conditions>" so both completeness and specificity improve without adding length.

DimensionReasoningScore

Specificity

"Use for Robius app architecture patterns" names the domain but lists zero concrete actions — no capability verbs like "structures", "integrates", or "builds". It is above score 1 because the domain is specific rather than pure abstraction, but below score 3 because the anchor requires 1-2 concrete actions and none are stated.

2 / 5

Completeness

The 'when' is explicit ("Triggers on: ..."), but the 'what' is only weakly implied — the description never states the skill provides best practices or patterns for structuring Makepad applications. It is not 4 because a clear 'what' alongside the 'when' is required, and not 2 because the 'when' clause is explicit and the domain framing supplies a partial 'what'.

3 / 5

Trigger Term Quality

"Tokio, async, submit_async_request, SignalToUI, Cx::post_action, worker task, app structure, MatchEvent, handle_startup, 异步, 架构" gives good, natural coverage including exact API identifiers and bilingual terms. It falls short of 5 because the most natural synonyms users would say — "makepad", "robrix", "moly" — are missing from the trigger list.

4 / 5

Distinctiveness Conflict Risk

Terms like "Robius", "submit_async_request", "SignalToUI", and "MatchEvent" are niche-framework identifiers that are mostly distinct from other skills. It is not 5 because generic triggers "Tokio", "async", and "app structure" would also fire in non-Makepad Rust contexts, and not 3 because the description is far more niche-specific than a generic-domain description.

4 / 5

Total

13

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

referenced_paths_exist

Referenced path issues: 3 missing

Warning

Total

14

/

16

Passed

Repository

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

plugins/AI-Agents-Safe-Coding-Skills/skills/robius-app-architecture/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.