If you are an AI agent (Claude Code, GitHub Copilot, Cursor, etc.) working in this repository, follow these instructions.
This repository contains "Agile Story Skills" — a set of high-quality instructions for agile software delivery. Your goal is to either maintain these skills or use them to help the user with their agile workflow.
- Always use the skills: If a user asks you to write a story, split a ticket,
frame a problem, or write a sprint goal, use the corresponding skill in
.github/skills/. - Deterministic output: Stick to the
╔══...══╗box formats defined in the skills. - Reference personas: Always refer to
.github/skills/agile-story-writer/references/personas.mdfor role names. Never write "as a user". - SKILL.md is the source of truth: Never modify a
SKILL.mdfile in-session in response to a user prompt. Changes to skill definitions must go through a PR.
Always use uv for Python package management.
Do not use pip, pip install, or requirements.txt directly.
# Install a dependency
uv add <package>
# Run a script
uv run python scripts/my_script.py
# Create / sync the environment
uv syncIf a task requires Python dependencies, add a pyproject.toml rather than a
requirements.txt.
-
Validate structure:
npm run lint:markdown— checks all Markdown against.markdownlint-cli2.jsonc. -
Run all local quality checks:
npm ci npm run quality
-
Run evals (requires
.env— copy.env.exampleand fill in values):cp .env.example .env # Then edit .env and fill in: # - One or more API keys (ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_API_KEY, or OPENROUTER_API_KEY) # - EVAL_MODEL with provider:model format (e.g. anthropic:claude-3-7-sonnet-20250219 or openai:gpt-4o) npm run eval:story-writer # or all evals: npm run eval:all
-
MD033: Do not use inline HTML (e.g.
<br>) in Markdown files — it fails the linter.
Refer to skills.json for a programmatic list of all skills and their paths.