PROCESS.md

Intelligent Workflow Automation

PROCESS.md is a format for writing down your workflows in plain language, as a set of todos, rules, and approvals that AI agents run.

contractor-chase / PROCESS.md
--- name: contractor-chase description: Chase a contractor weekly until they confirm scheduling. --- ## Rules - Stop: If contractor confirmed a date. - Escalate: After 3 weeks without a response, run notify-property-manager. ## Todos [ ] Check for contractor response Description: Look for replies in the last 7 days. [ ] Send follow-up email Description: Draft a polite chase. Ask for approval before sending. Sources: front-inbox [ ] Record chase attempt in CRM Description: Log the message sent, date, and next follow-up date against the repair ticket. Sources: iamproperty-crm

Why PROCESS.md

PROCESS.md is a format for AI agents to intelligently execute workflows, such as chasing an overdue invoice or onboarding a new client, based on instructions written in plain language.

It replaces traditional rule-based automation tools built around drag-and-drop flowcharts, which are limited to predefined logic and cannot adapt or improvise.

Workflow automation tools

Static flowcharts

Create deterministic workflows with every step predefined. They execute exactly as designed, but cannot interpret ambiguity, apply judgment, or adapt beyond the flow.

Trigger ยท overdue Send reminder Paid? yes no Exit Log outcome Wait ยท 30 days loop

PROCESS.md

Intelligent automation

Write the workflow in plain language. An AI agent runs it, adapts to nuance, handles edge cases you didn't think of, and pauses for your approval when it matters.

--- name: invoice-chase description: Chase an overdue invoice until paid. --- ## Rules - Escalate: If invoice 30 days or more overdue, notify account manager at amelia.brooks@kinsleyandco.co.uk. ## Todos [ ] Send reminder Description: Draft a reminder. If this is the 3rd attempt, use a firmer tone. Approval: required Sources: gmail Assets: assets/invoice-reminder-template.md [ ] Log outcome Description: Update CRM with message sent and next follow-up date. Sources: hubspot

Writing a PROCESS.md

Every PROCESS.md has the same structure. A YAML header with the name and description, followed by three sections: ## Rules (optional), ## Todos (required), and ## Paths (optional).

Section Required Purpose
## Rules No Conditions, policies, guardrails, or custom instructions for the whole workflow.
## Todos Yes The actual workflow the agent executes, as a list of items.
## Paths No Reusable sub-flows the workflow can run mid-execution. Each path is a named set of todos called from a Description with run path [path-name].

Example

--- name: process-slug description: Full description of the process. --- ## Rules โ† optional ## Todos โ† required ## Paths โ† optional

Frontmatter

A YAML header with two required fields: name and description.

Field Required Constraints
name Yes Lowercase letters, numbers, and hyphens only. Must not start or end with a hyphen.
description Yes Up to 1024 characters. Describes what the process does. Use > for multi-line values.

Example

--- name: new-client-onboarding description: > Onboard a new client, from contract signature through their first kickoff call and system setup. ---

Todos

A todo is a single step the agent executes to complete the workflow. Every todo can have parameters that tell the agent how to run it.

Parameter Required Description
Title Yes A short name for the todo, written after [ ].
Description Yes What the todo is and how the agent should execute it.
Approval No The agent asks for the approval of every action it takes while running this todo.
Sources No The connected sources the todo uses (CRMs, email, calendars, messaging, file storage, etc.). Separate multiple with commas.
Skills No SKILL.md files the agent loads for this todo. Separate multiple with commas.
Assets No A template, example, or reference the agent reads before running the todo. Separate multiple with commas.

Only include what the agent needs. An AI agent reads every line in a todo and uses it to decide how to act. Irrelevant details confuse the execution and make results less reliable.

Example

## Todos [ ] Send welcome email to new employee Description: Introduce their manager and team, share the first-day logistics, and summarise what to expect in week one. Approval: required Sources: gmail, email-writer Skills: write-professional-email, internal-tone-guide Assets: assets/welcome-email-template.md, assets/week-one-checklist.md

Rules

Rules are conditions, policies, guardrails, or any custom instructions that apply to the whole workflow. Each rule starts with a label followed by the instruction. Use one of the predefined labels or create your own.

Custom rules

Parameter Required Description
Label Yes A short category name for the rule, followed by :.
Instruction Yes The condition, policy, guardrail, or any custom instructions the agent must follow.

Predefined rules

Label What it does Instruction
Stop Workflow stops and will not be executed further. Describe when the workflow should stop.
Escalate Notify about certain event (workflow will continue to execute). Describe who to notify, when, and their email.

