GitHub - intenttext/intenttext-action: GitHub Action to validate IntentText (.it) workflow files in CI

GitHub Marketplace

GitHub Action to validate IntentText (.it) workflow and document files in CI.

What is IntentText? A human-readable structured document format where every line is a typed keyword block (step:, gate:, decision:, task:, etc.) with pipe-separated properties. Used for writing agentic workflows, structured documents, and print-ready publications — all in plain text.

Usage

Basic — validate all .it files

- uses: intenttext/intenttext-action@v1

In a full workflow

name: Validate IntentText
on: [push, pull_request]

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: intenttext/intenttext-action@v1
        with:
          path: "workflows/**/*.it"
          strict: false
          annotate: true

With strict mode (fail on warnings too)

- uses: intenttext/intenttext-action@v1
  with:
    strict: true

With document integrity verification

- uses: intenttext/intenttext-action@v1
  with:
    verify: true

Inputs

Input Description Default
path Glob pattern for .it files **/*.it
strict Fail on warnings too false
ignore Patterns to ignore (comma-separated) node_modules/**
annotate Add inline PR annotations true
verify Verify integrity of sealed (frozen/signed) documents false
verify-pattern Glob for files to verify **/*.it

Outputs

Output Description
files_checked Number of files validated
issues_found Total issues found
valid true if all passed

What gets validated

Checks run on every .it file:

  • Syntax — all keywords are valid, pipe properties are well-formed
  • Step referencesdecision: then/else, depends: and parallel: steps exist
  • Required propertiesgate: has approver:, workflow blocks have expected fields
  • Duplicate IDs — no two blocks share the same explicit id:
  • Variable references{{variables}} are declared in context: or produced by steps
  • Trust integrity — when verify: true, checks that frozen/signed documents haven't been tampered with

See the IntentText documentation for the full spec.

Links