skills/aif-rules/SKILL.md
Add project-specific rules and conventions to the configured RULES.md artifact. Each invocation appends new rules. These rules are automatically loaded by /aif-implement before execution. Use when user says "add rule", "remember this", "convention", or "always do X".
npx skillsauth add lee-to/ai-factory aif-rulesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Add short, actionable rules and conventions for the current project. Rules are saved to the configured RULES.md artifact (default: .ai-factory/RULES.md) and automatically loaded by /aif-implement before task execution.
AI Factory supports a three-level rules hierarchy:
RULES.md - Axioms (universal project rules)
/aif-rules)rules/base.md - Project-specific base conventions
/aif during project setuprules.<area> - Area-specific conventions
.ai-factory/config.yaml as named keys such as rules.apiPriority: More specific rules win. rules.<area> > rules/base.md > RULES.md
FIRST: Read .ai-factory/config.yaml if it exists to resolve:
paths.rules_file and paths.ruleslanguage.ui for prompts and summaries, language.artifacts for rules artifacts, and language.technical_terms for human-readable technical terminology in rulesIf config.yaml doesn't exist, use defaults:
.ai-factory/RULES.md.ai-factory/rules/ui_language: enartifact_language: entechnical_terms_policy: keepResolved language values:
ui_language = language.ui || "en"artifact_language = language.artifacts || language.ui || "en"technical_terms_policy = language.technical_terms || "keep"If technical_terms_policy is not one of keep, translate, or mixed, treat it as keep. Legacy values such as english also behave like keep.
All AskUserQuestion prompts, progress updates, confirmations, and next-step guidance MUST be written in ui_language.
Generated or updated rules artifacts under paths.rules_file and paths.rules/<area>.md MUST be written in artifact_language.
Templates and examples define structure, not fixed English output. If artifact_language is not en, translate human-readable headings, notes, rule text, labels, and confirmation prose before saving. Preserve markdown structure, paths, commands, config keys such as rules.<area>, area names, code identifiers, package names, API names, and raw errors unchanged. Apply technical_terms_policy to other human-readable terminology.
Read .ai-factory/skill-context/aif-rules/SKILL.md - MANDATORY if the file exists.
This file contains project-specific rules accumulated by /aif-evolve from patches,
codebase conventions, and tech-stack analysis. These rules are tailored to the current project.
How to apply skill-context rules:
Enforcement: After generating any output artifact, verify it against all skill-context rules. If any rule is violated - fix the output before presenting it to the user.
Check $ARGUMENTS:
- Starts with "area:" or "area "? -> Mode C: Area rules
- Has text? -> Mode A: Direct add
- No arguments? -> Mode B: Interactive
User provided rule text as argument:
/aif-rules Always use DTO classes instead of arrays
Skip to Step 2 with the provided text as the rule.
No arguments provided:
/aif-rules
Ask via AskUserQuestion:
What rule or convention would you like to add?
Examples:
- Always use DTO classes instead of arrays for data transfer
- Routes must use kebab-case
- All database queries go through repository classes
- Never use raw SQL, always use the query builder
- Log every external API call with request/response
User wants to create or update area-specific rules:
/aif-rules area:api
/aif-rules area frontend
Workflow:
Parse area name from argument (e.g., api, frontend, backend, database)
Resolve the area file path inside the configured rules directory.
Default: .ai-factory/rules/<area>.md
Check if area file exists:
Glob: <resolved rules dir>/<area>.md
If file does NOT exist -> create it with header:
# <Area> Rules
> Area-specific conventions for <area>. Loaded after rules/base.md.
## Rules
- [first rule]
If file exists -> ask user what rule to add:
AskUserQuestion: What rule would you like to add to <area>.md?
Current rules in <area>.md:
- [existing rule 1]
- [existing rule 2]
Options:
1. Add new rule - specify below
2. View full file
3. Cancel
Append rule using Edit at the end of the ## Rules section.
Register the area in .ai-factory/config.yaml:
rules.<area> points to the resolved area rules file pathconfig.yaml does not exist yet, create a minimal config scaffold using defaults plus the new rules.<area> entryrules.base and any other named rules.<other-area> entriesConfirm:
Rule added to <resolved area rules file> and registered as `rules.<area>` in config.yaml:
- [the rule]
Total <area> rules: [count]
STOP after Mode C completes.
paths.rules_file artifact.<resolved rules dir>/<area>.md plus the matching rules.<area> registration in config.yaml.Common areas:
api - REST/GraphQL API conventionsfrontend - UI components, state managementbackend - Services, business logicdatabase - Queries, migrations, schemastesting - Test patterns, coveragesecurity - Auth, validation, sanitizationCheck if the resolved RULES.md path exists:
Glob: <resolved RULES.md path>
If file does NOT exist -> create it with the header and first rule:
# Project Rules
> Short, actionable rules and conventions for this project. Loaded automatically by /aif-implement.
## Rules
- [new rule here]
If file exists -> read it, then append the new rule at the end of the rules list.
Use Edit to append the new rule as a - list item at the end of the ## Rules section.
Formatting rules:
- lineartifact_language; translate user-provided human-readable rule text when needed so the persisted artifact follows language.artifacts, while preserving stable technical tokens from Step 0.Rule added to <resolved RULES.md path>:
- [the rule]
Total rules: [count]
paths.rules_file path (default: .ai-factory/RULES.md)config.yaml as rules.<area>rules.* subset of .ai-factory/config.yaml; other context artifacts stay read-only unless explicitly requested by the userdata-ai
Archive completed plans and roadmap milestones. Moves finished plans to the archive directory and optionally trims closed milestones from ROADMAP.md. Use when user says "archive plans", "clean up plans", "archive completed", or "trim roadmap".
tools
Set up agent context for a project. Analyzes tech stack, installs relevant skills from skills.sh, generates custom skills, and configures MCP servers. Use when starting new project, setting up AI context, or asking "set up project", "configure AI", "what skills do I need".
development
Verify completed implementation against the plan. Checks that all tasks were fully implemented, nothing was forgotten, code compiles, tests pass, and quality standards are met. Use after "/aif-implement" completes, or when user says "verify", "check work", "did we miss anything".
data-ai
Plan implementation for a feature or task. Two modes — fast (single quick plan) or full (richer plan with optional git branch/worktree flow). Use when user says "plan", "new feature", "start feature", "create tasks".