CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

syncable-entity-types-and-constants

Contributing to the Twenty codebase itself (twentyhq/twenty server internals), not for building apps on top of Twenty. Define types, entities, and central constant registrations for syncable entities in Twenty's workspace migration system. Use when creating new syncable entities, defining TypeORM entities, flat entity types, or registering in central constants (ALL_ENTITY_PROPERTIES_CONFIGURATION_BY_METADATA_NAME, ALL_ONE_TO_MANY_METADATA_RELATIONS, ALL_MANY_TO_ONE_METADATA_FOREIGN_KEY, ALL_MANY_TO_ONE_METADATA_RELATIONS).

Quality

87%

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

SKILL.md
Quality
Evals
Security

Quality

Content

78%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.

A highly actionable, well-sequenced implementation guide with exact file paths, complete code, and a closing checklist. Its weaknesses are inline density — nearly all reference-level detail sits in SKILL.md with no bundle files to progressively disclose into — and validation that is a checklist item rather than an explicit command with a fix-retry loop.

Suggestions

Move the four central-constant registration schemas (Steps 6b-6e) into a references/ file (e.g., central-constant-registrations.md) and keep only the pattern summary plus a clearly signaled link in SKILL.md, reducing inline bulk and satisfying progressive disclosure.

Add an explicit validation command after Step 6 (e.g., 'Run `yarn nx run @twenty/db:typecheck` or `tsc --noEmit` and fix errors until clean') with a fix-and-re-run loop instead of the bare 'TypeScript compiles without errors' checklist bullet.

Trim the ASCII derivation-dependency graph and the redundant '// ... existing entries' scaffolding; the derivation rules under Step 6e already convey the same information in fewer tokens.

DimensionReasoningScore

Conciseness

The body is dense and non-padded — no explanations of concepts Claude already knows, and every section is a file path plus code or a rule. Minor over-explanation keeps it below the 5 anchor: the ASCII "Derivation dependency graph" restates rules already given, and the "// ... existing entries" plus repeated comment scaffolding add tokens without teaching. It is well above the 3 anchor, which requires unnecessary explanation that could be tightened.

4 / 5

Actionability

Every step gives an exact file path (e.g., `src/engine/metadata-modules/flat-entity/constant/all-many-to-one-metadata-relations.constant.ts`) and complete, executable TypeScript that follows the real Twenty patterns, plus concrete rules like the aggregator naming rule ("remove trailing 's' ... then append Ids or UniversalIdentifiers") and the universalForeignKey derivation rule. This matches the 5 anchor: copy-paste-ready code covering the common cases.

5 / 5

Workflow Clarity

Six steps are clearly sequenced with Quick Start enumeration and a thorough pre-handoff Checklist, and the 'Next Step' link gives an explicit continuation point — clearly the 4 anchor. It is not a 5 because validation is a checklist bullet ("TypeScript compiles without errors") with no explicit command or validate-fix-retry loop, so the feedback checkpoint is implicit rather than actionable.

4 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are absent), so ~340 lines of constant-registration code and rules all live inline in SKILL.md, and the only external pointers are the sibling-step link and a bare mention of "@creating-syncable-entity". Section organization is good, but content that would naturally split out (e.g., the five central-constant registration schemas) is inlined with no clearly signaled one-level-deep references — the 3 anchor. It is above the 2 anchor because structure is real and navigation between steps is explicit.

3 / 5

Total

16

/

20

Passed

Description

92%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.

An excellent description: concrete actions with named constants, explicit 'Use when' triggers, third-person voice, and an explicit negative scope boundary that prevents mis-triggering. The only weakness is jargon-heavy trigger phrasing that slightly narrows natural-language recall.

DimensionReasoningScore

Specificity

"Define types, entities, and central constant registrations for syncable entities" names multiple concrete actions, and the parenthetical listing of ALL_ENTITY_PROPERTIES_CONFIGURATION_BY_METADATA_NAME, ALL_ONE_TO_MANY_METADATA_RELATIONS, ALL_MANY_TO_ONE_METADATA_FOREIGN_KEY, and ALL_MANY_TO_ONE_METADATA_RELATIONS pins the capabilities to exact artifacts. Coverage within its niche is comprehensive and in third person, so it fits the 5 anchor rather than the 4 anchor's 'minor gaps'.

5 / 5

Completeness

The 'what' is explicit ("Define types, entities, and central constant registrations for syncable entities in Twenty's workspace migration system") and the 'when' is explicit with concrete triggers ("Use when creating new syncable entities, defining TypeORM entities, flat entity types, or registering in central constants"). It even adds a negative scope boundary ("not for building apps on top of Twenty"), matching the 5 anchor exactly.

5 / 5

Trigger Term Quality

Phrases like "creating new syncable entities", "defining TypeORM entities", "flat entity types", and "registering in central constants" are natural things a Twenty contributor would say, and the repo name appears twice. It is jargon-dense and omits some plain-language variations (e.g., 'adding a new metadata object', 'workspace sync'), which keeps it just below the comprehensive 5 anchor.

4 / 5

Distinctiveness Conflict Risk

The description is anchored to a single repo's internals (twentyhq/twenty server, workspace migration system) and explicitly disambiguates the most likely confusion ("not for building apps on top of Twenty"), giving it a clear niche with minimal conflict risk — the 5 anchor.

5 / 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-types-and-constants/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.