feat(linkedin-thought-leadership): v1.0.0 — initial open-source import
Build LinkedIn thought leadership with algorithmic understanding, strategic consistency, and AI-assisted content creation. Updated for the January 2026 360Brew algorithm change. 16 agents, 25 commands, 6 skills, 9 hooks, 24 reference docs. Personal data sanitized: voice samples generalized to template, high-engagement posts cleared, region-specific references replaced with placeholders. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
7194a37129
commit
39f8b275a6
143 changed files with 32662 additions and 0 deletions
|
|
@ -0,0 +1,74 @@
|
|||
export interface PostAnalytics {
|
||||
id: string; // Hash of title + date
|
||||
title: string; // First ~100 chars of post content
|
||||
publishedDate: string; // YYYY-MM-DD
|
||||
metrics: PostMetrics;
|
||||
importedAt: string; // ISO datetime
|
||||
exportSource: string; // Original CSV filename
|
||||
}
|
||||
|
||||
export interface PostMetrics {
|
||||
impressions: number;
|
||||
reactions: number;
|
||||
comments: number;
|
||||
shares: number;
|
||||
clicks: number;
|
||||
engagementRate: number; // (reactions+comments+shares+clicks)/impressions * 100
|
||||
}
|
||||
|
||||
export interface AnalyticsBatch {
|
||||
batchId: string; // UUID-like identifier
|
||||
importedAt: string; // ISO datetime
|
||||
exportFilename: string;
|
||||
dateRange: { from: string; to: string };
|
||||
postCount: number;
|
||||
posts: PostAnalytics[];
|
||||
}
|
||||
|
||||
export interface WeeklyReport {
|
||||
week: string; // ISO week e.g. "2026-W05"
|
||||
generatedAt: string;
|
||||
summary: {
|
||||
totalPosts: number;
|
||||
totalImpressions: number;
|
||||
totalReactions: number;
|
||||
totalComments: number;
|
||||
totalShares: number;
|
||||
totalClicks: number;
|
||||
avgEngagementRate: number;
|
||||
avgImpressionsPerPost: number;
|
||||
};
|
||||
topPerformers: PostAnalytics[];
|
||||
underperformers: PostAnalytics[];
|
||||
trends: {
|
||||
impressionsTrend: TrendDirection;
|
||||
engagementTrend: TrendDirection;
|
||||
comparedTo: string;
|
||||
percentChange: {
|
||||
impressions: number;
|
||||
engagement: number;
|
||||
};
|
||||
};
|
||||
alerts: Alert[];
|
||||
}
|
||||
|
||||
export type TrendDirection = "up" | "down" | "stable";
|
||||
|
||||
export interface Alert {
|
||||
type: "spike" | "drop" | "milestone";
|
||||
severity: "info" | "warning" | "critical";
|
||||
metric: string;
|
||||
message: string;
|
||||
postId?: string;
|
||||
value: number;
|
||||
baseline: number;
|
||||
deviations: number;
|
||||
}
|
||||
|
||||
export const ALERT_THRESHOLDS = {
|
||||
spike: 2.0,
|
||||
drop: -1.5,
|
||||
weeklyDropWarning: -30,
|
||||
weeklyDropCritical: -50,
|
||||
weeklySpikeInfo: 100,
|
||||
} as const;
|
||||
Loading…
Add table
Add a link
Reference in a new issue