Skip to content
Report library
Purpose / Other

Brand Landingpage Skill Security Audit

What the author says it does (original text)

>

Independent security check

Security risks found

Files checked
4
Risks found
4
Could it run dangerous commands?Looks for programs run straight after downloading, remote control of your computer, and hidden commands.Risks found: 2
Medium risk

Installs or upgrades an SDK without explicit consent, with global installation as the default

Source references: 4
What we found

Phase 0 requires checking for the “latest version,” defaults to a global installation when missing, and tells the agent to handle installation details itself. A global install is broader than a project-local landing-page change, and the user may not see the exact package, version, or command beforehand.

Why this matters

It can change system-wide commands or dependency versions, introduce supply-chain code, and affect other projects on the same machine.

Phase 0 explicitly checks for the latest version, defaults to a global install when missing, and tells the agent to handle setup details itself. If the global environment is writable, this could add or upgrade a shared SDK and affect other projects; no prior confirmation of the package, version, or command is required. The user can require a project-local pinned version and approval before installation or upgrade.

SKILL.md:31In the instructionsOpen original file
1. Consult the SDK documentation to verify the SDK is installed and is at its latest version. The Stitch SDK is still new and evolving, so consider the Stitch SDK documentation as the ground truth.2. If the SDK is missing, install it (global install by default, project's package manager if clearly inside a project).3. Verify the API key env var (as named in the docs) is set. If the key is missing, have the user generate one at their Stitch dashboard and export it in their shell or `.env`.4. Make one minimal SDK call to confirm auth. Diagnose and retry once on failure before involving the user.Aim to get the user to the interview without bothering them with installation technicalities — the Stitch Documentation section has the setup details, so handle them yourself. Never display, transcribe, or echo the key.
Show 3 other places
SKILL.md:246In the instructionsOpen original file
## Stitch Documentation- Stitch SDK usage and installation documentation: `https://stitch-design.ai/docs/sdk/ai-sdk`- DESIGN.md documentation and examples: `https://stitch-design.ai/docs/design-md/overview`
SKILL.md:32In the instructionsOpen original file
1. Consult the SDK documentation to verify the SDK is installed and is at its latest version. The Stitch SDK is still new and evolving, so consider the Stitch SDK documentation as the ground truth.2. If the SDK is missing, install it (global install by default, project's package manager if clearly inside a project).3. Verify the API key env var (as named in the docs) is set. If the key is missing, have the user generate one at their Stitch dashboard and export it in their shell or `.env`.
SKILL.md:36In the instructionsOpen original file
Aim to get the user to the interview without bothering them with installation technicalities — the Stitch Documentation section has the setup details, so handle them yourself. Never display, transcribe, or echo the key.
Medium risk

Automatically opens third-party-generated HTML in the user’s browser

Source references: 4
What we found

The Skill requires saving HTML returned by Stitch and opening it after every generation, edit, and variant selection. The provided material does not specify checking scripts, forms, redirects, or external resources first.

Why this matters

If generated content is compromised or the service returns a hostile page, the browser could execute scripts, make external requests, show a deceptive login interface, or expose browser-visible network information. Browser sandboxing limits some capabilities but not all networking or deception.

This is an active mandatory workflow: save HTML returned by Stitch, open it in the user's browser with an OS command, and repeat after every update. If generated content contains scripts, forms, redirects, or remote resources, opening it may execute code or make network requests; the supplied workflow specifies no pre-open inspection or isolation. The user can require textual review first, network blocking, or an isolated browser preview.

SKILL.md:165In the instructionsOpen original file
2. Craft the generation prompt using the template from `references/stitch-architecture.md`.3. Call `generate_screen_from_text` with `deviceType: DESKTOP`.4. Generation takes 1-3 minutes. Do NOT retry if it seems slow.5. Save the HTML output returned by your Stitch SDK call into `.stitch/designs/` using a versioned filename: `desktop-v1.html` for the first generation, `desktop-v2.html` for the next iteration, and so on. Use the same convention for mobile (`mobile-v1.html`, `mobile-v2.html`). Use the SDK's response-handling pattern to retrieve the output — don't perform arbitrary HTTP fetches.6. **Open the saved HTML file in the user's browser** so they can see the design at full fidelity. Use `open` (macOS), `xdg-open` (Linux), or `start` (Windows, via `cmd /c start`). If none work in the current environment, tell the user the file path.7. Save the screen ID to `.stitch/metadata.json` under `screens.desktop.current` and append to `screens.desktop.history`.
Show 3 other places
SKILL.md:173In the instructionsOpen original file
After every generation, edit, or variant selection:1. Save the updated HTML from the Stitch SDK response and open the local file in the browser.2. Briefly orient the user: "I've opened the latest version in your browser. Hero section at top with the headline and CTA, then {describe sections}, footer at the bottom."3. Ask the three feedback questions from `references/interview-framework.md`:
SKILL.md:201In the instructionsOpen original file
Save the HTML from each Stitch variant response as `desktop-vN-option-a.html`, `desktop-vN-option-b.html`, `desktop-vN-option-c.html` in `.stitch/designs/` (where `N` is the current iteration number). Open all of them locally so the user can compare in separate tabs. Note one distinguishing feature each. Ask: "Which direction do you prefer? Or should I combine elements from different options?" Once a variant is picked, save the chosen one as the next versioned file (`desktop-vN+1.html`) and continue the loop from there.
SKILL.md:203In the instructionsOpen original file
### Loop Guardrails- **Always open the updated HTML** in the browser after any edit or variant selection.- **Update metadata** after every state change. Never discard previous versions.- **After 3 rounds** of positive feedback: "This is looking solid. Keep iterating or ship it and refine later?"
Could it expose your files or keys?Looks for uploads of files containing passwords or keys, and keys written directly in the code.Risks found: 2
Medium risk

Product and launch-strategy details are sent to the third-party Stitch service

Source references: 4
What we found

The workflow collects the product name, purpose, audience, CTA, and brand direction and places them into a remote project and generation prompt. It does not require separate consent before uploading this information.

Why this matters

Unreleased positioning, customer targets, marketing copy, or business plans may enter the third party’s processing environment and account project records.

The workflow collects the product purpose, audience, CTA, and brand direction, then submits the project name to Stitch and places the name, description, audience, CTA, and brand adjectives in the generation prompt. API-key authentication shows this is a Stitch service call. If the material is non-public, this can disclose it to a third party, and no separate upload confirmation is specified. The user can require preview and redaction of prompts before submission.

SKILL.md:87In the instructionsOpen original file
Ask about: product/project name, what it does, who the target users are, what action visitors should take (sign up, try demo, join waitlist, etc.).**Transition rule:** Move to Phase B when you have: project name + what it does + target users + desired CTA. These four are non-negotiable.### Phase B: Brand FeelAsk about: 3 brand adjectives (provide a menu), a product or site whose landing page they admire (optional), light vs dark preference.**Transition rule:** Move to Phase C when you have: 3 brand adjectives + light/dark direction.### Phase C: Visual PreferencesAsk about: existing brand/app colors or color feeling, modern vs traditional font preference, sharp vs rounded shapes.**Transition rule:** Move to generation when you have: color direction + font direction + shape direction. Confirm the full summary with the user before proceeding.
Show 3 other places
SKILL.md:136In the instructionsOpen original file
1. **Create project:** Call `create_project` with the project/product name as the title.2. **Build DesignSystem object** from the translation table above.3. **Create design system:** Call `create_design_system` on the project.4. **Update design system:** Immediately call `update_design_system`. This step is required -- create alone does not render the system.5. **Write DESIGN.md:** Create `.stitch/DESIGN.md` documenting the design system in semantic language:
references/stitch-architecture.md:135In the instructionsOpen original file
```A {DESKTOP|MOBILE} landing page for "{projectName}", {one-sentence description}.Hero: {headline concept} with a clear "{CTA button text}" button.Target users: {target user description}.Mood: {adj1}, {adj2}, {adj3}.
SKILL.md:33In the instructionsOpen original file
2. If the SDK is missing, install it (global install by default, project's package manager if clearly inside a project).3. Verify the API key env var (as named in the docs) is set. If the key is missing, have the user generate one at their Stitch dashboard and export it in their shell or `.env`.4. Make one minimal SDK call to confirm auth. Diagnose and retry once on failure before involving the user.
Medium risk

Spontaneously attached original images are retained and copied into the delivery bundle

Source references: 4
What we found

Even when the user merely attaches an image spontaneously, the Skill requires saving the original and later collecting all user assets into the final ZIP. It does not require checking for confidential content or location metadata, or reconfirming permission to redistribute it.

Why this matters

Internal screenshots, unreleased logos, personal information, or photo metadata may be retained and then propagated when the ZIP is shared or deployed.

When a user spontaneously attaches an image, the workflow requires saving the original in the project and later collecting it into the ZIP's assets directory. Although the user is told afterward that it was saved, there is no required consent before persistence, metadata stripping, or review for sensitive visual content. Private content or EXIF/location data could therefore persist and travel with the bundle. The user can require explicit asset selection, metadata removal, and a pre-bundle review.

SKILL.md:107In the instructionsOpen original file
IF the user spontaneously attaches an image (logo, app screenshot, design inspiration):1. Ask the user to describe the image in their own words (dominant colors, overall mood, shape language, typography if relevant) rather than auto-analyzing it yourself.2. Save the original file to `.stitch/user-assets/` with a descriptive filename for later handoff.3. Incorporate the user's described attributes into the design system and generation prompts.4. Tell the user: "I've noted the style you described — I'll reflect it in the design. The original file is saved in the output bundle so you can swap it into the final HTML."
Show 3 other places
SKILL.md:236In the instructionsOpen original file
1. Identify the latest approved versions in `.stitch/designs/` (highest `desktop-vN.html`, and `mobile-vN.html` if mobile was generated). Copy them into the bundle root, renaming desktop to `index.html` and mobile to `mobile.html`. Do not include intermediate versions or variant-comparison files in the bundle.2. Generate `color-tokens.json` with primary color, colorMode, colorVariant, fonts, roundness.3. Copy `.stitch/DESIGN.md`.4. Collect user assets from `.stitch/user-assets/` if any exist.5. Generate `DEPLOY.md` using the template in `references/state-and-pitfalls.md`.6. Create the zip: `zip -r "{project-name}-landing-page.zip" "{project-name}-landing-page/"`7. Tell the user: "Bundle is ready at `{path}`. See `DEPLOY.md` for the deployment checklist."
SKILL.md:229In the instructionsOpen original file
    color-tokens.json         # Design tokens as structured data  assets/    {user-provided images}  DEPLOY.md                   # Deployment checklist
SKILL.md:239In the instructionsOpen original file
3. Copy `.stitch/DESIGN.md`.4. Collect user assets from `.stitch/user-assets/` if any exist.5. Generate `DEPLOY.md` using the template in `references/state-and-pitfalls.md`.6. Create the zip: `zip -r "{project-name}-landing-page.zip" "{project-name}-landing-page/"`7. Tell the user: "Bundle is ready at `{path}`. See `DEPLOY.md` for the deployment checklist."
Could it delete files or keep running?Looks for broad file deletion, disk overwrites, and programs set to start automatically.No risks found
Could it bypass safety checks?Looks for skipped website security checks, excessive file access, or actions that skip your approval.No risks found
Could it mislead the AI or hide text?Checks the skill instructions for requests to ignore you, influence the report, or hide text in invisible characters.No risks found
Could it change links or payment recipients without asking?Looks for forced referral or payment changes combined with instructions to hide the change.No risks found

Inside this skill

8 instruction sections

The Skill first collects the product name, purpose, target users, CTA, and brand preferences, then turns them into a Stitch project, design system, and page-generation prompts.

View source
SKILL.md:87In the instructionsOpen original file
Ask about: product/project name, what it does, who the target users are, what action visitors should take (sign up, try demo, join waitlist, etc.).**Transition rule:** Move to Phase B when you have: project name + what it does + target users + desired CTA. These four are non-negotiable.
SKILL.md:136In the instructionsOpen original file
1. **Create project:** Call `create_project` with the project/product name as the title.2. **Build DesignSystem object** from the translation table above.3. **Create design system:** Call `create_design_system` on the project.4. **Update design system:** Immediately call `update_design_system`. This step is required -- create alone does not render the system.5. **Write DESIGN.md:** Create `.stitch/DESIGN.md` documenting the design system in semantic language:
references/stitch-architecture.md:135In the instructionsOpen original file
```A {DESKTOP|MOBILE} landing page for "{projectName}", {one-sentence description}.Hero: {headline concept} with a clear "{CTA button text}" button.Target users: {target user description}.Mood: {adj1}, {adj2}, {adj3}.Sections:1. Hero with headline, subheadline, and primary call-to-action2. {Second section based on product type}3. {Third section}4. {Fourth section}5. Footer with links and secondary call-to-action```

It persistently creates `.stitch` state, design HTML, and design documentation in the project, then copies approved files and user assets into a ZIP delivery bundle.

View source
references/state-and-pitfalls.md:40In the instructionsOpen original file
- Create `.stitch/` directory at project start.- Write `metadata.json` after every state-changing operation (project creation, design system creation, screen generation, edit, variant selection, approval).- **Status flow:** `interview` --> `designing` --> `approved` --> `delivered`- If `metadata.json` exists when the skill starts:
SKILL.md:236In the instructionsOpen original file
1. Identify the latest approved versions in `.stitch/designs/` (highest `desktop-vN.html`, and `mobile-vN.html` if mobile was generated). Copy them into the bundle root, renaming desktop to `index.html` and mobile to `mobile.html`. Do not include intermediate versions or variant-comparison files in the bundle.2. Generate `color-tokens.json` with primary color, colorMode, colorVariant, fonts, roundness.3. Copy `.stitch/DESIGN.md`.4. Collect user assets from `.stitch/user-assets/` if any exist.5. Generate `DEPLOY.md` using the template in `references/state-and-pitfalls.md`.6. Create the zip: `zip -r "{project-name}-landing-page.zip" "{project-name}-landing-page/"`7. Tell the user: "Bundle is ready at `{path}`. See `DEPLOY.md` for the deployment checklist."

The API key is requested through an environment variable or `.env`; the instructions explicitly prohibit displaying, transcribing, or echoing it.

View source
SKILL.md:33In the instructionsOpen original file
2. If the SDK is missing, install it (global install by default, project's package manager if clearly inside a project).3. Verify the API key env var (as named in the docs) is set. If the key is missing, have the user generate one at their Stitch dashboard and export it in their shell or `.env`.4. Make one minimal SDK call to confirm auth. Diagnose and retry once on failure before involving the user.Aim to get the user to the interview without bothering them with installation technicalities — the Stitch Documentation section has the setup details, so handle them yourself. Never display, transcribe, or echo the key.
Start here · InstructionsSKILL.md
brand-landingpage
Lines connect the instruction file to its sections, not an observed execution order. Select a section to read the source. 1 more sections are available in the original file.

File reference map

References: 4
Files making referencesReferenced content
Lines show actual file references, not execution order. Select a node to highlight its connections and inspect the files and source locations. Dashed lines include files that still need locating.
Files and check records4 files

Coverage and gaps

Content covered in each file

These are the source ranges included in this check, not a guarantee that every issue has been resolved.

  • SKILL.mdFull text included
  • references/interview-framework.mdFull text included
  • references/state-and-pitfalls.mdFull text included
  • references/stitch-architecture.mdFull text included

This report is for the version above. We read the available code and instructions without running the skill or checking extra packages it installs. This is not a promise of safety: a different version or setup may behave differently.

  • SKILL.mdInstructions
  • references/interview-framework.mdSupporting file
  • references/state-and-pitfalls.mdSupporting file
  • references/stitch-architecture.mdSupporting file

Operations mentioned in code and instructions

Read keys or account settings
SKILL.md:33In the instructionsOpen original file
2. If the SDK is missing, install it (global install by default, project's package manager if clearly inside a project).3. Verify the API key env var (as named in the docs) is set. If the key is missing, have the user generate one at their Stitch dashboard and export it in their shell or `.env`.4. Make one minimal SDK call to confirm auth. Diagnose and retry once on failure before involving the user.
Read files
SKILL.md:48In the instructionsOpen original file
Read these files at the indicated moments. Do not re-read them on every iteration.
Connect to websites
SKILL.md:248In the instructionsOpen original file
- Stitch SDK usage and installation documentation: `https://stitch-design.ai/docs/sdk/ai-sdk`- DESIGN.md documentation and examples: `https://stitch-design.ai/docs/design-md/overview`
SKILL.md:249In the instructionsOpen original file
- Stitch SDK usage and installation documentation: `https://stitch-design.ai/docs/sdk/ai-sdk`- DESIGN.md documentation and examples: `https://stitch-design.ai/docs/design-md/overview`
Lines read
841
File checksum (to compare versions)
fcadacc82bbdb46cb315ace096cf5dc767c7517839bbe9bb14d680518a4f7e91