This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
# Run linter on all skills
python scripts/lint_skills.py
# Run linter unit tests
python -m pytest tests/test_lint_skills.py -v
# Run single test
python -m pytest tests/test_lint_skills.py -v -k "test_name_here"Each skill lives in skills/<skill-name>/SKILL.md. The linter (scripts/lint_skills.py) validates all skills against 12 rules on every CI run.
A skill may bundle supporting files alongside its SKILL.md:
references/— shared markdown the skill reads before acting (e.g.ruby-version-check.md).scripts/— shell scripts the skill invokes to collapse multi-command sequences into a single turn. Scripts print labeled status lines ending in a marker (e.g.PREFLIGHT_OK,NEEDS_DOCKER,INSTALL_OK,VERIFY_FAILED <target>) and use distinct exit codes; the SKILL.md instructs the model to read the marker and branch. SKILL.md references scripts by<SKILL_DIR>/scripts/...(absolute) so they resolve regardless of the working directory. The linter only validatesSKILL.md, not these bundled files.
SKILL.md format:
---
name: skill-name
description: One sentence, third-person, max 250 chars.
---
Skill body (max 500 lines)...Linting rules enforced:
- Directory name: lowercase, numbers, hyphens only; max 64 chars; not
helper/utils/tools - Frontmatter: must open and close with
--- namemust match directory name exactlydescription: max 250 chars; no first-person ("I", "I'll") or second-person ("You can", "Use this to")- Body: max 500 lines
tests/test_lint_skills.py covers all 12 rules with valid/invalid fixture pairs using tmp_path.
CI runs on push/PR when skills/**, scripts/lint_skills.py, or tests/test_lint_skills.py change.
| Skill | Description |
|---|---|
build-strata-rails-app |
Scaffolds a new Nava Strata application using nava-platform CLI and the navapbc/template-application-rails template, then optionally installs the Strata SDK. Delegates command sequences to scripts/ to reduce turns |
build-strata-sdk-model |
Adds a single Rails model — plain ActiveRecord, or a Strata SDK variant (application form, case, business process) |
build-strata-sdk-model-workflow |
Multi-agent Workflow orchestrator variant — proposes, audits, and verifies model attributes across two human checkpoints before test-first implementation |
build-strata-app-form-views |
Builds views, flow, and routes for a Strata multi-page application form on top of an existing ApplicationForm model |