This file governs repo-specific conventions for Claude Code. Skills and system prompts govern their own domains and take precedence for their scope.
These are non-negotiable — follow them regardless of other instructions:
- Never commit directly to
main— always work on a branch and open a PR. - Never create a page file without also adding it to
navigationinconfig/navigation.json. - Never use relative links — always use root-relative paths (e.g.,
/getting_started/install). - Commit messages and PR titles must follow Conventional Commits:
type: short description(lowercase, no period). Common types:feat,fix,docs,style,chore. - Run
mint broken-linksbefore committing navigation or link changes.
Kosli documentation site built with Mintlify. Content is authored in Markdown (.md) and MDX (.mdx) files. Configuration lives in docs.json.
npm i -g mint # Install Mintlify CLI (one-time)
mint dev # Start local dev server at http://localhost:3000
mint dev --port 3333 # Start on custom port
mint update # Update Mintlify CLI
mint broken-links # Validate all internal links
mint a11y # Check color contrast and accessibilityRequires Node.js v19+.
docs.json— Central config: theme, API settings, logos. Uses$refto compose from files inconfig/.config/— Split config files:navigation.json(all page routing),redirects.json,footer.json.- Content directories —
understand_kosli/,getting_started/,administration/,integrations/,implementation_guide/,client_reference/,api-reference/ snippets/— Reusable MDX content fragmentsstyle.css— Custom CSS overrides applied on top of the Mintlify themeapi-reference/openapi.json— OpenAPI spec for Kosli API endpointsessentials/— Mintlify's own getting-started guide, kept as a reference. Do not edit or link to these pages in Kosli navigation.
Every page requires YAML front matter:
---
title: Short, specific title
description: One sentence describing the page purpose.
---- MUST Use root-relative paths for internal links:
/understand_kosli/what_is_kosli✓ —../what_is_kosli✗ - MUST Adding a new page: create the file AND add its path to
navigationinconfig/navigation.json. Both steps are required. - SHOULD Follow the Diátaxis framework when choosing page form:
- Tutorial — teaches by doing (e.g., "Get familiar with Kosli")
- How-to guide — step-by-step for a specific goal (e.g., "Report AWS environments")
- Reference — factual, lookup-oriented (e.g., CLI reference pages)
- Explanation — concepts and background (e.g., "What is Kosli?")
- MAY Add an
iconfield to front matter using Font Awesome names.
| Component | Use for |
|---|---|
<Steps> / <Step> |
Sequential procedures |
<Tabs> / <Tab> |
Platform-specific or alternative content |
<Card> / <CardGroup> |
Navigational links, feature highlights |
<Accordion> / <AccordionGroup> |
Progressive disclosure, FAQs |
<Tip> / <Info> / <Warning> / <Note> |
Callouts — use sparingly |
<CodeGroup> |
Same command in multiple languages/tools |
<Frame> |
Wrapping images |
- Use active voice and imperative mood for instructions ("Run
kosli attest", not "You should run"). - Refer to the product as Kosli — not "the Kosli platform" or "KOSLI".
- Use "audit trail" not "audit log"; "attest" not "certify".
- Sentence case for all headings.
- Don't use relative links — they break when pages move.
- Don't create a page without updating
config/navigation.json— it won't appear in the site. - Don't edit files in
essentials/— they are Mintlify's content, not Kosli's. - Don't add content to
snippets/unless it is genuinely reused in 2+ pages. - Don't commit image files without placing them in an appropriate subdirectory.
- Don't push to
maindirectly — always use a PR.
When available, prefer skills over ad-hoc approaches:
- PR creation — use the
pr-creatorskill if available. - Changelog entries — use the
changelog-creatorskill if available. Follow the existing<Update>format inchangelog/index.mdxexactly:Always prompt the user for the<Update label="Month Year" description="vX.X.X" tags={["Product Name"]}> ## New features / Bug fixes / Changes - ... [View on GitHub](https://github.com/kosli-dev/...) </Update>
tagsvalue (e.g.,"Terraform Provider","CLI") before generating an entry.
Automatic via Mintlify GitHub app on push to main. No manual deployment steps.