CtrlK
BlogDocsLog inGet started
Tessl Logo

workspace-app-composition

How a workspace-backed app under `apps/*` is composed: the isomorphic doc factory (`create<App>`), the environment factories (`open<App>Browser` / `open<App>Extension` / tauri) with the one boot call (`connect(toConnection(auth, nodeId))`, ADR-0088/ADR-0094), the `#platform/*` build-time platform DI for multi-platform (Tauri) apps, the workspace singleton, the sign-in migration wiring, daemon/script placement under per-project `workspaces/<app>/`, and the file layout itself. Use when creating a new app, naming or placing the iso/browser/extension factory, wiring `#platform/*` subpath imports for a Tauri seam, placing the workspace singleton, wiring the first-sign-in migration, registering daemon/script bindings, or gating first paint on local storage hydration (load gate vs WorkspaceGate).

64

Quality

75%

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 ./.agents/skills/workspace-app-composition/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

65%

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

A dense, highly actionable architecture reference with concrete code and decision tables, but it is a verbose monolith with no reference-file split and lacks explicit validation feedback loops in its workflows.

Suggestions

Split the long Platform DI / 'Why not suffixes' detail and the Gating matrix into reference files (e.g. references/platform-di.md, references/gating.md) and keep SKILL.md as a lean overview, which would raise both conciseness and progressive_disclosure.

Tighten repeated emphasis and historical rationale (e.g. consolidate the multiple 'never null' statements and trim 'Why not suffixes' to the essential anti-pattern) to reduce token cost.

Add explicit validation/checkpoint steps where a workflow has a fragile step (e.g. confirm the Tauri build physically excludes @tauri-apps/* after wiring the seam, or assert the readiness promise is resolve-only before relying on a gate).

DimensionReasoningScore

Conciseness

The body is information-dense with project-specific knowledge Claude would not know, but at ~390 lines it is verbose: long rationale prose, repeated emphasis ("never null" stated many times), and the historical 'Why not suffixes' section could be tightened.

2 / 3

Actionability

Provides multiple complete, copy-paste-ready TypeScript blocks (openHoneycrispBrowser, the singleton, createSignInMigration config, the #platform/* imports map, vite conditions, defineConfig) plus concrete Layers/Gating/File-Layout tables and explicit rules.

3 / 3

Workflow Clarity

Sequences exist (the #platform/* seam is a numbered 1-5 process, and the Gating section is a condition-to-gate decision table) and Anti-Patterns act as a checklist, but there are no explicit validation checkpoints or validate-fix-retry feedback loops.

2 / 3

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are absent) and everything lives in one monolithic ~390-line SKILL.md; internal section headers and tables are well organized, but long sections like Platform DI and 'Why not suffixes' are inline rather than split into one-level-deep reference files.

2 / 3

Total

9

/

12

Passed

Description

85%

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

A highly specific, complete description with concrete API names and an explicit 'Use when' trigger clause; its only weakness is trigger-term naturalness, leaning on internal jargon over phrasings a user would naturally say.

DimensionReasoningScore

Specificity

Lists multiple specific concrete elements with named APIs — the isomorphic doc factory (create<App>), environment factories with the one boot call (connect(toConnection(auth, nodeId))), #platform/* build-time DI, the workspace singleton, sign-in migration wiring, and daemon/script placement under workspaces/<app>.

3 / 3

Completeness

Explicitly answers both 'what' (How a workspace-backed app under apps/* is composed: ...) and 'when' (Use when creating a new app, naming or placing the iso/browser/extension factory, ...), with a detailed explicit trigger clause.

3 / 3

Trigger Term Quality

The 'Use when' clause lists relevant triggers (creating a new app, wiring #platform/* subpath imports for a Tauri seam, gating first paint on local storage hydration) but the terms are codebase-internal jargon rather than natural phrasings a user would commonly say, and lack common variations.

2 / 3

Distinctiveness Conflict Risk

Highly specific to this codebase's composition model (workspace-backed app under apps/*, toConnection(auth, nodeId), #platform/* DI, WorkspaceGate, per-project workspaces/<app>/), giving it a clear niche unlikely to trigger for the wrong skill.

3 / 3

Total

11

/

12

Passed

Validation

100%

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

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
EpicenterHQ/epicenter
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.