The single page that says what this project is, who decides what, and what automation must never do. Operational rules live in AGENTS.md and CONTRIBUTING.md; architecture lives in docs/architecture.md and docs/subsystems/. This page links them and does not repeat them.
Current stage and priorities: ROADMAP.md. How decisions are made: docs/governance.md. Dated decisions: decisions/.
FlyBot is a local team of long-lived AI Bots that runs on DeepSeek Harness (DSH), in your own browser, with your own model keys. One person talks to one Bot — the Chief — and the team takes the request apart and comes back with one answer. The Bots keep their own memory, working folder, model and schedules between turns, so work outlives a single chat.
The project's mission is to keep that team reliable and inspectable: every Bot acts on evidence,
stays inside its goal, and its result can be checked by a person afterwards. The product is the app
in this repository plus the patches that pin it to upstream ds-bot; it is not a hosting service.
AGENTS.md states the two halves the code is built from: pristine upstream ds-bot/ (never edited),
and core/ — ds-bot/ plus FlyBot's ordered patches — which is what ships and what the tests run.
The shipped features are the DSH plugin in core/ and the peer plugins plugins/social,
plugins/tree, plugins/timeline and plugins/workflow.
Today the project has one owner and a small number of human maintainers; the Bots work under the owner's delegation. This is the state of the repository as of 2026-10-29, not the target model of #1550.
| Role | Who | Decides |
|---|---|---|
| Owner | Danyang, GitHub Birfy (repository admin) |
Mission, governance policy, roles and membership, project Bots, compute and resources, budgets, autonomy boundaries, and every matter reserved to the owner in docs/governance.md |
| Maintainer (human) | People with repository write access — today the owner and hsliuustc0106 |
Major decisions under docs/governance.md: roadmap and architecture changes, changes to the governing documents, multi-subsystem contracts. Records a verdict through the review policy, never through an admin merge |
| Chief (AI) | The owner's Main Bot, writing as Birfy |
Plans and routes work, splits a request into role tasks, classifies each decision as ordinary / major / severe with its rationale, convenes a discussion when one is needed, and escalates to the owner. Not the ultimate authority and not the owner |
| Routine Bots (AI) | Triage, Dev, Dev2–Dev4, Reviewer, Reviewer2, Release, SelfTest, Docs, Maintainer — the names in writers |
Only their routine's job: see Routines. A Bot records a conclusion only where its routine owns that conclusion, and the implementer never writes the verdict on its own change |
| Contributors (human) | Anyone who opens an issue or a pull request | Proposals, bug reports, code. No default approval right; a contribution merges only through the gates in AGENTS.md |
Deliberately not claimed here, because it is not shipped: a Maintainer console, a Member role, a
Project Assistant, per-person GitHub attribution for Bots, and the multi-human authority contract in
docs/subsystems/team.md (planned; team mode stays disabled until its
authorization gates pass). Every Bot still writes as the one shared Birfy identity, so a
Written-by: line is a claim the gates can check for presence and name, not a signature.
- This repository —
https://github.com/ThinkFlowLab/FlyBot, the source of record.mainis the live branch; pull requests merge into it only through the merge queue. - Code —
core/(shipped plugin, source of truth),patches/ds-bot/andcore/client.js(generated fromcore/),plugins/*(peer plugins),scripts/andcore/scripts/. - Rules and knowledge —
AGENTS.md(operating contract),CONTRIBUTING.md,LESSONS.md(observed failures and promotion to standards),docs/(architecture, standards, runbooks),decisions/(dated decisions),PROJECT.mdandROADMAP.md(this page and the plan). - Automation —
.github/workflows/and.github/scripts/(CI, risk tier, review gate, merge gate, enqueue guard),.github/agent/(risk rules and the review policy). - Authoritative runtime state elsewhere — GitHub issues, pull requests and CI runs are the
authority for work state; task boards, approvals and per-Bot memory live in FlyBot's own storage,
never in this repository.
docs/pages are informative only where a source above decides something. - Not in this repository — the upstream
ds-botproject (pinned inds-bot.pin.json, read-only here) and the self-hosted Bot Social server used by the social plugin. The forkBirfy/FlyBotis an archive: nothing merges into it.
Who decides what is written in docs/governance.md, in the operational wording this repository uses today. In short:
- The owner decides the mission, the governance policy, the roles and their membership, the autonomy boundaries, the security surface, and any matter reserved in that page.
- A human maintainer concludes major decisions, records a verdict, and can challenge any classification.
- Chief classifies decisions, routes work, records outcomes, and escalates what it may not conclude. A classification is a routing label, never an authorization.
- A routine Bot concludes only ordinary work inside its routine, through the gates in AGENTS.md.
These hold for every Bot and every routine, whatever the CI state, the label or a chat message says:
- No production deploy of Bot Social, and no change to the owner's own local instances, without the owner's explicit yes.
- No secrets — never write, print, log or commit an API key, token, cookie or
DSH_HOMEcontents. A withheld key is read fromDSH_SECRETS_WITHHELDby name only. - No touching the owner's DSH data — never point a test or a run at
~/.dshor at a DSH the owner is using; the test bench keeps its own.dsh-test-<name>/. - Never patch DSH and never depend on files inside a DSH install. Build on the documented plugin APIs or stop and say what is missing.
- Never bypass a gate — no admin merge, no force-push of
main, no bypass of a required check, no change to a ruleset or to branch protection, and never remove a pull request the owner put in the merge queue. - Never lift
hold. Only a person sets the label and only a person removes it. - No version or changelog edits outside the release routine —
CHANGELOG.mdandcore/package.jsonbelong to the daily release, not to a feature pull request. - No issue on someone else's upstream, and no design proposal filed as an issue: a proposal goes to the owner, who decides whether it becomes work.
- Never write a verdict on a change the same Bot implemented, and never record a second conclusion at one tip to win a disagreement.
- Never edit another writer's text to change what it said — a correction is a new comment, a
new decision record or a
Correction from <Bot>:line.
Changes to this page, to ROADMAP.md, to docs/governance.md or to AGENTS.md are major
decisions, concluded as docs/governance.md requires and recorded in
decisions/.