The official GitHub Action for IntentSpec — the portable handoff format for evidence-backed AI agent intent.
Validates that your intent.md adheres to the IntentSpec Schema. Catches malformed specs, missing required fields, and typos in evidence anchors before they reach your main branch.
Supports IntentSpec v1.1 — additively introduces an optional evidence field. Existing v1.0 specs continue to validate.
Add this to your workflow file (e.g., .github/workflows/intentspec.yml):
name: Validate IntentSpec
on: [push, pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate Intent Spec
uses: JanneL/validate-intentspec-action@v1
with:
file: 'intent.md' # Optional (default: intent.md)| Input | Description | Default | Required |
|---|---|---|---|
file |
Path to the intent markdown file | intent.md |
No |
- Required fields:
id,status,objective,outcomes - Enum constraints:
status,problemSeverity,strategicAlignment - Edge case shape: each entry must include
scenarioandexpectedBehavior - Evidence shape (v1.1): each evidence item must include
typeandexcerpt.typemust be one offriction,quote,observation,metric,request. - Anchor format (v1.1): evidence
anchorsmust matchobjective,userGoal,outcome:N,edgeCase:N,constraint:N, orhealthMetric:N— typos likeoutomce:0fail validation.
- Prevent drift. Specs without structure rot. Validation catches missing outcomes, broken edge case shapes, and typos in evidence references before they reach main.
- Keep evidence honest. Anchors that don't match a real spec section are caught at validation time — your evidence can't reference an outcome that doesn't exist.
- Governance. Make IntentSpec validation a required check on every PR.
@v1— floating tag, always points at the latest v1.x release. Use this unless you need to pin.@v1.1.0— IntentSpec v1.1 (current). Adds evidence field validation.@v1.0.8— IntentSpec v1.0 (legacy). No evidence field validation.
IntentSpec follows semver. Minor bumps are additive — v1.0 specs validate cleanly against v1.1.