You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We have a plan and set of tasks to implement so that the "FOC Project Bot" described below could be implemented. This plan could be markdown document(s) and/or github issues.
Background
All of the Filecoin Onchain Cloud working group (FOC WG) engineering work is tracked by issues and PRs on github that show up on the FOC board: FOC . We have various GitHub project workflows (example) and repository github workflow (example) that take on ensuring all the relevant issues/PRs are on the FOC project board, but there is still manual followup that happens afterwards to set assignees, reviews, the current cycle, the cycle theme, the milestone, etc. This manual followup generally falls on FOC TPMs (e.g., @rjan90, @BigLep) or engineers.
I want a "FOC Project Bot" that can handle a lot of the FOC project board management and maintenance automatically or at least help make it easier for FOC TPMs to do this work.
Requirements
See the current contents of the FOC project
Must be able to load the contents of the FOC Project and see all issues and PRs, their native state (assignee, reviewers, milestone, etc.), and state in the FOC project (status, cycle, estimate, etc).
It should also be possible to view the Project with a filter to load and process faster. For example, it's often advantageous to filter out "Done" items. "FOC Project Bot" should be able to contruct intelligent filters so it runs snappy.
Be able to mutate the FOC project and issue/PR state
Anything a human could do like change the milestone, set the status, set an assignee, etc. "FOC Project Bot" should also be able to do unless otherwise noted. (For example, down below I discuss how I don't want "FOC Project Bot" to be removing items from the project.)
Chat interface
I want a way to chat with "FOC Project Bot" where anyone on the team can ask it to take actions and it will reply with the result. Similarly, if it is proactively doing cleanup or making decisions, I want it to log to chat what it's done so it's easy for someone to ask it followup questions or inform "FOC Project Bot" of mistakes.
The team already lives in slack, so it would be ideal to have a chat interface through slack.
Durably Persist Its Context in a Human Readable Form
"FOC Project Bot" will build up knowledge about the FOC Project and wil create rules that it discovers itself or as given by TPMs. I want to make sure those get persisted. This could be as a markdown file in a repo, or could be a Notion document. Whenever "FOC Project Bot" runs, it should use this context for making decisions.
Example rules I can imagine it having include:
NEVER remove items from the FOC project without getting double confirmation from a human.
ALWAYS set the assignee of a new PR in the FOC Project to be the author of the PR unless an assignee was already set.
ALWAYS set the Cycle Theme of new PRs in the FOC project that are from debendabot to be "Dependency Updates". These items should also have their status set to "Todo" and they should be added to the current Cycle.
Run based on "triggers" or "events"
The manual human form is to review the FOC project a couple of times a day. At the minimum, "FOC Project Bot" should be on a schedule to wake up, get the state of the world, and take action. It would also be fine if it had a webhook so it responded to board activity automatically.
Bonus: keep a log of actions
Not required to start, but I bring it up now in case it affects the architecture: it would be great to be able to say "Hey, @focProjectBot, what have you done or notice the last 24 hours and to get a summary back of the actions it has taken".
Architecture and Design
This needs to get figured out, but we need to figure how "FOC Project Bot" runs. Ideas that come to mind:
Part of Claude'a repeated job flow? The downside I see of this as this it will be harder to make it work for multiple concurrent users.
This seems like it could be nice as it can easily hook into slack and be storing its context in a Notion page.
Do some sort of n8n workflow and a good MCP server that knows about prebuilt tools and about our FOC project.
Other Thoughts
https://github.com/FilOzone/tpm-utils is already building up various tools/scripts for working with our FOC project and repos. It would be great if "FOC Project Bot" knew how to wield them.
We'll need a GitHub identity to read/manipulate the FOC project and its issues. I would plan on us using https://github.com/FilOzzy . Maybe instead of calling this desired entity I've described above as "FOC Project Bot", we instead start calling it "FilOzzy"?
Done criteria
We have a plan and set of tasks to implement so that the "FOC Project Bot" described below could be implemented. This plan could be markdown document(s) and/or github issues.
Background
All of the Filecoin Onchain Cloud working group (FOC WG) engineering work is tracked by issues and PRs on github that show up on the FOC board: FOC . We have various GitHub project workflows (example) and repository github workflow (example) that take on ensuring all the relevant issues/PRs are on the FOC project board, but there is still manual followup that happens afterwards to set assignees, reviews, the current cycle, the cycle theme, the milestone, etc. This manual followup generally falls on FOC TPMs (e.g., @rjan90, @BigLep) or engineers.
I want a "FOC Project Bot" that can handle a lot of the FOC project board management and maintenance automatically or at least help make it easier for FOC TPMs to do this work.
Requirements
See the current contents of the FOC project
Must be able to load the contents of the FOC Project and see all issues and PRs, their native state (assignee, reviewers, milestone, etc.), and state in the FOC project (status, cycle, estimate, etc).
It should also be possible to view the Project with a filter to load and process faster. For example, it's often advantageous to filter out "Done" items. "FOC Project Bot" should be able to contruct intelligent filters so it runs snappy.
Be able to mutate the FOC project and issue/PR state
Anything a human could do like change the milestone, set the status, set an assignee, etc. "FOC Project Bot" should also be able to do unless otherwise noted. (For example, down below I discuss how I don't want "FOC Project Bot" to be removing items from the project.)
Chat interface
I want a way to chat with "FOC Project Bot" where anyone on the team can ask it to take actions and it will reply with the result. Similarly, if it is proactively doing cleanup or making decisions, I want it to log to chat what it's done so it's easy for someone to ask it followup questions or inform "FOC Project Bot" of mistakes.
The team already lives in slack, so it would be ideal to have a chat interface through slack.
Durably Persist Its Context in a Human Readable Form
"FOC Project Bot" will build up knowledge about the FOC Project and wil create rules that it discovers itself or as given by TPMs. I want to make sure those get persisted. This could be as a markdown file in a repo, or could be a Notion document. Whenever "FOC Project Bot" runs, it should use this context for making decisions.
Example rules I can imagine it having include:
Run based on "triggers" or "events"
The manual human form is to review the FOC project a couple of times a day. At the minimum, "FOC Project Bot" should be on a schedule to wake up, get the state of the world, and take action. It would also be fine if it had a webhook so it responded to board activity automatically.
Bonus: keep a log of actions
Not required to start, but I bring it up now in case it affects the architecture: it would be great to be able to say "Hey, @focProjectBot, what have you done or notice the last 24 hours and to get a summary back of the actions it has taken".
Architecture and Design
This needs to get figured out, but we need to figure how "FOC Project Bot" runs. Ideas that come to mind:
Other Thoughts