Skip to content

Language Reference

KiketScript files are YAML documents parsed into strongly-typed objects. This reference covers the common structures shared across workflows, boards, manifests, and future agents.

Conventions

  • All keys are lower_snake_case unless noted.
  • Only .yaml/.yml extensions are supported. Files must be UTF-8 encoded.
  • Comments are allowed with the standard # YAML syntax.

Scalars

  • String – UTF-8 string.
  • Number – Integer or float. Use quotes when precision matters.
  • Booleantrue or false.
  • Enum – Validated strings such as kanban, scrum, service, todo.
  • Duration – Strings using ISO 8601 duration or shorthand (e.g., 4h, 2d).

Common Blocks

  • metadata – Optional object containing name, description, provenance.
  • conditions – Array of predicates. Each predicate is a hash with field, operator, value.
  • actions – Map of action keys to descriptors (see below).
  • hooks – Keyed by event name; each hook runs one or more actions.

Actions

actions:
  assign_to_team:
    kind: system
    command: assignments.assign
    params:
      team: triage
  notify_slack:
    kind: http
    url: https://hooks.slack.com/services/...
    method: POST
    body:
      text: "Issue {{ issue.key }} needs attention"
- kind values: system, http, command, extension, ai. - params supports nested objects; templating uses Liquid-style {{ }} placeholders.

Built-in Action Types

Type Description
assign Assign issue to user/team using strategies (round_robin, least_loaded, ai_select)
notify Send notifications to users or roles
add_labels Add labels to an issue
update_fields Update issue fields with interpolated values
webhook Make HTTP requests to external services
workflow_call Invoke another workflow (see Workflow Orchestration)
ai_generate Generate content using AI agents
ai_analyze Analyze issues using AI agents
ai_suggest Get AI-powered suggestions
anchor_data Anchor custom data to blockchain for compliance (Professional+ only, state hooks only)

Conditions

conditions:
  - field: priority
    operator: in
    value: ["high", "urgent"]
  - field: labels
    operator: includes
    value: "customer-blocker"
- Operators: equals, not_equals, in, includes, gt, lt, gte, lte, matches (regex), changed, present, blank. - When multiple predicates are listed they are ANDed. Use any: / all: blocks for more complex logic.

Templates

YAML supports !include via MkDocs snippets or use Git anchors:

common_actions: &notify
  - run: notify_slack
  - run: assign_to_team

hooks:
  on_enter:
    backlog: *notify

Validation

  • Files run through schema validation during sync; invalid files cause the sync job to fail with detailed error messages.
  • Use kiket workflows lint to validate files locally before committing.

Refer to the specialised pages for constructs unique to workflows, boards, and manifests.