CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

syncable-entity-runner-and-actions

Contributing to the Twenty codebase itself (twentyhq/twenty server internals), not for building apps on top of Twenty. Implement action handlers for executing workspace migrations in Twenty. Use when creating database operations for syncable entities, implementing universal-to-flat entity transpilation, or handling create/update/delete actions in the runner layer.

Quality

80%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

—

The risk profile of this skill

Fix and improve this skill with Tessl

tessl review fix ./.claude/skills/syncable-entity-runner-and-actions/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%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 highly actionable, with complete class templates, exact file paths, and a clearly sequenced four-step workflow capped by a checklist and next-step pointer. Its weaknesses are a ~70-line 'Action Handler Patterns' section that duplicates the step code, missing imports that keep the templates from compiling as-is, and the absence of any executable validation step for destructive/batch database operations (hard deletes, batch inserts), which caps workflow clarity. With no bundle files, everything is inline, which limits progressive disclosure.

Suggestions

Add an executable validation checkpoint between implementation and Step 5, e.g. 'Run the workspace migration in a dev workspace and confirm the create/update/delete actions apply cleanly' or a test command, and instruct to fix and re-run on failure — this also lifts the workflow-clarity cap.

Delete or drastically condense the 'Action Handler Patterns' section: it repeats the Step 1-3 code verbatim; the checklist already provides the quick-reference role.

Complete the imports in the update and delete handler templates ('AllFlatEntityMapsByMetadataName' and the Universal/Flat action types) so the code is copy-paste compilable, or move the full templates into a references/ file and keep SKILL.md as an overview.

DimensionReasoningScore

Conciseness

The prose is lean (no explanation of NestJS/TypeORM basics), but the ~70-line 'Action Handler Patterns' section restates code already shown in full in Steps 1-3 (e.g. the create transpile/execute pair appears verbatim twice), and the checklist then repeats the step requirements a third time. Matches anchor 3 'mostly efficient but could be tightened'; not 4 because the duplication is more than a minor trim.

3 / 5

Actionability

Full TypeScript class templates with exact file paths (e.g. '.../action-handlers/my-entity/services/create-my-entity-action-handler.service.ts') make this near copy-paste ready after renaming my-entity. Not 5: minor gaps prevent the code from compiling as-is — 'AllFlatEntityMapsByMetadataName' is used but never imported in all three handlers, and 'UniversalUpdateMyEntityAction'/'FlatUpdateMyEntityAction'/'UniversalDeleteMyEntityAction'/'FlatDeleteMyEntityAction' types are not imported in the update/delete handlers (only the create handler imports its types).

4 / 5

Workflow Clarity

Steps 1-4 are clearly sequenced with positioning ('After completing Steps 1-3'), a pre-advance checklist, and a next-step link. However the workflow performs destructive and batch database operations (hard 'delete()', batched inserts, per-action 'update()' loops) with no executable validation or feedback loop — no test command, no migration-run verification, no handler-registration check — so per the rubric cap for destructive/batch operations without validation, workflow clarity is capped at 3 even though the sequence itself is clear.

3 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/), so the entire ~350-line document is inline: four full code files plus a duplicated patterns section. Structure is decent (Quick Start, numbered steps, Checklist, Next Step with a clearly signaled one-level link to '../syncable-entity-integration/SKILL.md'), but the redundant patterns section is inline content that should be consolidated or offloaded, and there is no separation of the full code templates from the overview. Matches anchor 3 'some structure but could be better organized'; not 4 because the duplication and all-inline placement are more than minor gaps.

3 / 5

Total

13

/

20

Passed

Description

96%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 is specific, complete, and well-scoped: it states concrete capabilities, provides explicit 'Use when' triggers with concrete phrases, and disambiguates its scope against app-building usage. The only weakness is minor overlap risk with sibling skills in the same syncable-entity series, where a shared trigger phrase like 'creating database operations for syncable entities' could match adjacent steps.

Suggestions

Differentiate the 'Use when' trigger for the runner step from sibling steps in the series, e.g. 'Use when implementing the action handlers (create/update/delete) in the workspace-migration runner layer' rather than the broader 'creating database operations for syncable entities'.

Consider adding a series-position cue to the description (e.g. 'Step 4 of the syncable entity workflow, after types/cache/builder are complete') so it is distinguishable from the builder and integration steps at trigger time.

DimensionReasoningScore

Specificity

Quotes: 'Implement action handlers for executing workspace migrations', 'creating database operations for syncable entities', 'implementing universal-to-flat entity transpilation', 'handling create/update/delete actions in the runner layer' — multiple specific concrete actions that comprehensively cover the skill's niche. Not 4: coverage spans create/update/delete handlers, transpilation, and database operations with no gaps, matching the comprehensive anchor.

5 / 5

Completeness

Explicitly answers both: what — 'Implement action handlers for executing workspace migrations in Twenty'; when — 'Use when creating database operations for syncable entities, implementing universal-to-flat entity transpilation, or handling create/update/delete actions in the runner layer', with three concrete trigger phrases and explicit negative scope ('not for building apps on top of Twenty'). Not 4: the 'when' is fully explicit and specific rather than needing more detail.

5 / 5

Trigger Term Quality

Natural terms a Twenty contributor would say include 'action handlers', 'workspace migrations', 'syncable entities', 'runner layer', 'create/update/delete actions', plus the repo identifier 'twentyhq/twenty server internals'. Not 4: within this niche the coverage includes variations and the exact repository name; no natural phrasing is missing.

5 / 5

Distinctiveness Conflict Risk

Clear niche (Twenty server internals, migration runner layer) with an explicit exclusion of app-building usage, but the trigger 'creating database operations for syncable entities' overlaps with closely related sibling skills in the same 6-step series (builder/integration steps). Matches anchor 4 'mostly distinct; minor overlap risk with closely related skills'; not 5 because the series-family overlap is not fully eliminated.

4 / 5

Total

19

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 1 suspicious

Warning

Total

15

/

16

Passed

Repository

twentyhq/twenty

Path

.claude/skills/syncable-entity-runner-and-actions/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.