CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

add-feature-flag

Use when: putting a new or existing feature behind a feature flag (dev feature) in OpenCTI, adding attributes, GraphQL endpoints, managers or UI that must be hidden until a flag is enabled, or removing a feature flag

79

Quality

99%

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

SKILL.md
Quality
Evals
Security

Quality

Content

100%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 model skill document: a tightly sequenced 7-step procedure with concrete, executable code and commands at every step, explicit verification checkpoints (including expected outcomes for both flag states and a post-removal audit), and clean deferral of full rationale and manager details to a single clearly signaled reference. No padding or explanation of already-known concepts.

DimensionReasoningScore

Conciseness

Roughly 62 lines with zero explanation of concepts Claude already knows; every sentence carries project-specific information — exact file paths, commands, and non-obvious failure modes ("pushed into the ElasticSearch index mapping at startup even when the flag is off, and nothing fails"; "a registered manager shows in the platform modules and startup logs even when the flag is off"). Lean and efficient; every token earns its place.

5 / 5

Actionability

Fully executable guidance throughout: exact code ("export const MY_FEATURE_FEATURE_FLAG = 'MY_FEATURE';", "featureFlag: MY_FEATURE_FEATURE_FLAG,", "@ff(flags: [\"MY_FEATURE\"])", "if (isFeatureEnabled(MY_FEATURE_FEATURE_FLAG)) { registerManager(DEFINITION); }", "const { isFeatureEnable } = useHelper();"), commands ("yarn build:schema", "yarn relay", "grep -rn ..."), an env-var recipe ("APP__ENABLED_DEV_FEATURES='[\"MY_FEATURE\"]'"), and specific file paths. Copy-paste-ready with an in-repo exemplar for the manager case.

5 / 5

Workflow Clarity

Steps 1–7 are clearly sequenced, and Step 7 is an explicit validation checklist of expected outcomes for both flag-disabled and flag-enabled states. Feedback loops are present ("Re-read every attribute you added before moving on", the grep audit, and "verify that no declarations or guards for this flag remain" after removal). Validation for this batch, multi-file operation is present, so the missing-validation cap does not apply.

5 / 5

Progressive Disclosure

The operational core lives inline while "Full rules and rationale" and manager details are deferred to a clearly signaled, one-level-deep reference ([Feature Flags](../../instructions/backend/patterns/feature-flags.md)), with an in-repo exemplar file ("src/manager/workflowStatusCleanupManager.ts") cited rather than inlined. Clear overview with well-signaled references; the external placement of the detail doc is appropriate for a repo-embedded skill.

5 / 5

Total

20

/

20

Passed

Description

100%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: it explicitly states both what the skill covers (putting features behind flags, adding gated attributes/endpoints/managers/UI, removing flags) and when to use it, in a distinctive, domain-anchored form. Trigger terms include both the canonical phrase ("feature flag") and the platform synonym ("dev feature").

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions with named domain artifacts — "putting a new or existing feature behind a feature flag (dev feature) in OpenCTI", "adding attributes, GraphQL endpoints, managers or UI", "removing a feature flag" — covering the full add/gate/remove lifecycle. Anchor 4's "minor gaps in coverage" does not apply since every lifecycle phase is explicitly named.

5 / 5

Completeness

Explicit "Use when:" trigger guidance is present, and the gerund action list ("putting... behind a feature flag", "adding attributes, GraphQL endpoints, managers or UI", "removing a feature flag") states what the skill does with the same concreteness as the anchor-5 exemplar. Both what and when are explicitly and concretely answered; anchor 4's weakness (an insufficiently explicit 'when') does not apply.

5 / 5

Trigger Term Quality

Natural trigger phrases users would actually say are comprehensively covered: "feature flag" (twice), "dev feature" (the platform's synonym), "OpenCTI", "hidden until a flag is enabled", and "removing a feature flag". Both canonical synonyms for this domain are present, matching the comprehensive-synonyms anchor rather than anchor 4's "a few natural terms missing".

5 / 5

Distinctiveness Conflict Risk

"in OpenCTI" combined with the flag-gating qualifier ("must be hidden until a flag is enabled") carves a clear niche that is distinguishable from generic attribute, GraphQL, manager, or UI work. Minimal conflict risk with other skills.

5 / 5

Total

20

/

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: 2 suspicious

Warning

Total

15

/

16

Passed

Repository

OpenCTI-Platform/opencti

Path

.github/skills/add-feature-flag/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.