diff --git a/app/layout.tsx b/app/layout.tsx index 705b549..1c1d24b 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -38,6 +38,8 @@ const structuredData = { "Scan a GitHub repo to auto-detect stack, frameworks, and tooling", "Context-aware questions with best-practice suggestions", "Instant boilerplate generation with smart defaults", + "Claude Skill Builder for custom AI capabilities", + "Generate Skill.md files for Claude AI", ], keywords: [ "AI coding guidelines", @@ -51,6 +53,10 @@ const structuredData = { "AI repo analyzer", "GitHub repo scanner for Copilot", "repo-aware coding guidelines", + "Claude Skill Builder", + "generate Skill.md file", + "Claude custom skills", + "AI agent capabilities", ], }; @@ -83,6 +89,9 @@ export const metadata: Metadata = { "generate coding standards from GitHub repo", "repo-aware AI coding guidelines", "auto-detect framework coding rules", + "Claude skills", + "Skill.md generator", + "custom AI capabilities", ], authors: [{ name: "DevContext" }], creator: "DevContext", diff --git a/app/page.tsx b/app/page.tsx index 3715200..8972680 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -61,6 +61,9 @@ export default function LandingPage() { + diff --git a/app/sitemap.ts b/app/sitemap.ts index 5ce6b7b..51b5a54 100644 --- a/app/sitemap.ts +++ b/app/sitemap.ts @@ -9,12 +9,13 @@ const STATIC_ENTRIES: Array<{ priority: number changeFrequency: MetadataRoute.Sitemap[number]["changeFrequency"] }> = [ - { path: "", priority: 1, changeFrequency: "weekly" }, - { path: "/new", priority: 0.9, changeFrequency: "weekly" }, - { path: "/existing", priority: 0.6, changeFrequency: "monthly" }, - { path: "/stacks", priority: 0.7, changeFrequency: "monthly" }, - { path: "/new/stack", priority: 0.8, changeFrequency: "weekly" }, -] + { path: "", priority: 1, changeFrequency: "weekly" }, + { path: "/new", priority: 0.9, changeFrequency: "weekly" }, + { "path": "/skills", "priority": 0.85, "changeFrequency": "weekly" }, + { path: "/existing", priority: 0.6, changeFrequency: "monthly" }, + { path: "/stacks", priority: 0.7, changeFrequency: "monthly" }, + { path: "/new/stack", priority: 0.8, changeFrequency: "weekly" }, + ] export default function sitemap(): MetadataRoute.Sitemap { const lastModified = new Date() diff --git a/app/skills/page.tsx b/app/skills/page.tsx new file mode 100644 index 0000000..e51c582 --- /dev/null +++ b/app/skills/page.tsx @@ -0,0 +1,116 @@ +import { Github } from "lucide-react" +import Link from "next/link" +import type { Metadata } from "next" + +import { Button } from "@/components/ui/button" +import { SkillBuilderForm } from "@/components/skill-builder-form" +import { AnimatedBackground } from "@/components/AnimatedBackground" +import { getAllSkills } from "@/lib/skills" + +export const metadata: Metadata = { + title: "Claude Skills Marketplace - Free AI Agent Skills Library", + description: "Browse and download high-quality Skill.md files for Claude and other AI agents. Enhance your AI with capabilities for Coding, DevOps, Testing, and more.", + keywords: ["Claude skills", "skills marketplace", "Skill.md", "AI agent capabilities", "coding skills", "devops skills"], + alternates: { + canonical: "/skills", + }, +} + +const structuredData = { + "@context": "https://schema.org", + "@type": "WebApplication", + "name": "Claude Skills Marketplace", + "description": "A marketplace of custom Skill.md files for Claude AI to enhance its capabilities.", + "url": "https://devcontext.xyz/skills", + "applicationCategory": "DeveloperApplication", + "operatingSystem": "Web", + "offers": { + "@type": "Offer", + "price": "0", + "priceCurrency": "USD" + } +}; + +export default function SkillsPage() { + const skills = getAllSkills(); + + return ( +
+ + +
+

{title}

+

Value: {count} (2x: {doubled})

+ +
+ + +\`\`\` diff --git a/skills/technical-specs.md b/skills/technical-specs.md new file mode 100644 index 0000000..3b52744 --- /dev/null +++ b/skills/technical-specs.md @@ -0,0 +1,19 @@ +--- +name: Technical Spec writer +description: Draft technical specifications for new features. +dependencies: "" +--- + +## Sections +1. **Background**: Context and problem statement. +2. **Goals**: What are we trying to achieve? (Non-goals too). +3. **Proposed Solution**: High-level approach. +4. **Data Model**: Schema changes. +5. **API Changes**: Endpoints modified/added. +6. **UI/UX**: Component hierarchy or mockups described. +7. **Risks/Alternatives**: What could go wrong? + +## Example +**Goal**: Add user avatars. +**Data Model**: Add \`avatar_url\` string to \`users\` table. +**API**: Update \`POST /user/profile\` to accept file upload or URL. diff --git a/skills/tsconfig-generator.md b/skills/tsconfig-generator.md new file mode 100644 index 0000000..096b5fc --- /dev/null +++ b/skills/tsconfig-generator.md @@ -0,0 +1,42 @@ +--- +name: TSConfig Generator +description: Create or update tsconfig.json for different environments. +dependencies: "typescript" +--- + +## Options +- \`target\`: JS version output. +- \`module\`: Module system (ESNext, CommonJS). +- \`strict\`: Enable strict type checking. +- \`lib\`: Library files (DOM, ES2020). + +## Template (Strict Next.js) +\`\`\`json +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} +\`\`\` diff --git a/skills/unit-testing.md b/skills/unit-testing.md new file mode 100644 index 0000000..504e082 --- /dev/null +++ b/skills/unit-testing.md @@ -0,0 +1,25 @@ +--- +name: Unit Testing +description: Generate robust unit tests for your code. +dependencies: "jest, vitest, @testing-library/react" +--- + +## Guidelines +- Test behavior, not implementation details. +- Use descriptive test names ("should do X when Y"). +- Arrange, Act, Assert pattern. +- Mock external dependencies. + +## Checklist +- [ ] Happy path tested? +- [ ] Error states tested? +- [ ] Edge cases (empty arrays, nulls) tested? + +## Example +\`\`\`ts +describe("calculator", () => { + it("should add two numbers correctly", () => { + expect(add(1, 2)).toBe(3) + }) +}) +\`\`\` diff --git a/skills/vue-component.md b/skills/vue-component.md new file mode 100644 index 0000000..8b7c4a6 --- /dev/null +++ b/skills/vue-component.md @@ -0,0 +1,51 @@ +--- +name: Vue 3 Component Generator +description: Create a Vue 3 component using Composition API and TypeScript. +dependencies: "vue" +--- + +## Guidelines +- Use \` + + + + +\`\`\`