READ THIS FILE AT THE START OF EVERY SESSION
This file provides project conventions and session bootstrap instructions for AI coding assistants.
When this file is read at session start, you should:
Read all skill descriptions from the skills/ directory:
- Look for simple skills:
skills/*.mdfiles - Look for complex skills:
skills/*/SKILL.mdfiles - Extract the
nameanddescriptionfrom YAML frontmatter in each file - Keep these descriptions in memory to match against user requests
Skill frontmatter format:
---
name: skill-name
description: Brief description of when to use this skill
---How skills work:
- Skills activate automatically when user requests match the description
- User doesn't need special syntax - just natural language
- When a skill is relevant, read the full skill file and follow its instructions
- Skills may reference supporting files in their directories
Examples:
- User: "I want to create a spec" → Match to spec skill → Read and follow skills/spec.md
- User: "commit these changes" → Match to commit skill → Read and follow skills/commit.md
Note: Skills are in skills/. A symlink at .claude/skills provides Claude Code compatibility.
Before checking project state, verify if this file has been configured:
- Check for placeholder markers: Look for
SETUP_PLACEHOLDER_RUNTIME,SETUP_PLACEHOLDER_LANGUAGE,SETUP_PLACEHOLDER_DOCSin sections below - If ANY placeholder found: Read SETUP.md and run interactive first-time configuration
- If no placeholders found: Configuration complete, skip to step 3
After loading skills and understanding conventions:
- Check
git log --oneline- See what's been completed - Check
git status- Identify any uncommitted work - List available skills - Tell user what skills are loaded and ready
Let the user know you're ready:
- Skills loaded (list them)
- Project conventions understood
- Ready to continue from current progress
SETUP_PLACEHOLDER_RUNTIME
[After setup, this will describe whether the application runs within the AI coding interface or as a standalone application]
- Prefer functional style over object-oriented unless OOP clearly benefits the design
- Use descriptive variable and function names
- Keep functions small and focused (single responsibility)
- Comment only when logic isn't self-evident
SETUP_PLACEHOLDER_LANGUAGE
[After setup, this will specify the programming language and language-specific conventions]
SETUP_PLACEHOLDER_DOCS
[After setup, this will specify the documentation standard: British English, American English, Simple English, or Technical/Formal]
- Be consistent with chosen standard throughout the project
- All skills, code comments, and documentation should follow this standard
- Write clear docstrings for non-obvious functions
- Add testing as your project matures
- Framework choice will be documented after setup
- Focus on test-first workflow when applicable
- For Python: pytest with
-vflag - For JavaScript: Jest or framework of choice
- For other languages: choose appropriate testing framework
Use Conventional Commits specification (https://www.conventionalcommits.org/):
Format: <type>[optional scope]: <description>
Types:
feat: New featuresfix: Bug fixesdocs: Documentation changesstyle: Code style changes (formatting, missing semicolons, etc.)refactor: Code refactoring without feature changestest: Adding or updating testschore: Maintenance tasks (build, dependencies, etc.)
Examples:
feat(quiz): add question filtering by topicfix(storage): resolve file encoding issuedocs: update README with installation instructionstest(quiz): add unit tests for get_next functionrefactor(storage): simplify file reading logic
Guidelines:
- Use lowercase for type and description
- Keep description under 50 characters
- Use imperative mood: "add feature" not "added feature"
- Reference issue numbers when applicable:
feat(auth): add login (#123)
Skills are reusable AI capabilities stored as markdown files in the skills/ directory.
Each skill is a markdown file with YAML frontmatter:
---
name: skill-name
description: Brief description of when to use this skill. AI uses this to decide when to activate automatically.
---
# Skill Name
[Instructions for what the skill does]When creating skills:
- Simple skills: Single
.mdfile inskills/directory - Complex skills: Directory
skills/name/withSKILL.mdplus supporting files - Use clear, descriptive names
- Write descriptions that help AI understand when to activate the skill
- Focus on reusable capabilities, not one-time tasks
See skills/ directory for currently available skills. Skills are loaded at session start (see Session Bootstrap section above).
- Start with problem statement
- Create specification (what the system does)
- Define user stories (features from user perspective)
- Implement iteratively, one story at a time
- Use conventional commits for clean history
As a [user type], I want [goal] so that [benefit]
Create checkbox lists for tracking:
- User story description