mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
80 lines
3.9 KiB
TypeScript
80 lines
3.9 KiB
TypeScript
'use client'
|
|
|
|
import { ArrowRight, Download, GitBranch, Lock, Package, Plug, Search, Wrench } from 'lucide-react'
|
|
import { ProductLanding } from '@/components/product/ProductLanding'
|
|
import { ProductFooter } from '@/components/products/ProductFooter'
|
|
|
|
/**
|
|
* Skills, through the ONE product kit.
|
|
*
|
|
* The largest cluster left: TWELVE pages — engine, gateway, guard, ingress,
|
|
* jin, metrics, o11y, operator, sentinel, skills, telemetry, visor — at 85%+
|
|
* identical className sets, each a hero, a six-card grid and a call to action
|
|
* written out again. All twelve pass one typed props object to
|
|
* `ProductLanding`. See LLM.md, "Tailwind is NOT gone".
|
|
*
|
|
* EVERY WORD IS THE ONE THAT WAS HERE. ProductFooter came out of the final
|
|
* card's `max-w-3xl` wrapper, where it had been rendering narrower than on
|
|
* every other product page.
|
|
*/
|
|
|
|
export default function SkillsPage() {
|
|
return (
|
|
<>
|
|
<ProductLanding
|
|
badge={"hanzoai/skills"}
|
|
badgeIcon={Plug}
|
|
title={"Skills"}
|
|
tagline={"Development knowledge your coding agent loads only when it needs it"}
|
|
lede={"A skill is a markdown file about one thing — Postgres query plans, Zig comptime, TLS certificate chains. Install the plugin and your agent reads the right one when the work calls for it, instead of carrying all of them into every session."}
|
|
ctas={[
|
|
{ label: "View on GitHub", href: "https://github.com/hanzoai" },
|
|
]}
|
|
what={{
|
|
title: "Coverage costs context. This is the trade.",
|
|
sub: "Load every guide at boot and the context window is spent before the first file is opened. Load none and the agent guesses at things that have known answers. Skills splits the difference: small files, and a discovery layer that fetches them on the keywords in what you asked for.",
|
|
pillars: [
|
|
{
|
|
icon: Package,
|
|
title: "A skill is a markdown file",
|
|
body: "Frontmatter carries a name and a description. Below it is prose, code, and links to related skills. Nothing to compile, nothing to run — you can read one before you trust it.",
|
|
},
|
|
{
|
|
icon: Search,
|
|
title: "Gateway skills do the finding",
|
|
body: "A gateway is a small skill whose whole job is to notice. Say Postgres and discover-database wakes up; say comptime and discover-zig does. It pulls the specific files and gets out of the way.",
|
|
},
|
|
{
|
|
icon: Download,
|
|
title: "Install it in one line",
|
|
body: "npx skills add https://hanzoskills.com/hanzo.md adds the Hanzo skill to your agent, and hanzoskills.com/llms.txt lists every other one as plain markdown.",
|
|
},
|
|
{
|
|
icon: GitBranch,
|
|
title: "Written small on purpose",
|
|
body: "One topic per file, a few hundred lines each. Five focused reads cost less than one monolithic guide, and you get the five that matter instead of the one that covers everything badly.",
|
|
},
|
|
{
|
|
icon: Lock,
|
|
title: "Cross-referenced, not duplicated",
|
|
body: "Skills link to the skills next to them, so an agent following a thread from API design into rate limiting into Redis reads three files and never the same paragraph twice.",
|
|
},
|
|
{
|
|
icon: Wrench,
|
|
title: "Add your own",
|
|
body: "Drop a markdown file in a category, give it a name and a description, and it joins discovery. Your house conventions load the same way the public ones do.",
|
|
},
|
|
],
|
|
}}
|
|
finalCta={{
|
|
title: "Get started with Skills",
|
|
buttons: [
|
|
{ label: "View on GitHub", href: "https://github.com/hanzoai" },
|
|
],
|
|
}}
|
|
/>
|
|
<ProductFooter slug={"skills"} name={"Skills"} />
|
|
</>
|
|
)
|
|
}
|