A comprehensive collection of Agent Skills for expert-level Fullstory semantic decoration guidance.
The Fullstory Skills Repository (FSR) is a structured collection of AI Agent Skills that provide expert-level guidance for Fullstory semantic decoration for digital experiences (FSD). FSD enables AI coding assistants to decorate digital experiences with semantic meaning. This exposes behavioral digital experience usage to Computer Use Agents and unlocks high fidelity analytic measurement directly in the DOM or mobile app view tree:
- Guide developers through API implementation with good/bad examples
- Apply industry-specific privacy requirements automatically
- Reference regulatory compliance patterns (HIPAA, PCI, GDPR, etc.)
- Recommend the right API for each use case
- Private by Default Mode: Complete documentation for Fullstory's privacy-first capture mode
- First-Party Cookie Architecture:
fs_uidcookie behavior, session merging, and identity persistence - Anonymous User Support: Clarified that user properties work before identification
| Industry | New Content |
|---|---|
| Banking | Open Banking/PSD2 requirements |
| Healthcare | HIPAA de-identification standards (18 Safe Harbor identifiers) |
| E-commerce | Marketplace/multi-vendor considerations |
| Gaming | Fraud detection (7 types), game iframe decoration, responsible gaming compliance |
| SaaS | AI/ML feature tracking patterns |
| Travel | TSA Secure Flight requirements |
| Media | Accessibility feature tracking (WCAG compliance) |
- AI Agent Navigation: How stable selectors enable Computer User Agents
- Extended Attributes:
data-action,data-state,data-variant,data-testid - Modern Frameworks: RSC, Qwik, Solid, Astro patterns
- Advanced Patterns: Virtualized lists, Shadow DOM, micro-frontends
- Child→Parent Inheritance: Property bubbling on parent interaction
- Privacy at Each Scope: Guidance for each scope level
- All 7 Industries: Scope recommendations per vertical
We welcome contributions to expand and improve the Fullstory Skills Repository! Here's how to add or update skills:
-
Choose the right category:
core/- For specific Fullstory API implementationsmeta/- For strategic guidance and decision frameworksindustry/- For industry-specific semantic decoration guidanceframework/- For frontend framework integration patterns
-
Create the folder and file:
skills/[category]/[skill-name]/SKILL.md -
Use the standard skill template:
---
name: fullstory-your-skill-name
version: v2
description: Clear, comprehensive description of what this skill covers and when to use it.
related_skills:
- fullstory-related-skill-1
- fullstory-related-skill-2
---
# Fullstory [Skill Title]
> ⚠️ **LEGAL DISCLAIMER** (for industry skills only): This guidance is for educational purposes only...
## Overview
Brief explanation of what this skill covers and when developers should use it.
## Core Concepts
Key principles with visual diagrams (use ASCII art for compatibility):
┌─────────────────────────────┐ │ Visual concept diagrams │ │ help Agent understand │ └─────────────────────────────┘
## API Reference
### Basic Syntax
\`\`\`javascript
FS('methodName', {
param1: 'value',
param2: 'value'
});
\`\`\`
### Parameters
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `param1` | string | **Yes** | What it does |
| `param2` | object | No | Optional parameter |
---
## ✅ GOOD IMPLEMENTATION EXAMPLES
### Example 1: [Descriptive Title]
\`\`\`javascript
// GOOD: Explanation of why this is good
[code example]
\`\`\`
**Why this is good:**
- ✅ Reason 1
- ✅ Reason 2
---
## ❌ BAD IMPLEMENTATION EXAMPLES
### Example 1: [What's Wrong]
\`\`\`javascript
// BAD: Explanation of what's wrong
[bad code example]
\`\`\`
**Why this is bad:**
- ❌ Problem 1
- ❌ Problem 2
**CORRECTED VERSION:**
\`\`\`javascript
[corrected code]
\`\`\`
---
## TROUBLESHOOTING
### [Common Issue Title]
**Symptom**: What the developer sees
**Common Causes**:
1. Cause 1
2. Cause 2
**Solutions**:
- ✅ Solution 1
- ✅ Solution 2
---
## KEY TAKEAWAYS FOR AGENT
When helping developers with [this topic]:
1. **Always emphasize**:
- Key point 1
- Key point 2
2. **Common mistakes to watch for**:
- Mistake 1
- Mistake 2
3. **Questions to ask developers**:
- Question 1?
- Question 2?
---
## REFERENCE LINKS
- **Official Docs**: https://developer.fullstory.com/...
- **Help Center**: https://help.fullstory.com/...
---
*This skill document was created to help Agent understand and guide developers...*
Before submitting your skill:
- YAML front matter includes
name,version: v2,description, andrelated_skills - Overview section clearly explains the skill's purpose
- Core Concepts include visual diagrams where helpful
- API Reference matches official Fullstory documentation
- At least 3 GOOD examples with explanations
- At least 3 BAD examples with corrections
- Troubleshooting section covers common issues
- "Key Takeaways for Agent" section summarizes guidance
- Reference Links point to valid, official URLs
- Cross-references added to related skills (update their
related_skillstoo!) - Legal disclaimer included (for industry skills)
- Build tool warnings included (for CSS class-based features)
- Always verify API syntax against official documentation first
- Add examples for new use cases or patterns
- Update
related_skillsif new relevant skills exist - Check reference links are still valid
- Test examples to ensure they work correctly
- Use clear, descriptive section headers
- Include both code AND explanations
- Use tables for parameter documentation
- Use ASCII diagrams for visual concepts
- Use ✅/❌ emojis in good/bad examples
- Keep examples realistic and industry-relevant
- Avoid hallucinating API features - verify everything!
Technical implementation guides for each Fullstory Browser API:
| Skill | Purpose |
|---|---|
fullstory-identify-users |
Link sessions to users via setIdentity |
fullstory-anonymize-users |
End identified sessions, handle logout |
fullstory-user-properties |
Set user attributes for segmentation |
fullstory-page-properties |
Set page context for Journeys |
fullstory-element-properties |
Capture interaction-level data |
fullstory-analytics-events |
Track discrete business events |
fullstory-privacy-controls |
Implement fs-exclude, fs-mask, fs-unmask |
fullstory-user-consent |
GDPR/CCPA consent management |
fullstory-capture-control |
Pause/resume recording |
fullstory-observe-callbacks |
Session URL and lifecycle events |
fullstory-logging |
Error and debug logging |
fullstory-async-methods |
Promise-based API patterns |
Strategic guidance for implementation planning:
| Skill | Purpose |
|---|---|
fullstory-getting-started |
Entry point with complete skill inventory and industry comparisons |
fullstory-privacy-strategy |
Decision framework for data privacy |
universal-data-scoping-and-decoration |
Where to put data (user vs page vs element vs event) |
Tailored guidance for specific verticals:
| Industry | Skill | Key Focus Areas |
|---|---|---|
| Banking & Financial Services | fullstory-banking |
PCI DSS, GLBA, SOX; transaction masking; MFA flows |
| E-commerce & Retail | fullstory-ecommerce |
Conversion funnels; cart abandonment; product tracking |
| Gaming | fullstory-gaming |
Fraud detection; responsible gaming compliance; game iframe decoration; KYC/AML |
| Healthcare | fullstory-healthcare |
HIPAA; PHI exclusion; BAA requirements |
| B2B SaaS | fullstory-saas |
Feature adoption; onboarding; churn prediction |
| Travel & Hospitality | fullstory-travel |
Booking funnels; ancillaries; passport/ID exclusion |
| Media & Entertainment | fullstory-media-entertainment |
Video tracking; subscriptions; COPPA compliance |
| Skill | Purpose |
|---|---|
fullstory-stable-selectors |
Universal pattern for stable data-* attributes across ALL frameworks |
Why Stable Selectors? Modern CSS tools (CSS Modules, styled-components, Tailwind) generate dynamic class names that change every build. Stable
data-*attributes ensure Fullstory searches, defined elements, and click maps work reliably across deployments.
The stable selectors skill prepares your application for AI-driven automation:
┌─────────────────────────────────────────────────────────────────┐
│ Without Stable Selectors (Brittle) │
│ AI sees: <button class="sc-abc123 xyz789"> │
│ → Class names change every build, AI navigation breaks │
├─────────────────────────────────────────────────────────────────┤
│ With Stable Selectors (Resilient) │
│ AI sees: <button data-component="Checkout" data-element="pay"> │
│ → Semantic, stable, machine-readable forever │
└─────────────────────────────────────────────────────────────────┘
This single skill replaces the legacy React plugins (fullstory-babel-plugin-annotate-react, eslint-plugin-annotate-react) with framework-agnostic guidance:
| Framework | Supported |
|---|---|
| React / Next.js (App Router, RSC) | ✅ |
| Angular | ✅ |
| Vue.js / Nuxt | ✅ |
| Svelte / SvelteKit | ✅ |
| Qwik / Solid / Astro | ✅ |
| Vanilla JS / Web Components | ✅ |
| Server-rendered (PHP, Django, Rails) | ✅ |
No external plugins required—just add data-component and data-element attributes to your markup.
Different industries have vastly different requirements for Fullstory implementation:
Fullstory offers a Private by Default mode that inverts the capture default—everything is masked unless explicitly unmasked. This is the recommended approach for high-sensitivity industries:
| Industry | Private by Default? | Rationale |
|---|---|---|
| Banking | ✅ Highly recommended | Financial data, regulatory requirements |
| Healthcare | ✅ Required | HIPAA PHI protection |
| SaaS (Enterprise) | Customer data in multi-tenant apps | |
| Gaming | Financial + responsible gaming data | |
| Travel | Passport, payment data | |
| E-commerce | ❌ Usually not needed | Product data should be visible |
| Media | ❌ Usually not needed | Content data is the analytics |
Enable Private by Default: Contact Fullstory Support or select during account setup.
Reference: Fullstory Private by Default
| Industry | Default Privacy Mode | Financial Data | User Content | Conversion Tracking | Primary Concern |
|---|---|---|---|---|---|
| Banking | Exclude | Exclude (ranges only) | Exclude | Limited | Regulatory (PCI, GLBA) |
| E-commerce | Unmask | Capture (orders) | Mostly capture | Rich | Conversion optimization |
| Gaming | Mixed | Exclude (ranges only) | Exclude | Careful | Responsible gaming |
| Healthcare | Exclude | Exclude | Exclude | Very limited | HIPAA compliance |
| SaaS | Unmask | Usually OK | Mask/Consider | Rich | Feature adoption |
| Travel | Unmask | Capture (bookings) | Mask | Rich | Booking optimization |
| Media | Unmask | N/A | Capture | Rich | Engagement metrics |
| Data Type | Banking | E-commerce | Gaming | Healthcare | SaaS | Travel | Media |
|---|---|---|---|---|---|---|---|
| User names | ❌ | ❌ | |||||
| ❌ | ❌ | ||||||
| Product/content names | N/A | ✅ | ✅ | N/A | ✅ | ✅ | ✅ |
| Prices/amounts | ❌ Ranges | ✅ | ❌ Ranges | ❌ | ✅ | ✅ | ✅ |
| Account balance | ❌ | N/A | ❌ | N/A | N/A | N/A | N/A |
| Transaction details | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ |
| Search queries | ✅ | ❌ | ✅ | ✅ | ✅ | ||
| Payment cards | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Government IDs | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Legend: ✅ = Capture,
| Industry | Primary Regulations | Fullstory Requirements |
|---|---|---|
| Banking | PCI DSS, GLBA, SOX | Exclude all financial data; use ranges |
| E-commerce | PCI DSS, CCPA, GDPR | Exclude payment fields; consent for EU |
| Gaming | Gaming licenses, AML/KYC | Never analyze gaming patterns; exclude amounts |
| Healthcare | HIPAA, HITECH | BAA required; exclude ALL PHI; masking insufficient |
| SaaS | SOC 2, GDPR | Enterprise privacy options; consent for EU |
| Travel | PCI DSS, GDPR | Exclude passport/ID numbers; payment exclusion |
| Media | COPPA, GDPR | Never track children's profiles; consent |
skills/
├── README.md # This file
│
├── core/ # 12 Core API Skills
│ ├── fullstory-analytics-events/
│ ├── fullstory-anonymize-users/
│ ├── fullstory-async-methods/
│ ├── fullstory-capture-control/
│ ├── fullstory-element-properties/
│ ├── fullstory-identify-users/
│ ├── fullstory-logging/
│ ├── fullstory-observe-callbacks/
│ ├── fullstory-page-properties/
│ ├── fullstory-privacy-controls/
│ ├── fullstory-user-consent/
│ └── fullstory-user-properties/
│
├── meta/ # 3 Meta/Strategy Skills
│ ├── fullstory-getting-started/
│ ├── fullstory-privacy-strategy/
│ └── universal-data-scoping-and-decoration/
│
├── industry/ # 7 Industry-Specific Skills
│ ├── fullstory-banking/
│ ├── fullstory-ecommerce/
│ ├── fullstory-gaming/
│ ├── fullstory-healthcare/
│ ├── fullstory-media-entertainment/
│ ├── fullstory-saas/
│ └── fullstory-travel/
│
└── framework/ # 1 Framework Integration Skill
└── fullstory-stable-selectors/ # Universal pattern for any framework
All FSR skills follow a consistent format:
---
name: skill-name
version: v2
description: Comprehensive description of the skill's purpose
related_skills:
- other-skill-1
- other-skill-2
---- Overview - What the API/concept does and when to use it
- Core Concepts - Key principles with visual diagrams
- API Reference - Syntax, parameters, limits
- ✅ GOOD Examples - Correct implementations with explanations
- ❌ BAD Examples - Anti-patterns with corrections
- Platform-Specific - Web, iOS, Android guidance (where applicable)
- Troubleshooting - Common issues and solutions
- Key Takeaways for Agent - Summary guidance for AI assistance
- Reference Links - Official documentation links
- New to Fullstory? Start with
meta/fullstory-getting-started/SKILL.md - Know your industry? Jump to the relevant
industry/skill - Need specific API help? Check the relevant
core/skill - Planning privacy? See
meta/fullstory-privacy-strategy/SKILL.md
What do you need help with?
│
├─ "Which API should I use?"
│ └─ → meta/universal-data-scoping-and-decoration
│
├─ "How do I identify users?"
│ └─ → core/fullstory-identify-users
│
├─ "What should I mask vs exclude?"
│ └─ → core/fullstory-privacy-controls
│
├─ "I work in [industry]"
│ └─ → industry/fullstory-[industry]
│
├─ "My CSS class names keep changing"
│ └─ → framework/fullstory-stable-selectors
│
├─ "How do I annotate elements for any framework?"
│ └─ → framework/fullstory-stable-selectors
│
└─ "I'm just getting started"
└─ → meta/fullstory-getting-started
Skills are interconnected via the related_skills field in their YAML front matter. This enables Agent to:
- Navigate between related concepts
- Suggest additional relevant skills
- Build comprehensive implementation guidance
Example connections:
fullstory-identify-users→fullstory-anonymize-users,fullstory-privacy-strategyfullstory-privacy-controls→fullstory-banking,fullstory-healthcarefullstory-analytics-events→fullstory-ecommerce,fullstory-saas
| Category | Count | Focus |
|---|---|---|
| Core API | 12 | Technical implementation |
| Meta/Strategy | 3 | Planning and architecture |
| Industry | 7 | Vertical-specific guidance |
| Framework | 1 | Stable selectors for any framework |
| Total | 23 | Complete Fullstory coverage |
This repository documents Fullstory Browser API v2. Always verify API syntax against the official documentation as the API may evolve.
Official Documentation Links:
- Identify Users
- Anonymize Users
- Set User Properties
- Analytics Events
- Set Page Properties
- Capture Data (shutdown/restart)
- User Consent
- Callbacks and Delegates
- Logging
- Asynchronous Methods
- Privacy (Help Center)
All industry-specific skills contain regulatory guidance for educational purposes only. This guidance does not constitute legal advice. Regulations (PCI DSS, HIPAA, GDPR, GLBA, etc.) are:
- Complex and nuanced
- Jurisdiction-specific
- Subject to change
Always consult with your legal and compliance teams before implementing data capture solutions.
Modern CSS build tools (Tailwind, PostCSS purge, CSS Modules) may remove "unused" classes. Privacy classes like .fs-exclude, .fs-mask, .fs-unmask must be:
- Safelisted in your build configuration
- Verified in production HTML
- Tested in Fullstory to confirm they work
- Client-side hashing is NOT a security control - it's a privacy measure only
- CSS classes can be inspected by users
- Always use server-side processing for true security requirements
Internal use only - Fullstory Solutions Engineering
FSR - Enabling expert-level Fullstory semantic decoration guidance through Agent Skills