aiagentskills-site-kit 0.1.0

Small metadata and URL helpers for AI Agent Skills, a curated Claude, Codex, and AI agent skills directory.
Documentation
const BASE_URL = "https://aiagentskills.net";

function cleanSlug(slug) {
  return String(slug || "").trim().replace(/^\/+|\/+$/g, "");
}

function urlFor(path = "") {
  const clean = cleanSlug(path);
  return clean ? `${BASE_URL}/${clean}/` : BASE_URL;
}

function searchUrl(query = "") {
  const value = String(query || "").trim();
  return value ? `${BASE_URL}/skills/?q=${encodeURIComponent(value)}` : `${BASE_URL}/skills/`;
}

const metadata = Object.freeze({
  name: "AI Agent Skills",
  homepage: BASE_URL,
  description: "Curated directory for Claude skills, Codex skills, and AI agent workflows.",
  canonicalPages: Object.freeze({
    home: BASE_URL,
    skills: `${BASE_URL}/skills/`,
    submit: `${BASE_URL}/submit/`,
    blog: `${BASE_URL}/blog/`,
    agentWorkflows: `${BASE_URL}/category/agent-workflows/`,
    codeGeneration: `${BASE_URL}/category/code-generation/`
  }),
  tags: Object.freeze(["aiagentskills", "skills", "agents", "claude", "codex"])
});

module.exports = {
  BASE_URL,
  metadata,
  homeUrl: () => BASE_URL,
  skillsUrl: () => urlFor("skills"),
  submitUrl: () => urlFor("submit"),
  blogUrl: () => urlFor("blog"),
  categoryUrl: (slug) => urlFor(`category/${cleanSlug(slug)}`),
  skillUrl: (slug) => urlFor(`skill/${cleanSlug(slug)}`),
  searchUrl,
  urlFor
};