conventions · git:20260415.d0763a2 · 2026-04-15 · sha256 16d36629a20161f0
conventions git:20260415.d0763a2A
Immutable. This exact content is served forever at /api/v1/blob/16d36629a20161f0.
---
description: Project conventions synced from HARNESS.md
globs: **/*
alwaysApply: true
---
<!-- These conventions are synced from HARNESS.md. Do not edit this file
directly — run /convention-sync to regenerate. -->
# Conventions
## Stack
- **Primary languages**: Markdown (skills, agents, commands, templates),
Bash (hook scripts, utility scripts), JSON (plugin config, hooks
config), YAML (CI workflows)
- **Build system**: None — this is a Claude Code plugin, not a compiled
application
- **Test framework**: None — content is validated by markdownlint (CI)
and bash syntax checks
- **Container strategy**: None
## Naming
Skills use `SKILL.md` inside a named directory
(`skills/<name>/SKILL.md`). Agents use `<name>.agent.md`. Commands
use `<name>.md`. Hook scripts use `<name>.sh` (kebab-case). All
names are lowercase kebab-case except `SKILL.md`.
## File Structure
One component per file, organised by type — agents in `agents/`,
skills in `skills/<name>/SKILL.md`, commands in `commands/`, hook
scripts in `hooks/scripts/`, templates in `templates/`, utility
scripts in `scripts/`.
## Error Handling
All hook scripts use `set -euo pipefail`. Guard clauses exit silently
(`exit 0`) when not applicable. Hook scripts are advisory only — they
never block. Output uses JSON `systemMessage` format.
## Documentation
Every skill, agent, and command file must have YAML frontmatter with
`name` and `description` fields. Skills must include an Overview
section. README.md documents the full plugin. Bash scripts must have
a header comment block explaining purpose and behaviour.