Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,31 @@ Your approval queue lives in Apps. Every draft shows the destination, the sender
- **Remove app; keep data** works once schedules are paused and work is finished or cancelled. It archives the process, cancels pending drafts and keeps records.
- Old processes can't resume after a reinstall or upgrade, and there is no database downgrade.

## Processes

A process is the list of stages a thread goes through, like Research, Draft, Review. The [processes](processes/) folder holds one JSON file per process. It starts with the ones built into Bees, and we want yours too.

A process file looks like this:

```json
{
"name": "Fix a bug",
"description": "Optional one line on what it is for",
"workflow": [
{ "name": "Reproduce", "kind": "work", "instructions": "Optional, what this stage should do" },
{ "name": "Verify", "kind": "review" }
]
}
```

- A stage's `kind` is `work`, `review` (an independent check), `approval` (a person says yes before it goes on) or `chat`. A chat stage has to be the only stage.
- A process has 1 to 12 stages. Stage names are up to 80 characters, and instructions up to 4000.
- Agents and models are left out, because they only exist inside one team. Each team picks its own after importing.

To add one, export it from Bees (**Team settings**, **Processes**, **Export**) or write the file by hand, then open a pull request with that one file in `processes/`. One process per pull request, please.

To use one in Bees, open **Team settings**, **Processes**, click **Import process** and paste the file text or its raw link, like `https://raw.githubusercontent.com/Bees-bot/bees-apps/main/processes/fix-a-bug.json`. If Bees cannot open the link, open it in your browser and paste the text instead.

## Develop and contribute

The checks need no npm packages:
Expand Down
30 changes: 30 additions & 0 deletions processes/build-software.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"name": "Build software",
"workflow": [
{
"name": "Requirements",
"kind": "work",
"instructions": "Ask the person what they want built before anything else. Ask at most 5 short questions with answer options where you can, and skip anything the request already answers. Write the answers as a short requirements list to outputs/requirements.md. Do not design or build anything yet."
},
{
"name": "Architecture",
"kind": "work",
"instructions": "Read outputs/requirements.md. Search GitHub for a base project to build on: MIT or Apache 2.0 licensed, still maintained, modular, and one that saves the most custom code. Then get at least two independent architecture proposals from subagents, on different AI models when more than one is available, and have them critique each other. Rank designs by modularity first, then less custom code through existing packages and libraries, then reusable components so similar modules are never built twice. Do not argue about small things, and settle within 2 to 5 rounds. Write the base project, its license and the design to outputs/architecture.md, keeping any approved design already there and changing only what this request needs. Then show the person the design, ask them to approve it or say what to change, and revise until they approve."
},
{
"name": "Plan",
"kind": "work",
"instructions": "Read outputs/requirements.md and outputs/architecture.md. Split the build into phases the person can test on their own, each about 1000 changed lines or fewer. For every phase write numbered test steps that use only the app's screens, never a terminal or code. Write the plan to outputs/plan.md."
},
{
"name": "Build",
"kind": "work",
"instructions": "Read outputs/architecture.md and outputs/plan.md, then build the plan one phase at a time, with the code under outputs/. Keep server logs, database backups and other scratch files outside outputs/, because everything in it comes back to the person. Use the base project and packages the approved design names and install them, instead of hand-writing what they already do. If one will not install, tell the person what failed before you switch to anything else. After each phase, use ask_user_question to ask the person to follow that phase's test steps, including how to open the app, and to say which steps failed. Fix what they report and ask again until the phase passes, then start the next phase. When every phase passes, update the README to match the code. Then copy the app without installed packages, build output or data to a new folder next to outputs/, follow the README exactly there, fix the code or the README until the app starts, and delete the copy."
},
{
"name": "Review",
"kind": "review",
"instructions": "Check that every phase in outputs/plan.md was built on the design in outputs/architecture.md and that the person confirmed its test steps passed. Name any phase that was skipped, still fails, or left the approved design, and any README step or note the final code no longer matches."
}
]
}
15 changes: 15 additions & 0 deletions processes/ceo-daily-brief.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "CEO daily brief",
"workflow": [
{
"name": "Collect numbers",
"kind": "work",
"instructions": "Pull the latest numbers from the sources the person names, such as a sheet, a dashboard or a connected add-on. If no sources are named, ask the person which ones to use and which numbers matter. Add today's numbers with the date to the running table in outputs/daily-numbers.md, and keep earlier days."
},
{
"name": "Write brief",
"kind": "work",
"instructions": "Read outputs/daily-numbers.md and compare today with earlier days. Write a short brief to outputs/daily-brief.md: what changed, what looks off, and what needs the person's attention. Reply with the brief in five bullets or fewer. The person can put this thread on a schedule in its settings to get the brief every day."
}
]
}
9 changes: 9 additions & 0 deletions processes/chat.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"name": "Chat",
"workflow": [
{
"name": "Chat",
"kind": "chat"
}
]
}
24 changes: 24 additions & 0 deletions processes/email-replies.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"name": "Email replies with approval",
"workflow": [
{
"name": "Find emails",
"kind": "work",
"instructions": "Find emails that need a reply. Use a connected mail add-on if there is one, otherwise ask the person to paste them. For each one, read the earlier conversation with the same sender. List each email with its sender, subject and what it asks for in outputs/emails.md. Do not send anything."
},
{
"name": "Draft replies",
"kind": "work",
"instructions": "Read outputs/emails.md and draft a reply to each email in outputs/drafts.md. Show the person each draft and ask them to approve it, change it or skip it, and revise until they approve or skip. Do not send anything. End with a list of the approved drafts."
},
{
"name": "Approve sending",
"kind": "approval"
},
{
"name": "Send replies",
"kind": "work",
"instructions": "Read outputs/drafts.md and send only the drafts the person approved, through the connected mail add-on. Never send a draft they changed their mind on or skipped. If no mail add-on is connected, give the person the approved drafts to send themselves. Write what was sent to outputs/sent.md."
}
]
}
17 changes: 17 additions & 0 deletions processes/fix-a-bug.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "Fix a bug",
"workflow": [
{
"name": "Reproduce",
"kind": "work"
},
{
"name": "Fix",
"kind": "work"
},
{
"name": "Verify",
"kind": "work"
}
]
}
20 changes: 20 additions & 0 deletions processes/founder-thinking-partner.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "Founder thinking partner",
"workflow": [
{
"name": "Understand the company",
"kind": "work",
"instructions": "Learn what the company does, its customers, its numbers and the founder's goals from the request and the shared files. Ask the person at most 5 short questions for what is missing. Write a short company summary to outputs/company.md."
},
{
"name": "Generate ideas",
"kind": "work",
"instructions": "Read outputs/company.md. Answer four questions: what is the founder not thinking of, how could the company grow 10x, how can the founder improve themself, and which new processes or markets to try. Rank the ideas under each question by impact, each with a short reason and a first step. Write them to outputs/ideas.md."
},
{
"name": "Challenge ideas",
"kind": "review",
"instructions": "Read outputs/company.md and outputs/ideas.md. Name any idea that is vague, does not fit the company, or is ranked too high, and say why."
}
]
}
13 changes: 13 additions & 0 deletions processes/goals.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "Goals",
"workflow": [
{
"name": "Work",
"kind": "work"
},
{
"name": "Review",
"kind": "review"
}
]
}
20 changes: 20 additions & 0 deletions processes/news-summary.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "News summary",
"workflow": [
{
"name": "Pick topics",
"kind": "work",
"instructions": "If the request does not name the topics, ask the person which ones they want, with these options: science, technology, business, finance, politics, sports, entertainment. Write the chosen topics to outputs/topics.md."
},
{
"name": "Read the news",
"kind": "work",
"instructions": "Read outputs/topics.md. For each topic, read today's news from at least three different news sources. Note each story with its source name and link in outputs/sources.md."
},
{
"name": "Summarize news",
"kind": "work",
"instructions": "Read outputs/sources.md. Write a short summary for each topic to outputs/news-summary.md, a few bullets per topic with a link to each story. Reply with the top story of each topic. The person can put this thread on a schedule in its settings to get the summary every day."
}
]
}
17 changes: 17 additions & 0 deletions processes/research-and-report.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "Research and report",
"workflow": [
{
"name": "Research",
"kind": "work"
},
{
"name": "Draft",
"kind": "work"
},
{
"name": "Review",
"kind": "review"
}
]
}
20 changes: 20 additions & 0 deletions processes/sales-meeting-prep.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "Sales meeting prep",
"workflow": [
{
"name": "Find meetings",
"kind": "work",
"instructions": "Find the person's upcoming sales meetings. Use a connected calendar add-on if there is one, otherwise ask the person to paste the meetings. Write each meeting's time, company and attendees to outputs/meetings.md."
},
{
"name": "Research accounts",
"kind": "work",
"instructions": "Read outputs/meetings.md. For each company, research the company, its attendees, its main competitors and what those competitors are doing lately. Write the findings with links to outputs/research.md."
},
{
"name": "Talking points",
"kind": "work",
"instructions": "Read outputs/meetings.md and outputs/research.md. For each meeting, explain why the company needs Bees to stay competitive, then list talking points ranked by how likely each is to make the sale, with a one-line reason each. Write it to outputs/meeting-prep.md and reply with the top three points per meeting."
}
]
}
21 changes: 21 additions & 0 deletions processes/write-and-publish.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"name": "Write and publish",
"workflow": [
{
"name": "Outline",
"kind": "work"
},
{
"name": "Write",
"kind": "work"
},
{
"name": "Edit",
"kind": "work"
},
{
"name": "Publish",
"kind": "work"
}
]
}
Loading