Email only for now. Escalate sends notifications via email. Other channels like Slack or SMS aren't supported yet.

Rules override todos. They apply to the whole workflow and, if they conflict with a todo, take precedence over it.

Example

## Rules - Stop: If contractor confirmed a date. - Escalate: If a customer complains about product quality, email the product manager at alex.chen@acme.co. - Language: Always use British English. - CC Policy: CC the manager on all disputes when sending an email. Manager email: sarah.walker@acme.co

Paths

Paths are sub-flows that can be triggered from a Todo's Description or a Rule using run path [path-name]. Define each one under ## Paths with a ### path-name heading and its own todos.

To trigger an external PROCESS.md, use run process [process-name] โ€” it runs a separate file from your processes/ folder.

Parameter Required Description
Name Yes A short path name, written after ### . Each path in a PROCESS.md must have a unique name.

How to run a local path or trigger an external process

Phrase What it runs
run path [path-name] Runs a path defined in ## Paths section.
run process [process-name] Runs an external PROCESS.md file from your processes/ folder.

Processes folder structure

processes/ โ”œโ”€โ”€ maintenance-ticket/ โ”‚ โ”œโ”€โ”€ PROCESS.md โ”‚ โ””โ”€โ”€ assets/... โ”œโ”€โ”€ inspection-report/ โ”‚ โ”œโ”€โ”€ PROCESS.md โ”‚ โ””โ”€โ”€ assets/... โ”œโ”€โ”€ request-photos/ โ”‚ โ””โ”€โ”€ PROCESS.md โ””โ”€โ”€ shared-assets/ โ””โ”€โ”€ brand-tone.md

Example

## Todos [ ] Process the contractor's reply Description: After the contractor responds, run path job-fixed-resolution if the job was fixed. Run path quote-approval-flow if they sent a quote for further work. ## Paths ### job-fixed-resolution [ ] Email tenant confirming the fix Approval: required Sources: front Assets: assets/tenant-fix-confirmation.md [ ] Email landlord confirming the fix Approval: required Sources: front Assets: assets/landlord-fix-confirmation.md [ ] Mark job complete in iamproperty Sources: iamproperty [ ] Upload contractor invoice to ticket Sources: iamproperty [ ] Move Trello card to Done Sources: trello ### quote-approval-flow [ ] Email landlord requesting quote approval Approval: required Sources: front Assets: assets/quote-approval-request.md [ ] If no reply in 2 working days, schedule a call with landlord Sources: outlook-calendar [ ] On approval, email contractor confirming and request scheduling Approval: required Sources: front [ ] Once fixed, run path job-fixed-resolution

Full example

A full example of a PROCESS.md workflow.

--- name: contractor-chase description: > Chase a contractor weekly for a response on a logged repair until they confirm scheduling. If the contractor replies with a confirmed date, notify the tenant. Escalate to the contractor-escalation process if still unresponsive after 3 weeks. --- ## Rules - Stop: If contractor confirmed a date or tenant withdrew the repair. - Escalate: After 3 weeks without a response, run process contractor-escalation and notify the property manager at pm@acme.co. - Tone: Keep messages polite and professional. Use a firmer tone on the 3rd attempt. - Language: Always use British English. ## Todos [ ] Check for contractor response Description: Look for replies in the CRM against this repair in the last 7 days. Sources: iamproperty [ ] Send follow-up message Description: Draft and send a chase email. Reference the original repair and prior messages. If the contractor replies confirming a date, run path tenant-update. Approval: required Sources: front, iamproperty Skills: contractor-communication Assets: assets/contractor-chase-template.md [ ] Log outcome Description: Record the sent message and next expected response date in the CRM. Sources: iamproperty ## Paths ### tenant-update [ ] Email the tenant confirming the scheduled date Description: Send a brief, friendly update with the confirmed date, contractor name, and what to expect on the day. Approval: required Sources: front Assets: assets/tenant-scheduled-update.md [ ] Log the notification in the repair ticket Description: Record that the tenant has been informed, with timestamp. Sources: iamproperty

Run PROCESS.md in Askpilot

Askpilot is purpose-built to run PROCESS.md files. From one place, activate any process where it needs to run:

  • Across your whole company for organisation-wide processes
  • To specific teams like sales, operations, or compliance
  • To individual employees for personal workflows or assigned tasks
  • On any trigger like events, schedules, conditions, or manual runs

PROCESS.md describes the work. Askpilot makes sure it runs right, wherever it's needed.

Get started today

Run your processes in Askpilot.

Request early access and start automating your business workflows.

Request early access