Automate sitemap and RSS feed generation

- Created scripts/generate-sitemap.ts to auto-generate sitemap.xml
- Created scripts/generate-rss.ts to auto-generate RSS feed
- Both scripts pull from centralized claims data
- Added prebuild script to run generators before each build
- Installed tsx for TypeScript script execution
- Sitemap and RSS feed now include all 11 claims pages (including ai-judgment-skills)
- Updated documentation with new auto-generated files
- No more manual updates needed for sitemap or RSS feed
This commit is contained in:
kbanc85 2025-11-04 12:36:51 -05:00
parent 9ee2503e42
commit 834d71974c
7 changed files with 773 additions and 125 deletions

View File

@ -351,6 +351,8 @@ Everything updates automatically based on the centralized data file!
✅ **Topic Filtering** - Works across all pages
✅ **Claim Counts** - Automatically calculated everywhere
✅ **Article Counts** - Automatically calculated everywhere
✅ **Sitemap** (`/sitemap.xml`) - Auto-generated for search engines
✅ **RSS Feed** (`/feed.xml`) - Auto-generated for subscribers
## Testing

509
package-lock.json generated
View File

@ -68,6 +68,7 @@
"eslint-config-next": "^15.0.3",
"postcss": "^8.5.6",
"tailwindcss": "^3.4.17",
"tsx": "^4.20.6",
"typescript": "^5.8.3"
}
},
@ -122,6 +123,448 @@
"tslib": "^2.4.0"
}
},
"node_modules/@esbuild/aix-ppc64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
"integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"aix"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-arm": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
"integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
"integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/android-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
"integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/darwin-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
"integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/darwin-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
"integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/freebsd-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
"integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/freebsd-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
"integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-arm": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
"integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
"cpu": [
"arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
"integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-ia32": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
"integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-loong64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
"integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
"cpu": [
"loong64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-mips64el": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
"integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
"cpu": [
"mips64el"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-ppc64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
"integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-riscv64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
"integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
"cpu": [
"riscv64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-s390x": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
"integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
"cpu": [
"s390x"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/linux-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
"integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/netbsd-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
"integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/netbsd-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
"integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openbsd-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
"integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openbsd-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
"integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/openharmony-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
"integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openharmony"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/sunos-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
"integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"sunos"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-arm64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
"integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-ia32": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
"integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
"cpu": [
"ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/win32-x64": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
"integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@eslint-community/eslint-utils": {
"version": "4.9.0",
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz",
@ -4461,6 +4904,48 @@
"benchmarks"
]
},
"node_modules/esbuild": {
"version": "0.25.12",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
"integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
"devOptional": true,
"hasInstallScript": true,
"license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
"engines": {
"node": ">=18"
},
"optionalDependencies": {
"@esbuild/aix-ppc64": "0.25.12",
"@esbuild/android-arm": "0.25.12",
"@esbuild/android-arm64": "0.25.12",
"@esbuild/android-x64": "0.25.12",
"@esbuild/darwin-arm64": "0.25.12",
"@esbuild/darwin-x64": "0.25.12",
"@esbuild/freebsd-arm64": "0.25.12",
"@esbuild/freebsd-x64": "0.25.12",
"@esbuild/linux-arm": "0.25.12",
"@esbuild/linux-arm64": "0.25.12",
"@esbuild/linux-ia32": "0.25.12",
"@esbuild/linux-loong64": "0.25.12",
"@esbuild/linux-mips64el": "0.25.12",
"@esbuild/linux-ppc64": "0.25.12",
"@esbuild/linux-riscv64": "0.25.12",
"@esbuild/linux-s390x": "0.25.12",
"@esbuild/linux-x64": "0.25.12",
"@esbuild/netbsd-arm64": "0.25.12",
"@esbuild/netbsd-x64": "0.25.12",
"@esbuild/openbsd-arm64": "0.25.12",
"@esbuild/openbsd-x64": "0.25.12",
"@esbuild/openharmony-arm64": "0.25.12",
"@esbuild/sunos-x64": "0.25.12",
"@esbuild/win32-arm64": "0.25.12",
"@esbuild/win32-ia32": "0.25.12",
"@esbuild/win32-x64": "0.25.12"
}
},
"node_modules/escalade": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
@ -5218,7 +5703,7 @@
"version": "4.13.0",
"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz",
"integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==",
"dev": true,
"devOptional": true,
"license": "MIT",
"dependencies": {
"resolve-pkg-maps": "^1.0.0"
@ -7270,7 +7755,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
"integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
"dev": true,
"devOptional": true,
"license": "MIT",
"funding": {
"url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
@ -8144,6 +8629,26 @@
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD"
},
"node_modules/tsx": {
"version": "4.20.6",
"resolved": "https://registry.npmjs.org/tsx/-/tsx-4.20.6.tgz",
"integrity": "sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==",
"devOptional": true,
"license": "MIT",
"dependencies": {
"esbuild": "~0.25.0",
"get-tsconfig": "^4.7.5"
},
"bin": {
"tsx": "dist/cli.mjs"
},
"engines": {
"node": ">=18.0.0"
},
"optionalDependencies": {
"fsevents": "~2.3.3"
}
},
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",

View File

@ -4,6 +4,7 @@
"private": true,
"scripts": {
"dev": "next dev",
"prebuild": "tsx scripts/generate-sitemap.ts && tsx scripts/generate-rss.ts",
"build": "next build",
"start": "next start",
"lint": "next lint"
@ -69,6 +70,7 @@
"eslint-config-next": "^15.0.3",
"postcss": "^8.5.6",
"tailwindcss": "^3.4.17",
"tsx": "^4.20.6",
"typescript": "^5.8.3"
}
}

View File

@ -5,69 +5,15 @@
<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>Mon, 04 Nov 2025 00:00:00 GMT</lastBuildDate>
<lastBuildDate>Tue, 04 Nov 2025 17:36:22 GMT</lastBuildDate>
<atom:link href="https://kbanc.com/feed.xml" rel="self" type="application/rss+xml"/>
<item>
<title>Run $150K Market Entry Study in 20 Minutes With AI Research Prompts</title>
<link>https://kbanc.com/claims-library/market-entry-study</link>
<guid>https://kbanc.com/claims-library/market-entry-study</guid>
<pubDate>Mon, 04 Nov 2025 00:00:00 GMT</pubDate>
<description>Five claims about using structured AI research prompts to replicate $150K consulting engagements in 20 minutes by applying seven-domain framework.</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
<item>
<title>Alpha School: Two Hours of AI-Led Learning Beats Full Day of Classes</title>
<link>https://kbanc.com/claims-library/alpha-school</link>
<guid>https://kbanc.com/claims-library/alpha-school</guid>
<pubDate>Mon, 04 Nov 2025 00:00:00 GMT</pubDate>
<description>Five claims about Alpha School's AI-led learning model that compresses curriculum into two hours and triples teacher mentoring time.</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
<item>
<title>Make ChatGPT Writing Undetectable With Five Techniques</title>
<link>https://kbanc.com/claims-library/undetectable-writing</link>
<guid>https://kbanc.com/claims-library/undetectable-writing</guid>
<pubDate>Mon, 04 Nov 2025 00:00:00 GMT</pubDate>
<description>Five claims about transforming AI writing to sound natural: active voice, varied sentence length, avoiding clichés, minimal bullets, and crisp endings.</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>
<guid>https://kbanc.com/claims-library/skill-gap-mapping</guid>
<pubDate>Mon, 04 Nov 2025 00:00:00 GMT</pubDate>
<description>Five claims about using structured AI prompts to map employee skill gaps, create development plans, and detect conflicts in 15 minutes.</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
<item>
<title>How to Set Up ChatGPT Properly in Under 10 Minutes</title>
<link>https://kbanc.com/claims-library/chatgpt-setup</link>
<guid>https://kbanc.com/claims-library/chatgpt-setup</guid>
<pubDate>Mon, 04 Nov 2025 00:00:00 GMT</pubDate>
<description>Five essential claims about ChatGPT configuration: enable memory, define advisor personality, brief on business context, and use proven frameworks.</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>
<guid>https://kbanc.com/claims-library/ai-roi-measurement</guid>
<pubDate>Sun, 03 Nov 2025 00:00:00 GMT</pubDate>
<description>Five claims about why companies fail to measure AI ROI, why time saved is the wrong metric, and how top performers focus on revenue-generating activities.</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
<item>
<title>Systems Thinking for AI Implementation</title>
<link>https://kbanc.com/claims-library/systems-thinking</link>
<guid>https://kbanc.com/claims-library/systems-thinking</guid>
<pubDate>Sun, 03 Nov 2025 00:00:00 GMT</pubDate>
<description>Five claims about preventing narrow optimization mistakes, identifying leverage points, and mapping dependencies before AI automation.</description>
<pubDate>Mon, 03 Nov 2025 00:00:00 GMT</pubDate>
<description>5 atomic claims about structured prompts complete skill gap analysis in 15 minutes.</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
@ -75,17 +21,80 @@
<title>Vibe Hackathons Transform AI Adoption in Three Hours</title>
<link>https://kbanc.com/claims-library/vibe-hackathons</link>
<guid>https://kbanc.com/claims-library/vibe-hackathons</guid>
<pubDate>Sat, 02 Nov 2025 00:00:00 GMT</pubDate>
<description>Five evidence-based claims about how vibe coding hackathons accelerate AI adoption through experiential learning, cross-functional collaboration, and rapid prototyping.</description>
<pubDate>Sat, 01 Nov 2025 00:00:00 GMT</pubDate>
<description>5 atomic claims about experiential learning accelerates ai adoption.</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
<item>
<title>Amazon Cuts Costs 25% With AI: Here's Their Exact Process</title>
<title>Systems Thinking for AI Implementation</title>
<link>https://kbanc.com/claims-library/systems-thinking</link>
<guid>https://kbanc.com/claims-library/systems-thinking</guid>
<pubDate>Wed, 29 Oct 2025 00:00:00 GMT</pubDate>
<description>5 atomic claims about prevent narrow optimization mistakes before automating.</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
<item>
<title>Run $150K Market Entry Study in 20 Minutes With AI Research Prompts</title>
<link>https://kbanc.com/claims-library/market-entry-study</link>
<guid>https://kbanc.com/claims-library/market-entry-study</guid>
<pubDate>Mon, 27 Oct 2025 00:00:00 GMT</pubDate>
<description>5 atomic claims about seven-domain framework replicates consulting methodology.</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
<item>
<title>Alpha School: Two Hours of AI-Led Learning Beats Full Day of Classes</title>
<link>https://kbanc.com/claims-library/alpha-school</link>
<guid>https://kbanc.com/claims-library/alpha-school</guid>
<pubDate>Thu, 23 Oct 2025 00:00:00 GMT</pubDate>
<description>5 atomic claims about ai-led instruction compresses traditional curriculum.</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>
<guid>https://kbanc.com/claims-library/ai-roi-measurement</guid>
<pubDate>Sat, 18 Oct 2025 00:00:00 GMT</pubDate>
<description>5 atomic claims about top performers focus on revenue, not time saved.</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
<item>
<title>Amazon Cuts Costs 25% With AI: Here&apos;s Their Exact Process</title>
<link>https://kbanc.com/claims-library/amazon-ai-playbook</link>
<guid>https://kbanc.com/claims-library/amazon-ai-playbook</guid>
<pubDate>Wed, 16 Oct 2025 00:00:00 GMT</pubDate>
<description>Five atomic claims about Amazon's AI implementation methodology that reduced warehouse costs 25% and generates $200 billion in annual recommendation sales.</description>
<pubDate>Thu, 16 Oct 2025 00:00:00 GMT</pubDate>
<description>5 atomic claims about amazon&apos;s systematic ai implementation methodology.</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
<item>
<title>Why Judgment Is Your New Career Currency</title>
<link>https://kbanc.com/claims-library/ai-judgment-skills</link>
<guid>https://kbanc.com/claims-library/ai-judgment-skills</guid>
<pubDate>Wed, 08 Oct 2025 00:00:00 GMT</pubDate>
<description>5 atomic claims about ai replaces 0.7% of skills, judgment becomes differentiator.</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
<item>
<title>Make ChatGPT Writing Undetectable With Five Techniques</title>
<link>https://kbanc.com/claims-library/undetectable-writing</link>
<guid>https://kbanc.com/claims-library/undetectable-writing</guid>
<pubDate>Tue, 27 May 2025 00:00:00 GMT</pubDate>
<description>5 atomic claims about five techniques to make ai writing sound natural.</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
<item>
<title>How to Set Up ChatGPT Properly in Under 10 Minutes</title>
<link>https://kbanc.com/claims-library/chatgpt-setup</link>
<guid>https://kbanc.com/claims-library/chatgpt-setup</guid>
<pubDate>Fri, 16 May 2025 00:00:00 GMT</pubDate>
<description>5 atomic claims about essential configuration for real value extraction.</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
@ -94,7 +103,7 @@
<link>https://kbanc.com/claims-library/chatgpt-features</link>
<guid>https://kbanc.com/claims-library/chatgpt-features</guid>
<pubDate>Tue, 29 Apr 2025 00:00:00 GMT</pubDate>
<description>Five atomic claims about ChatGPT's most impactful features for workplace productivity, including measurable time savings and strategic advantages.</description>
<description>5 atomic claims about most impactful workplace features with measurable savings.</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
</channel>

View File

@ -12,70 +12,76 @@
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/amazon-ai-playbook</loc>
<lastmod>2025-11-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/vibe-hackathons</loc>
<lastmod>2025-11-02</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/systems-thinking</loc>
<lastmod>2025-11-03</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/ai-roi-measurement</loc>
<lastmod>2025-11-03</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/chatgpt-setup</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-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/undetectable-writing</loc>
<lastmod>2025-11-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/alpha-school</loc>
<lastmod>2025-11-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/market-entry-study</loc>
<lastmod>2025-11-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/chatgpt-features</loc>
<lastmod>2025-11-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/all</loc>
<lastmod>2025-11-04</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/skill-gap-mapping</loc>
<lastmod>2025-11-03</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/vibe-hackathons</loc>
<lastmod>2025-11-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/systems-thinking</loc>
<lastmod>2025-10-29</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/market-entry-study</loc>
<lastmod>2025-10-27</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/alpha-school</loc>
<lastmod>2025-10-23</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/ai-roi-measurement</loc>
<lastmod>2025-10-18</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/amazon-ai-playbook</loc>
<lastmod>2025-10-16</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/ai-judgment-skills</loc>
<lastmod>2025-10-08</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/undetectable-writing</loc>
<lastmod>2025-05-27</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/chatgpt-setup</loc>
<lastmod>2025-05-16</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://kbanc.com/claims-library/chatgpt-features</loc>
<lastmod>2025-04-29</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>

65
scripts/generate-rss.ts Normal file
View File

@ -0,0 +1,65 @@
// Auto-generate RSS feed from centralized claims data
import fs from 'fs';
import path from 'path';
import { SORTED_CLAIMS } from '../src/data/claims';
const baseUrl = 'https://kbanc.com';
function formatRssDate(dateString: string): string {
const date = new Date(dateString);
return date.toUTCString();
}
function escapeXml(text: string): string {
return text
.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&apos;');
}
function generateRssFeed(): string {
const today = new Date().toUTCString();
const lastBuildDate = today;
let xml = `<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Kamil Banc - AI Implementation Claims</title>
<link>${baseUrl}</link>
<description>Evidence-based claims about AI implementation, optimized for LLM extraction and research citation.</description>
<language>en-us</language>
<lastBuildDate>${lastBuildDate}</lastBuildDate>
<atom:link href="${baseUrl}/feed.xml" rel="self" type="application/rss+xml"/>
`;
// Add all claims pages automatically (sorted by date, newest first)
SORTED_CLAIMS.forEach((claim) => {
const description = `${claim.claims.length} atomic claims about ${claim.description.toLowerCase()}.`;
xml += `
<item>
<title>${escapeXml(claim.title)}</title>
<link>${baseUrl}/claims-library/${claim.slug}</link>
<guid>${baseUrl}/claims-library/${claim.slug}</guid>
<pubDate>${formatRssDate(claim.date)}</pubDate>
<description>${escapeXml(description)}</description>
<author>kamil@kbanc.com (Kamil Banc)</author>
</item>
`;
});
xml += ` </channel>
</rss>
`;
return xml;
}
// Write to public directory
const feedPath = path.join(process.cwd(), 'public', 'feed.xml');
const feed = generateRssFeed();
fs.writeFileSync(feedPath, feed, 'utf-8');
console.log(`✅ Generated feed.xml with ${SORTED_CLAIMS.length} claims pages`);

View File

@ -0,0 +1,59 @@
// Auto-generate sitemap.xml from centralized claims data
import fs from 'fs';
import path from 'path';
import { ALL_CLAIMS_DATA } from '../src/data/claims';
const baseUrl = 'https://kbanc.com';
function formatDate(date: string): string {
return date; // Already in YYYY-MM-DD format
}
function generateSitemap(): string {
const today = new Date().toISOString().split('T')[0];
let xml = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>${baseUrl}/</loc>
<lastmod>${today}</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>${baseUrl}/claims-library</loc>
<lastmod>${today}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>${baseUrl}/claims-library/all</loc>
<lastmod>${today}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
`;
// Add all claims pages automatically
ALL_CLAIMS_DATA.forEach((claim) => {
xml += ` <url>
<loc>${baseUrl}/claims-library/${claim.slug}</loc>
<lastmod>${formatDate(claim.date)}</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
`;
});
xml += `</urlset>
`;
return xml;
}
// Write to public directory
const sitemapPath = path.join(process.cwd(), 'public', 'sitemap.xml');
const sitemap = generateSitemap();
fs.writeFileSync(sitemapPath, sitemap, 'utf-8');
console.log(`✅ Generated sitemap.xml with ${ALL_CLAIMS_DATA.length} claims pages`);