Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/thewaywithin/agent-11/saas-analyticsnpx skills add TheWayWithin/agent-11 --skill saas-analyticsgit clone --depth 1 https://github.com/TheWayWithin/agent-11Wrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/thewaywithin/agent-11/saas-analytics)<a href="https://agentmods.dev/skills/thewaywithin/agent-11/saas-analytics"><img src="https://agentmods.dev/badge/skills/thewaywithin/agent-11/saas-analytics.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00004 | $0.02984 |
| Opus 5 | $0.00002 | $0.01492 |
| Sonnet 5 | $0.00001 | $0.00597 |
| Haiku 4.5 | $0.00000 | $0.00298 |
Grade A, and why
saas-analytics scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 472 lines — stays where its author put it; the contents beside it link to each section on GitHub.
SaaS Product Analytics
Capability
Implement product analytics for understanding user behavior, tracking key metrics, and making data-driven decisions. Covers event tracking, user identification, cohort analysis, and integration with analytics platforms like PostHog, Mixpanel, or custom solutions.
Use Cases
- Track user actions and feature usage
- Measure activation and retention metrics
- Identify power users and at-risk accounts
- A/B test experiments tracking
- Funnel analysis and conversion tracking
- Custom dashboard metrics
Patterns
Analytics Service Abstraction
When to use: Provider-agnostic analytics with consistent API
Implementation: Abstract analytics behind unified interface for easy provider switching.
// Analytics interface
interface AnalyticsService {
identify(userId: string, traits: Record<string, unknown>): Promise<void>;
track(userId: string, event: string, properties?: Record<string, unknown>): Promise<void>;
page(userId: string, name: string, properties?: Record<string, unknown>): Promise<void>;
group(userId: string, groupId: string, traits: Record<string, unknown>): Promise<void>;
}
// PostHog implementation
class PostHogAnalytics implements AnalyticsService {
private client: PostHog;
constructor(apiKey: string, host?: string) {
this.client = new PostHog(apiKey, { host: host || 'https://app.posthog.com' });
}
async identify(userId: string, traits: Record<string, unknown>) {
this.client.identify({
distinctId: userId,
properties: traits
});
}
async track(userId: string, event: string, properties?: Record<string, unknown>) {
this.client.capture({
distinctId: userId,
event,
properties: {
...properties,
timestamp: new Date().toISOString()
}
});
}
async page(userId: string, name: string, properties?: Record<string, unknown>) {
this.client.capture({
distinctId: userId,
event: '$pageview',
properties: { $current_url: name, ...properties }
});
}
async group(userId: string, groupId: string, traits: Record<string, unknown>) {
this.client.groupIdentify({
groupType: 'organization',
groupKey: groupId,
properties: traits
});
this.client.capture({
distinctId: userId,
event: '$groupidentify',
properties: { $group_type: 'organization', $group_key: groupId }
});
}
shutdown() {
this.client.shutdown();
}
}
// Usage
const analytics = new PostHogAnalytics(process.env.POSTHOG_API_KEY);
// Identify user
await analytics.identify(user.id, {
email: user.email,
name: user.name,
plan: user.plan,
createdAt: user.createdAt
});
// Track event
await analytics.track(user.id, 'project_created', {
projectId: project.id,
projectType: project.type
});
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 472 lines · 4 tokens per session scan A 82b9ed20ecc6
saas-analytics is a skill published in the GitHub repository TheWayWithin/agent-11 (15 stars, last pushed 12d ago), licensed MIT. It adds 4 tokens to every session and 2,984 once invoked, about $0.0000 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-04.
Other skills, from other repositories
ensemble-implement-trd-beads
Implement TRD with beads project management — persistent bead hierarchy, dependency-aware execution via br/bv, and cross-session resumability (Codex skill for /ensemble:implement-trd-beads).
ensemble-beads-build
Drive an existing bead hierarchy to completion through the full builder, code-review, and close pipeline (Codex skill for /ensemble:beads-build).
skills
Version: 1.0.0 Target: .NET 8.0+ with Blazor Server/WebAssembly UI Library: Microsoft Fluent UI Blazor Components Purpose: Fast lookup for common Blazor patterns and best practices.
phoenix
Quick reference for Phoenix and Elixir development patterns. For comprehensive documentation, see REFERENCE.md.
react
This skill is loaded by frontend-developer when.
git-town
This skill should be used when the user asks to "create a feature branch", "start a new feature", "sync my branch", "sync with main", "update from main", "create a PR", "create a pull request", "ship a feature", "merge and clean up", "handle merge conflicts", "resolve conflicts in git-town", "create stacked branches"…