()
| 435 | } |
| 436 | |
| 437 | function SkillSpecSection() { |
| 438 | return ( |
| 439 | <DocSection id="skill-spec" title="Skill Format"> |
| 440 | <p className="text-[var(--foreground)]"> |
| 441 | Skills are plain Markdown files with optional YAML frontmatter. The |
| 442 | frontmatter is used by Agentfiles for display and filtering. |
| 443 | </p> |
| 444 | <CodeBlock lang="markdown">{`--- |
| 445 | name: ship |
| 446 | description: Commit staged changes with a conventional commit message |
| 447 | tool: claude |
| 448 | type: skill |
| 449 | version: 1.0.0 |
| 450 | --- |
| 451 | |
| 452 | When asked to ship or commit: |
| 453 | |
| 454 | 1. Run \`git status\` to see staged files |
| 455 | 2. Analyze the diff with \`git diff --staged\` |
| 456 | 3. Write a conventional commit message (feat/fix/chore/docs/refactor) |
| 457 | 4. Run \`git commit -m "..."\` |
| 458 | |
| 459 | Follow the project's existing commit style. Never skip hooks.`}</CodeBlock> |
| 460 | <p>Supported frontmatter fields:</p> |
| 461 | <div className="rounded-lg border border-[var(--border)] bg-[var(--card)] overflow-hidden"> |
| 462 | <table className="w-full text-xs font-mono"> |
| 463 | <thead> |
| 464 | <tr className="border-b border-[var(--border)] bg-[var(--background)]"> |
| 465 | <th className="text-left px-4 py-2 text-[var(--muted)]">Field</th> |
| 466 | <th className="text-left px-4 py-2 text-[var(--muted)]">Type</th> |
| 467 | <th className="text-left px-4 py-2 text-[var(--muted)]"> |
| 468 | Required |
| 469 | </th> |
| 470 | </tr> |
| 471 | </thead> |
| 472 | <tbody> |
| 473 | {[ |
| 474 | ["name", "string", "No"], |
| 475 | ["description", "string", "No"], |
| 476 | ["tool", "string", "No"], |
| 477 | ["type", "skill | command | agent", "No"], |
| 478 | ["version", "string", "No"], |
| 479 | ].map(([field, type, required]) => ( |
| 480 | <tr |
| 481 | key={field} |
| 482 | className="border-b border-[var(--border)] last:border-0" |
| 483 | > |
| 484 | <td className="px-4 py-2 text-violet-300">{field}</td> |
| 485 | <td className="px-4 py-2 text-[var(--muted)]">{type}</td> |
| 486 | <td className="px-4 py-2 text-[var(--muted)]">{required}</td> |
| 487 | </tr> |
| 488 | ))} |
| 489 | </tbody> |
| 490 | </table> |
| 491 | </div> |
| 492 | <p> |
| 493 | All fields are optional. Skills without frontmatter work fine — |
| 494 | Agentfiles uses the filename as the display name. |
nothing calls this directly
no outgoing calls
no test coverage detected