Skip to content

feat(skills): add self-contained writing-aictrl-workflows skill + SPEC#2

Merged
byapparov merged 4 commits into
mainfrom
feat/writing-aictrl-workflows-skill
Jul 12, 2026
Merged

feat(skills): add self-contained writing-aictrl-workflows skill + SPEC#2
byapparov merged 4 commits into
mainfrom
feat/writing-aictrl-workflows-skill

Conversation

@byapparov

@byapparov byapparov commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

What

Publishes writing-aictrl-workflows — the vendor-neutral, canonical authoring reference for aictrl workflow YAML — plus its specification, bundled v1 JSON Schema, examples, offline validator, and deterministic eval.

Self-contained bundle

The skill works without access to the private monorepo and includes:

  • SKILL.md and SPEC.md
  • the complete authoring guide
  • the validation-equivalent workflow schema
  • two apply-ready examples
  • validate.mjs for layer-1 schema and static DAG checks
  • a recorded self-consistency and leakage eval

Schema provenance

The bundled schema is synchronized with aictrl source commit 3e83fc6332e80138ba6a6eb67a1ce1d479e87a62 (2026-07-12), including the released pr-ready, pr-opened, and chat-message trigger surface and the 10-trigger bound.

Every validation-affecting type, pattern, enum, required field, numeric bound, and exclusivity rule is equivalent to the source schema. Only public-facing description annotations differ: internal issue numbers, private links, and implementation names are removed or reworded.

Verification

  • pr-review-and-triage.yaml: VALID
  • review-fix-loop.yaml: VALID
  • normalized source hash: 7d23cf6a95e1d403e06e8b32e28b40c13a2c03cfb448892fa8f12724d9e47374
  • normalized bundle hash: 7d23cf6a95e1d403e06e8b32e28b40c13a2c03cfb448892fa8f12724d9e47374
  • leakage check: clean except for the intentional public $id

Refs aictrl-dev/aictrl#3760 and release PR aictrl-dev/aictrl#3812.

Bulat Yapparov and others added 4 commits July 10, 2026 15:56
Publish the vendor-neutral, canonical authoring reference for aictrl
workflow YAML to the public skills repo. Self-contained so it works
offline in Claude Code / Cursor / OpenCode with no aictrl monorepo.

Bundle:
- SKILL.md — lean entry: authoring + GitOps apply loop, self-check, pointers
- SPEC.md — design decisions, schema provenance stamp, manual sync procedure
- reference/authoring-guide.md — full reference (6 node types + field
  exclusivity, 12 param types, input mappings, CEL binding model/reserved
  words/severity ranks, loops + bounds, retry, edges, quality gates,
  triggers, validation layers, checklist)
- reference/workflow.schema.json — v1 JSON Schema, validation-verbatim from
  source commit 8ee36d05; only description annotations sanitized of
  monorepo-internal anchors (zero effect on validation)
- reference/examples/*.yaml — two apply-ready examples, byte-verbatim
- evals/writing-aictrl-workflows.eval.md + results.md — self-consistency
  golden check: both examples validate against the bundled schema (AJV
  2020-12, strict:false); leakage grep clean

Genericized: no server/ or test/ paths, issue numbers, or private-wiki
links; apply documented as the external GitOps loop (.aictrl/workflows/
-> git-sync PR, fail-closed) + Studio import.

Refs aictrl-dev/aictrl#3760

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Make explicit that the bundled schema tracks the upstream RELEASED (main)
branch — what a workflow can apply against in production today — and that
schema additions staged on a pre-release branch (e.g. new trigger types)
are folded in only after they ship to prod. This prevents external authors
from generating files that fail closed against not-yet-deployed constructs,
and clarifies that being behind an unreleased branch is correct, not stale.

Refs aictrl-dev/aictrl#3760

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tatic DAG)

Turns the bundled schema from a reference the model reads into an oracle it can
test against. `validate.mjs <workflow.yaml>` runs the same layer-1 JSON Schema gate
the apply-loader runs (Draft 2020-12, strict:false) PLUS the static DAG checks the
schema can't express — duplicate node ids, dangling edges, cycles, loop nesting
depth, and the nested-maxIterations product bound. Reports problems with JSON-paths
and a schema/dag category; exit 0/1.

Deps (ajv, ajv-formats, js-yaml) are dev-only and resolved from the host repo — not
bundled — matching the repo's script convention. It cannot check layer-2 (does a
template/workflow ref exist in your org — resolved org-scoped and fail-closed at
apply) or CEL runtime semantics; the apply stays the definitive gate.

SKILL.md's inline self-check snippet is replaced by the validator; authoring-guide
and its checklist point at it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@byapparov byapparov merged commit 625e6e6 into main Jul 12, 2026
3 checks passed
@byapparov byapparov deleted the feat/writing-aictrl-workflows-skill branch July 12, 2026 11:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant