Dokumentace

Personal development documentation — guidelines, conventions, and templates for my projects, structured for use with AI coding assistants.

Purpose

This repository is the single source of truth for how I develop software. AI assistants (Claude Code, Cursor, Copilot) are given these documents at the start of each session to understand my conventions before touching any code.

Structure

Dokumentace/
├── Claude/                          # AI assistant configuration
│   ├── CLAUDE.md                    # Claude Code session instructions
│   ├── AGENTS.md                    # Language-agnostic rules for all AI assistants
│   └── skills/                      # Custom Claude Code skills
│       ├── changelog/               #   /changelog — update CHANGELOG.md
│       ├── check/                   #   /check — run tests, investigate failures
│       ├── commit/                  #   /commit — changelog + commit message proposal
│       ├── documentation/           #   /documentation — write docs/
│       └── documentation_context/   #   /documentation_context — compress docs/ into CONTEXT.md
│
├── Python/                          # Python development guidelines
│   ├── DESIGN_DOCUMENT.md           # Guidelines for Python applications
│   ├── DESIGN_DOCUMENT_MODULE.md    # Guidelines for Python libraries
│   ├── TEMPLATE.md                  # New project template specification
│   ├── .gitignore                   # Python-specific ignore rules
│   ├── prebuild.py                  # Pre-build script (PyInstaller)
│   ├── src/                         # Reference constants module + version fallback
│   └── tests/                       # Tests for the reference module
│
├── Rust/                            # Rust development guidelines
│   ├── DESIGN_DOCUMENT.md           # Guidelines for Rust applications
│   ├── DESIGN_DOCUMENT_LIB.md       # Guidelines for Rust libraries
│   └── .gitignore                   # Rust-specific ignore rules
│
├── Godot/                           # Godot development guidelines
│   ├── DESIGN_DOCUMENT_GODOT.md     # Guidelines for Godot projects
│   └── .gitignore                   # Godot-specific ignore rules
│
├── Project template/                # Reusable files for new projects
│   ├── CHANGELOG.md                 # Changelog template
│   ├── PROJECT.md                   # Project documentation template
│   └── .gitignore                   # Shared, language-agnostic ignore rules
│
├── Zscaler/                         # Corporate network setup
│   ├── ZSCALER_CERTIFICATE.md       # Cert setup for Node, Python, git, cargo
│   └── ZscalerRootCertificate-2048-SHA256.crt
│
└── CHANGELOG.md                     # History of this repository

AI Coding Workflow

Every project gets two rule documents, and the split between them is strict:

  • AGENTS.md — language-agnostic rules only: documentation language, dependency management, static typing, secrets, git, versioning, task notation. It names no concrete tool.
  • DESIGN_DOCUMENT*.md — everything language-specific: package manager, formatter, linter, test framework, logging library, line length, project layout, distribution.

Where the two disagree, the design document wins.

Project type Design document
Python (application) Python/DESIGN_DOCUMENT.md
Python (library) Python/DESIGN_DOCUMENT_MODULE.md
Rust (application) Rust/DESIGN_DOCUMENT.md
Rust (library) Rust/DESIGN_DOCUMENT_LIB.md
Godot Godot/DESIGN_DOCUMENT_GODOT.md

Starting a new project

  1. Copy Project template/PROJECT.md and Project template/CHANGELOG.md into the project root and write a README.md — all three are committed.
  2. Build .gitignore from Project template/.gitignore plus the .gitignore of the matching language folder.
  3. Copy Claude/AGENTS.md and the matching DESIGN_DOCUMENT*.md into the project root — these are not committed, they come from here.
  4. For Python, follow Python/TEMPLATE.md to generate the project skeleton.

Skills

The skills in Claude/skills/ are the source of truth; the copies Claude Code actually runs live in ~/.claude/skills/. Install or refresh them by copying the whole folder across.

Two rules keep the two sides from drifting apart:

  • The folder name is the command. For personal skills the frontmatter name is only a display label — /documentation_context comes from the directory, not from name:. Keep the two identical so renaming a folder can never silently change the command.

  • Every skill carries a version in metadata.version, incremented on every content change, the same way design documents carry Document Version:

    ---
    name: commit
    description: Updates changelog and proposes a concise verbal git commit message
    metadata:
      version: v2
    ---
    

    There is no top-level version: field in the skill format. metadata is a free-form map that Claude Code ignores, and it is one of the six fields the Agent Skills spec allows — so it also survives an upload to claude.ai or the Skills API. Any other invented key fails packaging with Unexpected key(s) in SKILL.md frontmatter.

Key Conventions

  • Python tooling: Poetry · Ruff · mypy · pytest · loguru
  • Rust tooling: Cargo · rustfmt · clippy · tracing (thiserror / anyhow for errors)
  • Godot tooling: gdformat · gdlint · GUT
  • No print() for debugging — the language's logging library, everywhere
  • Static typing required on every parameter and return value
  • Line length: 120 characters (Python), 100 characters (Rust, rustfmt default), 100 soft limit (GDScript)
  • Tests: the framework named in the design document — pytest (Python, never unittest), built-in #[test] (Rust), GUT (Godot)
  • Tasks: single-line TODO / FIXME / BUG / HACK / NOTE comments in code — no checkboxes in documentation
  • Versioning: semantic, always ask before bumping, CHANGELOG.md updated first
  • Secrets: .env, never committed; libraries take configuration from the caller
S
Description
No description provided
Readme
192 KiB
Languages
Python 100%