Add 2 new claims pages using automated AI extraction
Added articles: 1. "Claude Skills cuts 8-hour tasks down to 1 hour" - Slug: claude-skills-productivity-boost - Date: 2025-10-21 - 5 claims about Claude Skills productivity features - Stats: 8x speed improvement, 83% accuracy, 8MB limit 2. "The Internal Tools You Can Vibe Code and the Ones That Will Cost You Later" - Slug: vibe-coding-technical-expertise - Date: 2025-11-04 - 5 claims about AI coding tradeoffs - Stats: $2,400 MRR, 95% code completion, $25 build cost Workflow used: ✅ Visited aiadopters.club/archive ✅ Selected 2 random articles ✅ AI extracted all data (claims, titles, stats, quotes, context) ✅ Added to centralized claims.ts ✅ Built successfully (14 claims pages total) Automated system works perfectly - no manual page files needed! 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
3742468f64
commit
f40ada1aea
|
|
@ -1,352 +1,77 @@
|
|||
# How to Add a New Claims Page
|
||||
|
||||
This guide explains how to add a new claims page to the site. Thanks to the centralized data system, you only need to update **TWO files** instead of four.
|
||||
This guide explains the **fully automated workflow** for adding new claims pages. The system uses AI to extract all data from the article and automatically adds it to the centralized data file.
|
||||
|
||||
## Step 1: Add to Centralized Data
|
||||
## ⚡ Quick Start (Automated Workflow)
|
||||
|
||||
Open `/src/data/claims.ts` and add your new entry to the `ALL_CLAIMS_DATA` array:
|
||||
**Adding a new claims page is now as simple as providing the article URL:**
|
||||
|
||||
```typescript
|
||||
export const ALL_CLAIMS_DATA: ClaimData[] = [
|
||||
// ... existing claims
|
||||
{
|
||||
slug: "your-new-article-slug",
|
||||
title: "Your Article Title",
|
||||
date: "2025-11-05",
|
||||
featuredClaim: "The one-sentence summary that appears on homepage",
|
||||
description: "Short description for the grid view",
|
||||
keyPoints: [
|
||||
"First key point",
|
||||
"Second key point",
|
||||
"Third key point",
|
||||
],
|
||||
topics: [TOPICS.STRATEGY, TOPICS.TOOLS], // Choose relevant topics
|
||||
claims: [
|
||||
"First atomic claim with evidence",
|
||||
"Second atomic claim with evidence",
|
||||
"Third atomic claim with evidence",
|
||||
"Fourth atomic claim with evidence",
|
||||
"Fifth atomic claim with evidence",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/your-article",
|
||||
},
|
||||
];
|
||||
```
|
||||
You: "Add this article: https://aiadopters.club/p/your-article-url"
|
||||
|
||||
Claude:
|
||||
1. Fetches and extracts all data from article
|
||||
2. Generates claim titles, quote, statistics, and context
|
||||
3. Adds to centralized data file
|
||||
4. Builds and deploys
|
||||
```
|
||||
|
||||
### Available Topics
|
||||
## 🏗️ System Architecture
|
||||
|
||||
Choose from these topic categories:
|
||||
- `TOPICS.STRATEGY` - AI Strategy
|
||||
- `TOPICS.TOOLS` - AI Tools
|
||||
- `TOPICS.BUSINESS` - Business Applications
|
||||
- `TOPICS.IMPLEMENTATION` - Implementation
|
||||
- `TOPICS.MEASUREMENT` - ROI & Measurement
|
||||
### Single Source of Truth
|
||||
|
||||
You can assign multiple topics to each article.
|
||||
|
||||
## Step 2: Create the Individual Claims Page
|
||||
|
||||
Create a new file at `/src/app/claims-library/your-new-article-slug/page.tsx`:
|
||||
All claims data lives in `/src/data/claims.ts`:
|
||||
|
||||
```typescript
|
||||
import type { Metadata } from "next";
|
||||
import { getTopicsForArticle } from "@/lib/topics";
|
||||
import Link from "next/link";
|
||||
import { ArrowLeft, Linkedin, Youtube, Download } from "lucide-react";
|
||||
import { CopyButton } from "@/components/CopyButton";
|
||||
import { HowToCite } from "@/components/HowToCite";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Your Article Title | Kamil Banc",
|
||||
description: "Your article description with 5 claims summary",
|
||||
authors: [{ name: "Kamil Banc" }],
|
||||
openGraph: {
|
||||
title: "Your Article Title",
|
||||
description: "Your article description",
|
||||
url: "https://kbanc.com/claims-library/your-new-article-slug",
|
||||
type: "article",
|
||||
},
|
||||
twitter: {
|
||||
card: "summary",
|
||||
title: "Your Article Title",
|
||||
description: "Your article description",
|
||||
},
|
||||
alternates: {
|
||||
canonical: "https://kbanc.com/claims-library/your-new-article-slug",
|
||||
},
|
||||
};
|
||||
|
||||
// JSON-LD schema for SEO
|
||||
const jsonLd = {
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Article",
|
||||
headline: "Your Article Title",
|
||||
author: {
|
||||
"@type": "Person",
|
||||
name: "Kamil Banc",
|
||||
jobTitle: "Author",
|
||||
affiliation: {
|
||||
"@type": "Organization",
|
||||
name: "AI Adopters Club",
|
||||
url: "https://aiadopters.club",
|
||||
},
|
||||
},
|
||||
datePublished: "2025-11-05",
|
||||
dateModified: "2025-11-05",
|
||||
publisher: {
|
||||
"@type": "Organization",
|
||||
name: "AI Adopters Club",
|
||||
url: "https://aiadopters.club",
|
||||
},
|
||||
description: "Your article description",
|
||||
};
|
||||
|
||||
export default function YourArticleClaim() {
|
||||
return (
|
||||
<>
|
||||
<script
|
||||
type="application/ld+json"
|
||||
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
|
||||
/>
|
||||
<div className="min-h-screen bg-background">
|
||||
<header className="bg-muted border-b-2 border-border py-8 mb-12">
|
||||
<div className="container max-w-3xl mx-auto px-6">
|
||||
<Link
|
||||
href="/claims-library"
|
||||
className="inline-flex items-center text-sm text-primary hover:underline mb-4"
|
||||
>
|
||||
<ArrowLeft className="mr-2 h-4 w-4" />
|
||||
Back to Claims Library
|
||||
</Link>
|
||||
<h1 className="text-4xl font-bold mb-2 text-foreground">
|
||||
Your Article Title
|
||||
</h1>
|
||||
<div className="flex items-center gap-3">
|
||||
<p className="text-muted-foreground">
|
||||
By{" "}
|
||||
<a
|
||||
href="https://aiadopters.club"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-primary hover:underline"
|
||||
>
|
||||
Kamil Banc
|
||||
</a>
|
||||
, Author at AI Adopters Club
|
||||
</p>
|
||||
<a
|
||||
href="https://www.linkedin.com/in/kbanc/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-primary hover:text-primary/80 transition-colors"
|
||||
aria-label="LinkedIn Profile"
|
||||
>
|
||||
<Linkedin className="h-5 w-5" />
|
||||
</a>
|
||||
<a
|
||||
href="https://www.youtube.com/@adaptandcreate"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-primary hover:text-primary/80 transition-colors"
|
||||
aria-label="YouTube Channel"
|
||||
>
|
||||
<Youtube className="h-5 w-5" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main className="container max-w-3xl mx-auto px-6 pb-12">
|
||||
{/* Topic Tags */}
|
||||
<section className="mb-8 -mt-4">
|
||||
<div className="flex flex-wrap gap-2">
|
||||
{getTopicsForArticle("your-new-article-slug").map((topic) => (
|
||||
<span
|
||||
key={topic.id}
|
||||
className={`px-3 py-1 rounded-full text-sm font-medium ${topic.color}`}
|
||||
>
|
||||
{topic.label}
|
||||
</span>
|
||||
))}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* Claims Section */}
|
||||
<section className="mb-12">
|
||||
<h2 className="text-3xl font-semibold mb-6 mt-12">Atomic Claims</h2>
|
||||
|
||||
{/* Repeat for each claim */}
|
||||
<article className="bg-muted border border-border border-l-4 border-l-accent rounded-lg p-6 mb-6 transition-transform hover:translate-y-[-2px] hover:shadow-md">
|
||||
<div className="flex justify-between items-start gap-4">
|
||||
<div className="flex-1">
|
||||
<h3 className="text-lg font-semibold mb-3">
|
||||
<span className="text-accent">Claim 1:</span> Short claim title
|
||||
</h3>
|
||||
<p className="text-lg font-medium leading-relaxed text-foreground">
|
||||
Full claim text with evidence and context
|
||||
</p>
|
||||
</div>
|
||||
<CopyButton
|
||||
text={`"Full claim text with evidence and context" (Banc, Kamil, 2025, https://kbanc.com/claims-library/your-new-article-slug)`}
|
||||
size="md"
|
||||
/>
|
||||
</div>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
{/* Supporting Evidence Section */}
|
||||
<section className="mb-12">
|
||||
<h2 className="text-3xl font-semibold mb-6 mt-12">Supporting Evidence</h2>
|
||||
|
||||
<div className="bg-card border border-border rounded-lg p-6 mb-6">
|
||||
<h3 className="text-lg font-semibold mb-3">Quote</h3>
|
||||
<blockquote className="italic text-lg leading-relaxed text-foreground border-l-4 border-l-accent pl-6 my-6">
|
||||
<p>"Your key quote here"</p>
|
||||
<cite className="block not-italic text-sm text-muted-foreground mt-4">
|
||||
Kamil Banc
|
||||
</cite>
|
||||
</blockquote>
|
||||
</div>
|
||||
|
||||
<div className="bg-card border border-border rounded-lg p-6 mb-6">
|
||||
<h3 className="text-lg font-semibold mb-3">Key Statistics</h3>
|
||||
<ul className="space-y-3">
|
||||
<li className="p-3 bg-muted rounded-lg">
|
||||
<p className="text-lg font-semibold text-accent">Stat 1</p>
|
||||
<p className="text-sm text-muted-foreground">Context</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div className="bg-card border border-border rounded-lg p-6 mb-6">
|
||||
<h3 className="text-lg font-semibold mb-3">Sources & Citations</h3>
|
||||
<div className="space-y-4">
|
||||
<div>
|
||||
<p className="text-sm font-semibold text-muted-foreground mb-2">Original Article (Full Context):</p>
|
||||
<div className="flex items-center gap-2 pl-6 relative">
|
||||
<span className="absolute left-0 text-accent font-bold">→</span>
|
||||
<a
|
||||
href="https://aiadopters.club/p/your-article"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
className="text-foreground hover:text-accent hover:underline transition-colors"
|
||||
>
|
||||
Your Article Title (AI Adopters Club)
|
||||
</a>
|
||||
<CopyButton
|
||||
text="https://aiadopters.club/p/your-article"
|
||||
label=""
|
||||
size="sm"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<p className="text-sm font-semibold text-muted-foreground mb-2">Cite This Page (Structured Claims):</p>
|
||||
<div className="flex items-center gap-2 pl-6 relative">
|
||||
<span className="absolute left-0 text-accent font-bold">→</span>
|
||||
<code className="text-sm bg-muted px-2 py-1 rounded">
|
||||
https://kbanc.com/claims-library/your-new-article-slug
|
||||
</code>
|
||||
<CopyButton
|
||||
text="https://kbanc.com/claims-library/your-new-article-slug"
|
||||
label=""
|
||||
size="sm"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<HowToCite
|
||||
articleTitle="Your Article Title"
|
||||
articleSlug="your-new-article-slug"
|
||||
articleDate="2025-11-05"
|
||||
originalUrl="https://aiadopters.club/p/your-article"
|
||||
/>
|
||||
|
||||
{/* Download Section */}
|
||||
<section className="bg-muted border-2 border-accent rounded-lg p-8 mb-12 text-center">
|
||||
<h2 className="text-2xl font-semibold mb-4">Download Data</h2>
|
||||
<p className="mb-6">Access structured claim data in CSV format:</p>
|
||||
<a href="/assets/your-article-claims.csv" download>
|
||||
<button className="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium h-10 px-4 py-2 bg-accent hover:bg-accent/90 text-accent-foreground">
|
||||
<Download className="mr-2 h-4 w-4" />
|
||||
Download Claims Data (CSV)
|
||||
</button>
|
||||
</a>
|
||||
</section>
|
||||
|
||||
{/* Context Section */}
|
||||
<section className="bg-muted rounded-lg p-8 mb-12">
|
||||
<h2 className="text-2xl font-semibold mb-4">Context</h2>
|
||||
<p className="mb-4 text-foreground">
|
||||
This page presents atomic claims extracted from research on [your topic].
|
||||
Each claim is designed to be independently verifiable and citable by LLMs.
|
||||
</p>
|
||||
<p className="text-foreground">
|
||||
Additional context about the methodology and applications.
|
||||
</p>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer className="bg-muted border-t-2 border-border py-8 mt-12 text-center">
|
||||
<div className="container max-w-3xl mx-auto px-6">
|
||||
<p className="mb-2 text-sm text-muted-foreground">
|
||||
Content licensed under{" "}
|
||||
<a
|
||||
href="https://creativecommons.org/licenses/by/4.0/"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
className="text-primary hover:underline"
|
||||
>
|
||||
CC BY 4.0
|
||||
</a>
|
||||
</p>
|
||||
<p className="text-sm text-muted-foreground">
|
||||
Source:{" "}
|
||||
<a
|
||||
href="https://aiadopters.club"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
className="text-primary hover:underline"
|
||||
>
|
||||
AI Adopters Club
|
||||
</a>{" "}
|
||||
by Kamil Banc
|
||||
</p>
|
||||
<p className="mt-4 text-sm text-muted-foreground">
|
||||
<a
|
||||
href="https://aiadopters.club/p/work-with-kamil"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
className="text-accent hover:text-accent/80 transition-colors"
|
||||
>
|
||||
Need help with AI integration? → Work with Kamil
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
export interface ClaimData {
|
||||
slug: string; // URL-friendly identifier
|
||||
title: string; // Full article title
|
||||
date: string; // Publication date (YYYY-MM-DD)
|
||||
featuredClaim: string; // One-sentence summary for homepage
|
||||
description: string; // Short description for grid view
|
||||
keyPoints: string[]; // 3-4 bullet points
|
||||
topics: Topic[]; // Topic categories (STRATEGY, TOOLS, etc.)
|
||||
claims: string[]; // 5 atomic claims with evidence
|
||||
claimTitles: string[]; // Short headers for each claim
|
||||
originalUrl: string; // Source article URL
|
||||
quote: string; // Main quote for Supporting Evidence
|
||||
keyStatistics: Array<{ // Key statistics with context
|
||||
stat: string;
|
||||
context: string;
|
||||
}>;
|
||||
supportingContext: string; // Context paragraph explaining methodology
|
||||
}
|
||||
```
|
||||
|
||||
## That's It!
|
||||
### Dynamic Route System
|
||||
|
||||
After adding these two files:
|
||||
1. The homepage will automatically show the new article
|
||||
2. The main claims library page will include it in search/filtering
|
||||
3. The comprehensive index page will list all claims
|
||||
4. Topics will be automatically assigned and counted
|
||||
**One template serves all pages**: `/src/app/claims-library/[slug]/page.tsx`
|
||||
|
||||
Everything updates automatically based on the centralized data file!
|
||||
- Automatically generates static pages for all claims at build time
|
||||
- Pulls all content from centralized data
|
||||
- No need to create individual page files
|
||||
- UI updates affect all pages instantly
|
||||
|
||||
## What Gets Updated Automatically
|
||||
## 📝 What Gets Extracted Automatically
|
||||
|
||||
When you provide an article URL, the AI extraction system automatically generates:
|
||||
|
||||
1. **Title & Metadata**: Article title, publication date, URL slug
|
||||
2. **Summaries**: Featured claim, description, key points
|
||||
3. **Topic Classification**: Categorizes into STRATEGY, TOOLS, BUSINESS, IMPLEMENTATION, or MEASUREMENT
|
||||
4. **5 Atomic Claims**: Independently verifiable statements with evidence
|
||||
5. **Claim Titles**: Short 3-6 word headers for each claim (e.g., "Iterative collaboration drives value")
|
||||
6. **Quote**: Key insight from the article formatted with attribution
|
||||
7. **Statistics**: 2-4 key statistics with context explanations
|
||||
8. **Supporting Context**: Paragraph explaining methodology and application
|
||||
|
||||
## 🚀 What Updates Automatically
|
||||
|
||||
After adding data to `claims.ts`, these update **automatically at build time**:
|
||||
|
||||
✅ **Homepage** (`/`) - Shows in "Recent Claims" section
|
||||
✅ **Main Library** (`/claims-library`) - Appears in searchable grid
|
||||
✅ **Individual Page** (`/claims-library/[slug]`) - Generated from template
|
||||
✅ **Comprehensive Index** (`/claims-library/all`) - Lists all claims by topic
|
||||
✅ **Topic Filtering** - Works across all pages
|
||||
✅ **Claim Counts** - Automatically calculated everywhere
|
||||
|
|
@ -354,9 +79,55 @@ Everything updates automatically based on the centralized data file!
|
|||
✅ **Sitemap** (`/sitemap.xml`) - Auto-generated for search engines
|
||||
✅ **RSS Feed** (`/feed.xml`) - Auto-generated for subscribers
|
||||
|
||||
## Testing
|
||||
## 🎯 Manual Method (Advanced Users)
|
||||
|
||||
After adding the new files, run:
|
||||
If you need to manually add or edit claims data:
|
||||
|
||||
### Step 1: Add to Centralized Data
|
||||
|
||||
Open `/src/data/claims.ts` and add your entry:
|
||||
|
||||
```typescript
|
||||
export const ALL_CLAIMS_DATA: ClaimData[] = [
|
||||
// ... existing claims
|
||||
{
|
||||
slug: "your-article-slug",
|
||||
title: "Your Article Title",
|
||||
date: "2025-11-05",
|
||||
featuredClaim: "One-sentence summary for homepage",
|
||||
description: "Short description for the grid view",
|
||||
keyPoints: [
|
||||
"First key point",
|
||||
"Second key point",
|
||||
"Third key point",
|
||||
],
|
||||
topics: [TOPICS.STRATEGY, TOPICS.IMPLEMENTATION],
|
||||
claims: [
|
||||
"First atomic claim with evidence",
|
||||
"Second atomic claim with evidence",
|
||||
"Third atomic claim with evidence",
|
||||
"Fourth atomic claim with evidence",
|
||||
"Fifth atomic claim with evidence",
|
||||
],
|
||||
claimTitles: [
|
||||
"Short title for claim 1",
|
||||
"Short title for claim 2",
|
||||
"Short title for claim 3",
|
||||
"Short title for claim 4",
|
||||
"Short title for claim 5",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/your-article",
|
||||
quote: "Your key quote here",
|
||||
keyStatistics: [
|
||||
{ stat: "90% accuracy", context: "Human-AI collaboration in medical diagnosis" },
|
||||
{ stat: "15x growth", context: "McDonald's China monthly AI transactions" },
|
||||
],
|
||||
supportingContext: "Paragraph explaining the methodology and how the claims apply to practitioners.",
|
||||
},
|
||||
];
|
||||
```
|
||||
|
||||
### Step 2: Build and Deploy
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
|
|
@ -370,3 +141,100 @@ git commit -m "Add new claims page: [Your Title]"
|
|||
git push
|
||||
netlify deploy --dir=out --prod
|
||||
```
|
||||
|
||||
## 📊 Available Topics
|
||||
|
||||
Choose from these topic categories:
|
||||
|
||||
- `TOPICS.STRATEGY` - AI Strategy
|
||||
- `TOPICS.TOOLS` - AI Tools
|
||||
- `TOPICS.BUSINESS` - Business Applications
|
||||
- `TOPICS.IMPLEMENTATION` - Implementation
|
||||
- `TOPICS.MEASUREMENT` - ROI & Measurement
|
||||
|
||||
You can assign multiple topics to each article.
|
||||
|
||||
## 🔧 Programmatic Addition
|
||||
|
||||
For scripts or automation, use the helper utility:
|
||||
|
||||
```bash
|
||||
# Create a JSON file with claim data
|
||||
npm run add-claim-from-json <path-to-json-file>
|
||||
```
|
||||
|
||||
JSON format:
|
||||
|
||||
```json
|
||||
{
|
||||
"slug": "your-article-slug",
|
||||
"title": "Your Article Title",
|
||||
"date": "2025-11-05",
|
||||
"featuredClaim": "One-sentence summary",
|
||||
"description": "Short description",
|
||||
"keyPoints": ["Point 1", "Point 2", "Point 3"],
|
||||
"topics": ["STRATEGY", "TOOLS"],
|
||||
"claims": ["Claim 1", "Claim 2", "Claim 3", "Claim 4", "Claim 5"],
|
||||
"claimTitles": ["Title 1", "Title 2", "Title 3", "Title 4", "Title 5"],
|
||||
"originalUrl": "https://aiadopters.club/p/your-article",
|
||||
"quote": "Your quote",
|
||||
"keyStatistics": [
|
||||
{ "stat": "90%", "context": "Context explanation" }
|
||||
],
|
||||
"supportingContext": "Methodology paragraph"
|
||||
}
|
||||
```
|
||||
|
||||
## 💡 Benefits of This System
|
||||
|
||||
### For You:
|
||||
- **Minimal effort**: Just provide article URL
|
||||
- **Consistent quality**: AI extracts data systematically
|
||||
- **Fast**: Complete process in minutes vs hours
|
||||
- **Scalable**: Works equally well for 10 or 1000 claims
|
||||
|
||||
### For Maintenance:
|
||||
- **Single source of truth**: All data in one file
|
||||
- **Instant UI updates**: Change template once, affects all pages
|
||||
- **Guaranteed consistency**: Every page uses same structure
|
||||
- **No repetitive work**: Never manually code 12+ pages again
|
||||
|
||||
## 🎓 Example: Complete Workflow
|
||||
|
||||
```
|
||||
You: "Add https://aiadopters.club/p/ai-strategic-partner"
|
||||
|
||||
Claude:
|
||||
✅ Fetched article
|
||||
✅ Extracted 5 atomic claims with titles
|
||||
✅ Generated quote: "Teams that got real value weren't using AI..."
|
||||
✅ Extracted 3 key statistics
|
||||
✅ Generated supporting context
|
||||
✅ Added to claims.ts
|
||||
✅ Built successfully
|
||||
✅ Deployed to production
|
||||
|
||||
Your new page is live at:
|
||||
https://kbanc.com/claims-library/ai-strategic-partner
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚨 Troubleshooting
|
||||
|
||||
**Build fails after adding claim:**
|
||||
- Check that all required fields are present
|
||||
- Verify claimTitles array matches claims array length (5 items)
|
||||
- Ensure topics use TOPICS.CONSTANT format
|
||||
- Check for unescaped special characters in strings
|
||||
|
||||
**Page not showing up:**
|
||||
- Verify slug is URL-friendly (lowercase, hyphens, no spaces)
|
||||
- Confirm entry was added to ALL_CLAIMS_DATA array
|
||||
- Run `npm run build` to regenerate static pages
|
||||
- Check that sitemap includes the new page
|
||||
|
||||
**Need to update existing page:**
|
||||
- Edit the entry in `/src/data/claims.ts`
|
||||
- Rebuild and redeploy
|
||||
- All instances update automatically
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@
|
|||
"prebuild": "tsx scripts/generate-sitemap.ts && tsx scripts/generate-rss.ts",
|
||||
"build": "next build",
|
||||
"start": "next start",
|
||||
"lint": "next lint"
|
||||
"lint": "next lint",
|
||||
"add-claim-from-json": "tsx scripts/add-claim-to-data.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@hookform/resolvers": "^5.2.2",
|
||||
|
|
|
|||
|
|
@ -5,9 +5,18 @@
|
|||
<link>https://kbanc.com</link>
|
||||
<description>Evidence-based claims about AI implementation, optimized for LLM extraction and research citation.</description>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Tue, 04 Nov 2025 18:14:39 GMT</lastBuildDate>
|
||||
<lastBuildDate>Tue, 04 Nov 2025 19:29:20 GMT</lastBuildDate>
|
||||
<atom:link href="https://kbanc.com/feed.xml" rel="self" type="application/rss+xml"/>
|
||||
|
||||
<item>
|
||||
<title>The Internal Tools You Can Vibe Code and the Ones That Will Cost You Later</title>
|
||||
<link>https://kbanc.com/claims-library/vibe-coding-technical-expertise</link>
|
||||
<guid>https://kbanc.com/claims-library/vibe-coding-technical-expertise</guid>
|
||||
<pubDate>Tue, 04 Nov 2025 00:00:00 GMT</pubDate>
|
||||
<description>5 atomic claims about where pure ai coding succeeds and where technical knowledge remains essential.</description>
|
||||
<author>kamil@kbanc.com (Kamil Banc)</author>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>AI Prompt Maps Employee Skill Gaps in One Session</title>
|
||||
<link>https://kbanc.com/claims-library/skill-gap-mapping</link>
|
||||
|
|
@ -53,6 +62,15 @@
|
|||
<author>kamil@kbanc.com (Kamil Banc)</author>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Claude Skills cuts 8-hour tasks down to 1 hour</title>
|
||||
<link>https://kbanc.com/claims-library/claude-skills-productivity-boost</link>
|
||||
<guid>https://kbanc.com/claims-library/claude-skills-productivity-boost</guid>
|
||||
<pubDate>Tue, 21 Oct 2025 00:00:00 GMT</pubDate>
|
||||
<description>5 atomic claims about new claude feature saves time on repetitive tasks through saved instructions.</description>
|
||||
<author>kamil@kbanc.com (Kamil Banc)</author>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>AI ROI Measurement: Why 95% See Zero Returns</title>
|
||||
<link>https://kbanc.com/claims-library/ai-roi-measurement</link>
|
||||
|
|
|
|||
|
|
@ -18,6 +18,18 @@
|
|||
<changefreq>weekly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://kbanc.com/claims-library/claude-skills-productivity-boost</loc>
|
||||
<lastmod>2025-10-21</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://kbanc.com/claims-library/vibe-coding-technical-expertise</loc>
|
||||
<lastmod>2025-11-04</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://kbanc.com/claims-library/skill-gap-mapping</loc>
|
||||
<lastmod>2025-11-03</lastmod>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,110 @@
|
|||
// Utility script to programmatically add a new claim to claims.ts
|
||||
// This is called after AI extracts data from the article
|
||||
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
interface NewClaimInput {
|
||||
slug: string;
|
||||
title: string;
|
||||
date: string;
|
||||
featuredClaim: string;
|
||||
description: string;
|
||||
keyPoints: string[];
|
||||
topics: string[]; // Topic IDs like "STRATEGY", "TOOLS"
|
||||
claims: string[];
|
||||
claimTitles: string[];
|
||||
originalUrl: string;
|
||||
quote: string;
|
||||
keyStatistics: Array<{ stat: string; context: string }>;
|
||||
supportingContext: string;
|
||||
}
|
||||
|
||||
function escapeForTypeScript(str: string): string {
|
||||
return str
|
||||
.replace(/\\/g, '\\\\')
|
||||
.replace(/'/g, "\\'")
|
||||
.replace(/\n/g, '\\n')
|
||||
.replace(/\r/g, '\\r');
|
||||
}
|
||||
|
||||
function generateClaimEntry(claim: NewClaimInput): string {
|
||||
const topicsArray = claim.topics.map(t => `TOPICS.${t}`).join(', ');
|
||||
const keyPointsArray = claim.keyPoints.map(kp => ` "${escapeForTypeScript(kp)}"`).join(',\n');
|
||||
const claimsArray = claim.claims.map(c => ` "${escapeForTypeScript(c)}"`).join(',\n');
|
||||
const claimTitlesArray = claim.claimTitles.map(ct => ` "${escapeForTypeScript(ct)}"`).join(',\n');
|
||||
const statsArray = claim.keyStatistics.map(stat =>
|
||||
` { stat: "${escapeForTypeScript(stat.stat)}", context: "${escapeForTypeScript(stat.context)}" }`
|
||||
).join(',\n');
|
||||
|
||||
return ` {
|
||||
slug: "${claim.slug}",
|
||||
title: "${escapeForTypeScript(claim.title)}",
|
||||
date: "${claim.date}",
|
||||
featuredClaim: "${escapeForTypeScript(claim.featuredClaim)}",
|
||||
description: "${escapeForTypeScript(claim.description)}",
|
||||
keyPoints: [
|
||||
${keyPointsArray}
|
||||
],
|
||||
topics: [${topicsArray}],
|
||||
claims: [
|
||||
${claimsArray}
|
||||
],
|
||||
claimTitles: [
|
||||
${claimTitlesArray}
|
||||
],
|
||||
originalUrl: "${claim.originalUrl}",
|
||||
quote: "${escapeForTypeScript(claim.quote)}",
|
||||
keyStatistics: [
|
||||
${statsArray}
|
||||
],
|
||||
supportingContext: "${escapeForTypeScript(claim.supportingContext)}",
|
||||
}`;
|
||||
}
|
||||
|
||||
export function addClaimToDataFile(claim: NewClaimInput): void {
|
||||
const claimsFilePath = path.join(process.cwd(), 'src', 'data', 'claims.ts');
|
||||
let fileContent = fs.readFileSync(claimsFilePath, 'utf-8');
|
||||
|
||||
// Find the array closing bracket
|
||||
const arrayEndPattern = /\n\];/;
|
||||
const match = fileContent.match(arrayEndPattern);
|
||||
|
||||
if (!match || match.index === undefined) {
|
||||
throw new Error('Could not find array end in claims.ts');
|
||||
}
|
||||
|
||||
// Generate new entry
|
||||
const newEntry = generateClaimEntry(claim);
|
||||
|
||||
// Insert before the closing bracket
|
||||
const insertPosition = match.index;
|
||||
const before = fileContent.substring(0, insertPosition);
|
||||
const after = fileContent.substring(insertPosition);
|
||||
|
||||
// Add comma after last entry if needed
|
||||
const newContent = before.trimEnd() + ',\n' + newEntry + after;
|
||||
|
||||
// Write back to file
|
||||
fs.writeFileSync(claimsFilePath, newContent, 'utf-8');
|
||||
|
||||
console.log(`✅ Added claim "${claim.title}" to claims.ts`);
|
||||
console.log(` Slug: ${claim.slug}`);
|
||||
console.log(` Date: ${claim.date}`);
|
||||
console.log(` Topics: ${claim.topics.join(', ')}`);
|
||||
}
|
||||
|
||||
// CLI usage
|
||||
if (require.main === module) {
|
||||
const inputFile = process.argv[2];
|
||||
|
||||
if (!inputFile) {
|
||||
console.error('Usage: tsx scripts/add-claim-to-data.ts <input-json-file>');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const inputPath = path.resolve(inputFile);
|
||||
const claimData: NewClaimInput = JSON.parse(fs.readFileSync(inputPath, 'utf-8'));
|
||||
|
||||
addClaimToDataFile(claimData);
|
||||
}
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
// Script to merge extracted data from existing pages into claims.ts
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
const migratedDataPath = '/tmp/migrated-claims-data.json';
|
||||
const claimsFilePath = path.join(process.cwd(), 'src', 'data', 'claims.ts');
|
||||
|
||||
interface MigratedEntry {
|
||||
claimTitles: string[];
|
||||
quote: string;
|
||||
keyStatistics: Array<{ stat: string; context: string }>;
|
||||
supportingContext: string;
|
||||
}
|
||||
|
||||
interface MigratedData {
|
||||
[slug: string]: MigratedEntry;
|
||||
}
|
||||
|
||||
function escapeForTypeScript(str: string): string {
|
||||
return str
|
||||
.replace(/\\/g, '\\\\')
|
||||
.replace(/`/g, '\\`')
|
||||
.replace(/\$/g, '\\$');
|
||||
}
|
||||
|
||||
// Read migrated data
|
||||
const migratedData: MigratedData = JSON.parse(
|
||||
fs.readFileSync(migratedDataPath, 'utf-8')
|
||||
);
|
||||
|
||||
// Read current claims.ts
|
||||
let claimsContent = fs.readFileSync(claimsFilePath, 'utf-8');
|
||||
|
||||
// For each slug, find its entry in claims.ts and add the new fields
|
||||
Object.entries(migratedData).forEach(([slug, data]) => {
|
||||
console.log(`\nProcessing: ${slug}`);
|
||||
|
||||
// Find the entry in claims.ts by slug
|
||||
const slugPattern = new RegExp(`slug: "${slug}",`, 'g');
|
||||
const match = slugPattern.exec(claimsContent);
|
||||
|
||||
if (!match) {
|
||||
console.warn(` ⚠️ Could not find entry for ${slug}`);
|
||||
return;
|
||||
}
|
||||
|
||||
// Find the originalUrl line for this entry (it's the last field before the closing brace)
|
||||
const startPos = match.index;
|
||||
const entryStartPattern = /{[^{]*slug: "${slug}",/;
|
||||
const beforeMatch = claimsContent.substring(0, startPos);
|
||||
const lastOpenBrace = beforeMatch.lastIndexOf('{');
|
||||
|
||||
// Find the closing brace for this entry
|
||||
let braceCount = 1;
|
||||
let pos = startPos + match[0].length;
|
||||
while (braceCount > 0 && pos < claimsContent.length) {
|
||||
if (claimsContent[pos] === '{') braceCount++;
|
||||
if (claimsContent[pos] === '}') braceCount--;
|
||||
pos++;
|
||||
}
|
||||
|
||||
// Find the originalUrl line
|
||||
const entryContent = claimsContent.substring(lastOpenBrace, pos);
|
||||
const originalUrlMatch = entryContent.match(/originalUrl: "([^"]+)",/);
|
||||
|
||||
if (!originalUrlMatch) {
|
||||
console.warn(` ⚠️ Could not find originalUrl for ${slug}`);
|
||||
return;
|
||||
}
|
||||
|
||||
const originalUrlPos = lastOpenBrace + originalUrlMatch.index! + originalUrlMatch[0].length;
|
||||
|
||||
// Build the new fields to insert
|
||||
const claimTitlesArray = data.claimTitles
|
||||
.map(title => ` "${escapeForTypeScript(title)}"`)
|
||||
.join(',\n');
|
||||
|
||||
const statsArray = data.keyStatistics.length > 0
|
||||
? data.keyStatistics
|
||||
.map(stat => ` { stat: "${escapeForTypeScript(stat.stat)}", context: "${escapeForTypeScript(stat.context)}" }`)
|
||||
.join(',\n')
|
||||
: '';
|
||||
|
||||
const newFields = `
|
||||
claimTitles: [
|
||||
${claimTitlesArray}
|
||||
],
|
||||
quote: \`${escapeForTypeScript(data.quote)}\`,
|
||||
keyStatistics: [
|
||||
${statsArray}
|
||||
],
|
||||
supportingContext: \`${escapeForTypeScript(data.supportingContext)}\`,`;
|
||||
|
||||
// Insert the new fields after originalUrl
|
||||
claimsContent =
|
||||
claimsContent.substring(0, originalUrlPos) +
|
||||
newFields +
|
||||
claimsContent.substring(originalUrlPos);
|
||||
|
||||
console.log(` ✅ Added new fields to ${slug}`);
|
||||
});
|
||||
|
||||
// Write back to file
|
||||
fs.writeFileSync(claimsFilePath, claimsContent, 'utf-8');
|
||||
|
||||
console.log('\n✅ Migration complete! All entries updated in claims.ts');
|
||||
|
|
@ -13,10 +13,91 @@ export interface ClaimData {
|
|||
keyPoints: string[];
|
||||
topics: Topic[];
|
||||
claims: string[];
|
||||
claimTitles: string[]; // Short headers for each claim (e.g., "Iterative collaboration drives value")
|
||||
originalUrl: string;
|
||||
|
||||
// Supporting Evidence fields
|
||||
quote: string; // Main quote for Supporting Evidence section
|
||||
keyStatistics: Array<{
|
||||
stat: string; // The statistic (e.g., "90% accuracy")
|
||||
context: string; // Context explanation
|
||||
}>;
|
||||
supportingContext: string; // Context section paragraph explaining methodology/application
|
||||
}
|
||||
|
||||
export const ALL_CLAIMS_DATA: ClaimData[] = [
|
||||
{
|
||||
slug: "claude-skills-productivity-boost",
|
||||
title: "Claude Skills cuts 8-hour tasks down to 1 hour",
|
||||
date: "2025-10-21",
|
||||
featuredClaim: "Claude Skills reduces repetitive 8-hour tasks to 1 hour by automating personalized instructions",
|
||||
description: "New Claude feature saves time on repetitive tasks through saved instructions",
|
||||
keyPoints: [
|
||||
"Skills are saved instructions Claude loads only when relevant to your specific task",
|
||||
"Create once, reuse forever without re-explaining preferences or pasting instructions repeatedly",
|
||||
"Four pre-built Skills ship with Claude for Excel, PowerPoint, Word, and PDF tasks",
|
||||
"Best for repetitive work with consistent patterns; requires Claude Pro subscription or higher",
|
||||
],
|
||||
topics: [TOPICS.TOOLS, TOPICS.IMPLEMENTATION],
|
||||
claims: [
|
||||
"Rakuten compressed an 8-hour task into 1 hour using Claude Skills with same quality",
|
||||
"Claude Skills load instructions only when relevant rather than reading all instructions every time",
|
||||
"Claude's pre-built Excel Skill achieved 83% accuracy on expert-level financial modeling tests",
|
||||
"Skills cannot exceed 8MB total file size and don't work with extended thinking mode",
|
||||
"Skills work best for high-volume repetitive tasks with small variations in data",
|
||||
],
|
||||
claimTitles: [
|
||||
"Eight-fold productivity acceleration",
|
||||
"Selective instruction loading",
|
||||
"Expert-level spreadsheet capability",
|
||||
"Technical constraints and incompatibilities",
|
||||
"Optimal use case identification",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/claude-skills-cuts-8-hour-tasks-down",
|
||||
quote: `Instead of re-explaining your preferences every single time, you teach Claude once how you want things done.`,
|
||||
keyStatistics: [
|
||||
{ stat: "8x speed improvement", context: "Rakuten reduced task time from 8 hours to 1 hour" },
|
||||
{ stat: "83% accuracy", context: "Excel Skill passed 5 of 7 expert-level financial modeling tests" },
|
||||
{ stat: "8MB limit", context: "Maximum total file size for uploaded Skills per user" },
|
||||
],
|
||||
supportingContext: `Claude Skills represent a productivity feature launched October 16, 2025, enabling users to create reusable instruction sets. Rather than pasting templates or repeating preferences in each conversation, users define a Skill once with a SKILL.md file and folder structure, then activate relevant Skills automatically when needed. This approach targets high-volume repetitive work where structure remains consistent but data varies—monthly reports, client communications, and standardized analyses—with measurable time savings validated by enterprise adoption.`,
|
||||
},
|
||||
{
|
||||
slug: "vibe-coding-technical-expertise",
|
||||
title: "The Internal Tools You Can Vibe Code and the Ones That Will Cost You Later",
|
||||
date: "2025-11-04",
|
||||
featuredClaim: "AI coding accelerates solo developers but doesn't eliminate expertise requirements for production systems",
|
||||
description: "Where pure AI coding succeeds and where technical knowledge remains essential",
|
||||
keyPoints: [
|
||||
"Self-contained features work well with vibe coding; complex systems still require developer expertise",
|
||||
"WriteStack founder built $2,400 MRR SaaS using AI tools but leveraged 9 years of development experience",
|
||||
"Maintenance burden compounds over time; scaling prototypes into production requires technical literacy",
|
||||
"Build custom tools only for unique workflows; general-purpose SaaS subscriptions cost less than maintenance",
|
||||
],
|
||||
topics: [TOPICS.STRATEGY, TOPICS.IMPLEMENTATION],
|
||||
claims: [
|
||||
"AI autocomplete handles 95% of code generation for experienced developers using Cursor",
|
||||
"Self-contained features like Spotify Wrapped clone can be built entirely with AI coding platforms",
|
||||
"Production system maintenance requires understanding codebase architecture and debugging",
|
||||
"Building a product once is cheaper than maintaining it over time",
|
||||
"Solo technical founders gain significant leverage with AI coding tools; non-technical founders face scaling limits",
|
||||
],
|
||||
claimTitles: [
|
||||
"AI accelerates existing developer expertise",
|
||||
"Bounded problems enable pure vibe coding",
|
||||
"Technical expertise remains essential for production",
|
||||
"Maintenance burden outweighs build speed",
|
||||
"AI amplifies developer advantages",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/the-internal-tools-you-can-vibe-code",
|
||||
quote: `Scaling those prototypes into production systems still requires technical literacy or partnerships with developers.`,
|
||||
keyStatistics: [
|
||||
{ stat: "$2,400 MRR", context: "WriteStack monthly recurring revenue with 120 paying customers built by solo founder using AI tools" },
|
||||
{ stat: "95% code completion", context: "AI autocomplete handles proportion of routine coding; developer fixes bugs and adjusts for infrastructure" },
|
||||
{ stat: "$25", context: "Cost to build self-contained year-end summary feature entirely through vibe coding platform" },
|
||||
],
|
||||
supportingContext: `Orel Zilberman's experience building WriteStack demonstrates that AI coding tools create meaningful leverage for developers with existing technical expertise. The distinction between AI-assisted development (where developers provide architecture and debugging) and pure vibe coding (for self-contained features) reveals that speed gains from AI come alongside unchanged requirements for system understanding. Non-technical founders can prototype quickly but face maintenance challenges when scaling, making the cost-benefit analysis favor buying established SaaS tools over building custom internal software.`,
|
||||
},
|
||||
{
|
||||
slug: "skill-gap-mapping",
|
||||
title: "AI Prompt Maps Employee Skill Gaps in One Session",
|
||||
|
|
@ -37,6 +118,18 @@ export const ALL_CLAIMS_DATA: ClaimData[] = [
|
|||
"Creating development plans first prevents sunk costs from emotionally biasing decisions toward completion",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/skill-gap-mapping",
|
||||
claimTitles: [
|
||||
"Six-category interview structure",
|
||||
"Fifteen-minute completion time",
|
||||
"Prevents unrealistic recommendations",
|
||||
"Five-component output structure",
|
||||
"Detects goal-performance conflicts"
|
||||
],
|
||||
quote: `One-time interactive interview replaces multiple scheduling sessions`,
|
||||
keyStatistics: [
|
||||
|
||||
],
|
||||
supportingContext: `The structured prompt approach gathers information across employee basics, performance data, role requirements, development goals, available resources, and organizational needs before generating analysis. This prevents unrealistic plans and detects conflicts between what employees want and what their performance indicates they need.`,
|
||||
},
|
||||
{
|
||||
slug: "vibe-hackathons",
|
||||
|
|
@ -58,6 +151,18 @@ export const ALL_CLAIMS_DATA: ClaimData[] = [
|
|||
"Single-page prototypes with no databases can be built in two to four hours",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/ai-hackathon",
|
||||
claimTitles: [
|
||||
"Rapid transformation through experiential learning",
|
||||
"Cross-functional teams discover overlooked opportunities",
|
||||
"Leadership participation signals organizational support",
|
||||
"Experiential learning drives sustained usage",
|
||||
"Accessible tools enable rapid prototyping"
|
||||
],
|
||||
quote: `When people make something that solves their own problem, they return to AI the next day.`,
|
||||
keyStatistics: [
|
||||
{ stat: "ChatGPT usage doubles the week after a hackathon", context: "" }
|
||||
],
|
||||
supportingContext: `The methodology focuses on experiential learning through hands-on prototype building, cross-functional collaboration, and rapid three-hour sprints that transform theoretical AI knowledge into practical tool usage.`,
|
||||
},
|
||||
{
|
||||
slug: "systems-thinking",
|
||||
|
|
@ -79,6 +184,18 @@ export const ALL_CLAIMS_DATA: ClaimData[] = [
|
|||
"Fixing upstream inefficiencies first multiplies automation value by reducing what needs automating",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/systems-thinking-ai",
|
||||
claimTitles: [
|
||||
"Preventing optimization mistakes",
|
||||
"Leverage points create wide impact",
|
||||
"Root cause analysis",
|
||||
"Visual mapping exposes problems",
|
||||
"Dependency surfacing"
|
||||
],
|
||||
quote: `When you automate a process without mapping dependencies, you shift work somewhere else.`,
|
||||
keyStatistics: [
|
||||
|
||||
],
|
||||
supportingContext: `The framework helps professionals and consultants prevent expensive implementation mistakes by mapping dependencies before automation. By applying systems thinking, teams can identify leverage points where small changes create system-wide improvements and avoid narrow optimizations that shift work to other parts of the organization.`,
|
||||
},
|
||||
{
|
||||
slug: "market-entry-study",
|
||||
|
|
@ -100,6 +217,18 @@ export const ALL_CLAIMS_DATA: ClaimData[] = [
|
|||
"The approach works for manufacturing relocation decisions and geographic expansion analysis",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/market-entry-study-ai",
|
||||
claimTitles: [
|
||||
"Cost and time compression",
|
||||
"Comprehensive domain coverage",
|
||||
"Methodology drives consultant value",
|
||||
"Dramatic efficiency gains",
|
||||
"Question sequence primacy"
|
||||
],
|
||||
quote: `Consultants sell question sequence, not proprietary data`,
|
||||
keyStatistics: [
|
||||
|
||||
],
|
||||
supportingContext: `The structured prompt approach covers seven research domains: market sizing, competitive landscape, regulatory environment, customer requirements, operational setup, financial viability, and risk assessment. The methodology produces executive summary, market scoring matrix, detailed entry plan with phases, budgets, timelines, and KPIs in 3,000-5,000 words. Output requires validation, source checking, and assumption stress-testing.`,
|
||||
},
|
||||
{
|
||||
slug: "alpha-school",
|
||||
|
|
@ -121,6 +250,18 @@ export const ALL_CLAIMS_DATA: ClaimData[] = [
|
|||
"Hands-on project time triples when AI handles direct instruction, shifting teachers from content delivery to skill coaching",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/alpha-school",
|
||||
claimTitles: [
|
||||
"Compressed curriculum model",
|
||||
"Triple mentoring capacity",
|
||||
"Accelerated mastery schedule",
|
||||
"Restructuring over automation",
|
||||
"Framework prevents pilot failures"
|
||||
],
|
||||
quote: `Routine delivery unbundled from human coaching frees three hours daily`,
|
||||
keyStatistics: [
|
||||
|
||||
],
|
||||
supportingContext: `The approach requires role restructuring rather than simple task automation. Teachers transition to performance coaching roles, managers shift to decision arbitration functions, and training curriculum gets redesigned around outcomes rather than activity measures. The model reportedly transfers to operations teams, customer service, and compliance functions.`,
|
||||
},
|
||||
{
|
||||
slug: "ai-roi-measurement",
|
||||
|
|
@ -142,6 +283,18 @@ export const ALL_CLAIMS_DATA: ClaimData[] = [
|
|||
"Measuring leading indicators (usage rates, feedback loops, iteration speed) predicts AI success better than lagging indicators (cost savings, task completion time)",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/ai-roi-measurement",
|
||||
claimTitles: [
|
||||
"The ROI measurement gap",
|
||||
"Time saved is the wrong metric",
|
||||
"Top performers focus investment strategically",
|
||||
"Revenue functions show 2x growth",
|
||||
"Customer-facing work drives returns"
|
||||
],
|
||||
quote: `95% see zero measurable ROI from their AI investments. 78% of firms use AI somewhere; 83% see no impact on profit margins.`,
|
||||
keyStatistics: [
|
||||
{ stat: "2x revenue growth and 1.4x cost reductions", context: "High-performing functions that focus AI on revenue-generating activities versus laggards who optimize internal processes" }
|
||||
],
|
||||
supportingContext: `The framework is based on research from BCG's study of 1,250 companies and McKinsey's analysis of AI implementation patterns. It provides three audit questions to evaluate whether AI spending targets high-impact work: Does this cut costs or grow revenue? Did time savings convert to business results? Does this workflow touch customers or product? Top performers concentrate investment in R&D, sales, marketing, manufacturing, and IT—functions that directly impact the bottom line.`,
|
||||
},
|
||||
{
|
||||
slug: "amazon-ai-playbook",
|
||||
|
|
@ -163,6 +316,20 @@ export const ALL_CLAIMS_DATA: ClaimData[] = [
|
|||
"Amazon's AI implementation follows a three-phase pattern: customer value identification, metric definition, and iterative deployment",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/amazon-ai-playbook",
|
||||
claimTitles: [
|
||||
"Recommendation engine drives massive revenue",
|
||||
"Working Backwards starts with customer outcome",
|
||||
"Data quality determines project success",
|
||||
"Robotics deliver measurable cost reduction",
|
||||
"Bias detection became mandatory governance"
|
||||
],
|
||||
quote: `Write the press release before building anything.`,
|
||||
keyStatistics: [
|
||||
{ stat: "\$200 billion", context: "Annual sales from recommendation engine (35% of e-commerce revenue)" },
|
||||
{ stat: "25% cost reduction", context: "Warehouse operations savings through AI robotics" },
|
||||
{ stat: "\$100 billion", context: "Annual AI investment commitment" }
|
||||
],
|
||||
supportingContext: `Amazon's five-phase approach covers: Working Backwards methodology, data foundation requirements, clear KPIs, organizational transformation, and governance frameworks. These strategies apply to organizations of any size implementing AI systems.`,
|
||||
},
|
||||
{
|
||||
slug: "ai-judgment-skills",
|
||||
|
|
@ -184,6 +351,20 @@ export const ALL_CLAIMS_DATA: ClaimData[] = [
|
|||
"The Good Judgment Project demonstrated that forecasters who track accuracy improve 30% faster than those who don't maintain performance records",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/ai-judgment-skills-disruption-roadmap",
|
||||
claimTitles: [
|
||||
"AI automation scope is limited",
|
||||
"Prediction vs. judgment divide",
|
||||
"Junior roles face compression",
|
||||
"Decision documentation improves outcomes",
|
||||
"Forecasting practice builds calibration"
|
||||
],
|
||||
quote: `The AI era rewards those who make better decisions about uncertain futures, not those who execute known processes faster.`,
|
||||
keyStatistics: [
|
||||
{ stat: "0.7%", context: "Job-related skills fully replaced by AI (CNBC)" },
|
||||
{ stat: "30% faster improvement", context: "Forecasters who track accuracy vs. those who don't (Good Judgment Project)" },
|
||||
{ stat: "40% reduction", context: "Strategic blindspots through scenario planning" }
|
||||
],
|
||||
supportingContext: `The article addresses how AI automation affects specific competencies (0.7% of job skills) rather than entire roles, creating a divide between prediction (AI's strength) and judgment (human responsibility). It examines the compression of junior roles, the importance of decision documentation, and forecasting practice for building calibration. These insights apply to professionals navigating career resilience in AI-augmented environments.`,
|
||||
},
|
||||
{
|
||||
slug: "ai-strategic-partner",
|
||||
|
|
@ -205,6 +386,20 @@ export const ALL_CLAIMS_DATA: ClaimData[] = [
|
|||
"Effective AI co-thinking requires memory retention, dedicated project contexts, and custom instructions promoting critical questioning over agreement",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/ai-coworker-vs-co-thinker-strategic-partner",
|
||||
claimTitles: [
|
||||
"Iterative collaboration drives value",
|
||||
"Human-AI teams outperform both alone",
|
||||
"Enterprise AI adoption at scale",
|
||||
"Skipping stages creates friction",
|
||||
"Co-thinking requires intentional setup"
|
||||
],
|
||||
quote: `Teams that got real value weren't using AI for one-off tasks. They were iterating.`,
|
||||
keyStatistics: [
|
||||
{ stat: "90% accuracy", context: "Human-AI collaboration in medical diagnosis vs. 81% (humans alone) or 73% (AI alone)" },
|
||||
{ stat: "15x growth", context: "McDonald's China monthly AI transactions: 2,000 → 30,000" },
|
||||
{ stat: "68% report division", context: "C-suite executives say rushed AI integration creates organizational friction" }
|
||||
],
|
||||
supportingContext: `The article examines the shift from using AI as a task-completing assistant ("coworker" mode) to collaborative strategic advisor ("co-thinker" mode). Microsoft's research on Copilot users shows iterative collaboration drives high-value outcomes. Evidence from medical diagnosis, enterprise deployments (McDonald's China 15x growth), and organizational research (68% of C-suite report friction from rushed integration) demonstrates that staged implementation and intentional configuration maximize AI value while preventing organizational division.`,
|
||||
},
|
||||
{
|
||||
slug: "undetectable-writing",
|
||||
|
|
@ -226,6 +421,18 @@ export const ALL_CLAIMS_DATA: ClaimData[] = [
|
|||
"Reading content aloud identifies unnatural phrasing that silent review misses",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/undetectable-ai-writing",
|
||||
claimTitles: [
|
||||
"Active voice masks AI authorship",
|
||||
"Sentence length variation prevents detection",
|
||||
"Clichéd phrases reveal automation",
|
||||
"Excessive bullets signal robots",
|
||||
"Summary conclusions betray generation"
|
||||
],
|
||||
quote: ``,
|
||||
keyStatistics: [
|
||||
|
||||
],
|
||||
supportingContext: `These claims address how to transform AI-generated writing into natural-sounding prose. The techniques focus on eliminating mechanical patterns: using active voice instead of passive constructions, varying sentence length to avoid rhythmic predictability, removing clichéd phrases that saturate training data, minimizing unnecessary bullet points, and ending with crisp final lines rather than summary recaps.`,
|
||||
},
|
||||
{
|
||||
slug: "chatgpt-setup",
|
||||
|
|
@ -247,6 +454,18 @@ export const ALL_CLAIMS_DATA: ClaimData[] = [
|
|||
"Memory function works across conversations, building context that improves recommendations over weeks and months",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/how-i-set-up-my-chatgpt-properly",
|
||||
claimTitles: [
|
||||
"Quick setup, lasting value",
|
||||
"Memory prevents repetition",
|
||||
"Personality beats model selection",
|
||||
"Business context eliminates re-explaining",
|
||||
"Frameworks generate actionable insights"
|
||||
],
|
||||
quote: `Most professionals waste \$20/month on ChatGPT and get pocket change in return.`,
|
||||
keyStatistics: [
|
||||
{ stat: "Framework + Context + Adjustments = Effective Prompts", context: "Combine specific analysis methods (like Lean 5 Whys), reference prior business context, and set response constraints for structured, actionable insights" }
|
||||
],
|
||||
supportingContext: `The framework emphasizes that configuration—not the underlying AI model—determines value extraction. By combining frameworks (like "Lean 5 Whys"), context (business details stored in memory), and adjustments (response constraints), users generate structured insights they can actually implement rather than generic advice that sits unused.`,
|
||||
},
|
||||
{
|
||||
slug: "chatgpt-features",
|
||||
|
|
@ -268,6 +487,19 @@ export const ALL_CLAIMS_DATA: ClaimData[] = [
|
|||
"ChatGPT's web search integration provides cited sources, eliminating the need to switch between AI and traditional search",
|
||||
],
|
||||
originalUrl: "https://aiadopters.club/p/my-top-10-chatgpt-features-that-actually",
|
||||
claimTitles: [
|
||||
"File upload feature delivers 89% time reduction",
|
||||
"Custom GPTs accelerate project planning 70%",
|
||||
"Named chats improve retrieval efficiency",
|
||||
"Web browsing eliminates outdated information",
|
||||
"Voice mode reclaims commute time"
|
||||
],
|
||||
quote: `The goal isn't to use AI. The goal is to deliver better work faster.`,
|
||||
keyStatistics: [
|
||||
{ stat: "89% time savings", context: "Marketing director reduced report prep from 3 hours to 20 minutes" },
|
||||
{ stat: "70% faster", context: "Custom GPTs reduce project planning time" }
|
||||
],
|
||||
supportingContext: `The article emphasizes strategic feature mastery targeting specific workflow bottlenecks rather than broad feature exploration, demonstrating measurable productivity improvements and career advantages through focused ChatGPT utilization.`,
|
||||
},
|
||||
];
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue