Skip to content
Back to skills

Conventions Init

ASecurity

USE WHEN setting up a repo for AI-first work (after /init-repo), or when the context-surface hook should start feeding repo conventions to agents before edits. Drafts `conventions.yml` at repo root: per-kind casing (inferred from the code), a vague-name denylist seed, directory roles, and a hand-filled house-rules block. Idempotent — never overwrites a populated file; re-running prints suggested additions for manual merge. Read-only on code; never invents house rules. After writing, run /refr...

  • 68 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added August 31, 2026
ai-agentspythonbashgit

Works with

  • cli

Security analysis

A100/100

Scanned August 31, 2026

npx -y skills add Filip-Podstavec/claude-leverage --skill conventions-init --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Conventions Init?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Conventions Init
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/filip-podstavec-conventions-init/badge)](https://www.skillsdirectory.com/skills/filip-podstavec-conventions-init)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: conventions-init
description: >
  USE WHEN setting up a repo for AI-first work (after /init-repo), or when the
  context-surface hook should start feeding repo conventions to agents before
  edits. Drafts `conventions.yml` at repo root: per-kind casing (inferred from
  the code), a vague-name denylist seed, directory roles, and a hand-filled
  house-rules block. Idempotent — never overwrites a populated file; re-running
  prints suggested additions for manual merge. Read-only on code; never invents
  house rules. After writing, run /refresh-context-map so the hook picks it up.
allowed-tools:
  - Read
  - Write
  - Glob
  - Grep
  - Bash(git rev-parse:*)
  - Bash(git ls-files:*)
  - Bash(python:*)
  - Bash(python3:*)
  - Bash(test:*)
argument-hint: "[--noninteractive]"
---

# /conventions-init

## What it does

Bootstraps `conventions.yml` at the repo root — the profile the `context-surface`
hook surfaces to an agent before it edits a source file (casing rules, a
vague-name denylist, directory roles, and divergent house rules the model cannot
infer). Block-style YAML only, so the stdlib fallback parser stays reliable.

It **infers** the mechanical parts (casing, structure) and **asks the user** for
the house rules — it never invents a convention the repo does not actually hold.

## When to invoke

- Setting up an AI-first repo, after `/init-repo`.
- When you want the plugin to start steering on this repo (no `conventions.yml`
  yet means the whole steering loop is a no-op).

Do NOT invoke for: per-function docs (those are docstrings), or to auto-write
house rules the team has not agreed on.

## Workflow

1. **Resolve repo root** (`git rev-parse --show-toplevel`); if not a repo, STOP
   and suggest `git init` / `/init-repo`.
2. **Detect mode.** If `conventions.yml` is absent, bootstrap. If it exists, do
   NOT rewrite it (stdlib YAML loses the human-written `consistency` comments);
   instead print the suggested draft below and tell the user to merge by hand.
3. **Infer casing.** Run `python scripts/score_adherence.py --repo .` if the
   plugin's scorer is available, and read `metrics.casing_consistency.by_kind[*]
   .dominant` for `functions` / `types` / `constants`. Python-first: if there are
   no `.py` files (or the scorer is absent), leave `casing` values blank with a
   comment for the user — never guess from an unsupported language.
4. **Seed structure roots.** List top-level + recognized source dirs (`src/`,
   `lib/`, `app/`, `scripts/`, `tests/`, …) that exist; write each as a root key
   with a blank role string for the user to fill.
5. **Seed the denylist** from the documented defaults (`data`, `result`, `tmp`,
   `handle`, `process`); the user can extend.
6. **Leave `consistency` as a commented template** — house rules are the user's
   to write (same "never invent" rule as `glossary-init`).
7. **Write `conventions.yml`** (bootstrap mode) with the `schema_version` "1.x"
   comment, block-style. In existing-file mode, print the draft instead.
8. **Remind** the user to run `/refresh-context-map` so the manifest (and thus the
   hook) picks up the new conventions, and offer a one-line `AGENTS.md` pointer.
9. **Report** the path and which fields were inferred vs left for the user.

## Hard rules

- **Never invent house rules.** The `consistency` block is the user's; the skill
  only scaffolds it.
- **Never overwrite a populated `conventions.yml`.** Existing-file mode prints
  suggestions for manual merge (preserves the user's comments).
- **Never block.** Discoverability skill; advisory if the user declines.
- **Block-style YAML only** (no inline braces or brackets) — keeps the stdlib
  fallback parser reliable.
- **Python-first casing.** Do not infer casing from unsupported languages; leave
  it blank for the user.

## Tunables

- `--noninteractive` — write the inferred skeleton with blank roles and a
  commented `consistency` block, no prompts.

## What this skill does NOT do

- Auto-write house rules or invent conventions the repo does not hold.
- Rebuild the context-map manifest — that is `/refresh-context-map`.
- Score or lint code — that is `score_adherence.py` / `/repo-doctor`.

## Codex parity

Same SKILL.md ships in Codex via `scripts/install-codex.sh`. No tool-specific
divergence.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.