CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

builtwith

BuiltWith integration. Manage data, records, and automate workflows. Use when the user wants to interact with BuiltWith data.

Quality

69%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./skills/builtwith/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%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 largely actionable, well-sectioned guide to driving BuiltWith via the Membrane CLI, with copy-paste commands, a clear connection lifecycle with state-based validation, and sensible best practices. Main weaknesses are padded introductory/overview sections, dangling "Step 2"/"1b" references that break the workflow's numbering, and a minor ambiguity between action "Key" and "<actionId>".

Suggestions

Cut the opening "BuiltWith is a web profiling tool..." paragraph and the nested "BuiltWith Overview" bullet list (it duplicates the Popular actions table), keeping one sentence of purpose and the capability map.

Fix the workflow numbering: either label the actual steps (1. Install & login, 2. Connect, 3. Find actions, 4. Run) so "skip to Step 2" and "1b" resolve, or reword the cross-references to section names.

Clarify that the "Key" column in the Popular actions table is the actionId used by "membrane action run", and add one complete worked example (e.g., get-domain-trust-score with a real domain).

DimensionReasoningScore

Conciseness

The bulk is lean (bash commands, tables, state-machine bullets), but there is noticeable padding: the opening paragraph explaining what BuiltWith is and who uses it ("BuiltWith is a web profiling tool that identifies the technologies used to build websites. Developers, researchers, and sales teams use it..."), the nested "BuiltWith Overview" bullet list that largely restates the Popular actions table, and filler like "Use action names and parameters as needed." This fits "Mostly efficient but includes some unnecessary explanation or could be tightened"; it is not a 4 because the padding spans several sections rather than minor instances.

3 / 5

Actionability

Guidance is concrete and copy-paste ready throughout: "npm install -g @membranehq/cli@latest", "membrane login --tenant --clientName=<agentType>", "membrane connection ensure \"https://builtwith.com/\" --json", "membrane action run <actionId> --connectionId=CONNECTION_ID --input '{\"key\": \"value\"}' --json", plus a full proxy flag table. It falls short of 5 on minor gaps: the Popular actions table lists "Key" values while the run command takes "<actionId>" without stating they are the same, and there is no single worked end-to-end example with real values.

4 / 5

Workflow Clarity

The sequence (install → login → connection ensure → poll state → search actions → run/proxy) is clear, with a genuine validation/feedback loop in the connection state machine (poll until READY, handle CLIENT_ACTION_REQUIRED by showing the user uiUrl/agentInstructions, then re-poll, and check error on CONFIGURATION_ERROR/SETUP_FAILED). It is not 5 because the flow references steps that don't exist as labeled sections — "skip to **Step 2**" and the heading "#### 1b." imply numbered steps 1/2 that are never defined — leaving the end-to-end path implicit, and error recovery beyond "check the error field" is thin.

4 / 5

Progressive Disclosure

There are no bundle files (references/, scripts/, assets/ do not exist) and no external file references in the body, so there is no nested-reference problem; the single-file structure is appropriate for a CLI-integration skill of this size (~160 lines) and sections are clearly headed. It is not 5 because the doc exceeds the simple-skill threshold and content like the 10-row Popular actions table and proxy flag reference could be split into a separate reference file, though keeping them inline is defensible.

4 / 5

Total

15

/

20

Passed

Description

57%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 correctly identifies the domain (BuiltWith) and includes an explicit "Use when" trigger clause, but its capability statement is generic template filler ("Manage data, records, and automate workflows") with no concrete BuiltWith actions and no synonyms a user might naturally say (tech stack, website technologies). It is functional but would miss users who describe the need without naming the tool.

Suggestions

Replace "Manage data, records, and automate workflows" with 2-3 concrete BuiltWith capabilities, e.g., "Look up a website's technology stack, get domain keywords, trust scores, redirects, and lists of sites using a given technology."

Broaden the trigger clause to cover natural phrasings beyond the brand name: "Use when the user mentions BuiltWith, wants to know what a website is built with, or asks about a site's tech stack."

Mention the free-tier/domain-profile distinction so users with simple 'what technologies does this site use' requests know the skill applies.

DimensionReasoningScore

Specificity

"BuiltWith integration" names the domain, but the stated actions — "Manage data, records, and automate workflows" — are generic boilerplate that could describe any integration, with no concrete BuiltWith capabilities (e.g., technology profiles, domain keywords, site lists). This matches the anchor "Names the domain but actions are minimal or generic"; it is not a 3 because no 1-2 genuinely concrete BuiltWith-specific actions are listed, and not a 1 because the domain is explicitly named.

2 / 5

Completeness

Both parts are present: a "what" ("BuiltWith integration. Manage data, records, and automate workflows") and an explicit "when" clause ("Use when the user wants to interact with BuiltWith data"), so it is not capped at 3. It does not reach 5 because the "what" is vague rather than concrete trigger phrases paired with specific capabilities (cf. the 5-anchor "Extract text and tables from PDF files... Use when... PDFs, forms, or document extraction").

4 / 5

Trigger Term Quality

The only natural keyword is the brand name "BuiltWith" ("Use when the user wants to interact with BuiltWith data"), which would catch users who name the tool, but common variations users actually say — "tech stack", "what is this website built with", "website technologies" — are absent. Like the anchor example "Works with PDF files", some relevant keywords exist while synonyms and variations are missing; it is not a 2 because the domain keyword is present and genuinely matchable, and not a 4 because coverage beyond the brand name is essentially nil.

3 / 5

Distinctiveness Conflict Risk

"BuiltWith" is a distinct niche brand, so the skill is unlikely to trigger for unrelated skills. However, "Manage data, records, and automate workflows" is generic template language shared by other integration skills, creating minor overlap risk with closely related connector skills; this sits between "Mostly distinct; minor overlap risk" (4) and "Clear niche with distinct triggers" (5), and the generic phrasing keeps it from 5.

4 / 5

Total

13

/

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

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository

membranedev/application-skills

Path

skills/builtwith/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.